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.
51 lines
1.8 KiB
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
|
|
|