2015-11-16 55 views
4

我目前執行與使用的代碼DICOM圖像的支持向量機分類的交叉驗證方法:建議日k折交叉驗證

#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很陌生!

謝謝你的任何建議!

回答

0

嘗試使用GridSearchCV。例如我可以創建一個管道如

pipeline = Pipeline([ 

    ('clf', LogisticRegression()) 
    ]) 

    parameters = { 

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

所以,我在這裏提供5個不同的選項是由CLF在我的管道

當然

表示我的邏輯迴歸()分類器的參數C,而不是LogisticRegression(),你可以使用SVC。然後

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])) 

會給你的選擇最好設置爲指定