加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 关于k折叠交叉验证的建议

发布时间:2020-12-20 13:08:36 所属栏目:Python 来源:网络整理
导读:我目前正在使用以下代码执行使用支持向量机分类的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
我目前正在使用以下代码执行使用支持向量机分类的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新手!

谢谢你的建议!

解决方法

尝试使用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]))

将为您提供最佳的选项集

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读