机器学习其实就是通过大量数据得到一个数学公式,我们给电脑输入数据,电脑根据得到的公式算出结果。本着先从简单内容开始的原则,我先学习了线性模型,结果线性模型其实挺难,主要是大部分的内容都是公式,涉及到很多高数,线性代数和概率论的知识点。接下来开始正式的介绍。
首先,我们假设有d个属性描述的示例,。那么我们的目的就是要得到一个预测函数:
其中表示的长度为d的向量。
1. 线性回归
单属性--对应d=1
给定数据集 ,即数据集包括m条数据。我们根据该数据集求出。
既然要求出,那么我们需要一种判断方式,能够判断w和b是最优的。这里我们采用均方差最小时所对应的w和b。这里的均方差反应的是根据我们所得公式算出的结果y与真实的结果之间的误差,这个当然是越小越好。
我们令,那么我们要求的是该函数的最小值。二元函数求最小值求偏导(高等数学)即可。
得出偏导结果:
令,就是二元一次方程组。
得出结果 :
多属性--对应d>1
给定数据集D,样本由d个属性描述,共m个样本。
则我们要求的函数为:
令
表示数据集中y真实的值。
为什么要这么设呢?因为了方便表示
表示根据函数得出的y的预测值。
那么我们要求的就是:
这个表达式求得是向量的模长。
令
若为满秩矩阵(该矩阵可逆),那么
若不为满秩矩阵(大多数情况),那么对应的解就不唯一,选取哪一个解呢?引入正则化项!!!
补充:线性回归并不是仅限于上述表达,可以进行变形。
形如: 其中g函数为单调可微函数,称为广义线性模型。
2. 对数几率回归
对数几率回归要解决的问题是分类问题(0,1问题)。
简单表述:
这样的函数就能够进行分类问题,但是我们在计算中需要得到一个连续的函数。于是我们近似法。
,这样的指数函数,当z大于或小于0时,y会越来越接近0或1。
那当然我们要求的函数肯定不是这个函数,而是与第一节类型相似的函数。
. 进行变形
,y可以看作X为正例(y=1)的概率,(1-y)可以看作X为负例(y=0)的概率。
怎么理解呢?比如根据X预测y=0.7,那么她到底是正例还是负例呢?我们判断它有70%的概率属于正例。
就是“几率”,加上ln就是“对数几率回归”
又因为
解得:
通过概率论的“极大似然法”来估计参数w和b。
我们最终的要求是求得w和b使得每个样本属于其真实结果的概率和越大越好。
为了方便,我们令
这是关于的高阶可导连续凸函数,根据凸优化理论,经典的数值优化算法如梯度下降法,牛顿法可求得最优解。
。。。。。。
3. 线性判别分析-LDA
LDA的思想非常简单:给定训练集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例投影点尽可能远。
给定数据集 分别。。。。。