【发布时间】:2023-03-05 18:17:02
【问题描述】:
我有多变量时间序列数据,想用隔离森林算法检测异常。 想从gridSearchCV中得到最好的参数,这里是gridSearch CV的sn-p代码。
使用以下 sn-p 加载的输入数据集。
df = pd.read_csv("train.csv")
df.drop(['dataTimestamp','Anomaly'], inplace=True, axis=1)
X_train = df
y_train = df1[['Anomaly']] ( Anomaly column is labelled data).
定义隔离森林的参数。
clf = IsolationForest(random_state=47, behaviour='new', score="accuracy")
param_grid = {'n_estimators': list(range(100, 800, 5)), 'max_samples': list(range(100, 500, 5)), 'contamination': [0.1, 0.2, 0.3, 0.4, 0.5], 'max_features': [5,10,15], 'bootstrap': [True, False], 'n_jobs': [5, 10, 20, 30]}
f1sc = make_scorer(f1_score)
grid_dt_estimator = model_selection.GridSearchCV(clf, param_grid,scoring=f1sc, refit=True,cv=10, return_train_score=True)
grid_dt_estimator.fit(X_train, y_train)
执行 fit 后,出现以下错误。
ValueError:目标是多类但平均值='二进制'。请选择其他平均设置。
有人可以指导我这是怎么回事,尝试了平均='体重',但仍然没有运气,这里有什么问题。 请告诉我如何获得 F 分数。
【问题讨论】:
标签: python-3.x scikit-learn data-science