我试图获得决策树准确性的估计,为什么我会得到一个TypeError?

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'对象不可调用”,即使我(主要遵循datacamp教程)。


郎朗坤
浏览 105回答 1
1回答

月关宝盒

dt(...)试图“调用”,你不能这样做,因为不是一个函数。您需要一个从真实标签和预测标签计算准确性的函数。dtdt试试这样的东西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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python