内容来自于《机器学习》
基本形式
线性模型试图学得一个通过属性的线性组合来进行预测的函数,即:
用向量的形式表示:
其中的参数学得之后,模型就得以确定。
线性模型形式简单、易于建模。许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或者高纬映射而得,此外,参数w可以直观表各个属性在预测中的重要性,因此线性模型有很好的可解释性。
线性回归
衡量f(x)与y之间的差别,均方误差。
基于均方误差最小化来进行模型求解的方法称为 最小二乘法。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。
向量求解
引入正则化
对数线性回归
广义线性模型
对数几率回归
线性回归—-> 分类任务,只需要找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。
单位阶跃函数
sigmoid函数即形似S的函数,对率函数是sigmoid函数最重要的代表。
将y视为样本x作为正例的可能性,则1-y是其反例的可能性,两者比值y/(1-y)称为几率,反映了x作为正例的相对可能性,对几率取对数则得到对数几率。
上述公式实际上是在用线性回归模型的预测结果取逼近真实标记的对数几率,因此,对应的模型称为对数几率回归(logistic regression)。名字中虽然有回归,但实际却是一种分类学习方法。
极大似然法来估计w和b。
线性判别分析
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法。
LDA的思想是给定训练样例集,设法将样例投影到一条直线上,使得同样样例的投影点尽可能接近、异类样例的投影点尽可能远离,在对新样本进行分类时,将其投影到同样的直线上,再根据投影点的位置来确定新样本的类别。
类内散度矩阵
类间散度矩阵
多分类学习
多分类学习的基本思路是拆解法
经典的拆分策略有:一对一、一对其余以及多对多。
假设有N个分类,一对一将这N个类别两两配对,从而产生N(N-1)/2个二分类任务。
一对其余是每次将一个类的样例作为正例,所有其他类的样例作为反例来训练N个分类器。
一对其余只需要训练N个分类器,而一对一需要N(N-1)/2个分类器。因此一对一的存储开销和测试时间开销通常比一对其余大。但在训练时,一对其余的每个分类器需要使用全部的训练样例,而一对一每个分类器仅用到两个类的样例,在类别很多时,一对一的训练时间开销通常比一对其余小。
多对多是每次将若干类作为正例,若干其他类作为反类。多对多的正反类构造必须有特殊的设计,不能随意选取。最常用的多对多技术,纠错输出码(Error Correcting Output Code 简称ECOC)
类别不平衡问题
类别不平衡就是指分类任务中不同类别的训练样例数目差别很大的情况。
类别不平衡的时候三类做法:欠采样、过采样、再缩放
欠采样:去除分类训练样例多的一些,使得不同分类样例数目接近。
过采样:增加分类训练样例多的分类样例,使得不同分类样例数目接近。
再缩放:直接基于原始的训练集进行学习,但在用训练好的分类器进行预测时,使用不同的缩放公式进行决策,称为阈值移动。
m+和m-分别表示正例数目和反例数目
最终的决策公式:
欠采样法的时间开销通常远远小于过采样法,因为前者丢弃了很多反例。过采样法不能简单地对初始正例样本进行重复采样,否则会招致严重的过拟合。过采样的代表性算法是SMOTE,通过对训练集里的正例进行差值来产生额外的正例。欠采样法若是随机丢弃反例,可能会丢失一些重要信息,欠采样法的带白哦性算法是利用集成学习机制,将反例划分为若干个集合供不同的学习器使用,这样对每个学习器都进行了欠采样,但是在全局看来不会丢失重要信息。
再缩放也是代价敏感学习的基础。