在Sklearn RandomforestClassifier中移动假想决策边界



我正在使用RandomForestClassifier来完成我的任务。拟合的数据(数据平衡),进行了交叉验证。当然,预测有一些错误,但这是可以接受的。我的任务是二进制的,但不正确的样本定义作为头等舱比第二类更为重要。是否有任何方法可以将虚构决策边界转移到第二类,以通过牺牲第二类的精度来最大程度地减少第一类的错误?

    ml_model = RandomForestClassifier(random_state=17, n_jobs=-1, class_weight='balanced')
    ml_params = {'max_depth': range(5, 16), 'max_features': range(4, 15)}
    skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=17)
    ml_grid = GridSearchCV(ml_model, ml_params, cv=skf, n_jobs=-1, scoring='roc_auc')
    ml_grid.fit(x_train, y_train)
...
    ml_grid.best_estimator_.predict(some_sample)

如果使用连续的概率,则可以移动干燥阈值,以便偏爱一个类而不是另一个类。然后,您将使用estimator.predict_proba() < 0.3< 0.7代替estimator.predict()

您可以使用RandomForest进行此操作,但是您可以通过梯度增强树的结果更好,从而直接产生连续的输出。

您可以使用ROC曲线图确定合适的阈值,以提供适合您应用程序的精确/召回曲线。

相关内容

  • 没有找到相关文章

最新更新