【成长笔记】Linear Regression(线性回归)

python机器学习-线性回归(LinearRegression)算法 用python进行线性回归分析非常方便,如果看代码长度你会发现真的太简单。但是要灵活运用就需要很清楚的知道线性回归原理及应用场景。现在我来总结一下用python来做线性回归的思路及原理。 线性回归应用场景 线性回归介绍 机器学习中的线性回归 简单的线性回顾实例 线性回归应用场景 线性回归介绍 ——线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系... 阅读详情

在学习的过程中,越来越发觉,系统性地学习与整理很重要。网络上的资源非常丰富,之前一直是以博客,百度谷歌,书籍等方式来自学,可能是因为个人觉得如视频学习的方式太过于耗时以及潜意识中对于授课者的讲课的不信任,所以一直没有尝试过视频类学习。近期再重新回顾之前所学,发现所学终究太过于分散,知识碎片化严重,在尝试系统性地整理过程中,个人能力不及难以串联。想着牛顿说过:我是站在巨人的肩膀上。突然醒悟,或许我也可以站在巨人的肩膀上学习。安利下Coursera这个学习平台,学习的这一两个星期,感觉收获非常大。

Andrew ng的机器学习相关课程是ML的经典课程,我的首站选择的就是他,嗯,或许我没机会去斯坦福学习,但我和斯坦福的人们可以上一样的课,哈哈。想想小时候舍不得买一本参考书,现在真的是最好的时代啊。感谢Coursera,感谢如Andrew ng这般行业大牛无私为广大人们的知识的传授。

话不多说,个人觉得最好的学习理解在于输出,加油!

----------------我是萌萌的分割线-------------------

给定一个数据集,譬如杭州当地的房子的大小(平方米)以及相对应的价格(万元),放在二维的平面上,如图所示(数据纯属虚构,别当真哈)。

房子大小和房价的关系

以上,只是个别几个数据。假设我们拥有全城所有房子大小与价格的数据,假设房价只受房子大小影响。给定一个房子大小,我们能否估算出此房子的价格呢?

这看上去似乎是个很简单的甚至小学生也能解出来的题目。没错,按照我们小时候所学的知识,我们会这么做,设房子价格为y,设房子大小为x,找到一条尽量拟合所有y与x间关系的线,数学表达上类似于一个y = ax + b的形式,解出系数a和b获得此函数,再将题设中提供给我们的房子大小x的数据带入此函数,获得此房子的价格y。如何找到这条线呢?小学还是初中的我们,学过最小二乘法。咳咳,这个可能超前了,目前ng在第一周还未讲到最小二乘法这个算法。ng在此节课上使用的是梯度下降法。

是的,这就是一个最简单的线性回归的例子,通过一定的统计样本,样本包括其特征(大小x)和其标签(价格y),根据其特征值与标签之间的关系(函数),我们可以对未知标签的样本的特征预测此样本的标签值。额,说得有些绕口哈。以上是个超级简单的例子,只有一个特征,理论上,我们也可以推广到更多特征,即多维的情况。房子的价格还受什么影响呢?地段,楼层高低,交通……

如果我们拥有足够的已经获得标记的样本(有标签的样本),我们是否可以找到一个根据其特征对应其标签的函数呢?如果找到了这个函数,我们是不是就可以对未知标签的样本进行预测呢?

额,收回来,这些应该ng以后会给我们讲的,脑洞大开也够大了。

以上,其实也就是一个监督学习的过程,那么,无监督学习,我们可以推理下,就是样本只有特征,没有标签。即有这么一堆数据,可我们也不知道这堆数据谁是谁。监督学习多用于回归(目标值是连续值,比如汽车的时速)和分类(目标值是离散值,比如抛硬币不是正面就是反面),无监督学习多用于聚类。

机器学习是什么呢?感觉一个通俗的理解,对于监督学习而言,似乎就是有自变量x和因变量y,我们去求解这个函数h(x),而这个h(x)怎样才能是最佳的呢?

问:已知一组数据,房屋的大小x以及对应的价格y,小明有一套大小为a的房子,那么,你可以估算出这套房子的价格吗?

思路:已知x,y,获得x与y的关系h(x),即h(x) = y,求解。

过程:设 h(x) = \theta_{0}*x^{0} + \theta_{1}*x^{1} + \theta_{2}*x^{2} + \cdot \cdot \cdot + \theta_{n}*x^{n}, 这里我们假设只有 \theta_{0} 和 \theta_{1} 以简化计算(相当于设置其余的系数都为0),则原式就转化为我们比较熟悉的一元一次方程了。此时, h(x) = \theta_{0}*x^{0} + \theta_{1}*x^{1} ,即, h(x) = \theta_{0}+ \theta_{1}*x^{1} 。

