python – 关于k折叠交叉验证的建议
作者:互联网
我目前正在使用以下代码执行使用支持向量机分类的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]))
将为您提供最佳的选项集
标签:python,svm,cross-validation 来源: https://codeday.me/bug/20190711/1432860.html