前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >3分钟懂线性回归预测算法瞅一眼,懂个概念也值得

3分钟懂线性回归预测算法瞅一眼,懂个概念也值得

作者头像
架构师之路
发布于 2018-02-28 09:17:00
发布于 2018-02-28 09:17:00
1.3K0
举报
文章被收录于专栏:架构师之路架构师之路

线性回归(linear-regression)预测算法C++实现

上一期,和大家分享了K-means聚类算法的基本概念和实现要点(漏了的同学欢迎加公众号回顾),本期和大家介绍线性回归预测算法的基本概念和实现要点,它一般用以解决“使用已知样本对未知公式参数的估计”类问题。估计出公式参数后,进一步的,可以对未知的样本进行计算以预测(或者推荐)。

本文主要参照 http://hi.baidu.com/hehehehello/item/40025c33d7d9b7b9633aff87 进行的浓缩,原文的作者是:苏冉旭。 再次感谢原作者写出了如此通俗易懂的文章。

首先,来看看机器学习领域,几个相关的基本概念回归(regression):用已知样本对未知公式参数的估计。

线性回归(linear regression):回归的一种,回归函数是一次函数,例如: result=f(X,Y,Z,…)=aX+bY+cZ+…+… 其中X,Y,Z是训练样本集中样本的各个维度(feature),a,b,c是模型的未知参数。

逻辑回归(logistic regression):将result归一化到[0, 1]区间,即使用一个逻辑方程将线性回归归一化。

总而言之,逻辑回归是线性回归的一种,线性回归是回归的一种。

线性回归模型是有效的 既然逻辑回归是线性回归的一种,那么我们重点就线性回归展开讨论,线性回归的预测模型虽然是一元(线性)方程,但现实中很多应用场景符合这个模型,例如商品的价格与商品的销量之间的关系。一般来说价格越贵则销量越低,价格越便宜则销量越高,于是我们就能够用 “销量=a*价格+b”这个模型来最大化商家的收益。 如何确定a和b的值呢,我们可以根据历史“价格-销售”数据,来计算最优一元模型的a和b的值。 当然,很多应用场景不能够使用线性回归模型来进行预测,例如,月份和平均气温,平均气温并不随着月份的增长呈线性增长或下降的趋势。那么,什么时候可以使用线性回归模型呢?

线性回归模型的适用场景 1)可以用于预测,也可以用于分类,用于分类问题时,需要设定阈值区间,并提前知晓阈值区间与类别的对应关系 2)只适用于线性问题,可以有多个维度(feature)

如何求解线性回归中的维度参数 在已知样本集set的时候,如果根据样本集得到result=f(X,Y,Z,…)=aX+bY+cZ+…+…中的未知参数a,b,c呢?

最小二乘法 最小二乘法适用于任意多维度的线性回归参数求解,它可求解出一组最优a,b,c解,使得对于样本集set中的每一个样本data,用result=f(X,Y,Z,…)来预测样本,预测值与实际值的方差最小。方差是我们常见的估值函数(cost function)。

梯度下降法 最小二乘法实际上只定义了估值函数是方差,真正求解a,b,c的方法是梯度下降法,这是一个枚举型的求解算法,其算法步骤如下: 1)使用随机的a0, b0, c0作为初始值 2)分别求解最优a, b, c…,对于每个维度参数的求解,步骤为(以a为例): 2.1)设定a范围的最大值与最小值 2.2)设定a计算的梯度步长(这就是它叫梯度下降法的原因) 2.3)固定其他维度参数 2.4)计算a的所有取值中,使得估值函数最小的那个a即为所求

数学上可以证明: 1)上述算法是可以收敛的(显而易见) 2)分别求出a,b,c的最优值,组合起来就是整体的最优值(没这么明显了),这个结论是很重要的,假设样本个数为n,计算a,b,c的算法复杂度都是线性的O(m),这个结论让算法的整体复杂度是n*O(m) + n*O(m) + n*O(m),而不是[n*O(m) ]*[n*O(m)]*[n*O(m)]的关系。

为了清晰直白的用程序表达算法的整个过程,未经过任何优化的C++实现源码如下,为了简化计算,不妨设特征只有一个,预测方程为Y=aX+b,源码实现为四个部分:

