如何在python交叉验证中计算不同的度量值

时间:2014-11-24 10:12:42

标签: python scikit-learn classification

我正在使用python sk-learn库进行分类。我正在使用交叉验证来查找分类算法的有效性。我想计算准确度,精度,召回率,F1度量。目前我正在使用以下代码。

           dt  =  DecisionTreeClassifier(max_depth=dt_est)
           dt_acc = cross_validation.cross_val_score(dt,x_data_tfidf.toarray(), target_arr, cv=cv,                  scoring='accuracy')
           dt_f1 = cross_validation.cross_val_score(dt,x_data_tfidf.toarray(), target_arr, cv=cv,scoring='f1')
           dt_pre = cross_validation.cross_val_score(dt,x_data_tfidf.toarray(), target_arr, cv=cv, scoring='precision')     
           dt_re = cross_validation.cross_val_score(dt,x_data_tfidf.toarray(), target_arr, cv=cv, scoring='recall')    

我想问一下,在单次计算中有什么方法可以得到所有(精度,精度,回忆,f1),目前我必须单独计算所有指标。

谢谢!提前。

2 个答案:

答案 0 :(得分:1)

我不确定sklearn是否提供了任何包装函数,但是这样的东西 可以节省你一些时间。

得分= ['准确度','f1','精确','召回']

metrics = {得分:cross_validation.cross_val_score(dt,x_data_tfidf.toarray(),target_arr,cv = cv,得分=得分)得分+}

答案 1 :(得分:1)

不幸的是,目前无法开箱即用,但我们正在研究它。 您可以define your own scoring object计算所有这些并打印它们/将它们存储在某个地方。

仅供参考,未完成的公关是here