关于波士顿房价数据集的回归预测

 首先是先导入一些必要的库,方便后续的建模操作

import numpy as np
import pandas as pd
import re
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from sklearn.metrics import *
from sklearn.model_selection import train_test_split
import seaborn as sns

 这是原文件的截图,可见原文件并没有每一列的元素名称,也没有分列,而是将每一行的元素全塞到一列的前头,这对后续的数据处理并不友好

 

因此我们要通过一系列的操作将原数据集正确导入dataframe中 ,并且因为该数据集数据多,则也要看是否有缺失值

#读取数据
data = pd.read_csv('housing.csv',header=None)

'''
因为原数据集并未将全部数据都分别放在每一个格子中,所以我们通过一些操作来对数据进行处理,
以便后续的操作
'''

# 提取第一个格子中的数据,并去除空格
va = data.iloc[:, 0].str.strip().values

#利用正则表达式,提取每一行的数字并存储到列表中
result = []
for i in va:
    values = re.split(r'\s+', i)
    result.append(values)


#将处理好的数据形成一个dataframe
juzhen = np.array(result).reshape(506,14)

df = pd.DataFrame(juzhen,columns=['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE','DIS', 'RAD', 'TAX','PTRATIO','B:1000','lstat','Medv'])


#将数据中的自变量和因变量分开
x = df.iloc[:,:13]
y = df['Medv']

#判断有无nan
print(df.isnull().sum()) 

 这是最后的运行结果:

        CRIM     ZN   INDUS CHAS     NOX  ...    TAX PTRATIO  B:1000 lstat   Medv
0    0.00632  18.00   2.310    0  0.5380  ...  296.0   15.30  396.90  4.98  24.00
1    0.02731   0.00   7.070    0  0.4690  ...  242.0   17.80  396.90  9.14  21.60
2    0.02729   0.00   7.070    0  0.4690  ...  242.0   17.80  392.83  4.03  34.70
3    0.03237   0.00   2.180    0  0.4580  ...  222.0   18.70  394.63  2.94  33.40
4    0.06905   0.00   2.180    0  0.4580  ...  222.0   18.70  396.90  5.33  36.20
..       ...    ...     ...  ...     ...  ...    ...     ...     ...   ...    ...
501  0.06263   0.00  11.930    0  0.5730  ...  273.0   21.00  391.99  9.67  22.40
502  0.04527   0.00  11.930    0  0.5730  ...  273.0   21.00  396.90  9.08  20.60
503  0.06076   0.00  11.930    0  0.5730  ...  273.0   21.00  396.90  5.64  23.90
504  0.10959   0.00  11.930    0  0.5730  ...  273.0   21.00  393.45  6.48  22.00
505  0.04741   0.00  11.930    0  0.5730  ...  273.0   21.00  396.90  7.88  11.90


CRIM       0
ZN         0
INDUS      0
CHAS       0
NOX        0
RM         0
AGE        0
DIS        0
RAD        0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值