1)第一部分:一维样本,抽象成二维平面上的点 2)第二部分:算法实现 2)第三部分:测试用例 2)第四部分:输出结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
秒懂“线性回归预测”
线性回归是机器学习中的概念,线性回归预测算法一般用以解决“使用已知样本对未知公式参数的估计”类问题。
架构师之路
2018/07/27
1.2K0
秒懂“线性回归预测”
【知识】线性回归和梯度下降算法,值得学习
小编邀请您,先思考: 线性回归的假设是什么?线性回归用来解决什么问题? 梯度下降算法怎么理解?梯度下降算法怎么改进? 实例 首先举个例子,假设我们有一个二手房交易记录的数据集,已知房屋面积、卧室数量和
陆勤_数据人网
2018/02/26
8710
【知识】线性回归和梯度下降算法,值得学习
【机器学习笔记】:大话线性回归(一)
线性回归作为监督学习中经典的回归模型之一,是初学者入门非常好的开始。宏观上考虑理解性的概念,我想我们在初中可能就接触过,y=ax,x为自变量,y为因变量,a为系数也是斜率。如果我们知道了a系数,那么给我一个x,我就能得到一个y,由此可以很好地为未知的x值预测相应的y值。这很符合我们正常逻辑,不难理解。那统计学中的线性回归是如何解释的呢?
Python数据科学
2018/12/05
1.5K0
常见面试算法:回归、岭回归、局部加权回归
我们前边提到的分类的目标变量是标称型数据,而回归则是对连续型的数据做出处理,回归的目的是预测数值型数据的目标值。
机器学习AI算法工程
2019/10/28
1.5K0
常见面试算法:回归、岭回归、局部加权回归
统计学习方法之线性回归法1.线性回归2.损失函数(Cost Function)3.梯度下降4.最小二乘法5.数据归一化6. 模型评估7.参考文献
1.线性回归 回归,统计学术语,表示变量之间的某种数量依存关系,并由此引出回归方程,回归系数。 线性回归(Linear Regression),数理统计中回归分析,用来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 线性回归模型: ε表示误差项,也叫随机干扰项,即真实值和预测值之间的差异。ε服从均值为0的正态分布,其中只有一个自变量的情况称为一元线性回归,多个自变量的情况叫多元线性回归。 对模型设定的假设: 回归模型是正确设定的,即模型选择了正确的变量,且选
JasonhavenDai
2018/04/11
2.1K0
统计学习方法之线性回归法1.线性回归2.损失函数(Cost Function)3.梯度下降4.最小二乘法5.数据归一化6. 模型评估7.参考文献
Python人工智能经典算法之线性回归
1.9 k近邻算法总结[**] 优点: 1.简单有效 2.重新训练代价底 3.适合类域交叉样本 4.适合大样本自动分类 缺点: 1.惰性学习 2.类别评分不是规格化 3.输出可解释性不强 4.对不均衡的样本不擅长 样本不均衡:收集到的数据每个类别占比严重失衡 5.计算量较大 1.10 交叉验证和网格搜索[****] 1
海仔
2020/09/01
5360
【机器学习】一文读懂线性回归、岭回归和Lasso回归
本文介绍线性回归模型,从梯度下降和最小二乘的角度来求解线性回归问题,以概率的方式解释了线性回归为什么采用平方损失,然后介绍了线性回归中常用的两种范数来解决过拟合和矩阵不可逆的情况,分别对应岭回归和Lasso回归,最后考虑到线性回归的局限性,介绍了一种局部加权线性回归,增加其非线性表示能力
yuquanle
2019/09/30
5980
【机器学习】一文读懂线性回归、岭回归和Lasso回归
【V课堂】机器学习系列:(二)线性回归
线性回归 本章介绍用线性模型处理回归问题。从简单问题开始,先处理一个响应变量和一个解释变量的一元问题。然后,我们介绍多元线性回归问题(multiple linear regression),线性约束由多个解释变量构成。紧接着,我们介绍多项式回归分析(polynomial regression问题),一种具有非线性关系的多元线性回归问题。最后,我们介绍如果训练模型获取目标函数最小化的参数值。在研究一个大数据集问题之前,我们先从一个小问题开始学习建立模型和学习算法。 一元线性回归 上一章我们介绍过在监督学习问题
小莹莹
2018/04/23
1.4K0
【V课堂】机器学习系列:(二)线性回归
【Python机器学习】系列之线性回归篇【深度详细】
谢谢大家的支持!现在该公众号开通了评论留言功能,你们对每篇推文的留言与问题,可以通过【写评论】给圈主留言,圈主会及时回复您的留言。 本次推文介绍用线性模型处理回归问题。从简单问题开始,先处理一个响应变量和一个解释变量的一元问题。然后,介绍多元线性回归问题(multiple linear regression),线性约束由多个解释变量构成。紧接着,介绍多项式回归分析(polynomial regression问题),一种具有非线性关系的多元线性回归问题。最后,介绍如果训练模型获取目标函数最小化的参数值。在
量化投资与机器学习微信公众号
2018/01/29
4.1K0
北大才女笔记:这样学习线性回归和梯度下降(上篇)
我们说到,机器学习中主要的两个任务就是回归和分类。如果读者有高中数学基础,我们很容易回忆到我们高中学习过的一种回归方法——线性回归。我们将这种方法泛化,就可以得到机器学习中的一种常见模型——线性模型,线性模型是监督学习的一种。
double
2018/07/31
5620
机器学习常见算法总结
决策树算法 根据数据属性,采用树状结构建立决策模型。常用来解决分类和回归问题。 常见算法:CART(Classification And Regression Tree),ID3,C4.5,随机森林等 回归算法 对连续值预测,如逻辑回归LR等 分类算法 对离散值预测,事前已经知道分类,如k-近邻算法 聚类算法 对离散值预测,事前对分类未知,如k-means算法 神经网络 模拟生物神经网络,可以用来解决分类和回归问题 感知器神经网络(Perceptron Neural Network) ,反向传递(Back Propagation)和深度学习(DL) 集成算法 集成几种学习模型进行学习,将最终预测结果进行汇总 Boosting、Bagging、AdaBoost、随机森林 (Random Forest) 等
AomanHao
2022/01/14
5880
机器学习常见算法总结
自查自纠 | 线性回归,你真的掌握了嘛?
寄语:本文对线性回归算法的原理及模型,学习策略、算法求解和sklearn参数做了详细的讲解。同时,用例子进行Python代码实践。
Datawhale
2020/04/28
5770
模型之母:简单线性回归&最小二乘法
关于作者:Japson。某人工智能公司AI平台研发工程师,专注于AI工程化及场景落地。持续学习中,期望与大家多多交流技术以及职业规划。
木东居士
2019/10/24
3.1K0
Python机器学习算法入门之梯度下降法实现线性回归
專 欄 ❈ ZZR,Python中文社区专栏作者,OpenStack工程师,曾经的NLP研究者。主要兴趣方向:OpenStack、Python爬虫、Python数据分析。 Blog:http://skydream.me/ CSDN:http://blog.csdn.net/titan0427/article/details/50365480 ❈—— 1. 背景 文章的背景取自An Introduction to Gradient Descent and Linear Regression
Python中文社区
2018/01/31
1.9K0
Python机器学习算法入门之梯度下降法实现线性回归
最小二乘法求解线性回归
基于均方误差最小化来进行模型求解的方法称为“最小二乘法(least square method)它的主要思想就是选择未知参数,(a5,b5)(a3,b3)(a1,b1)(a4,b4)(a2,b2)使得理论值与观测值之差的平方和达到最小。
小小程序员
2024/01/02
2790
机器学习从0入门-线性回归
机器学习有许多不同的算法,每个算法都有其特定的应用场景和优缺点。然而,最简单的机器学习算法可能是线性回归。
皮大大
2023/08/25
5500
机器学习从0入门-线性回归
流行的机器学习算法——线性回归
线性回归(Linear Regression)是非常流行的机器学习算法。线性回归可以用来确定两种或两种以上变量之间的定量关系。具体来说,线性回归算法可以根据一组样本数据,拟合出一个线性模型,并通过对该模型的参数进行估计和预测,达到对未知数据进行预测的目的。
用户10816598
2023/12/27
2230
【机器学习与实现】线性回归分析
如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。
Francek Chen
2025/01/22
1050
【机器学习与实现】线性回归分析
最小二乘法,残差,线性模型-线性回归
最小二乘法公式是一个数学的公式,在数学上称为曲线拟合,此处所讲最小二乘法,专指线性回归方程。
zhangjiqun
2024/12/14
3850
最小二乘法,残差,线性模型-线性回归
【机器学习】第二部分上:线性回归
线性模型是自然界最简单的模型之一,它描述了一个(或多个)自变量对另一个因变量的影响是呈简单的比例、线性关系.例如:
杨丝儿
2022/02/17
1.9K0
【机器学习】第二部分上:线性回归
推荐阅读
相关推荐
秒懂“线性回归预测”
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档