python - 如何在Python中获得随机森林模型的准确性?

标签 python linear-regression random-forest

我得到了这个脚本,它使用 RandomForest 和 LinearRegression 预测秒数据集的值。效果不错,线性回归的准确度为 18%,太糟糕了。

所以我尝试使用 RandomForest,但我不知道如何计算该模型的准确性..

import pandas as pd

from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regression

import numpy as np
import pandas as pd
import scipy
import matplotlib.pyplot as plt
from pylab import rcParams
import urllib
import sklearn
from sklearn.linear_model import RidgeCV, LinearRegression, Lasso

from sklearn.preprocessing import StandardScaler, PolynomialFeatures
from sklearn.model_selection import GridSearchCV

data = pd.read_csv('EncuestaVieja.csv')
X = data[['Edad','Sexo','v1','v2','v3']]
y = data['Alumna']

dataP = pd.read_csv('EncuestaVieja_test.csv')
X_p = dataP[['Edad','Sexo','v1','v2','v3']]
y_p = dataP['Alumna']

dataT = pd.read_csv('EncuestaVieja_test_2.csv')
X_t = dataT[['Edad','Sexo','v1','v2','v3']]
y_t = dataT['Alumna']
regr = linear_model.LinearRegression()

regr.fit(X, y)

lr = RandomForestRegressor(n_estimators=50)
lr.fit(X, y)

X_test = pd.read_csv('EncuestaNueva.csv')[['Edad','Sexo','v1','v2','v3']]

predictions = regr.predict(X_test)


predictions2 = lr.predict(X_test)
print( 'RandomForest Accuracy: ')
print(((predictions2)))
print( '')
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_p,y_p)
accuracy = regressor.score(X_t,y_t)
print( 'Linear Regression Accuracy: ', accuracy*100,'%')
print(((predictions)))

输出:

RandomForest Accuracy: 
[ 1.64  2.54  2.6   2.38  1.64  1.32  1.68  2.56  3.    2.28  2.38  2.68
  2.9   2.5   2.78  1.96  1.56  2.6   2.12  2.76  2.74  1.66  1.68  2.12
  2.3   2.36  2.28  2.28  2.82  1.7   1.86  2.36  1.24]

Linear Regression Accuracy:  18.1336149086 %
[ 1.2681851   1.02802219  3.13377072  2.96885127  2.30808853  1.98814349
  2.39233726  2.8638321   1.86640316  2.63073399  2.21166731  2.25201016
  1.95065189  2.65360517  3.08855254  1.01229733  2.18225606  2.41802534
  2.43539473  2.50227407  1.71105799  1.88238089  2.12152321  3.33525397
  2.72820453  2.43241713  2.88757874  2.6242382   2.63087916  1.98379487
  2.25430306  1.96810279  0.8554685 ]

最佳答案

我认为这是用 Score() 方法处理的

lr.score(x_test, y_test)

这将返回模型的 R^2 值。看起来在你的情况下你只有一个 x_test 。 请注意,这不是准确性。回归模型不像分类模型那样使用准确性。相反,会计算不同的度量,例如均方误差或确定系数。这些指标可以显示预测值与已知值的匹配程度或回归模型与回归线的拟合程度。

关于python - 如何在Python中获得随机森林模型的准确性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55942884/

相关文章:

python - split 函数返回意外结果

c++ - 梯度下降收敛到错误的值

python - sklearn、LassoCV() 和 ElasticCV() 损坏了吗?

python - 如何在Python中对单列进行box-cox转换

python - 我试图理解下面的预测模型的形状值。请帮我理解值(value)和解释器的o/p是什么意思?

r - 为什么指定 sampsize 不能加速 randomForest?

通过 os.system() 的 Python cURL 命令失败并出现 JSON 解析错误

python - 了解图像中是否有任何像素为白色的有效方法?

amazon-web-services - 亚马逊 aws sagemaker 中的 Randomforest?

python - 在此示例中,为什么 RidgeCV 中的 alphas=alphas ?