【菜鸟笔记|机器学习】线性模型

理论部分:

线性模型是最基础的模型,便于我们掌握机器学习的基本方法。机器学习可以分为两大类任务:回归任务,分类任务。因此我把线性模型做如下分类:
【菜鸟笔记|机器学习】线性模型_第1张图片
一、线性回归
机器学习,就是根据已知数据,学习出一个数学函数。对于线性回归,需要学习的函数形式为:
在这里插入图片描述
只要学得了其中的ω和b,模型就被确定了。确定参数的关键在于衡量预测输出f(x)与实际输出y之间的差距。
1.二元线性回归
二元线性回归需要学的函数为:

利用最小二乘法,基于均方误差最小化进行模型求解,求ω和b使得E(ω,b)最小:
在这里插入图片描述
对函数求一阶偏导,分别令其等于零即可求得相应参数。
2.多元线性回归
二元线性回归只有一个属性,也就是只需要学习一个权重。而多元线性回归有多个属性,需要学习多个权重(属性数为d,样本数为m):
在这里插入图片描述
写成矩阵形式为:
在这里插入图片描述
为便于计算,将ω和b合为:在这里插入图片描述

依然是使用最小二乘法计算预测输出与实际输出的差别,化简后的均方误差为:
在这里插入图片描述
【菜鸟笔记|机器学习】线性模型_第2张图片
对均方误差求一阶导,令其等于零即可求得参数。(此处涉及到矩阵微分公式)

二、逻辑回归
1.二分类学习
对于二分类任务,最理想的就是阶跃函数。但是阶跃函数不连续,因此使用单调连续的对数几率函数作为替代,带入权重和偏差,预测函数为:
在这里插入图片描述
求几率,并对几率取对数,即可进行预测。其值为正则为正样本,其值为负则为负样本:
在这里插入图片描述
同样求得ω和b就求得了模型。将ω和b合成为β=(ω;b),用极大似然法计算β。在概率统计课中学到的极大似然法,写出似然函数后对其取对数,然后求导等于零就能求得相应参数,但是西瓜书上写用梯度下降法和牛顿法进行数值优化,这块我没看懂……应该是还要通过多次迭代更新参数使之接近最优解的意思。
2.多分类学习
多分类其实是被分为了多个二分类问题。将多分类转化为二分类有三种方法:OvO, OvR, MvM。OvO就是简单的两两匹配,统计样本在每个分类器之中的分类结果,结果出现最多的那个就是最终预测结果。OvR就是一个类别为正,其他所有类别都为负,样本在所有分类器中唯一判别为正的结果即为最终预测结果。MvM是若干类为正,若干类为负,这种划分方法需要特殊的设计。

实验部分:

sklearn逻辑回归实现mnist分类

相关网址:
sklearn逻辑回归官网文档
sklearn逻辑回归类使用说明
sklearn逻辑回归实现mnist分类官方代码
mnist数据集下载网址
关于sklearn有两点说明:
1.在sklearn中的逻辑回归加入了正则化,有l1和l2两种。正则化就是在代价函数后面加一个惩罚项,为了防止过拟合。
2.sklearn中有ovr和multinomial两种多分类划分方式。multinomial具体怎么划分的我还不太清楚,我觉得应该算MvM的一种吧。
这个代码我没有改直接运行了一下。它用的l1正则化以及multinomial法。比较直观的是它把模型可视化了,蓝色为正样本,橘色为负样本:
【菜鸟笔记|机器学习】线性模型_第3张图片

你可能感兴趣的:(机器学习)