【发布时间】:2015-04-02 22:06:10
【问题描述】:
我想在 SciKit-Learn 中创建一个自定义评分器,我可以将它传递给 GridSearchCV,它会根据特定类的预测准确性评估模型性能。
假设我的训练数据由属于三个类别之一的数据点组成:
“狗”、“猫”、“老鼠”
# Create a classifier:
clf = ensemble.RandomForestClassifier()
# Set up some parameters to explore:
param_dist = {
'n_estimators':[500, 1000, 2000, 4000],
"criterion": ["gini", "entropy"],
'bootstrap':[True, False]
}
# Construct grid search
search = GridSearchCV(clf,\
param_grid=param_dist,\
cv=StratifiedKFold(y, n_folds=10),\
scoring=my_scoring_function)
# Perform search
X = training_data
y = ground_truths
search.fit(X, y)
有没有办法构造 my_scoring_function,只返回“狗”类的预测准确度? make_scorer function 似乎受到限制,因为它只处理每个数据点的基本事实和预测类别。
非常感谢您的帮助!
【问题讨论】:
-
使用
make_scorer有什么问题?看起来您只需要将所有非狗类等同起来并计算准确性。
标签: python machine-learning scikit-learn cross-validation