python - 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'
解决方案
R2 分数介于预测值和实际值之间。所以你不能使用训练特征和预测进行比较
r2_score(y_pred, y_true)
您可以使用此链接进行更多说明
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.r2_score.html
推荐阅读
- kubernetes - 在 minikube 上安装 helm 返回错误
- python - 在其类之外调用类方法是否违反 pep 风格规则?
- environment-variables - 无法在 Nuxt.js 中访问 server/index.js 中的环境变量
- php - 如何避免通过php扫描某些目录
- android - 如何在 Kotlin 中使用日期选择器为 EditText 设置文本
- spring-boot - 使用 ssl 在 AWS 上使用 Spring-boot-starter-data-redis 的启动错误
- jquery - Visual Studio 2019 - 添加客户端库(TypeScript、JQuery 等)的正确方法
- c# - 在 Azure Durable Functions 中,如何正确确定大量并行活动的进程?
- python - 如何将深度网络分成两个独立的网络?
- swift - 使用 SDWebImage 加载 GIF 占用的内存比预期的要多得多