本文主要是介绍《机器学习(周志华)》Chapter3 线性模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本章介绍线性模型,性模型能解决哪些现实中的问题?主要有对连续数据的预测(回归问题)、二分类问题、线性判别分析(LDA)和多分类问题。
一、单变量线性回归、多变量线性回归
1、线性回归基本形式:
目的是训练出一组w和b使得y≈f(x),一般用均方误差度量即:
(上式也可以理解为求数据到直线的欧式距离最小)
要求出最小值,对3.4式求导后等于零即可求出:
2、多变量线性回归:
基本形式:
同理也是试图训练出w和b使得y≈f(x),同样使用最小二乘法,但转换成了向量形式:
其中
令导数等于零的:
最终多元线性模型为:
二、对数几率回归:
首先引入Sigmoid函数:
可以转化为:
称为几率,称为对数几率
将y视为类后验概率估计p(y=1|x),则:
通过极大似然法得:
其中
通过牛顿法可以迭代求出最优化参数:
三、线性判别分析:
LDA基本思想:将样例投影到一条直线上,使得同类投影点尽可能靠近、异类投影点尽可能远。公式不做详细介绍。
四、多分类学习:
文中介绍了基本思路“拆解法”,将N个类别拆分成若干个二分类问题,经典的拆分方式:“一对一”、“一对其余”、“多对多”。
“一对一”将N个类别拆分成N(N-1)/2个二分类任务,产生N(N-1)/2个分类结果,最终采用投票法来选择。
“一对多”将一个类的样例作为正例、其余作为反例。如果测试只有一个分类器预测为正类,则对应的类别标记作为最终分类结果,若有多个分类器预测为正类,通常考虑置信度大的类别。
如图:
“多对多”通常采用“纠错输出码”,两个步骤:
编码:对N个类别做M次划分,每次划分将一部分类别划分为正类,一部分划分为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可以训练出M个分类器。
解码:对M个分类器分别对测试样本进行测试,这些预测标记组成一个编码,将测试编码与类别编码对比,距离最小的即为最终类别。
海明距离:栗子C1与测试示例比较有3个学习器预测不一样,即海明距离为3
欧式距离:栗子C1与测试示例比较3个学习器预测不一样,2个相同,相同的差为零不考虑,不同的差的平方为4,3个即12,对12开方得
五、类别不平衡:
即正例与反例数量差别非常大,如998个反例,2个正例,对任何新样本返回反例就能达到99.8%的精度,毫无意义。
如何解决这个问题?采用再缩放:
《机器学习(周志华)》Chapter3 线性模型 课后习题答案
参考网址:
逻辑回归算法推导:
https://wenku.baidu.com/view/0a1952aedd3383c4bb4cd279.html?from=search
极大似然估计:
https://blog.csdn.net/yewei11/article/details/50537648
均值和期望的区别:
https://blog.csdn.net/Michael_liuyu09/article/details/77943898
协方差与协方差矩阵:
https://www.cnblogs.com/terencezhou/p/6235974.html
LDA:
https://www.cnblogs.com/pinard/p/6244265.html
这篇关于《机器学习(周志华)》Chapter3 线性模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!