我眼中的机器学习(三) 如何寻找模型的最优解

前面两篇文章, 我们先是通过三个非常简单的数学例子了解了机器学习的基本流程(训练, 预测). 接着为大家解释了为什么大家早就学会解方程了, 还需要用到机器学习技术. 我们接下来要讲的是机器学习算法怎样为我们在无数个可能的模型中找出最有可能正确的(最优的)那个模型.

首先在上一篇文章中, 有朋友提问 "为什么认为找出来的模型是最优的,怎么判断它是不是最优的,依据是什么"
机器学习没办法为我们找到百分百正确的模型, 但是机器学习可以帮我们找到出错概率最低的模型, 或者说将该模型应用回历史数据时, 该模型能够保证他的误差比其它模型小, 或者说误差小到你可以接受的程度.

对于这一类的问题, 在机器学习任务集里有一个单独的任务类别, 我们称之为回归任务(Regression). 在统计分析中也被称之为回归分析(Regression_analysis). 关于回归分析专业解释可以参考 Wikipedia的 回归分析(Regression_analysis)词条 或者智库百科的 回归分析预测法 词条.

回归分析通常依据数据的特性(最终得到的数学模型是线性的还是非线性的)又分为线性回归与非线性回归. 不过很多复杂的社会现象或者金融模型都是基于非线性的回归计算.

线性与非线性的区别就是线性方程式与非线性方程式的区别(再通俗点就是 在二维平面中, 直线就是线性的, 抛物线就是非线性的, 在三维空间中, 桌面就是线性的, 篮球的表面就是非线性的). 通常来说, 线性回归比非线性回归拟合起来会更容易一些.

回归计算最早使用的是最小二乘法(least squares)来计算的, 而且直到现在最小二乘法仍然是最流行的分析方法之一. 最小二乘法不仅能够用于线性回归的拟合(性线最小二乘法也称为普通最小二乘法 ordinary least squares (OLS) or ordinary least squares), 同样能够用于非线性回归的拟合(non-linear least squares). 最小二乘法的思路是最小化所有样本在最终模型下的错误平方差之和 (minimizes the sum of the squares of the errors made in the results of every single equation) . 换句话说, 最小二乘法的原理就是保证得到的最终的模型在无数个可能的模型中的误差是最小的.

接下来我们来先通过一个简单的例子 来使用最小平方差原理寻找最优解

假设
已知有一种植物,经过3年时间的观察
第1年时, 植物高度到1米
第1.5年时, 植物高度为1.2米
第2年时, 植物高度为2米
第2.5年时, 植物高度为2.2米
第3年时, 植物高度为2.5米,
现在需要预测植物在第四年的高度为有多少米

将年限看作X轴, 将植物高度看作Y轴我们可得历史坐标点 (1,1), (1.5,1.2), (2,2), (2.5,2.2), (3,2.5)
直接从图中也可以发现, 无法作一条直接同时通过五个点

从方程组的角度,
当我们把五个点整理成方程组时, 由方程1与方程2联立也可知该方程无解
x-y=0 ---------------(1)
1.5x-1.2y=0---------(2)
2x-2y=0-------------(3)
2.5x-2.2y=0---------(4)
3x-2.5y=0-----------(5)

因此, 常规的解方程思路在这里走不通.
但是, 这么简单的问题, 无数位前辈们早已将其研究烂了, 所以直接给这类 普通最小二乘法给总结了公式出来了


方法一: 使用普通二乘法计算公式

(这不是我们接下去的重点, 因为这算是特例, 公式在非线性方程时就不适用了, 之所有介绍这种计算方式是因为, 在计算二元线性回归时, 这么计算很方便很直接)

首先假设最终的模型为
$$\hat{Y}=aX+b$$
第一步: 计算x与y的平均值(也叫期望)
$$ N =5$$

$$\sum{x} = (1+1.5+2+2.5+3)=10$$
$$\sum{y} = (1+1.2+2+2.2+2.5)=8.9$$
$$\bar{X} = \frac{\sum{x}}{N}=(1+1.5+2+2.5+3)/5 = 2$$
$$\bar{Y} = \frac{\sum{y}}{N}=(1+1.2+2+2.2+2.5)/5 = 1.78$$

第二步: 计算模型中的斜率(slop) a
$$slop =\frac{Covariance(x,y)}{variance(x)}=\frac{\sum\limits_{i=1}^n(x_i-\bar{x}_i)(y_i-\bar{y}_i)}{\sum\limits_{i=1}^n(x_i-\bar{x})^2}=\frac{0.4}{0.5}=0.8$$

第三步: 计算模型中的截距(y-intercept) b
$$b=\bar{Y}-a\bar{X}=1.78-0.8\times2=0.18$$

利用得到的斜率与截距, 我们就能够得到我们想要的数学模型了
$$\hat{Y}=0.8X+0.18$$

所以第四年的植物高度为 将x=4代入 数学模型中我们可以得到第四年的 植物高度为3.38

方法二: 使用最小化误差的思想


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值