python - Scikit set_params()

标签 python scikit-learn

我想使用 set_params() 设置 SVC 的参数,如以下示例代码所示。

from sklearn.svm import SVC

params = {'C': [.1, 1, 10]}

for k, v in params.items():
    for val in v:
        clf = SVC().set_params(k=val)
        print(clf)
        print()

如果我运行代码,我会收到以下错误:

ValueError: Invalid parameter k for estimator SVC

如何将 key 正确地放入 set_params()?

最佳答案

问题实际上是如何使用字符串作为关键字参数。您可以使用 ** 语法构造一个参数字典并将其传递给 set_params

from sklearn.svm import SVC

params = {'C': [.1, 1, 10]}

for k, v in params.items():
    for val in v:
        clf = SVC().set_params(**{k: val})
        print(clf)
        print()

输出:

SVC(C=0.1, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)

SVC(C=1, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)

SVC(C=10, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)

关于python - Scikit set_params(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32965188/

相关文章:

python - 根据列表中的某些项目查找字符串的长度

python - 克隆 git 存储库并在其他地方导入对象

python - 在 python 中使用字符串输入数组重写多个附加替换方法的更好方法?

python-3.x - 为 Scikit-image 构建自定义 AWS Lambda 层

scikit-learn - 文本语料库中单词的一种热编码

python - 将训练数据拆分为每个类的相同行数

python - sklearn.tree.DecisionTreeRegressor : depth of tree is bigger than specified when max_leaf_nodes ! = 无

python - 如何将 Travis CI 与 gitignore 中的某些文件一起使用?

python - 使用 scikit 对文本进行分类

结合标志和变量的 Python argparse