基于lasso的波士顿房价分析(代码片段)

ZHW_AI课题组 ZHW_AI课题组     2023-03-09     711

关键词:

目录

1. 作者介绍

符振涛,男,西安工程大学电子信息学院,2021级研究生
研究方向:机器视觉与人工智能
电子邮件:2673229503@qq.com

吴燕子,女,西安工程大学电子信息学院,2021级研究生,张宏伟人工智能课题组
研究方向:人工智能与模式识别
电子邮件:1219428323@qq.com

2. 算法介绍

2.1 Lasso算法介绍

Lasso(least absolute shrinkage and selection operator,又译最小绝对值收敛和选择算子、套索算法)。是一种同时进行特征选择和正则化的回归分析方法。它通过构造一个惩罚函数得到一个较为精炼的模型,使得它压缩一些回归系数,即强制系数绝对值之和小于某个固定值;同时设定一些回归系数为零。
保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。
擅长处理具有多重共线性的数据。

2.2 公式分析


LASSO就是在普通线性模型中增加了L1正则化惩罚项.其中正则化项是:

2.3 特点分析


红色的椭圆代表的是随着λ的变化所得到的残差平方和,βˆ为椭圆的中心点,为对应普通线性模型的最小二乘估计。等高线和约束域的切点就是目标函数的最优解,对于Lasso方法,其约束域是正方形,会存在与坐标轴的切点,使得部分维度特征权重为0,因此很容易产生稀疏的结果。
所以,Lasso方法可以达到变量选择的效果,将不显著的变量系数压缩至0。

3. 实验过程

3.1 数据集介绍

使用sklearn.datasets.load_boston即可加载相关数据。该数据集是一个回归问题。每个类的观察值数量是均等的,共有 506 个观察,13 个输入变量和1个输出变量。
每条数据包含房屋以及房屋周围的详细信息。其中包含城镇犯罪率,一氧化氮浓度,住宅平均房间数,到中心区域的加权距离以及自住房平均房价等等。

3.2 实验代码

导入波士顿房价数据集,以及设定alpha参数

from sklearn.linear_model import Lasso,Ridge
from sklearn.model_selection import train_test_split 
import matplotlib.pyplot as plt
import numpy as np
import mglearn
# 读取数据,并划分训练集和测试集
X,y = mglearn.datasets.load_extended_boston()
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=42)
# 通过设置不同的alpha值建立三个lasso实例
lasso = Lasso().fit(X_train,y_train)
lasso001 =Lasso(alpha=0.01).fit(X_train,y_train)
lasso00001 = Lasso(alpha=0.0001).fit(X_train,y_train)
# 输出三个不同alpha值的结果
print('**********************************')
print("Lasso alpha=1")
print ("training set score::.2f".format(lasso.score(X_train,y_train)))
print ("test set score::.2f".format(lasso.score(X_test,y_test)))
print ("Number of features used:".format(np.sum(lasso.coef_!=0)))

print('**********************************')
print("Lasso alpha=0.01")
print ("training set score::.2f".format(lasso001.score(X_train,y_train)))
print ("test set score::.2f".format(lasso001.score(X_test,y_test)))
print ("Number of features used:".format(np.sum(lasso001.coef_!=0)))

print('**********************************')
print("Lasso alpha=0.0001")
print ("training set score::.2f".format(lasso00001.score(X_train,y_train)))
print ("test set score::.2f".format(lasso00001.score(X_test,y_test)))
print ("Number of features used:".format(np.sum(lasso00001.coef_!=0)))
# 建立岭回归实例
ridge01 = Ridge(alpha=0.1).fit(X_train,y_train)

# 绘制三个lasso和一个岭回归的系数分布结果
plt.figure(figsize = (7,7))
plt.plot(lasso.coef_,'s',label = "Lasso alpha=1")
plt.plot(lasso001.coef_,'^',label = "Lasso alpha=0.01")
plt.plot(lasso00001.coef_,'v',label = "Lasso alpha=0.0001")
plt.plot(ridge01.coef_,'o',label = 'ridge alpha=0.1')
plt.xlabel('Coefficient index')
plt.ylabel('Coefficient magnitude')
plt.ylim(-25,25)
plt.legend(ncol=2,loc=(0,1.05)) 】 
plt.show()

3.3 运行结果


)

3.4 结果分析


如图所示,alpha=1时,lasso在训练集和测试集的表现都很差,这表示存在欠拟合。
在减小alpha值为0.1并增加训练次数后,在训练集和测试集中的表现很好。用到了105个特征中的34个,当alpha值降为0.001后,表现出了过拟合。

线性回归案例:波士顿房价预测(代码片段)

波士顿房价预测1.背景介绍2.案例分析3.回归性能评估4.代码实现4.1正规方程4.2梯度下降法5.小结1.背景介绍数据介绍给定的这些特征,是专家们得出的影响房价的结果属性。我们此阶段不需要自己去探究特征是否有用,只... 查看详情

基于线性回归分析——boston房价预测(代码片段)

...joblibimportpandasaspdimportnumpyasnpclassHousePredict():"""波士顿房子数据集价格预测"""def__init__(self):#1.获取数据lb=load_boston()#2.分割数据集到训练集和测试集x_train,x_test,y_train,y_test=train_test_split(lb.data,lb.target,test_size 查看详情

机器学习实战二:波士顿房价预测bostonhousing(代码片段)

