机器学习回顾篇(3):线性回归奥辰

线性回归算法应该是大多数人机器学习之路上的第一站,因为线性回归算法原理简单清晰,但却囊括了拟合、优化等等经典的机器学习思想。去年毕业时参加求职面试就被要求介绍线性回归算法,但由于当初过于追求神经网络、SVN、无监督学习等更加高大尚的算法,反而忽略了线性回归这些基础算法,当时给出的答案实在是差强人意。

说到线性回归,我们得先说说回归与分类、线性与非线性这些概念的区别。

回归和分类都是有监督学习(机器学习分有监督学习和无监督学习)中的概念。从算法的目标或者作用上看,分类的目标就如同字面上的意思,就是分类,将数据分门别类,而且类别是有限的(数学上称为离散的)。但回归算法不同,回归算法的目标是预测,说详细些就是从已有数据和结果中获取规律,对其它数据的位置结果进行预测,预测结果的数量数无限的(数学上叫连续的)。举个例子我们可以根据楼房的建材、面积、用途将茅草房、普通住房、厂房等等有限的几类,这就是分类;另外,我们可以根据房屋面积、地段、装修等因素对楼房房价进行预测,预测结果有无限种可能,可能是10000元/平米,也能是10001.1元/平米——这就是回归的过程。

对于线性和非线性的解释,我至今还没有见到过一个让我觉得满意的数学定义,所以,我也从直观认识上说说我的看法。我们高中时学习函数就是从一元一次函数学起的,一元一次函数在数学上可以表示为:

在二维坐标轴上,其表现为一条直线。如果是三维空间中的二元一次函数,数学上表示为:

其在空间上图形为一平面。以此类推,在更高维(n维)的平面上,多元一次函数表达式为:

\[f(x)={{\theta}_{0}}+{{\theta}_{1}}{{x}_{1}}+{{\theta}_{2}}{{x}_{2}}+\ldots+{{\theta}_{n}}{{x}_{n}}\]

在多维空间上,其图形我们称为为超平面。

如果一个数据模型能够用上述二维直线、三维平面或者更多维空间上的超平面去拟合,我们就可以说这个模型是线性模型。

最后,综合上面内容总结一下什么是线性回归:

线性回归(LinearRegression)是一种通过属性的线性组合来进行预测的回归模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。

上面提到,线性回归的目的就是找到一个线性模型,是的预测值与真实值之间的误差最小,这就是一个优化的问题。为什么要优化呢?看看下图:

正如你眼前所见,图中的点代表数据,能够对这些数据点进行大概拟合的直线不止一条,到底哪一条才是最好呢?以上图中数据为例,假设此时模型为${y}'=f(x)={{\theta}_{0}}+{{\theta}_{1}}{{x}_{1}}$,图像如下所示,我们要对其拟合程度进行评价:

点$A({{x}_{i}},{{y}_{i}})$为数据集中某一点,使用模型预测时,结果为${A}'({{x}_{i}},{{{{y}'}}_{i}})$。我们用高中时学过,对于${A}$与${A}'$之间的误差,我们可以用它们之间的欧氏距离的平方来表示:

这是对一个点的拟合程度评价,但数据集中可不止$A({{x}_{i}},{{y}_{i}})$一个数据点,所以,我们需要对每个点进行误差评估,然后求和,也就是误差平方和作为这个线性模型对数据集的总体拟合程度评估:

我们将$J({{\theta}_{0}},{{\theta}_{1}})$作为损失函数,也有资料中称为目标函数。这里,${{\theta}_{0}},{{\theta}_{1}}$是模型中$x$的参数。在不同的模型中,${{\theta}_{0}},{{\theta}_{1}}$取不同值,我们要做的就是求目标函数$J({{\theta}_{0}},{{\theta}_{1}})$取最小值时的${{\theta}_{0}},{{\theta}_{1}}$确切值,换句话说就是求$J({{\theta}_{0}},{{\theta}_{1}})$的最优解问题。

关于求最优解问题,最常用的算法就是最小二乘法和梯度下降法,这两种方法在前两篇博文中都有详细介绍,如果你尚不清楚其中原理和过程,还是去看看吧,这很重要,也很基础。