那么,h(x)什么时候最接近y呢?当然就是h(x) - y最接近0的时候了。为了更加准确地度量其接近程度,我们对之进行平方(保证为正)。即(h(x) - y)^{2} 越小,则h(x)越接近我们所求。所以,目前我们可以将上述问题整理为(m为样本的个数):

min(\theta_{0},\theta_{1}): \sum_{i=1}^{m}{(h(x_{i}) - y_{i})^{2}}

h(x) = \theta_{0}+ \theta_{1}*x^{1}

我们的目标很简单,找到合适的 \theta_{0} 和 \theta_{1} 使得 \sum_{i=1}^{m}{(h(x_{i}) - y_{i})^{2}} 最小,那么此时的h(x) = \theta_{0}+ \theta_{1}*x^{1} 将是我们所寻求的h(x)。

设 J(\theta_{0},\theta_{1}) = \frac{1}{2m}\sum_{i=1}^{m}{(h(x_{i}) - y_{i})^{2}} ,我们将 J(\theta_{0},\theta_{1}) 理解为Cost Function(代价函数,损失函数)。上面的问题可以转化为代价函数最小,即 min(\theta_{0},\theta_{1}):J(\theta_{0},\theta_{1}) 。

J(\theta_{0},\theta_{1}) = \frac{1}{2m}\sum_{i=1}^{m}{(h(x_{i}) - y_{i})^{2}} = \frac{1}{2m}\sum_{i=1}^{m}{(\theta_{0} + \theta_{1}x_{i} -y_{i})^{2}}

如何对它进行求解呢? 使用的是梯度下降法。首先:我们给定一个初始值给 \theta_{0},\theta_{1} ,如(\theta_{0} = 0 和 \theta_{1} = 0 ),然后不断地同时更新 \theta_{0},\theta_{1} 降低 J(\theta_{0},\theta_{1}) 的值最终使得 J(\theta_{0},\theta_{1}) 最小。具体如何做呢?如何更新 \theta_{0},\theta_{1} 呢?

不断地重复以下过程:

\theta(j) = \theta(j) - \alpha\frac{\partial}{\partial\theta(j)}J(\theta_{0},\theta_{1})(for j = 0andj = 1)

其中 \alpha 为学习速率。嗯,这么理解吧,当我们在山上的时候,如何才能走出一条最快的下山的路径呢?我们下一步行走的方向取决于当前我们所处的位置,当前哪个方向上最陡则最快,我们可以小碎步行走,也可以大步流星地行走,这个步子迈的大小就类似于 \alpha 学习速率。小碎步的话( \alpha 小时),我们可能要调整非常久,即重复更新方向(系数)次数多,大步流星( \alpha 大时),我们调整的次数就会少。ng用了一张很直观的图来展示,如图:

可以看出,不同的 \theta_{0},\theta_{1} ,其 J(\theta_{0},\theta_{1}) 是不一样的,随机选择了一个起点,如上图的一开始的点,一步一步地调整,最后到达最低点。看上去很像下山吧哈哈。但从图中,我们也可以看到,还有其余的局部低点,如果初始点换个地方,也许最后梯度下降会到达局部低点而不是全局最低点,如下图:

嗯,不过我们现在不去解决这个问题,留待接下来的学习去解决吧,留个问题思考,带着问题思考,继续。

\theta_{0}= \theta_{0}- \alpha\frac{d}{d\theta(0)}J(\theta_{0},\theta_{1}) \rightarrow\theta_{0} - \alpha\frac{1}{m}\sum_{i=1}^{m}{(\theta_{0} + \theta_{1}x_{i} -y_{i})}

\theta_{1}= \theta_{1}- \alpha\frac{d}{d\theta(0)}J(\theta_{0},\theta_{1}) \rightarrow\theta_{1} - \alpha\frac{1}{m}\sum_{i=1}^{m}{(\theta_{1} + \theta_{1}x_{i} -y_{i})x_{i}}

如此不断循环,最后得到最佳的 \theta_{0},\theta_{1} ,至此,h(x)获得,小明的那套a大小的房子的价格我们就可以估算了,将a带入到h(x)中,获得的值即为我们所估算的。

嗯,是不是感觉还是挺简单呢?

--------------------我是萌萌的分割线-------------------------

