2014-11-24 31 views
0

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

  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)的任何方式,目前我有单独计算所有的指标。

谢谢!提前。

回答

1

不幸的是,这是目前不可能的,但我们正在努力。 你可以define your own scoring object计算所有他们并打印他们/存储他们的地方。

仅供参考一个未完成的PR是here

1

我不确定是否有任何包装功能由sklearn提供,但类似这样的 可以为您节省一些时间。

分数= [ '精度', 'F1', '精度', '召回']

度量= {分数:cross_validation.cross_val_score(DT,x_data_tfidf.toarray(),target_arr,CV = CV,评分=得分)得分}