码农小屋 码农小屋
  • 首页
  • 文章
    • Python
    • 计算机基础
    • C语言
    • Java
    • 数据库
    • Linux
  • 资源
  • 随笔
  • 优秀软件
  • 24h新鲜事
  • 专题
  • 留言板
  • 注册 登录
立即登录
0文章
0评论
0获赞
  • 首页
  • 博客中心
    • 文章
    • 资源
  • 随笔
  • 优秀软件
  • 24h新鲜事
  • 专题
  • 留言板
主页 › 文章 › Python › 线性回归实战——使用岭回归预测二手乐高的价格
#Python#

线性回归实战——使用岭回归预测二手乐高的价格

3月前
85 0 1

岭回归概念

岭回归,其实也是一种线性回归。只不过在算法建立回归方程时候,加上正则化的限制,从而达到解决过拟合的效果。

简单说来,岭回归就是在矩阵x^T*x上加一个λI从而使得矩阵非奇异,进而能对x^T*x+λI求逆。其中矩阵I是一个m*m的单位矩阵, 对角线上元素全为1,其他元素全为0。而λ是一个用户定 义的数值。在这种情况下,回归系数的计算公式将变成:

线性回归实战——使用岭回归预测二手乐高的价格-码农小屋

概括的说,岭回归就是在普通线性回归的基础上引入单位矩阵I和惩罚系数λ。

岭回归可以很好地解决以下情况:

  1. x本身存在线性相关关系(即多重共线性),即非满秩矩阵。
  2. 当特征数n比样本m多,即m<n时,这时矩阵x不是满秩矩阵,非满秩矩阵在求逆时会出现问题

缩减方法可以去掉不重要的参数,因此能更好地理解数据。此外,与简单的线性回归相比,缩减法能取得更好的预测效果。

这里通过预测误差最小化得到λ:数据获取之后,首先抽一部分数据用于测试,剩余的作为训练集用于训练参数w。训练完毕后在测试集上测试预测性能。通过选取不同的2来重复上述测试过程,最终得到一个使预测误差最小的λ。

岭回归中的岭是什么?

岭回归使用了单位矩阵乘以常量λ,我们观察其中的单位矩阵I,可以看到值1贯穿整个对角线,其余元素全是0。形象地,在0构成的平面上有一条1组成的“岭”,这就是岭回归中的“岭”的由来。

岭回归实战

乐高(LEGO) 公司生产拼装类玩具,由很多大小不同的塑料插块组成。一般来说, 这些插块都是成套出售,它们可以拼装成很多不同的东西,如船、城堡、一些著名建筑等。乐高公司每个套装包含的部件数目从10件到5000件不等。

一种乐高套件基本上在几年后就会停产,但乐高的收藏者之间仍会在停产后彼此交易。本次实例,就是使用回归方法对收藏者之间的交易价格进行预测。

线性回归实战——使用岭回归预测二手乐高的价格-码农小屋

我们对商品做了处理。商品特征分别为:出品年份,部件数目,是否为全新,原价,售价(二手交易)。此外,还需要添加全为1的特征X0列。这是因为线性回归的第一列特征要求都是1.0。

读入数据,从lego.csv中读入乐高的各项数据

def loadDataSet(filename):
    data = pd.read_csv(filename)
    xArr = data.iloc[:, :-1].values
    lgY = data.iloc[:, -1].values
    data_num, features_num = np.shape(xArr)
    lgX = np.mat(np.ones((data_num, features_num + 1)))
    lgX[:, 1:5] = np .mat(xArr)
    return lgX, lgY

Parameters:
filename - 文件名
Returns:
lgX - x数据集(x0为全1列)
lgY - y数据集

使用岭回归求出回归系数

def ridgeRegres(xArr, yArr, lam=0.2):
xMat = np.mat(xArr)
yMat = np.mat(yArr).T
xTx = xMat.T * xMat
denom = xTx + np.eye(np.shape(xMat)[1]) * lam
if np.linalg.det(denom) == 0.0:
print("矩阵为奇异矩阵,不能求逆")
return
ws = denom.I * (xMat.T * yMat)
return ws

Parameters:
xMat - x数据集
yMat - y数据集
lam - 缩减系数
Returns:
ws - 回归系数

输出线性方程

我们选取50条数据作为训练样本:

lgX, lgY = loadDataSet("lego.csv")
ws2 = ridgeRegres(lgX[10:50], lgY[10:50])
print("二手的售价=%f+%f*出品年份%f*部件数目%f*是否为全新+%f*原价"
% (ws2[0], ws2[1], ws2[2], ws2[3], ws2[4]))

做出以上处理后,大致的结果如下:

线性回归实战——使用岭回归预测二手乐高的价格-码农小屋

写在最后

以上就是大致的岭回归预测的步骤,如果有感兴趣的也可以普通线性回归于岭回归做对比,看看两者结果上的差异,本文也会持续更新。

1
Mr Gu
等 1 人赞过
相关文章
机器学习——K-均值聚类算法
Logistic回归实战——病症状预测
机器学习——Logistic回归
机器学习——线性回归算法
使用Python绘制决策树
评论 (0)
再想想
Mr Gu管理员
Better late than never.
45文章 1评论 51获赞
文章推荐
ZIP Pro 3 – 文件压缩分享加密管理套件
2月前
Uninstall Tool-专业的软件卸载工具
3月前
Speccy:优秀的硬件检测工具
3月前
CleanMyPC-专为 Windows打造的清理工具
4月前
Internet Downloader Manager-一款专业的Win下载工具
4月前
Wise Care 365-Windows 系统清理和加速工具
4月前
新鲜事
新Mac太牛:在电脑上运行iPhone、iPad的软件、游戏
2月前
自从苹果M1芯片发布之后,使用这颗芯片的Mac电脑,就被大家认为是有史以来最强的Mac,因为这颗小米的芯片,在性能上已经打败了苹果使用的最高端的i9芯 ...[阅读全文]
苹果发布会总结:一个芯片,三款产品!苹果这把棋下得可真深
2月前
北京时间11月11日凌晨2点,苹果在圣何塞召开了本年度最后一场发布会。在这次发布会上,苹果推出了基于ARM架构的全新M1自研处理器。 ...[阅读全文]
荣耀命运落定:救了自己,也救华为
2月前
华为出售荣耀一事终于落槌。 ...[阅读全文]
发布会停不下来,苹果下月发布新Mac
3月前
今年的苹果有些与众不同,往年只开一次秋季发布会,今年在九月十月连开两场。 ...[阅读全文]
iPhone 12 开启 5G 续航锐减,苹果回应
3月前
对于今年的 iPhone 12 来说,除了回归直角边框设计之外,最大的亮点就是 5G 了。 ...[阅读全文]
华为Mate40正式发布
3月前
定位高端旗舰的华为Mate40系列共发布四款新机:华为Mate40(6.5英寸)、华为Mate40 Pro(6.76英寸)、华为Mate40 Pro+ ...[阅读全文]
更多
  • 专题
  • 文章
  • 友情链接
  • 留言板
Copyright © 2020-2021 码农小屋. 苏ICP备20033168号