在 jupyter notebook 中运行时出错

Posted

技术标签:

【中文标题】在 jupyter notebook 中运行时出错【英文标题】:Getting error while running in jupyter notebook 【发布时间】:2020-06-02 06:01:19 【问题描述】:

错误

估计器的参数 C 无效 决策树分类器(class_weight=None,criteria='gini', max_depth=无, max_features=无,max_leaf_nodes=无, min_impurity_decrease=0.0,min_impurity_split=无, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, presort=False, random_state=None, 拆分器='最佳')。使用estimator.get_params().keys()查看可用参数列表。

代码

def train(X_train,y_train,X_test):
    # Scaling features
    X_train=preprocessing.scale(X_train)
    X_test=preprocessing.scale(X_test)

    Cs = 10.0 ** np.arange(-2,3,.5)
    gammas = 10.0 ** np.arange(-2,3,.5)
    param = ['gamma': gammas, 'C': Cs]
    skf = StratifiedKFold(n_splits=5)
    skf.get_n_splits(X_train, y_train)
    cvk = skf
    classifier = DecisionTreeClassifier()
    clf = GridSearchCV(classifier,param_grid=param,cv=cvk)
    clf.fit(X_train,y_train)
    print("The best classifier is: ",clf.best_estimator_)
    clf.best_estimator_.fit(X_train,y_train)
    # Estimate score
    scores = model_selection.cross_val_score(clf.best_estimator_, X_train,y_train, cv=5)
    print (scores)
    print('Estimated score: %0.5f (+/- %0.5f)' % (scores.mean(), scores.std() / 2))
    title = 'Learning Curves (SVM, rbf kernel, $\gamma=%.6f$)' %clf.best_estimator_.gamma
    plot_learning_curve(clf.best_estimator_, title, X_train, y_train, cv=5)
    plt.show()
    # Predict class
    y_pred = clf.best_estimator_.predict(X_test)
    return y_test,y_pred

【问题讨论】:

【参考方案1】:

看起来您正在使 param 成为一个包含单个字典的数组。 param 需要只是一个字典:

编辑: 进一步研究这一点,正如@DzDev 所提到的,传递包含单个字典的数组也是传递参数的有效方法。

您的问题似乎是您混合了两种不同类型的估算器的概念。您正在传递 svm.SVC 的参数,但正在发送 DecisionTreeClassifier 估计器。所以事实证明错误正如它所说的那样,'C' 不是一个有效的参数。您应该更新为使用svm.SVC 估计器或更新您的参数以使其对DecisionTreeClassifier 正确。

【讨论】:

但在文档 (scikit-learn.org/stable/modules/generated/…) 中提到 param_grid 可以下注:dict 或字典列表:/ ...

以上是关于在 jupyter notebook 中运行时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 Jupyter Notebook 中进行时,pandas.read_gbq() 在哪里“保存”查询?

jupyter notebook 启动出错

在 Jupyter Notebook 中显示决策树时出错

尝试在 Jupyter Notebook 中打开 TensorBoard 时出错?

启动jupyter Notebook时出错

在 Windows 10 上安装 jupyter notebook 时出错