我正在尝试在我的随机森林回归中使用 cross_val_score 但分数很奇怪

如何解决我正在尝试在我的随机森林回归中使用 cross_val_score 但分数很奇怪

我在 python 中使用随机森林来解决我的回归问题。我有相当大的数据(5 个特征,1 个目标,9387 个数据集)。

起初,为了获得准确度,我使用了带有 train_test_splitmetrics.r2_score 的简单 RF ​​代码,结果在训练集和测试集上的得分均为 0.9999。后来,我尝试使用 cross_val_score 和 5 折来执行交叉验证。这给了我 5 个数字(见下文),我发现其中一些作为交叉验证的分数很奇怪。

[-1.44202691 0.25338018 0.70433516 0.98278159 -3.34943088]

是否真的有可能出现负准确率,或者我的编码方式有什么问题? 我仍然是编码和 python 的新手,所以请耐心等待。你可以在下面看到我的代码

import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
import csv
from sklearn.model_selection import cross_val_score,train_test_split
from statistics import mean

data = pd.read_csv("Size1.csv",sep=",")

data = data[["X","Y","Z","Tilt_C","Tilt_A","Radiation_C"]]
predict = "Radiation_C"

A = np.array(data.drop([predict],1))
B = np.array(data[predict])

# Split data for Train and Test
a_train,a_test,b_train,b_test = train_test_split(A,B,test_size=0.25)


# Fitting Random Forest Regression to the dataset

# create regressor object
rf = RandomForestRegressor(random_state=42)

# fit the regressor with A and B data
rf.fit(a_train,b_train)


# Calculate accuracy
b_pred = rf.predict(a_test)
print('R^2:',metrics.r2_score(b_test,b_pred))


# Perform Cross Validation & scores
scores = cross_val_score(rf,A,cv=5)
print(scores)
print("Mean: ",mean(scores))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?