K折交叉验证的建议

4

我目前正在使用支持向量机对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非常陌生!

感谢任何建议!

1个回答

0
尝试使用GridSearchCV。例如,我可以创建这样的管道:
pipeline = Pipeline([

    ('clf', LogisticRegression())
    ])

    parameters = {

        'clf__C': (0.1, 1, 10, 20, 30)
    }

所以,我在这里为我的LogisticRegression()分类器提供了5个不同的C参数选项,它在我的管道中被表示为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]))

将为您提供最佳的选项集以进行指定


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接