Я строю очень простой неконтролируемый детектор выбросов с помощью Isolation Forest.Я хотел настроить гиперпараметры с помощью GridSearchCV, но для GridSearch требуются метки, которых у меня нет.Я решил создать специальный GridSearch, который будет хранить каждое вычисление в датафрейме.Код выглядит следующим образом:
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_estimators требует, чтобы входные данные были целочисленными, а не списком, как в этом случае.