机器学习 --- 1. 线性回归与分类, 解决与区别

机器学习可以解决很多问题,其中最为重要的两个是 回归与分类。 这两个问题怎么解决, 它们之间又有什么区别呢? 以下举几个简单的例子,以给大家一个概念

1. 线性回归

回归分析常用于分析两个变量X和Y 之间的关系。 比如 X=房子大小 和 Y=房价 之间的关系, X=(公园人流量,公园门票票价) 与 Y=(公园收入) 之间的关系等等。

那么你的数据点在图上可以这么看

《机器学习 --- 1. 线性回归与分类, 解决与区别》

现在你想找到 房子大小和房价的关系, 也就是一个函数f(x) = y. 能够很好的表示 这两个变量之间的关系。

于是你需要大概评估一下这个 房子大小和房价大概是一个什么关系.

线性的关系吗? 还是非线性的关系?

《机器学习 --- 1. 线性回归与分类, 解决与区别》

当然在这个问题里面, 线性的关系更符合这两者的关系。于是我们 选择一个合适的 线性模型, 最常用的是 f(x) = ax+b. 

然后用这个线性的模型 去 匹配这些数据点。

1.1 怎么匹配? 

有了数据点 和 你臆想出来的线性模型,怎么进行匹配,也就是怎么用这根线最好地描述些数据点的关系?

需要最好地描述点, 我们又需要一个关于“好”的定义。你也可以想出很多关于“好”的定义。下面有两个,

《机器学习 --- 1. 线性回归与分类, 解决与区别》

这两个定义都是 将模型与数据点之间的距离差 之和做为 衡量匹配好坏的标准。  误差越小,  匹配程度越大。

但是 总的来说, 我们想要找到的模型, 最后是想要使 f(x) 最大程度地 与y相似, 所以我们想要尽量地减少 f(x)与y之间的差值。 所以在这里 用第二个图的“好的定义” 来评估这根线的匹配程度是很合理的。于是我们有了误差公式!!!!!

《机器学习 --- 1. 线性回归与分类, 解决与区别》

这个公式,说的是,可以通过调整不同的a 和 b的值,就能使 误差不断变化,而当你找到这个公式的最小值时,你就能得到最好的a,b. 而这对(a,b)就是能最好描述你数据关系的模型参数

1.1.1 沿导数下降法(Gradient Descent)

怎么找 cost(a,b)的最小? cost(a,b) 的图像其实像一个碗 一样,有一个最低点。 找这个最低点的办法就是,先随便找一个点(e.g. a=3, b = 2), 然后 沿着这个碗下降的方向找,最后就能找到碗的最低点。

《机器学习 --- 1. 线性回归与分类, 解决与区别》

cost(a,b) 的形状

怎么找(某一点)碗下降的方向?? 答案是,找那一点导数的反方向。拿参数a 举个例子,  a与cost 关系如下图,

《机器学习 --- 1. 线性回归与分类, 解决与区别》

只要将任意一个a, 沿着使cost 导数的反方向 慢慢移动,那么 最终有一天a值就会到达使 cost 最小的那一点. 于是你可以不断地移动a,b, 向着最低点前进。

《机器学习 --- 1. 线性回归与分类, 解决与区别》

《机器学习 --- 1. 线性回归与分类, 解决与区别》

当然在进行移动的时候也需要考虑,每次移动的速度,也就是\Alpha的值,这个值也叫做(学习率). 学习率的增大可以加速参数逼近最优的情况, 但是如果在快要到达函数的底端的时候,需要减小学习率,以免出现cost 不断增大或者不停摆动的情况(如下图, J(a,b)就是cost(a,b) )。 所以说,当出现以上两种情况时候,我们应该果断选取一个较小的学习率, 以保证cost能减少到一个稳定的值(我们称为 收敛converge). 

《机器学习 --- 1. 线性回归与分类, 解决与区别》

1.1.2 直接求解最小点方法

这时候,有的人会问,为什么要让a不停地往下跑呢? 而且还需要设定学习率, 多麻烦, 直接让找 导数为0点(最小极值), 不就可以了吗? 嗯。。。也可以…但是各有优缺,

具体方法和优劣分析可见abcjennifer 的博客: http://blog.csdn.net/abcjennifer/article/details/7700772

总结一下:  回归问题的解决方法是:

     1. 假定一个模型   2.  定义什么叫做最好的匹配(构造误差函数)   3. 用这个模型去匹配已有的数据点(训练集)

需要进一步讨论的问题:

  • 如果参数(a,b)更多了该怎么办?
  • 如果最合适的匹配模型并不是线性的怎么办?   --- 选用一个 非线性模型  比如  y = ax^2 + bx + c.
  • 如果误差(cost)与a,b(模型参数)的关系不是像碗一样的, 而是凹凸不平的该怎么办? ——   这时候你就得注意你得到的cost的最低点(局部的最低)可能因初始点的不同而不同。 而这些最低点你需要进行比较,以确定是不是全局的最低

