我正在尝试使用sklearn评估多个机器学习算法,以获得几个指标(准确度,召回率,精度等等).
对于我从这里的文档和源代码(我使用sklearn 0.17)中理解的内容,cross_val_score函数只为每次执行接收一个记分器.因此,为了计算多个分数,我必须:
实施我的(耗时且容易出错的)得分手
我用这段代码执行了多次:
from sklearn.svm import SVC
from sklearn.naive_bayes import GaussianNB
from sklearn.tree import DecisionTreeClassifier
from sklearn.cross_validation import cross_val_score
import time
from sklearn.datasets import load_iris
iris = load_iris()
models = [GaussianNB(), DecisionTreeClassifier(), SVC()]
names = ["Naive Bayes", "Decision Tree", "SVM"]
for model, name in zip(models, names):
print name
start = time.time()
for score in ["accuracy", "precision", "recall"]:
print score,
print " : ",
print cross_val_score(model, iris.data, iris.target,scoring=score, cv=10).mean()
print time.time() - start
Run Code Online (Sandbox Code Playgroud)我得到这个输出: …