【机器学习】波士顿房价数据集 Python完整代码

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns                      #数据可视化库
from sklearn.datasets import load_boston   #导入函数,加载数据集
from sklearn.model_selection import train_test_split#导入函数,划分数据集
from sklearn.linear_model import LinearRegression   #导入类,创建线性回归模型
from sklearn import metrics                         #导入模块,模型评估和性能度量
from sklearn import preprocessing                   #导入模块,用与数据预处理和特征缩放
data = load_boston()#导入数据集
data_pd = pd.DataFrame(data.data,columns=data.feature_names)#将numpy数组转化为pandas数据框
#将 data.target 添加为一个名为 "price" 的新列,并将其存储在数据框 data_pd 中
data_pd['price'] = data.target
# 查看数据类型
data_pd.dtypes.value_counts()#计算每种数据类型的列数
​
#输出:
#1. 数据框中有14列数据类型为“float 64”
#2. 数据框中有一列数据类型为“int 64”
# 查看空值
data_pd.isnull().sum()
#'''
#1. isnull()函数,检查是否有缺失值,返回布尔类型(有缺失值返回“Ture”)
#2. sum()函数,计算缺失值数量(计算布尔类型量)
#'''

data_pd.shape         #以元组类型返回数据框行数和列数

# 查看数据描述
data_pd.describe()

# 显示数据前5行
data_pd.head()


data_pd.corr()['price']         #计算“price”列与其他列之间的相关系数

corr = data_pd.corr()    #计算各列之间的相关系数
corr = corr['price']     
corr[abs(corr)>0.5].sort_values().plot.bar()
# 制作训练集和测试集的数据
data_pd = data_pd[['LSTAT','PTRATIO','RM','price']]   #重新排列数据框
y = np.array(data_pd['price'])                        #将price转化为numpy数组,作为因变量(避免过拟合)
data_pd=data_pd.drop(['price'],axis=1)                #删除price列,更新data_pd
X = np.array(data_pd)                                 #转化为数组,一行对应一个数组,作为特征
# 分割训练集和测试集
train_X,test_X,train_Y,test_Y = train_test_split(X,y,test_size=0.2)

# 加载模型
linreg = LinearRegression()
# 拟合数据
linreg.fit(train_X,train_Y)
# 进行预测
y_predict = linreg.predict(test_X)          #预测
# 计算均方差
metrics.mean_squared_error(y_predict,test_Y)#计算均方误差

# 导包
from sklearn.linear_model import Lasso,LassoCV,LassoLarsCV
from sklearn.metrics import r2_score      #计算决定系数,反映拟合能力
 
# 重新加载数据
data = load_boston()
X = pd.DataFrame(data.data,columns=data.feature_names)
y = np.array(data.target)
 
# 分割训练集和测试集
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=14)#设置随机种子,保证每次数据集划分相同
 
# 找到Lasso的alapha值
model = LassoCV(cv=20).fit(X, y)
 
# 进行Lasso回归
lasso = Lasso(max_iter=10000, alpha=model.alpha_)
y_pred_lasso = lasso.fit(X_train, y_train).predict(X_test)
 
# 输出Lasso系数
lasso.coef_

# 制作训练集和测试集的数据
data = load_boston()#导入数据集
data_pd = pd.DataFrame(data.data,columns=data.feature_names)#将numpy数组转化为pandas数据框
data_pd['price'] = data.target
data_pd = data_pd[['LSTAT','PTRATIO','RM','DIS','price']]
y = np.array(data_pd['price'])
data_pd=data_pd.drop(['price'],axis=1)
X = np.array(data_pd)
train_X,test_X,train_Y,test_Y = train_test_split(X,y,test_size=0.2)
 
# 训练模型,并重新计算均方差
linreg = LinearRegression()
linreg.fit(train_X,train_Y)
y_predict = linreg.predict(test_X)
metrics.mean_squared_error(y_predict,test_Y)

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你在学习Python数据分析的时候,是否遇到过在这些问题? 别慌!这些都是数据科学入门常见问题。从入门到上手再到解决实际问题,数据科学看似复杂,但如果你掌握了正确的学习方法,完全可以极速入门。 【职场人进阶必备  数据分析/挖掘一点通】 如今的职场上,90%以上的岗位都会涉及数据问题。 以产品文案岗位为例,在一个新产品推向市场之前,文案需要考虑: 此时,可以关注一下市场上已有的相关产品推广数据,如:哪些文案打开率更高?哪些文案转化更好?目标用户的购买习惯如何? 以此作为下一步工作开展的依据,对产品文案工作者来说,可以少走很多弯路。 学会数据分析/挖掘,等于站巨人的肩膀上工作,轻松且高效。 【爬虫、数据分析、数据挖掘知识点三合一】数据问题一网打尽 本课程将知识点悉数融入实战项目,不空谈语法,帮助学员在实践中获取知识,目标是:让学员能自主完成数据采集、数据分析与数据挖掘。 学习完本课程,你可以熟练掌握: 【实战案例超实用,轻松拥有“睡后收入”!】 本课程以股票案例为主线,串联爬虫、数据分析以及数据挖掘多个知识点。 通过实战案例演练,你可以全面掌握股票收益的分析和预判方法,在收获新技能的同时,也有机会获得“睡后收入”! 四大优势: 三重权益:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值