过去几个月,一直在学习机器学习模型,输入只是学习的一部分,输出可以帮助自己更熟练地掌握概念和知识。把一个复杂的事物简单的讲述出来,才能表示真正弄懂了这个知识。所以我将在博客中尽量简单地把这些模型讲述出来,以加深自己的掌握,也为他人提供一点点参考。在此感谢大神刘建平Pinard的博客,如有任何疑惑可参考该神博客,此作仅为狗尾续貂之作。
每个模型介绍都将用基本思想,输入,输出,损失函数,优化方法,伪代码来进行介绍
正文本篇介绍分类模型中的代数模型,分类模型我个人认为,根据基本数学方法进行分类,有代数模型,树模型,概率模型,其他。具体分类情况如下:
代数模型的意思是,我们总是运用Xθ+b=y的或者类似的形式来求得分类和回归的结果。这里样本矩阵(m*n),θ是我们要求的系数(n*1),乘积结果就是m个样本的回归结果。尽管我们后面可能进行激活函数的变换,但基本的数学方法就是如此。
1.线性回归 基本思想线性回归的基本思想在二维平面的展现就是:用一条直线来尽量拟合图中的点,让所有点到这条直线的距离最小,我们的目的是求得这样一条直线y=θx+b,在二维里θ是一个数,但在多维上,就是一个向量了。
输入输入是样本矩阵和样本的y(这个叫标签值)。比如一个如下的样本:
输出输出是系数向量θ
θ的解释:在本例里θ是一个形如(θ1,θ2,θ3,θ4)的向量,他们分别与身高年龄等特征相乘最后相加,得到发量y‘(y\'跟实际的y是有差距的,毕竟我们是拟合得来的,我们的目的就是通过损失函数的优化,让差距最小)。
θ的作用:当得到一个新的样本,有身高、年龄、性别、体重,我们用θ可以预测到发量,这就是回归。
损失函数模型的损失我们用均方差来度量,(y\'-y)2(这个也好解释,就是预测的y值与实际y值得差距),我们想得到一个θ让所有样本的均方差和最小,于是我们对θ求偏导等于0。
损失函数:所有样本的均方差和
(前面的1/2只是为了求导方便而添加的,不会影响求导结果:比如y=x2和y=2x2求导y\'=0结果都一样) 优化方法优化方法就是求极值的方法,对于线性模型,我们可以用梯度下降和最小二乘:
梯度下降:
(随便另一个初始θ,a是迭代步长,可以自己设定),迭代数次后θ变化不大,就可以得出结果了。这里求梯度是标量对向量的求导,运用的到公式主如下,非常简单就可以计算出来
最小二乘:
(是一种求解析解的方法,可以直接得到结果,但最小二乘有一些局限性) 伪代码输入特征矩阵X和y值
设定一个初始θ
循环
直到θ变化很小
输出θ
2.逻辑回归 基本思想逻辑回归的基本思想在二维平面上借鉴线性回归,我们想要一条线把二维平面上的两类点尽量分开。我们再把结果y用一个函数g(激活函数)投射到一个有限的空间(0-1)里面去,这样我们就能通过判断g(Y)的值来判断类别。比如g(Y)>0.5是1类,g(Y)<0.5是0类。(为什么要用这个激活函数?个人理解它非常适合我们的1、0概率模型)