python 召回率_使用sklearn获取精确性和召回率

这有点不同,因为对于非二进制分类,交叉值分数不能计算精度/召回率,所以需要使用recision-score、recall-score和手工进行交叉验证。参数average='micro'计算全局精度/召回。在import numpy as np

from sklearn import cross_validation

from sklearn import datasets

from sklearn import svm

from sklearn.model_selection import StratifiedKFold

from sklearn.metrics import precision_score, recall_score

iris = datasets.load_iris()

skf = StratifiedKFold(n_splits=10)

clf = svm.SVC(kernel='linear', C=1)

X = iris.data

y = iris.target

precision_scores = []

recall_scores = []

for train_index, test_index in skf.split(X, y):

X_train, X_test = X[train_index], X[test_index]

y_train, y_test = y[train_index], y[test_index]

y_pred = clf.fit(X_train, y_train).predict(X_test)

precision_scores.append(precision_score(y_test, y_pred, average='micro'))

recall_scores.append(recall_score(y_test, y_pred, average='micro'))

print(precision_scores)

print("Recall: %0.2f (+/- %0.2f)" % (np.mean(precision_scores), np.std(precision_scores) * 2))

print(recall_scores)

print("Recall: %0.2f (+/- %0.2f)" % (np.mean(recall_scores), np.std(recall_scores) * 2))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值