【问题标题】:Advice on k fold cross validation关于 k 折交叉验证的建议
【发布时间】:2016-02-17 19:02:05
【问题描述】:

我目前正在使用代码对dicom图像进行支持向量机分类的交叉验证方法:

    #Cross Validation using k-folds
    clf = svm.SVC(kernel='linear')
    scores = cross_validation.cross_val_score(clf,X,Y,cv=16))
    print scores
    print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(),scores.std()*2))

如您所见,我目前正在使用 16 次折叠,我如何找出最佳使用次数?是不是越多越好?

另外,我发现在使用交叉验证时,我的准确度分数从 66% 到 100% 变化很大,通常平均准确率为 82% 到 85%。关于如何改进这一点,或者确保分类器从每个类中挑选相同数量的图像,有什么建议吗?

抱歉,我对 Python 很陌生!

感谢您的建议!

【问题讨论】:

    标签: python svm cross-validation


    【解决方案1】:

    尝试使用 GridSearchCV。例如,我可以创建一个管道,例如

    pipeline = Pipeline([
    
        ('clf', LogisticRegression())
        ])
    
        parameters = {
    
            'clf__C': (0.1, 1, 10, 20, 30)
        }
    

    所以,我在这里为我的 LogisticRegression() 分类器的 C 参数提供 5 个不同的选项,在我的管道中由 clf 表示

    当然,您可以使用 SVC 代替 LogisticRegression()。那么

    grid_search = GridSearchCV(pipeline, parameters, n_jobs=3, verbose=1, scoring='accuracy')
    

    然后就像

    bestParameters = grid_search.best_estimator_.get_params()
        for param_name in sorted(parameters.keys()):
            print ('\t %s: %r' % (param_name, bestParameters[param_name]))
    

    会给你最好的一组选项来指定

    【讨论】:

      猜你喜欢
      • 2019-12-18
      • 2016-01-15
      • 1970-01-01
      • 2020-08-29
      • 2020-11-30
      • 2018-08-29
      • 2017-06-09
      • 2017-07-02
      • 1970-01-01
      相关资源
      最近更新 更多