3.1 基本形式
线性模型(linear model):试图学得一个通过属性的线性组合来进行预测的函数。比如已有2000年到2015年房价信息,线性模型学习其性质规律后预测2016,2017年房子价格。
一般向量形式:
f
(
x
)
=
w
T
x
+
b
f(x)=w^Tx+b
f(x)=wTx+b,比如说以下几种类型。
3.2 线性回归
线性回归(linear regression):试图学得一个线性模型以尽可能准确的预测实值输出标记。
凸函数:对实数集上的函数,可通过求二阶导数来判别:若二阶导数在区间上非负,则称为凸函数;若二阶导数在区间上恒大于0,则称为严格凸函数.
梯度:多元函数的一阶导数,向量
hessian矩阵:多元函数的二阶矩阵
注意:高数中的凸函数与机器学习中的凸函数相反。
1,一元线性回归
在3.1里确立了样本属性与预测值得线性模型之后,需要确定参数
w
w
w和
b
b
b,一般情况下有两种方式:极大似然估计法,最小二乘法都可以得到以下所示的损失函数。
预测值
f
(
x
)
f(x)
f(x)与真实值
y
y
y之间的损失函数如下:
欧式距离:即均方误差,对应了常用的欧几里得距离。
最小二乘法:基于均方误差最小化来进行模型求解的方法。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。
参数估计:因为
E
(
w
,
b
)
E_{(w,b)}
E(w,b)是凸函数,所以求解
w
,
b
w,b
w,b便是使
E
(
w
,
b
)
=
∑
i
=
1
m
(
y
i
−
w
x
i
−
b
)
2
E_{(w,b)}=\sum_{i=1}^m(y_i-wx_i-b)^2
E(w,b)=∑i=1m(yi−wxi−b)2最小化的过程,称为线性回归模型的最小二乘参数估计。
如下图所示,为参考的实现一元线性拟合数据。
一元多项式拟合:
2,多元线性回归
在一元线性回归的基础上,若数据集由d个属性描述,需要推广到多元线性回归上:
f
(
x
i
)
=
w
T
x
i
+
b
f(x_i)=w^Tx_i+b
f(xi)=wTxi+b.为了便于讨论,将
w
,
b
w,b
w,b转换成向量形式
w
⃗
=
(
w
,
b
)
\vec{w}=(w,b)
w=(w,b).把数据集D表示成一个m*(d+1)大小的矩阵X。则类似于3.4式有以下:
而后进行求解。由于未知变量个数多于方程组方程个数,此时方程组解不唯一。此时模型最终使用哪一组参数由其学习算法的归纳偏好决定,常见的作法是引入正则化(regularization)项。
以下是参考1中绘制的多元线性拟合数据:
3.3 对数几率回归
线性模型进行回归学习,但是如果要做分类,需要在线性模型的基础上套一个映射函数来实现分类功能。对数几率回归也叫做逻辑回归,是一种常见的分类方法。
对数几率函数:常使用sigmoid函数作为中间转换函数。
对数几率回归模型:
优点:是直接对分类可能性进行建模,无需事先假设数据分布,避免了假设分布不准确带来的问题;不仅预测出"类别",而是可得到近似概率预测;对率函数是任意阶可导的凸函数,有很好的数学性质;
注:Sigmoid函数将线性模型映射成了非线性模型。但是当z值很大或很小时,其导数趋近于0,会导致出现梯度消失的情况,可利用Relu函数。
对数几率回归的机器学习三要素:
1,模型:线性模型,输出范围[0,1],近似阶跃的单调可微函数
2,策略:极大似然估计,信息论-相对熵
3,算法:梯度下降,牛顿法
3.4 线性判别分析LDA
线性判别分析(Linear Discriminant Analysis):是一种经典的有监督数据降维学习方法,主要思想是将高维空间数据投影到较低维空间中。
PCA:无监督降维,LDA有监督降维
LDA思想:
1,投影后异类样本中心尽可能远
2,同类样本的方差尽可能小。
LDA可视化库:pyLDAvis—后续使用后填坑更新。
3.5 多分类学习
二分类学习方法可直接推广到多分类,利用二分类学习器来解决多分类问题。多分类学习的基本思路是拆解法即将多分类任务拆为若干个二分类任务求解。
一对一(One vs. One,简称OvO)
一对其余(One vs. Rest ,简称OvR)
多对多 (Many vs. Many,简称MvM).
3.6 类别不平衡
类别不平衡:就是指分类任务中不同类别的训练样例数目差别很大的情况
再缩放:大于正反例的比值,才能判为正。思想简单,操作困难。而且"训练集是真实样本总体的无偏采样"这个假设往往并不成立。
三种基本的解决方法:
欠采样:去除一些反例使正、反例数目接近,再进行学习。
过采样:增加一些正例使正、反例数目接近,再进行学习。
阈值移动:直接基于原始训练集进行学习,但在用训练好的分类器进行预测,更改决策阈值。
3.7 参考
1,最小二乘法 python实现