from sklearn.tree import DecisionTreeClassifier
import pandas as pd
from sklearn.metrics import accuracy_score
## training data (20%)
data = pd.read_csv("train.csv", usecols=[1,2,9])
X_train = pd.read_csv("train.csv", usecols=[2,9])
y_train = pd.read_csv("train.csv", usecols=[1])
dt = DecisionTreeClassifier(max_depth=6)
dt.fit(X_train, y_train)
y_predict = dt.predict(X_test)
accuracy = dt(y_test, y_predict)我得到"TypeError:'DecisionTreeClassifier‘对象是不可调用的“,即使我(主要是遵循数据放大器教程)。
发布于 2020-02-17 23:01:13
dt(...)正在尝试“调用”dt,因为dt不是一个函数,所以不能这样做。您需要一个从真标签和预测标签中计算准确性的函数。
试试像这样的东西
def calculate_accuracy(y_true, y_predicted):
num_correct = sum(map(lambda t, p: t==p, y_true, y_predicted))
return num_correct / len(y_true)accuracy = calculate_accuracy(y_test, y_predict)编辑:
我的calculate_accuracy()的初学者友好版本看起来就像
def calculate_accuracy(y_true, y_predicted):
num_correct = 0
for i in range(len(y_true)):
if (y_true[i] == y_predicted[i]):
num_correct = num_correct + 1
return num_correct / len(y_true)https://stackoverflow.com/questions/60271397
复制相似问题