波士顿房价预测Bostonhousing这是一个波士顿房价预测的一个实战,上一次的Titantic是生存预测,其实本质上是一个分类问题,就是根据数据分为1或为0,这次的波士顿房价预测更像是预测一个连续值,当然这也是... 查看详情

kaggle赛题:波士顿房价分析(代码片段)

...起看看这个第一名的方案到底是多棒?数据介绍这份波士顿房价的数据集有4份数据,训练集train+测试集test+数据集的描述description+提交模板sample其中训练集有81个特征,1460条数据;测试集81个特征,145... 查看详情

机器学习算法:波士顿房价预测|黑马程序员(代码片段)

学习目标:通过案例掌握正规方程和梯度下降法api的使用1案例背景介绍数据介绍   给定的这些特征,是专家们得出的影响房价的结果属性。我们此阶段不需要自己去探究特征是否有用,只需要使用这些特征。到后... 查看详情

机器学习之利用线性回归预测波士顿房价和可视化分析影响房价因素实战(python实现附源码超详细)(代码片段)

...据是否在一定时期内增长或下降。接下来以线性回归预测波士顿房价进行实战解析线性回归代码如下importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_split#读数据data=np.loadtxt(boston_house_price.csv',float,delimiter... 查看详情

keras深度学习实战——房价预测(代码片段)

...实战(8)——房价预测0.前言1.任务与模型分析1.1波士顿房价数据集1.2神经网络分析2.使用神经网络实现房价预测3.使用自定义损失函数小结系列链接0.前言我们已经学习了神经网络的基本概念,并且已经使用Keras构建... 查看详情

机器学习梯度下降法应用波士顿房价预测(代码片段)

目录1线性回归api介绍小结2波士顿房价预测2.1案例背景介绍2.2案例分析2.3回归性能评估2.4代码实现2.4.1正规方程2.4.2梯度下降法2.5小结1线性回归api介绍机器学习梯度下降算法:https://blog.csdn.net/ZGL_cyy/article/details/127037949sklearn.lin... 查看详情

深度学习(波士顿房价预测)(代码片段)

...反向传播2.2.4优化算法3测试结果4完整源程序 1实验背景波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的“HelloWorld”。和大家对房价的普遍认知相同,波士顿地区的房价是由诸多因素影响的。该数据集统... 查看详情

[pytorch系列-27]:神经网络基础-多输入神经元实现波士顿房价预测(代码片段)

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120605366目录前言深度学习模型框架第1章业务领域分析1.1 步骤1-1:... 查看详情

线性回归(代码片段)

美国房价问题Alex经过一年的努力,终于拿到了美国波士顿麻省理工学院的研究生录取通知书,在远离家乡的地方上学,Alex想在波士顿买一套房子,他手头有一些积蓄,在网上找了几套自己满意的房子,但是又不敢相信网上的价... 查看详情

波士顿房价预测——机器学习入门级案例(代码片段)

一、数据处理1.1数据集介绍本实验使用波士顿房价预测数据集,共506条样本数据,每条样本包含了13种可能影响房价的因素和该类房屋价格的中位数,各字段含义如下表所示:字段名类型含义CRIMfloat该镇的人均犯... 查看详情

udacity机器学习-波士顿房价预测小结(代码片段)

EvernoteExportbody,tdfont-family:微软雅黑;font-size:10pt机器学习的运行步骤1.导入数据没什么注意的,成功导入数据集就可以了,打印看下数据的标准格式就行用个info和describe2.分析数据这里要详细分析数据的内容,看看缺省值和数据的... 查看详情

机器学习岭回归和lasso回归详解以及相关计算实例-加利福尼亚的房价数据集红酒数据集(代码片段)

一,岭回归和LASSO回归1.1多重共线性处理多重共线性最直接的方法是手动移除共线性的变量:即先对数据进行相关分析,若两个特征的相关系数大于某特定值(一般为0.7),则手动移除其中一个特征,再继续做回归分析。这种做法... 查看详情

tensorflow暑期实践——波士顿房价预测(全部代码)(代码片段)

#coding:utf-8get_ipython().run_line_magic(‘matplotlib‘,‘notebook‘)importmatplotlib.pyplotaspltimporttensorflowastfimporttensorflow.contrib.learnasskflowfromsklearn.utilsimportshuffleimportnumpyasnpimp 查看详情

波士顿房价处理(代码片段)

1.导入boston房价数据集2.一元线性回归模型,建立一个变量与房价之间的预测模型,并图形化显示。3.多元线性回归模型,建立13个变量与房价之间的预测模型,并检测模型好坏,并图形化显示检查结果。4. 一元多项式回归模... 查看详情

ml之shap:基于boston波士顿房价回归预测数据集利用shap值对xgboost模型实现可解释性案例

 ML之shap:基于boston波士顿房价回归预测数据集利用shap值对XGBoost模型实现可解释性案例 目录基于boston波士顿房价回归预测数据集利用shap值对XGBoost模型实现可解释性案例#1、定义数据集#2、数据集预处理#4、基于XGBR模型实现s... 查看详情

深度学习入门案例波士顿房价预测(代码片段)

人工智能,机器学习,深度学习做个简单介绍:三者的关系如图1所示,即:人工智能>机器学习>深度学习。深度学习设计框架:环境查看importpaddleimportnumpyasnpimportosimportmatplotlibimportmatplotlib.pyplotaspltimpor... 查看详情