StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
StackGenVis/cache_dir/joblib/run/GridSearch/func_code.py

51 lines
1.8 KiB

# first line: 85
def GridSearch(clf, params, scoring, FI):
grid = GridSearchCV(estimator=clf,
param_grid=params,
scoring=scoring,
cv=5,
refit='accuracy',
n_jobs = -1)
grid.fit(XData, yData)
cv_results = []
cv_results.append(grid.cv_results_)
df_cv_results = pd.DataFrame.from_dict(cv_results)
number_of_classifiers = len(df_cv_results.iloc[0][0])
number_of_columns = len(df_cv_results.iloc[0])
df_cv_results_per_item = []
df_cv_results_per_row = []
for i in range(number_of_classifiers):
df_cv_results_per_item = []
for column in df_cv_results.iloc[0]:
df_cv_results_per_item.append(column[i])
df_cv_results_per_row.append(df_cv_results_per_item)
df_cv_results_classifiers = pd.DataFrame(data = df_cv_results_per_row, columns= df_cv_results.columns)
parameters = df_cv_results_classifiers['params']
FeatureImp = []
target_names = ['class 0', 'class 1', 'class 2']
for eachClassifierParams in grid.cv_results_['params']:
eachClassifierParamsDictList = {}
for key, value in eachClassifierParams.items():
Listvalue = []
Listvalue.append(value)
eachClassifierParamsDictList[key] = Listvalue
grid = GridSearchCV(estimator=clf,
param_grid=eachClassifierParamsDictList,
scoring=scoring,
cv=5,
refit='accuracy',
n_jobs = -1)
print(eachClassifierParamsDictList)
grid.fit(XData, yData)
yPredict = grid.predict(XData)
print(classification_report(yData, yPredict, target_names=target_names))
if (FI == 1):
FeatureImp.append(grid.best_estimator_.feature_importances_)
return df_cv_results_classifiers, parameters, FeatureImp