我正在建立一个非常基本的无监督的离群点检测器与隔离林。我想用GridSearchCV调整超参数,但是GridSearch需要我没有的标签。我决定构建定制的GridSearch,它将每个计算存储在dataframe中。代码看起来像这样
params = {
'n_estimators': [100,125, 150],
'contamination': [0.0001, 0.001],
'bootstrap': [True, False],
'max_features': [1, 2]
}
clf = IsolationForest(random_state=42)
result2 = pd.DataFrame(columns=['n_estimators','contamination','bootstrap','max_features'])
for g in ParameterGrid(params):
clf.set_params(**params)
clf.fit(X_train)
pred_clf = clf.predict(X_test)
unique, counts = np.unique(pred_clf, return_counts=True)
result = (dict(zip(unique, counts)))
result = result2.append([result,params], ignore_index=True)
然而,我在拟合时遇到了一个问题,因为n_估计量要求输入为整数,而不是像本例中那样的列表。在
您需要在循环中设置
g
,而不是params
。在而不是这样:
这样做:
^{pr2}$相关问题 更多 >
编程相关推荐