ng的课程还是讲得很清晰的,尤其带上ng那暖暖的笑脸,配上简单的几个例子,而且每节课只有短短的不到10分钟,获得知识,巩固知识,应用知识。感觉课程设计还是相当合理的,不会令人打瞌睡哈哈。

以上写的不是很满意,感觉自身逻辑的组织还不到位,很多想写的,在脑子里闪过后又不知道怎么写下去,可能你看就比较迷糊了,抱歉功力目前受限,以后慢慢进步。

加油!

线性回归(Linear Regression)和逻辑回归(Logistic Regression) 1 线性回归(Linear Regression) 1.1 建立问题 举个例子,你有这样一组数据:波特兰市的城市住房价格的数据,不同尺寸的房子对应不同的售价。 现在你有个朋友想要卖房子,他的房子是1250平方英尺,大概能卖多少钱? 我们可以根据这组数据,建立一个模型,然后用这组数据集去拟合模型。拟合完毕后,输入1250,它就会告诉你朋友能卖多少钱。 看起来这组数据似乎分布在一条直线附近: 好,只要找到这条直线的方程,你就能根据面积来预测房价了。(在这个例子里,直线方程就是我们要拟合的模型) 如何找到直线 阅读详情

相关推荐

[机器学习笔记] Logistic Regression与Linear Regression的区别

逻辑回归(Logistic Regression)与线性回归(Linear Regression)的区别 Logistic Regression 应用于分类问题 除了可以解决二分类问题外,还可以解决多分类问题。 Logistic Regression 是离散的。例如预测明天天气-阴,晴,雨。分类问题是用于将事物打上一个标签,通常结果为离散值。例如判断一幅图片上的动物是一只猫还是一只狗...

梅森上校的博客 业精于勤荒于嬉,形成于思毁于随。 4474

连续特征离散化的好处

在实现某些算法时,只看到结论说有的连续特征需要离散化,离散化后效果会更好,巴拉巴拉。。。但是为什么要离散化还一直是云里雾里,今天特意研究了一下,记录如下: 1. 离散特征的增加和减少都很容易,易于模型的快速迭代; 2. 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展; 3. 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常

快乐的鱼儿学敲码 5144

机器学习之线性回归(Linear Regression)

线性学习中最基础的回归之一,下面从线性回归的数学假设,公式推导,模型算法以及实际代码运行几方面对这一回归进行全面的剖析~

July_sun的博客 3万+

线性回归模型详解(Linear Regression)

线性回归和逻辑回归

数据掘金 25万+

3 Locally weighted linear regression, logistic Regression

本集课程内容   1. 局部加权线性回归 Locally weighted linear regression 2. 线性回归的解释 Probabilistic interpretation 3. logistic 回归 4. 感知器的学习算法The perceptron learning algorithm   模型中常见问题   1.欠拟合(underfitting)

天道酬勤,做一个务实的理想主义者 1563

Spark MLlib Linear Regression线性回归算法

1、Spark MLlib Linear Regression线性回归算法 1.1 线性回归算法 1.1.1 基础理论 在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条

Spark MLlib 机器学习 1万+

机器学习——线性回归(Linear Regression)

机器学习学习笔记——2

1 9997

线性回归笔记spss和LinearRegression

H0,H1假设概念理解: ·常规理解: 在假设H0实际上为真时,我们可能犯拒绝H0的错误,称这类“弃真”的错误为第一类错误;当H0实际上不真时,我们也有可能接受H0,称这类错误为第二类错误。 一般来说,我们总是控制第一类错误,使犯第一类错误的概率尽可能小。称为“显著性检验” 这里的显著性是指只有当H0成立时,显著不合理的状态才能拒绝H0,否则只能“接受”H0,这里的接受是指不拒绝H0,原因是由于没有获得充分的理由拒绝H0而“勉强”接受。因此,使用显著性检验时,当检验结果为拒绝H0时,结论比较可靠,更具有说服

weixin_45181646的博客 2011

【Python3】 Linear Regression,线性回归

线性回归是一种用于建立因变量(目标变量)与一个或多个自变量(特征变量)之间线性关系的统计方法。

言之。 1万+

基于spark用线性回归(linear regression)进行数据预测

ubuntu+spark+scala实现线性回归(linear regression)算法(代码+数据)

wtt561111的专栏 1万+

线性回归 sklearn.linear_model.LinearRegression

线性回归 sklearn.linear_model.LinearRegression sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None) Parameters(参数):      fit_intercept ...

