繁体   English   中英

负 SKlearn 线性回归分数

[英]Negative SKlearn linear regression score

我正在尝试使用 sklearn 线性回归构建房价预测模型,但我得到了负分。

请问我做错了什么?

数据集:

这是数据集

数据集截图: 在此处输入图片说明

请参阅以下详细信息:

数据框的形状:(23435, 190)

代码:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import ShuffleSplit
from sklearn.model_selection import cross_val_score

    properties_five = pd.read_csv('house_test.csv')
    
    X = properties_five.drop('price', axis='columns')
    y = properties_five['price']
    
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=10)
    
    lr_clf = LinearRegression()
    lr_clf.fit(X_train, y_train)
    print(lr_clf.score(X_train,y_train))
    print(lr_clf.score(X_test,y_test))
    
    cv = ShuffleSplit(n_splits=5, test_size=0.2, random_state=0)
    
    print(cross_val_score(LinearRegression(), X, y, cv=cv))

训练数据得分:0.0025884591059242013

测试数据得分:-1.6566338615525985e+24

您的代码看起来不错 - 除了df = pd.read_csv('house_test.csv')应该是properties_five = pd.read_csv('house_test.csv')以匹配下一行。

当我在这个数据集上运行它时,我得到以下输出:

0.7307587542204755
0.465770160153375
[0.64358885 0.67211318 0.67817097 0.53631898 0.67390831]

也许线性回归只是在您的数据集上表现不佳,或者您的数据集包含错误。 负的 R² 分数意味着您最好使用“恒定回归”,即让您的预测始终等于y的平均值。

请分享您的输出。 线性回归也受到异常值的影响,因此您应该对数值变量进行标准化。

您已经使用df名称读取了文件,因此您应该在下一行将properties_five替换为df 并尝试对数据集进行标准化/规范化,我希望它有助于减少错误, 例如在这里您可以找到详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM