相关疑难解决方法(0)

评估sklearn cross_val_score上的多个分数

我正在尝试使用sklearn评估多个机器学习算法,以获得几个指标(准确度,召回率,精度等等).

对于我从这里的文档和源代码(我使用sklearn 0.17)中理解的内容,cross_val_score函数只为每次执行接收一个记分器.因此,为了计算多个分数,我必须:

  1. 执行多次
  2. 实施我的(耗时且容易出错的)得分手

    我用这段代码执行了多次:

    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)

我得到这个输出: …

python machine-learning scikit-learn

31
推荐指数
2
解决办法
2万
查看次数

标签 统计

machine-learning ×1

python ×1

scikit-learn ×1