【问题标题】:Confusing error message from calling DecisionTreeClassifier in scikit learn在 scikit learn 中调用 DecisionTreeClassifier 时出现令人困惑的错误消息
【发布时间】:2017-02-11 17:41:43
【问题描述】:

下面是我在 scikit learn 中调用 DecisionTreeClassifier 的代码的后半部分,但出现此错误:Y_pred = DecisionTreeClassifier.predict(x_test) TypeError: predict() 缺少 1 个必需的位置参数:'X'。无法理解为什么我会收到此错误消息,因为我显然在调用 x。

model = DecisionTreeClassifier(min_samples_leaf=100)

model.fit(x_train,y_train)

scores = cross_val_score(model, x_train,y_train, cv=10)
print('mean: {:.3f} (std: {:.3f})'.format(scores.mean(), scores.std()), end='\n\n')

#make prediction
Y_pred = DecisionTreeClassifier.predict(x_test)

acc_train = accuracy_score(train[y_train],Y_pred)
print ('Train Accuracy: %f'%acc_train)

【问题讨论】:

    标签: machine-learning scikit-learn


    【解决方案1】:

    DecisionTreeClassifier 是一个类。要使用它,您需要实例化一个类实例。您在代码的第一行执行了此操作:model = DecisionTreeClassifier(min_samples_leaf=100)。现在,您需要使用在训练数据上对其进行训练的这个实例(即model)进行预测:

    Y_pred = model.predict(x_test)
    

    【讨论】:

    • 确实,非常感谢
    • 解释一下 OP 做了什么以及为什么它没有引发解析错误是很有价值的,以便更清楚地说明(因为他显然不是一位经验丰富的 Python 开发人员)所以人们会避免这种未来的错误。
    猜你喜欢
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 2017-04-28
    • 2022-11-22
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多