Python sklearn回归中的大均方误差

Python sklearn回归中的大均方误差,python,machine-learning,scikit-learn,regression,Python,Machine Learning,Scikit Learn,Regression,我是机器学习的初学者,我想建立一个模型来预测房价。我通过在一个当地住房网站上爬行来准备一个数据集,它由1000个样本和4个特征(纬度、经度、面积和房间数)组成 我在sklearn中尝试了RandomForestRegressor和LinearSVR模型,但我无法正确训练该模型,并且MSE超高 MSE几乎等于90000000(价格范围的真实值在5000000-90000000之间) 这是我的密码: import numpy as np from sklearn.svm import LinearS

我是机器学习的初学者,我想建立一个模型来预测房价。我通过在一个当地住房网站上爬行来准备一个数据集,它由1000个样本和4个特征(纬度、经度、面积和房间数)组成

我在sklearn中尝试了RandomForestRegressor和LinearSVR模型,但我无法正确训练该模型,并且MSE超高

MSE几乎等于90000000(价格范围的真实值在5000000-90000000之间)

这是我的密码:

import numpy as np
from sklearn.svm import LinearSVR
import pandas as pd
import csv
from sklearn.preprocessing import normalize
from sklearn.model_selection import train_test_split

df = pd.read_csv('dataset.csv', index_col=False)
X = df.drop('price', axis=1)

X_data = X.values
Y_data = df.price.values
X_train, X_test, Y_train, Y_test = train_test_split(X_data, Y_data, test_size=0.2, random_state=5)

rgr = RandomForestRegressor(n_estimators=100)
svr = LinearSVR()

rgr.fit(X_train, Y_train)
svr.fit(X_train, Y_train)

MSEs = cross_val_score(estimator=rgr,
                         X=X_train,
                         y=Y_train,
                         scoring='mean_squared_error',
                         cv=5)

MSEsSVR = cross_val_score(estimator=svr,
                         X=X_train,
                         y=Y_train,
                         scoring='mean_squared_error',
                         cv=5)

MSEs *= -1
RMSEs = np.sqrt(MSEs)

print("Root mean squared error with 95% confidence interval:")
print("{:.3f} (+/- {:.3f})".format(RMSEs.mean(), RMSEs.std()*2))
print("")

我的数据集和功能计数有问题吗?我如何用这种类型的数据集建立预测模型?

测试集上的MSE如何?我可以上传数据集并给出数据集,如果它有帮助@ding它几乎是85000000@ding请尝试将您的评分参数更改为
'neg_mean_squared_error'
,如前所述。作为旁注。。这里没有看到任何线性回归。这和随机森林回归是两种截然不同的动物。我将问题的文本改为
randomforestrestregressor
。这是一个错误。使用
neg_mean_squared_error
我得到了非常相似的结果。另外,当我尝试预测单个样本时,结果(价格)与预期价格相差甚远@布拉德所罗门