weixin_41798592的博客 1233

机器学习—线性回归算法(Linear Regression)

本文主要是介绍了机器学习中的线性回归算法,包含线性回归基本概念,简单分类与模型,线性回归问题分析,线性回归的解法,线性回归问题中的过拟合、欠拟合以及相应的解决方案,线性回归模型的评估等内容,能在一定程度上帮助我们加深对线性回归问题的认识。

qq_43016560的博客 1万+

linear regression 线性回归

本篇讲述linear regression线性回归模型。参考资料为http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=MachineLearning中的第二节。这个网站很好的是同时提供了源代码,可以直接在matlab上跑。因为之前比较了解,所以视频是跳着看的。同时参考了<pattern analysis and

richard2357的专栏 2050

线性回归linear_model.LinearRegression

线性回归–监督学习 linear_model.LinearRegression 超参数 fit_intercept–是否计算截距,默认计算 normalize–是否标准化,默认不做 copy_x–是否对x肤质,如果为false,则经过中心化,标准化后,吧新数据覆盖到原数据上 n_job–计算时设置的任务个数 属性: coef_:得到的feature的系数 intercept——截距,线性模型中的独立项 rank_:矩阵的秩 singular_ :矩阵的奇异值,尽在x为密集矩阵时有效 方法 fit predi

qq_48566899的博客 5584

Linear Regression线性回归

在本专栏中,我们将学习机器学习的知识。

weixin_54143563的博客 1129

VulnHub系列之BadStore_123渗透测试

BADSTORE: 1.2.3 早期网商系统漏洞鉴赏(2004)

Flynn的博客 1630

线性回归 Linear Regression

线性回归的基本概念,优缺点,应用场景,构建模型时的注意事项和可以应用的类库

JasonH2021的博客 3328

VisionPro 9.0 QuickBuild里用C#脚本调用Halcon 23.11模型,保姆级图文配置流程

本文详细介绍了如何在VisionPro 9.0 QuickBuild环境中使用C#脚本调用Halcon 23.11深度学习模型,提供从环境配置到模型集成的保姆级图文教程。重点解决图像格式转换、许可证配置等工业视觉检测中的常见问题,帮助开发者快速实现高效、稳定的视觉检测流水线部署。

weixin_27027459的博客 435

线性回归(Linear regression)算法详解

线性回归是一种通过回归方程建模自变量与因变量线性关系的分析方法。一元线性回归表达式为y=kx+b,多元线性回归为y=w₁x₁+w₂x₂+...+wₙxₙ+b。通过最小化均方误差(MSE)可以找到最佳参数。以房屋面积预测价格为例,当k=2、b=0时,回归曲线完全拟合样本数据(MSE=0)。测试新数据(75,145)时,预测值150与真实值145的误差(MSE=25)揭示了模型的泛化能力。该示例展示了线性回归的基本原理和训练-测试流程,为机器学习模型优化奠定了基础。

Springfield3006的博客 1960

AgentScope 实战训练营-构建元规划智能体(Meta Planner Agent)—— 从 0 到 1 完整实现

本文介绍了基于AgentScope框架开发的元规划智能体(Meta Planner Agent)系统。该系统通过任务拆解和子代理编排机制,实现复杂任务的自动化处理。核心架构分为用户层、规划器层和子代理层,其中规划器作为"项目经理"负责任务分解、创建子代理并协调执行流程。关键技术包括AgentScope多智能体框架、DashScope大语言模型、PlanNotebook计划管理工具等。

program哲学 359

华为OD机试真题 新系统 9月16号 【统计特殊数字】

华为OD新系统机试真题【统计特殊数字】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【统计特殊数字】。

qq_45776114的博客 769

Linear Regression 线性回归

Linear Regression

Aroundchange 7639

提交 ieee 手稿出现:Do not include the Reviewer PDF with my submission 怎么办

IEEE投稿Reviewer PDF选项说明 投稿时出现的"Do not include the Reviewer PDF with my submission"选项控制是否附带评审专用PDF文件。Reviewer PDF是系统自动生成包含所有投稿材料的完整PDF,用于同行评审。建议保持默认不勾选状态,除非确认编辑部不需要该文件,否则可能影响审稿流程。勾选表示不附带此PDF,不勾选则会正常生成并提交该评审文件。

ZhangJiqun&191cm&85kg 2205
上一篇: 【成长笔记】图片验证码识别
下一篇: 【成长笔记】Linear Regression with Multiple Variables
portfloat
博客等级 码龄10年 16粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值