西瓜书chapter3简摘

线性模型(liner model)

f ( x ) = w 1 x 1 + w 2 x 2 + … … + w n x n + b f(x)=w_1 x_1+w_2 x_2+……+w_n x_n+b f(x)=w1x1+w2x2++wnxn+b

也即

f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b

1.线性回归

通过算法求得f(x)近似于y,一般要使均方误差最小化

( w ∗ , b ∗ ) = a r g m i n ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 (w^* ,b^*)=arg min_{(w,b)}\sum_{i=1}^{m}(f(x_i)-y_i)^2 (w,b)=argmin(w,b)i=1m(f(xi)yi)2

一般利用最小二乘法进行计算找到w和b的最优解

  • 最小二乘法 对上式中的求和部分分别对w和b求导,分别令其为零,求得对应的最佳解。对应于线性模型中,也就是找到一条直线使,得所有样本到直线的欧式距离之和最小。
    对应于多元线性回归(矩阵),矩阵的微分要注意

∂ α T x ∂ x = ∂ x T α ∂ x \frac {\partial \alpha^T x}{\partial x}=\frac {\partial x^T \alpha}{\partial x} xαTx=xxTα
往往也求出的解不止一组,对应于选择哪一个结果作为输出,一般采用引入正则化项的方法

  • **广义线性模型 **模型的预测值往往与真实标记表现出非线性关系,此时可利用单调可微函数进行表示,将预测值与真实标记联系起来。 y = g − 1 ( w T x + b ) y=g^{-1}{(w^Tx+b)} y=g1(wTx+b)
  • 对数几率回归 对应于分类任务,其预测结果往往使非连续的、阶跃的(sigmoid函数输出),以二分类为例

y i = 0 o r 1 y_i=0 or 1 yi=0or1
y = 1 1 + e − z − − − − − − − − − − − − − − − − − − − − − − > l n y 1 − y = w T x + b − − − − − − − − − − − − − − − − − − − − − y 1 − y 称 为 几 率 \\y=\frac {1}{1+e^{-z}} \\--------------------- \\-> ln\frac {y}{1-y}= w^Tx+b \\ --------------------- \\\frac {y}{1-y}称为几率 y=1+ez1>ln1yy=wTx+b1yy

西瓜书chapter3简摘_第1张图片

  • 极大似然估计 根据先验 判定某种输出在某情况下的最大可能性

线性判别分析

  • Linear Discrlriminant Analysis,简称LDA
  • 给定训练样例集7设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别

西瓜书chapter3简摘_第2张图片

  • LDA可从贝时斯决策理论的角度来阐释,并可证明,当两类数据同先验、满足高斯分布且协方差相等时,LDA可达到最优分类.

多分类学习

  • 为解决多分类问题,一些基本策略是利用二分类学习器来解决多分类问题。
  • 先对问题进行拆分,然后为拆出的每个二分类任务训练一个分类器;
  • 在测试时,对这些分类器的预测结果进行集成,以获得最终的多分类结果。
  • 这里的关键是如何对多分类任务进行拆分,以及如何对多个分类器进行集成.
  • 最经典的拆分策略有三种.“一对一”(One vs One,简称OvO)、“一对其余”(One vs Rest,简称OvR)和"多对多"(Many vs Many,简称MvM).

西瓜书chapter3简摘_第3张图片

  • MvM 是每次将若干个类作为正类,其他类作为反类,其选取应当遵从一定的方法,避免重复或遗漏
  • 最常用的MvM技术"纠错输出码"(Error Correcting Output Codes,简称ECOC).
    1. 编码:对N个类别做M次划分,每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可训练出M个分类器.
    2. 解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码.将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果.

三、类别不平衡问题

如果不同类别的训练样例数目稍有差别,通常影响不大,但若差别很大,则会对学习过程造成困扰.例如有998个反例,但正例只有2个,那么学习方法只需返回一个永远将新样本预测为反例的学习器,就能达到99.8%的精度;然而这样的学习器往往没有价值,因为它不能预测出任何正例.

  • 类别不平衡(class-imbalance)就是指分类任务中,不同类别的训练样例数目差别很大的情况.
  • 解决方法:利用几率之比与正反样例数目之比,作为判定正反例的临界值(默认情况下是正反样例数相等,比值为1)。

y 1 − y > 1 时 , 判 定 为 正 例 \frac {y}{1-y}>1 时,判定为正例 1yy>1
y 1 − y > m + m − 时 , 判 定 为 正 例 {\frac {y}{1-y}} >{\frac {m^+}{m^-}}时,判定为正例 1yy>mm+
再 缩 放 − − − > y ‘ 1 − y ‘ = = y 1 − y ∗ m + m − m + m − 可 替 换 为 c o s t + c o s t − 作 为 错 误 分 类 代 价 再缩放--->\frac {y^`}{{1-y}^`}==\frac {y}{1-y} *{\frac {m^+}{m^-}} \\\frac {m^+}{m^-}可替换为\frac {cost^+}{cost^-}作为错误分类代价 >1yy==1yymm+mm+costcost+

  • 再缩放的思想虽简单,但实际操作却并不平凡,主要因为"训练集是真实样本总体的无偏采样"这个假设往往并不成立,也就是说我们未必能有效地基于训练集观测几率来推断出真实几率.现有技术大体上有三类做法:
    1. 第一类是直接对训练集里的反类样例进行"欠采样"(undersampling),即去除一些反倒使得正、反例数日接近7然后再进行学习;
    2. 第二类是对训练集里的正类样例进行"过来样"(oversampling),即增加一些正例使得正、反例数目接近,然后再进行学习;
    3. 第三类则是直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将式(3.48)嵌入到其决策过程中,称为"阔值移动"(threshold-moving).

你可能感兴趣的:(算法,python)