机器学习主要的目的是一种数学建模,利用已有的数据,去拟合一个规则的函数,从而来大概率的去预测未来的数据。
我主要把,如何利用建立这样的方程呢??代码的实现解释给简要的梳理。
1、监督学习(Supervised Learning)
定义:在已有的数据上进行训练。
分类:回归问题/逻辑回归问题(例如:房间结果预测是回归的、判断邮件是否为垃圾邮件为逻辑回归)
这里补充一句:回归指的是连续值,逻辑回归是离散值。
2、回归问题(房间预测)
写成向量形式:
回归问题中,利用假设的值和实际已有的y结果比较,得到误差函数。这里利用差的平方,可以消除负号的影响。
代价函数:
我们的目标是找到min(J),所以我们用梯度下降算法来实现求这个最小值。
2.1 梯度下降算法:
后面的和累加,可以写成矩阵形式:
通过不断刷新theta值,求得代价函数J的最小值。
2.2 特征放缩
有的时候我们的数据过大,会导致在使用梯度下降算法时候很难收敛,或者收敛很慢。我们利用特征方缩使得训练的值小的区间。
2.3 学习率选择
在每次梯度下降,迭代的时候会受学习率a影响,a太小,迭代次数多,收敛慢;a太大会错过局部的收敛点。
2.4 正规方程
相对于梯度下降算法求代价函数J的最小值,我们还可以利用正规方程去求J的最下值。
对J求导:
解:
利用微分直接求。
2.5 梯度下降和正规的比较
对于正规解法,会涉及到矩阵的可逆。当矩阵不可逆,我们又要用正规解法该如何???【现实问题中不可逆情况很少出现】
可以通过删除多余的特征值来解决。
3、逻辑回归(Logistic Regression)【邮件是否为垃圾邮件】
3.1 sigmoid function
3.2 判定边界
我们的假设函数,在处理数据的基础上在带入sigmoid函数,得到在0~1之间的值。
代价函数:
梯度算法求J的最小值
特征方缩依然是必要的
3.3 高级优化
调用高级优化函数fminunc 无约束最小化。
4 正则化
我们在利用梯度下降的时候会遇到一些over-fit的问题,所以我们要正则化技术。所谓的过拟合是指过分依赖原始数据,得到的函数能和原始数据完美拟合但是却失去了预测功能。
从假设函数来看,我们的X次数越高,对应的拟合越好,正则化就是要把这些高次的X给丢弃,得到适合的函数。
正则化代价函数:
lamda是正则化参数,当lamda过大,就会把参数过下化,造成欠拟合;相反如果过小,就会造成theta值为0,得到一条直线,所以合适的lamda选择很重要。
在前面介绍完,基本的回归和逻辑回归,简单介绍下正则化的回归和逻辑回归
4.1 正则化线性回归
正则化线性回归cost function:
梯度下降变化
我们可以看到,正则化的线性回归,是对原有的theta额外减少一个值。
正则线性回归
4.2 正则化的逻辑回归
对于逻辑回归我们用两种算法,一种是梯度下降,一种是更高级的优化算法。