首页 > 解决方案 > AttributeError:“DecisionTreeRegressor”对象没有属性“r2_score”

问题描述

我正在使用 kickstarter 项目数据在 csv 文件上测试机器学习方法。但是即使我可以获得“准确度分数”,当我尝试获得“ r2 分数”时也会出现以下错误。原因是什么?

import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import accuracy_score
from sklearn.metrics import r2_score

veri = pd.read_csv("kick_rev.csv")

veri = veri.drop(['id'], axis=1)
veri = veri.drop(['i'], axis=1)

y = np.array(veri['state_num'])
x = np.array(veri.drop(['state_num','usd_goal_real','deadline','launched','country'], axis=1))

X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.33)

DTR = DecisionTreeRegressor()
DTR.fit(X_train,y_train)
ytahmin = DTR.predict(x)
DTR.fit(veri[['goal','pledged','backers','usd_pledged','usd_pledged_real','category_num','category_main_num','currency_num','country_num']],veri.state_num)
accuracy_score = DTR.score(X_test,y_test)
a = np.array([5000,94175.0,1,57763.8,6469.73,13,6,0,0]).reshape(1, -1)
predict_DTR = DTR.predict(a)
r2 = DTR.r2_score(X_test, y_test)

print(accuracy_score)
print(r2)

错误:

AttributeError: 'DecisionTreeRegressor' object has no attribute 'r2_score'

标签: pythonmachine-learningscikit-learn

解决方案


R2 分数介于预测值和实际值之间。所以你不能使用训练特征和预测进行比较

r2_score(y_pred, y_true)

您可以使用此链接进行更多说明

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html


推荐阅读