2014-11-08 63 views
0

我正在使用sci-kit學習中的Ridge迴歸函數。RidgeCV中的CV函數

有一個交叉驗證函數RidgeCV。基本(示例)設置如下:

RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, scoring=None, 
    normalize=False,store_cv_values=True) 

可以說我想做一個10倍的簡歷。我是否用「cv =」參數設置它?我看到的每個RidgeCV都將cv設置爲cv = None。

1)甚至不知道這是設置10倍的正確位置。

2)在文檔中找不到「None」以外的其他CV =參數值。

感謝

+0

for 2):[fixed in master](https://github.com/scikit-learn/scikit-learn/commit/6e7b11e0ffe835f6d39a23d7f3ed35af131220eb) – 2014-11-10 16:16:11

回答

3

如果設置cv=None,然後RidgeCV將使用「廣義交叉驗證」的公式進行留一交叉驗證,解析公式,爲您提供留一出錯誤用於一個嶺迴歸的計算成本。

如果您想使用其他交叉驗證方案,您可以:只需從sklearn.cross_validation導入它們。例如

from sklearn.cross_validation import KFold, ShuffleSplit 

cv1 = KFold(n_samples, k=10) 
cv2 = ShuffleSplit(n_samples, test_size=.2, n_iter=20) 

然後,您可以將這些迭代器作爲cv=...傳遞。如果您將cv設置爲一個數字,例如cv=5,那麼它將默認爲KFold(n_samples, k=5)交叉驗證。