2016-12-25 46 views
0

我使用GridSearchCV爲我的SVR模型獲取最佳參數(C & gamma),當我運行它時,結果,所以這段代碼有什麼問題?Scikit通過GridSearchCV學習發現最佳C&gamma()__I'm卡住

from sklearn.model_selection import KFold 
C_range = np.logspace(-2, 10, 13) 
gamma_range = np.logspace(-9, 3, 13) 
param_grid = dict(gamma=gamma_range, C=C_range) 
cv = KFold(n_splits=5, shuffle=False, random_state=None) 
grid = GridSearchCV(SVR(kernel='rbf'), param_grid=param_grid, cv=cv) 
grid.fit(X, y) 

print("The best parameters are %s with a score of %0.2f" 
    % (grid.best_params_, grid.best_score_)) 

回答

0

n_splits不是sklearn.cross_validation.ShuffleSplit設置了一個param相反,它是一個sklearn.model_selection.ShuffleSplit PARAM。

code basesklearn.cross_validation的:

class ShuffleSplit(BaseShuffleSplit): 
    """Random permutation cross-validation iterator. 

    .. deprecated:: 0.18 
     This module will be removed in 0.20. 
     Use :class:`sklearn.model_selection.ShuffleSplit` instead. 
+0

我更新,錯誤是固定的,但我現在有另一個錯誤...類型錯誤「KFold」對象不是可迭代 –

+0

'cv' PARAM不能把'KFold'作爲輸入。如果你希望'5'分割給出'cv = 5'作爲輸入,它將使用'KFold'或'StratifiedKFold'來產生分割。參見文檔[here](http://scikit-learn.org/stable/modules/cross_validation.html#computing-cross-validated-metrics)。 – tihom