用uci的crimes做了一个线性回归,test很差

  统计/机器学习 回归分析 Python    浏览次数:746        分享
0


import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# Read the data
#crimesDF =pd.read_csv("crimes.csv",encoding="ISO-8859-1")
crimesDF =pd.read_csv("communities.csv",encoding="ISO-8859-1")

#Remove the 1st 7 columns
print(crimesDF.shape[1]) #128
crimesDF1=crimesDF.iloc[:,6:crimesDF.shape[1]]

# Convert to numeric
crimesDF2 = crimesDF1.apply(pd.to_numeric, errors='coerce')

# Impute NA to 0s
crimesDF2.fillna(0, inplace=True)

# Select the X (feature vatiables - all)
X=crimesDF2.iloc[:,0:120]

# Set the target
y=crimesDF2.iloc[:,121]
print(y)
X_train, X_test, y_train, y_test = train_test_split(X, y,random_state = 0)

# Fit a multivariate regression model
linreg = LinearRegression().fit(X_train, y_train)

# compute and print the R Square
print('R-squared score (training): {:.3f}'.format(linreg.score(X_train, y_train)))
print('R-squared score (test): {:.3f}'.format(linreg.score(X_test, y_test)))

## R-squared score (training): 0.78
## R-squared score (test): 0.03

test的score只有0.03 不知道是什么原因呢

 

constant007   2019-06-05 07:39



   2个回答 
0

看样子像过拟合了,应该是你变量太多,有多重线性相关了。

SofaSofa数据科学社区DS面试题库 DS面经

TTesT   2019-06-05 09:50

0

你换个random forest试试,再用cv调一下参

SofaSofa数据科学社区DS面试题库 DS面经

道画师   2019-06-12 20:29



  相关主题

python里怎么做分位数回归(quantile regression)?   1回答

系数非负的线性回归的python实现   2回答

python中如何实现保序回归算法?   1回答

泊松回归的公式是什么?   2回答

如果迫使一个线性回归模型的截距为0,会有什么坏处吗?   2回答

怎么处理真值大部分为0的回归问题   3回答

常用的回归模型中,哪些具有较好的鲁棒性(robustness)?   2回答

在线性回归模型中存在epoch的说法吗?   2回答

怎么理解分位数回归quantile regression的目标函数?   1回答

门槛回归是什么?   1回答

逻辑回归模型中变量的系数怎么理解?   4回答

线性回归需要满足哪些基本前提假设   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!