【问题标题】:Scikit learn-find best C & gamma by GridSearchCV () __I'm stuckScikit learn-find best C & gamma by GridSearchCV () __我卡住了
【发布时间】:2017-05-10 05:22:46
【问题描述】:

我正在使用 GridSearchCV 为我的 SVR 模型获取最佳参数(C 和 gamma),当我运行它时,我卡了几个小时没有结果,那么这段代码有什么问题?

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

【问题讨论】:

    标签: python machine-learning scikit-learn svm


    【解决方案1】:

    n_splits 不是sklearn.cross_validation.ShuffleSplit 的参数,而是sklearn.model_selection.ShuffleSplit 的参数。

    来自sklearn.cross_validationcode base

    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.   
    

    【讨论】:

    • 我更新并修复了错误,但我现在有另一个错误... TypeError 'KFold' object is not iterable
    • cv 参数不能将KFold 作为输入。如果您想要5 拆分,请将cv=5 作为输入,它将使用KFoldStratifiedKFold 来生成拆分。请参阅文档here
    猜你喜欢
    • 2013-10-01
    • 2018-05-14
    • 2014-02-21
    • 2017-12-08
    • 2017-09-23
    • 2016-12-07
    • 2014-01-31
    • 2020-11-22
    相关资源
    最近更新 更多