上面说的是一元线性回归模型,对于多元线性回归模型,原理也是一样的,只不过需要求解的参数不止${{\theta}_{0}},{{\theta}_{1}}$两个了就是,这里不再多说。下面我们用代码实现一元线性回归模型。

以下代码参考《深度学习之Pytorch》一书中内容,代码采用Python的pytorch实现。

在实现模型之前,首先我们要制造一个数据集,在[0,10]区间范围内,随机生成100个数:

importtorchx=torch.unsqueeze(torch.linspace(0,10,100),dim=1)print(x)输出为:tensor([[0.0000],[0.1010],[0.2020],……[9.7980],[9.8990],[10.0000]])输出的内容有100行,这就是一个列向量,我们以则100个数作为数据集中的自变量,也就是X,假设我们需要拟合的模型为:$y=f(x)=0.5x+15$,为了更加符合真实数据集中随机误差的效果,我们在生成y的时候,加上一些服从高斯分布随机误差:

y=0.5*x+15+torch.rand(x.size())print(y)输出结果为:

tensor([[15.0477],

[15.0557],

[15.3653],

……

[20.7046],

[20.1751]])

在二维坐标轴上,这些点如下所示:

数据有了,我们可以开始搭建我们的模型了:

代码最后一行输出为:

tensor([[0.5206]],device='cuda:0')tensor([15.3803],device='cuda:0')

也就是说,模型训练结果中,${{\theta}_{0}},{{\theta}_{1}}$分别为15.3803和0.5206.

