mirror of
https://github.com/Doctorado-ML/benchmark.git
synced 2025-08-17 16:35:54 +00:00
Add KDBNew model and fit_feature hyperparameter
This commit is contained in:
@@ -112,6 +112,17 @@ class Arguments(argparse.ArgumentParser):
|
|||||||
"help": "Generate Excel File",
|
"help": "Generate Excel File",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
"fit_features": [
|
||||||
|
("--fit_features",),
|
||||||
|
{
|
||||||
|
"action": EnvDefault,
|
||||||
|
"envvar": "fit_features",
|
||||||
|
"required": True,
|
||||||
|
"help": "Include features in fit call",
|
||||||
|
"const": "1",
|
||||||
|
"nargs": "?",
|
||||||
|
},
|
||||||
|
],
|
||||||
"grid_paramfile": [
|
"grid_paramfile": [
|
||||||
("-g", "--grid_paramfile"),
|
("-g", "--grid_paramfile"),
|
||||||
{
|
{
|
||||||
|
@@ -113,8 +113,10 @@ class Experiment:
|
|||||||
title,
|
title,
|
||||||
progress_bar=True,
|
progress_bar=True,
|
||||||
ignore_nan=True,
|
ignore_nan=True,
|
||||||
|
fit_features=None,
|
||||||
folds=5,
|
folds=5,
|
||||||
):
|
):
|
||||||
|
env_data = EnvData.load()
|
||||||
today = datetime.now()
|
today = datetime.now()
|
||||||
self.time = today.strftime("%H:%M:%S")
|
self.time = today.strftime("%H:%M:%S")
|
||||||
self.date = today.strftime("%Y-%m-%d")
|
self.date = today.strftime("%Y-%m-%d")
|
||||||
@@ -134,6 +136,11 @@ class Experiment:
|
|||||||
self.title = title
|
self.title = title
|
||||||
self.ignore_nan = ignore_nan
|
self.ignore_nan = ignore_nan
|
||||||
self.stratified = stratified == "1"
|
self.stratified = stratified == "1"
|
||||||
|
self.fit_features = (
|
||||||
|
env_data["fit_features"] == "1"
|
||||||
|
if fit_features is None
|
||||||
|
else fit_features == "1"
|
||||||
|
)
|
||||||
self.stratified_class = StratifiedKFold if self.stratified else KFold
|
self.stratified_class = StratifiedKFold if self.stratified else KFold
|
||||||
self.datasets = datasets
|
self.datasets = datasets
|
||||||
dictionary = json.loads(hyperparams_dict)
|
dictionary = json.loads(hyperparams_dict)
|
||||||
@@ -187,11 +194,14 @@ class Experiment:
|
|||||||
self.depths = []
|
self.depths = []
|
||||||
|
|
||||||
def _build_fit_params(self, name):
|
def _build_fit_params(self, name):
|
||||||
|
if not self.fit_features:
|
||||||
|
return None
|
||||||
|
res = dict(features=self.datasets.get_features())
|
||||||
states = self.datasets.get_states(name)
|
states = self.datasets.get_states(name)
|
||||||
if states is None:
|
if states is None:
|
||||||
return None
|
return res
|
||||||
features = self.datasets.get_features()
|
res["state_names"] = states
|
||||||
return {"state_names": states, "features": features}
|
return res
|
||||||
|
|
||||||
def _n_fold_crossval(self, name, X, y, hyperparameters):
|
def _n_fold_crossval(self, name, X, y, hyperparameters):
|
||||||
if self.scores != []:
|
if self.scores != []:
|
||||||
|
@@ -8,7 +8,7 @@ from sklearn.ensemble import (
|
|||||||
)
|
)
|
||||||
from sklearn.svm import SVC
|
from sklearn.svm import SVC
|
||||||
from stree import Stree
|
from stree import Stree
|
||||||
from bayesclass.clfs import TAN, KDB, AODE
|
from bayesclass.clfs import TAN, KDB, AODE, KDBNew
|
||||||
from wodt import Wodt
|
from wodt import Wodt
|
||||||
from odte import Odte
|
from odte import Odte
|
||||||
from xgboost import XGBClassifier
|
from xgboost import XGBClassifier
|
||||||
@@ -41,6 +41,7 @@ class Models:
|
|||||||
"STree": Stree(random_state=random_state),
|
"STree": Stree(random_state=random_state),
|
||||||
"TAN": TAN(random_state=random_state),
|
"TAN": TAN(random_state=random_state),
|
||||||
"KDB": KDB(k=2),
|
"KDB": KDB(k=2),
|
||||||
|
"KDBNew": KDBNew(k=2),
|
||||||
"AODE": AODE(random_state=random_state),
|
"AODE": AODE(random_state=random_state),
|
||||||
"Cart": DecisionTreeClassifier(random_state=random_state),
|
"Cart": DecisionTreeClassifier(random_state=random_state),
|
||||||
"ExtraTree": ExtraTreeClassifier(random_state=random_state),
|
"ExtraTree": ExtraTreeClassifier(random_state=random_state),
|
||||||
|
@@ -14,6 +14,7 @@ def main(args_test=None):
|
|||||||
arguments.xset("stratified").xset("score").xset("model", mandatory=True)
|
arguments.xset("stratified").xset("score").xset("model", mandatory=True)
|
||||||
arguments.xset("n_folds").xset("platform").xset("quiet").xset("title")
|
arguments.xset("n_folds").xset("platform").xset("quiet").xset("title")
|
||||||
arguments.xset("report").xset("ignore_nan").xset("discretize")
|
arguments.xset("report").xset("ignore_nan").xset("discretize")
|
||||||
|
arguments.xset("fit_features")
|
||||||
arguments.add_exclusive(
|
arguments.add_exclusive(
|
||||||
["grid_paramfile", "best_paramfile", "hyperparameters"]
|
["grid_paramfile", "best_paramfile", "hyperparameters"]
|
||||||
)
|
)
|
||||||
@@ -40,6 +41,7 @@ def main(args_test=None):
|
|||||||
ignore_nan=args.ignore_nan,
|
ignore_nan=args.ignore_nan,
|
||||||
title=args.title,
|
title=args.title,
|
||||||
folds=args.n_folds,
|
folds=args.n_folds,
|
||||||
|
fit_features=args.fit_features,
|
||||||
)
|
)
|
||||||
job.do_experiment()
|
job.do_experiment()
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
|
Reference in New Issue
Block a user