机器学习算法(二)——LR算法

徘徊边缘 提交于 2019-12-16 16:07:49

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一、算法简介

线性回归算法(Linear Regression),即LR算法。

再讲解LR算法之前,我们先学习一下什么是线性?什么是非线性?

我们首先用弄清楚什么是线性,什么是非线性。

- 线性函数的定义是:一阶或零阶多项式。
- 特征是一维时,线性模型在二维空间构成一条直线;
- 特征是二维时,线性模型在三维空间中构成一个平面;
- 特征是三维时,则最终模型在四维空间中构成一个体;以此类推…

那么回归又是什么意思呢?

- 回归:人们在测量事物的时候因为客观条件所限,求得的都是测量值,而不是事物真实的值。

- 为了能够得到真实值,无限次的进行测量,最后通过这些测量数据计算回归到真实值,这就是回归的由来。

通俗的说就是用一个函数去逼近这个真实值,那又有人问了,线性回归不是用来做预测吗?是的,通过大量的数据我们是可以预测到真实值的。

二、算法原理

线性回归:就是能够用一个直线较为精确地描述数据之间的关系,这样当出现新的数据的时候,就能够预测出一个简单的值。

线性回归才是真正用于回归的,而不像logistic回归是用于分类,基本思想是用梯度下降法对最小二乘法形式的误差函数进行优化

线性回归一般用于解决什么问题

寻找到数据与数据之间的规律所在,从而就可以模拟出结果,也就是对结果进行预测。

解决的就是通过已知的数据得到未知的结果。例如:对房价的预测、判断信用评价、电影票房预估等。

三、算法要点

1、一元线性回归

在中学的时候,我们都学过二元一次方程。我们将y作为因变量,x作为自变量,得到方程:

y = ax + b

当给定参数 a b的时候,画在坐标图内是一条直线(这就是“线性”的含义)。

当我们只用一个x来预测y,就是一元线性回归。

线性回归就是要找一条直线,并且让这条直线尽可能地拟合图中的数据点。

2、损失函数

由于理论和实际之间会存有一定得误差,我们使用μ用来代表误差。

此时方程变成了:

y = ax +b + μ

残差,就是真实值和预测值间的差值(也可以理解为差距、距离),用公式表示是:

计算的值,再将其平方(为了消除负号),对于我们数据中的每个点如此计算一遍,再将所有的相加,就能量化出拟合的直线和实际之间的误差。

用公式表示就是:

这个公式是残差平方和,也叫均方误差(MSE),还叫欧氏距离(用于计算点间的距离,记住这个名称,以后我们会经常提到),在机器学习中它是回归问题中最常用的损失函数。

这里的这个损失函数就是著名的最小二乘损失函数,这里还涉及一个概念叫最小二乘法,这里不再展开了。

我们要使得最接进真实值。

这个问题就转换为使损失函数取最小值。那么如何解决这个转化后的问题呢?这又牵扯到一个概念:梯度下降(Radient Descent)

3、最小二乘法

在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线的欧式距离最小之后最小。

4、梯度下降法

梯度是一个向量,即有方向有大小,它的方向是最大方向导数的方向,它的值是最大方向导数的值。

从任意点开始,在该点对目标函数求导,沿着导数方向(梯度)“走”(下降)一个给定步长,如此循环迭代,直至“走”到导数为0的位置,则达到极小值。

四、优缺点

线性回归的几个特点:

  • 优点:

    (1)思想简单,实现容易。建模迅速,对于小数据量、简单的关系很有效;

    (2)是许多强大的非线性模型的基础。

    (3)线性回归模型十分容易理解,结果具有很好的可解释性,有利于决策分析。

    (4)蕴含机器学习中的很多重要思想。

    (5)能解决回归问题。

  • 缺点:

    (1)对于非线性数据或者数据特征间具有相关性多项式回归难以建模.

    (2)难以很好地表达高度复杂的数据。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!