THE END
1.机器学习回归算法—线性回归及案例分析生活中回归分析案例机器学习回归算法—线性回归及案例分析 回归是统计学中最有力的工具之一。机器学习监督学习算法分为分类算法和回归算法两种,其实就是根据类别标签分布类型为离散型、连续性而定义的。回归算法用于连续型分布预测,针对的是数值型的样本,使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以https://blog.csdn.net/xun527/article/details/79680473
2.回归预测适用的机器学习算法mob64ca12e27f25的技术博客回归预测在各个领域都有广泛的应用,如金融市场预测、房价估算和健康数据分析。通过理解各种机器学习算法的工作原理,我们可以选择最适合特定任务的算法。本文将探讨几种适用于回归预测的机器学习算法,并附上代码示例,以帮助读者更好地理解。 1. 什么是回归预测? https://blog.51cto.com/u_16213373/11913782
3.回归分类与聚类:三大方向剖解机器学习算法的优缺点机器之心在本教程中,作者对现代机器学习算法进行一次简要的实战梳理。虽然类似的总结有很多,但是它们都没有真正解释清楚每个算法在实践中的好坏,而这正是本篇梳理希望完成的。因此本文力图基于实践中的经验,讨论每个算法的优缺点。而机器之心也在文末给出了这些算法的具体实现细节。 https://www.jiqizhixin.com/articles/2017-05-20-3
4.概述机器学习经典算法机器学习算法:监督学习、无监督学习、半监督学习、强化学习、线性回归等 机器学习算法 机器学习算法可以按照不同的标准来进行分类。比如按函数 f (x, θ)的不同,机器学习算法可以分为线性模型和非线性模型;按照学习准则的不同,机器学习算法也可以分为统计方法和非统计方法。 https://weibo.com/ttarticle/p/show?id=2309404598738399395890
5.轻松看懂机器学习十大常用算法(附实例)三、逻辑回归 四、SVM 五、朴素贝叶斯 六、K最近邻算法 七、K均值算法 八、Adaboost 算法 九、神经网络 十、马尔可夫 一、决策树 根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分https://mse.xauat.edu.cn/info/1038/2182.htm
6.17个机器学习的常用算法!回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。在机器学习领域,人们说起回归,有时候是指一类问题,有时候是指一类算法,这一点常常会使初学者有所困惑。常见的回归算法包括:最小二乘法(Ordinary Least Square),逻辑回归(Logistic https://mp.weixin.qq.com/s?__biz=MjM5Mzc2NjczMQ==&mid=2651880511&idx=2&sn=37e28e94a318fe9deef328dede611b56&chksm=bd76d01b8a01590d7c99ce8de0f9ee3d7003306857c3b09ad1de6a0bc122cc5fbbc05f75ad32&scene=27
7.和我一起入门机器学习逻辑回归上一篇博客从数学原理和代码角度解释了线性回归,但是该模型只适合特征与预测值呈线性关系的回归场景,接下来我们将介绍逻辑回归,逻辑回归是一种用于二分类问题的机器学习算法。 数学原理 逻辑斯蒂回归(Logistic Regression)虽然名字中有回归,但模型最初是为了解决二分类问题。线性回归模型帮助我们用最简单的线性方程实现了对https://zhuanlan.zhihu.com/p/676723703
8.干货机器学习中的五种回归模型及其优缺点【导读】近日,机器学习工程师 George Seif 撰写了一篇探讨回归模型的不同方法以及其优缺点。回归是用于建模和分析变量之间关系的一种技术,常用来处理预测问题。博文介绍了常见的五种回归算法和各自的特点,其中不仅包括常见的线性回归和多项式回归,而且还介绍了能用于高维度和多重共线性的情况的Ridge回归、Lasso回归、Elashttps://cloud.tencent.com/developer/article/1086800
9.人工智能机器学习三大类之回归模型(RM)线性回归问题:可能会出现欠拟合、非满秩矩阵问题等。 解决方法:解决欠拟合问题,可采用局部加权线性回归LWLR(Locally Weighted Linear Regression)。解决非满秩矩阵问题,可使用岭回归RR(ridge regression)、Lasso法、前向逐步回归等。 算法优点: 1)最可解释的机器学习算法之一,理解与解释都十分直观; https://www.hqew.com/tech/fangan/2017384.html
10.《常用算法之智能计算(三)》:机器学习计算因为机器学习计算中涉及了大量的统计学理论,机器学习与统计推断的联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习计算关注可以实现的、行之有效的学习算法,很多推论问题具有无程序可循的难度,所以部分的机器学习研究是开发简单、处理容易的近似算法。http://www.kepu.net/blog/zhangjianzhong/201903/t20190327_475625.html
11.机器学习之回归与聚类算法理解: α为学习速率,也可以称为步长,需要手动指定, image 为方向,沿着这个函数下降的方向找,最后就能找到最低点,然后更新W值 image 沿着切线向下的方向,一步步的计算出权重使得损失值最小。 如何在sklearn中使用线性回归算法? API:sklearn.linear_model.LinearRegression(fit_intercept=True) https://www.jianshu.com/p/c009e681c4e0
12.基于机器学习的气温要素空间插值本文选择支持向量机、 高斯过程回归和随机森林这三种被广泛使用的机器学习算法对气温数据进行逐像元插值, 为了测试机器学习方法的性能, 本文将机器学习算法的插值结果与传统的插值方法(反距离权重法, 普通克里金方法和ANUSPLIN插值)进行精度的对比。 2.2.1反距离权重法 http://www.gyqx.ac.cn/CN/abstract/abstract4337.shtml
13.什么是ML.NET以及它如何工作?所有算法在执行预测后还会创建新列。 这些新列的固定名称取决于机器学习算法的类型。 对于回归任务,其中一个新列称为“分数”,如价格属性属性中所示。 C# publicclassPrediction{ [ColumnName("Score")]publicfloatPrice {get;set; } } 可以在机器学习任务指南中找到有关不同机器学习任务的输出列的详细信息。 https://docs.microsoft.com/zh-cn/dotnet/machine-learning/resources/basics
14.机器学习中的回归算法(上)在机器学习中有很多的算法,我们在之前给大家介绍了支持向量机算法,支持向量机算法是一个十分经典的算法,因此也备受大家喜欢。下面我们在这篇文章中给大家介绍一下回归算法,希望这篇文章能够帮助我们更好地理解机器学习的知识。 机器学习中有很多的方法,在大部分机器学习课程中,回归算法都是介绍的第一个算法。其中的原https://www.cda.cn/view/26882.html