【问题标题】:Custom scoring metric sklearn logistic regression自定义评分指标 sklearn 逻辑回归
【发布时间】:2019-05-16 17:21:57
【问题描述】:

假设我在 sci-kit learn 中使用了以下自定义损失函数。在这种情况下,我只对模型得分高于 0.8 的观察结果进行评分。

def customLoss(y_true, y_pred):
    a = pd.DataFrame({'Actuals':y_true, 'Preds': y_pred})
    a = a.query('Preds > 0.8')
    return(precision_score(a['Actuals'], a['Preds']))

param_grid = {'C': [0.001, 0.01, 0.1, 1, 10]}
scorer = make_scorer(mf.customLoss ,greater_is_better = True)
grid = GridSearchCV(LogisticRegression(class_weight = 'balanced'), param_grid = param_grid, scoring = scorer, cv = 5)

但是,假设我想让阈值 (0.8) 可配置。显然我需要像这样向我的损失函数添加第三个参数:

def customLoss(y_true, y_pred, threshold):
        a = pd.DataFrame({'Actuals':y_true, 'Preds': y_pred})
        a = a.query('Preds > @threshold')
        return(precision_score(a['Actuals'], a['Preds']))

但是,我对将第三个参数放在 make_scorer 函数中的哪个位置有点困惑?

【问题讨论】:

  • 请把你的问题细化为一个问题,以便清楚。
  • 编辑了我的问题!

标签: python scikit-learn


【解决方案1】:

试试

grid = GridSearchCV(LogisticRegression(class_weight = 'balanced'), param_grid = param_grid, scoring = 'metric_you_want', cv = 5)

【讨论】:

猜你喜欢
  • 2015-05-04
  • 2016-03-06
  • 2014-01-20
  • 1970-01-01
  • 2021-03-11
  • 2013-12-24
  • 2019-07-26
  • 1970-01-01
  • 2021-04-27
相关资源
最近更新 更多