2.分类(Logistic regression)

分类问题也是一类很常见的问题。 比如说,怎么判定一个人是高富帅还是吊丝? 假如我是中央电视台的记者,采访了N个人, 拿到了第一手资料。资料如下
《机器学习 --- 1. 线性回归与分类, 解决与区别》

我们想要根据一个人的口袋钱数量,来预测一个人是(富帅) 还是 (吊丝).  我们能不能用回归的方法做呢?
显然是可以的, 我们只要找到一个模型,然后再进行匹配就可以了。 但是因为分类问题的y值常常是一些离散的数字,(比如, 富帅为1, 吊丝为0), 所以我们已经不能用一个
简单的线性函数来拟合这些数据了。我们需要一个更逼真的模型。 

于是我们引入了一个更适合处理分类问题的函数— 一个
非线性函数, 阶跃函数。
《机器学习 --- 1. 线性回归与分类, 解决与区别》

这个函数的形状更像我们分类问题的数据分布,所以,用他来拟合分类问题的数据将
更适合! 所以我们有了一个新的模型, 
《机器学习 --- 1. 线性回归与分类, 解决与区别》

通过调整a,b 的值,可以让模型不断改变以匹配数据点。 为了匹配数据点,我们又需要一个衡量匹配程度的函数,就像 回归问题一样的cost 函数. 于是同理我们可以得到cost
《机器学习 --- 1. 线性回归与分类, 解决与区别》

于是我们急切地想要把它用我们之前的gradient descent 的方法求解出使cost 最小的两个a,b值。 但是很遗憾的是, 这个cost函数关于a,b,是非凸(non-convex)的。 就像下面那张图那样坑坑洼洼。。。

《机器学习 --- 1. 线性回归与分类, 解决与区别》

所以你
没有办法通过以上两种方法(1.1.1和1.1.2)求出这个cost函数的
全局最小值。 所以你需要构造一个更好的cost函数, 在可以
衡量拟合程度的同时 又是
一个关于a,b 的凸函数(像回归问题的cost一样,和一个碗一样,只有一个极小值).  这怎么构造啊….
《机器学习 --- 1. 线性回归与分类, 解决与区别》

幸好我们还有各种伟大的数学家,他们夜以继日,终于赶制出了一个形状和碗一样(convex)的cost函数. (Maximum Likelihoods Estimation 更具体的介绍请看
http://www.holehouse.org/mlclass/06_Logistic_Regression.html )
《机器学习 --- 1. 线性回归与分类, 解决与区别》

现在我们又可以用我们熟悉的 导数方向下降法(gradient descent) 移动a, b的值,使cost 降低到最小。

《机器学习 --- 1. 线性回归与分类, 解决与区别》

《机器学习 --- 1. 线性回归与分类, 解决与区别》

最后,分类的问题就这样被解决了。

当然,更复杂的问题可能有:

  • 现在是分成两类,如果数据需要分成三类或者更多该怎么办?  —- 假如有A,B,C三类, 把其中A类做为1,BC做为0,然后做Logistic regression, 得到模型a, 同理将B类做为1,AC作为0,得到模型b, 再同理得到模型c.    最后测试的时候, 对任意一个数据点x, 我们能够得到x分别属于A,B,C三类的概率值 

《机器学习 --- 1. 线性回归与分类, 解决与区别》

最后比较大小,哪个大,这个x就属于哪一类
             具体可看, 
http://blog.csdn.net/abcjennifer/article/details/7716281 (七)

3.总结(两个问题的区别)

这篇文章大概的意图是能想让大家了解, 机器学习中最基本的两类问题,线性回归和分类。 能让大家有个清晰的思想,对于这两类问题都有以下几个步骤,

  • 如何选取一个 合理的模型(线性的,or 非线性的(e.g. 阶跃函数, 高斯函数)).
  • 制造一个”美好”的 误差函数 (可以评估拟合程度,而且还是convex函数)
  • 采取一切可能的技术(e.g. 导数下降法,解极值方程法) 求出最好的模型参数

谈谈回归和分类的区别: 总的来说两个问题本质上都是一致的,就是模型的拟合(匹配)。 但是分类问题的y值(也称为label), 更离散化一些. 而且, 同一个y值可能对应着一大批的x,  这些x是具有一定范围的。  所以分类问题更多的是 (一定区域的一些x) 对应 着 (一个y).   而回归问题的模型更倾向于 (很小区域内的x,或者一般是一个x)  对应着  (一个y).

在把一个问题建模的时候一定要考虑好需求,让你的模型更好的与现实问题相对应。

    原文作者:道路修建问题
    原文地址: https://blog.csdn.net/ppn029012/article/details/8775597
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