1
我正在使用Scikit-learn。我嘗試使用交叉驗證使用簡單的交叉驗證程序和快速cross_validation.cross_val_score
。但是我發現我得到了不同的數字。爲什麼?cross_val_score和estimator得分之間的區別?
import numpy as np
from sklearn import cross_validation, datasets
digits = datasets.load_digits()
X = digits.data
y = digits.target
svc = svm.SVC(kernel='linear')
kfold = cross_validation.KFold(len(X))
scores = [svc.fit(X[train], y[train]).score(X[test], y[test]) for train, test in kfold]
#scores output: [0.93489148580968284, 0.95659432387312182, 0.93989983305509184]
cross_validation.cross_val_score(svc, X, y)
#output: array([ 0.98 , 0.982, 0.983])
它有可能計算不同種類的交叉分數(例如均方誤差與平均絕對誤差)? – BrenBarn
@BrenBarn:不,它在兩種情況下都使用'svc.score'。由於'SVC'是一個分類器,它將計算平均準確度。區別在於交叉驗證本身,請參閱我的答案。 –