机器学习(周志华)

绪论

机器学习是致力于通过计算手段,利用经验来改善系统性能的学科

模型推理结果,如果是离散的则为分类,连续的是回归

机器学习与归纳偏好,通过数据的特征判断一些指标,比如书中举例通过色泽等判断西瓜好坏

发展历程:推理期(七八十年代)->知识期(七十年代开始)->学习期(从样例中学习,八十年代开始)->统计学习(九十年代中期),在这过程中反复进入高潮与低谷的深度学习,或者连结主义学习,就是至今依然热门的深度学习

应用:计算机视觉-图片,视频,自然语言,语音,天气预报,能源勘测,环境监测,客户数据分析,搜索,自动驾驶,

第二章 模型评估与选择

  • 过拟合与欠拟合,新增一个过拟合与欠拟合的形象例子,样本中的树叶都有锯齿,推理的时候会认为没有锯齿的树叶就不是树叶,这样就是过拟合,记住了不一般化的特征;把树推理成叶子,这是欠拟合,知识学习的不够充分。经典的例子是曲线回归,过拟合是记住太多的点,欠拟合是模型表示能力太差记不住曲线的整体走向

  • 留出法,将数据分成两部分,一部分用于训练一部分用于测试,多次划分取平均,除了划分可能允许重叠,感觉说的比交叉验证更宽泛

  • 交叉验证,划分为互不重叠的几部分,一部分用于验证,其他的用于训练,循环,直到所有的数据都曾被用于测试用

  • 自助法,从一个数据集中不停的重复采样,直到新的数据集中包含样本的数量和原始数据集样本数量一样,未取到的样本作为测试集,取到的作为训练集

  • 查准率与查全率,以二分类为例,查准率是预测为正例的结果中,把正例预测为正例的概率,查全率是正例被预测为正例的概率,前者按照被预测为正例的角度看待,后者从样本正例角度看待

    | | 预测结果 | |
    | ——– | ——– | —- |
    | 真实情况 | 正例 | 反例 |
    | 正例 | TP | FN |
    | 负例 | FP | TN |

​ 查准率:$\frac{TP}{TP+FP}$ 查全率:$\frac{TP}{TP+FN}$

  • ROC曲线,$\frac{TP}{TP+FN}$做横轴$\frac{FP}{FP+TN}$作纵轴
  • 代价敏感错误率,把健康人预测为病人和把病人预测为健康人都算一次出错,但是实际上代价是不一样的,前者再检查一次,后者更严重
  • 比较检验 ~

第三章 线性模型

  • 线性模型,多元一次函数,连续的叫回归,离散的叫分类
  • 线性判别分析,样本是给定的,目的是要找到一条直线,使得同类样本投影尽可能的接近,不同类别的投影尽可能分开
  • 多分类学习,分为ovo,ovm,mvm,一对一就是找很多分类器,所有的分类结果中,出现最多的那一类即为要分类的结果,ovm,某一个类为正类,其他的归为负类,某次预测中正类即只包含一个类的类别被预测出,该类为要分类
  • 类别不平衡问题,正类负类比例不平衡,常用的办法是过采样或欠采样,即将多的负类样本欠采样出和正类差不多数量多样本,或将少的一方重复采样到和多多差不多的数量样本

第四章 决策树

  • 划分选择,有多个属性的时候怎么决定哪个属性先划分哪个属性后划分,基于信息增益的决策办法$Ent(D)=-\sum_{k=1}^{y}p_klogp_k$,$Gain(D,a)=Ent(D)-\sum_{v=1}^{v}\frac{|D^v|}{D}Ent(D^v)$,它的基本含义是,在当前的所有属性中,计算所有属性(比如色泽)的的信息增益,计算到Grain最小的那个作为这次决策的因素,再从划分出来的子集中循环这个公式,直到划分完全
  • 预剪枝,在规划的过程中提前结束决策分支,比如书中的例子先按脐部分完应该按色泽分了,但是分了之后正确率反而降低了,这时候就结束这个点的决策。之所以正确率更低了是因为拥有这两个属性的瓜中既有好瓜,也有坏瓜,怎么分都分不不开,这个就是欠拟合了
  • 后剪枝,先生成决策树,在自底到上计算每个非叶子结点,看看这个节点要不要合并为叶子结点,如果合并后正确率更高就合并,称为剪枝

第五章 神经网络

  • 多层感知机,前馈神经网络,一层解决与,或,非等问题,异或则需要多层神经网络解决
  • BP,反向传播,$y=ax+b$,对a求导,a是关于x的表达,通过样本就能得到a
  • 局部最小与全局最小,跳出局部最小的办法通常有模拟退火,每次迭代都以一定概率接受比以前更差的结果;随机提督下降,随机的样本能帮助跳出局部最小,挖坑,不是很理解;遗传算法,
  • 其他常见神经网络,RBF,单隐层前馈神经网络,使用径向基函数作为激活函数;ART网络,每次只有一个输出节点的数据胜出,比较的原理是计算每个输入与识别层节点的距离;SOM网络,竞争学习型,能将高位数据映射到低维度;Elman网络,循环神经网络,输出输入给自己,构成时序序列;玻尔兹曼机,一层输入,一层隐藏层,一层输出,用的多的是受限玻尔兹曼机,0,1取值;深度学习,卷积,激活,pool堆叠。

##第六章支持向量机

  • 支持向量机,存在一个超平面将样本分开,距离超平面最近都点称为支持向量,找出最大间隔的超平面就找到了模型,$wx+b=0$要找到w和b
  • 核函数,低纬线性不可分,将原始样本空间映射到高维使得线性可分,划分平面函数$f(x)=w^T\phi(x+b)$,其中$\phi(x)$是对函数升维,现在用一个函数替代升维函数,$f(x)=\sum_1^m\alpha_iy_ik(x,x_i)+b$,其中k是可函数,一共有m个样本
  • 软间隔,划分超平面不要求全部将样本分开,允许一定的误差
  • 支持向量回归,回归在一个向量带上,而不是通常的一条直线

第七章 贝叶斯分类器

疑问:表4.3类先验概率8/17, 9/17是怎么计算得到的?

公式:$P(y_i|x)=\frac{P(x|y_i)P(y_i)}{P(x)}$

解释:我们想要知道某个样本x的分类y,可以通过过往统计数据的样本概率得出,具体的说就是通过知道具体某一个分类下,样本x的所有特征的概率

举例:smn真假用户判别,类别有真假,x有三个特征,日志数/注册天数,用户数/注册天数,是否使用真实头像,目的是给出一个x后要判断出是真假用户,可以计算样本数据中归为真用户的三个特征下的概率,再通过公式,计算真用户下三个特征概率乘积和假用户下三个特征乘积概率的对比,哪个大就分为哪个类别

参考:http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html

西瓜书好坏瓜分类:目的是要测试具有一组特征的习惯是好还是坏。通过样本,先计算每个特征的条件概率,再计算每一个的类的概率,最后将预测的独立分布的概率乘起来,得到最终的分类概率,取大的那一类

贝叶斯的核心就是已知x的输入(特征),想要求出类别,转换为已知分类的特征概率乘积,后者是知道的

第八章 集成学习

多个基学习器共同决策,形成最终的结果,bagging通过对样本扰动,每个基学习器学习不同的子集,共同决策出最终结果

id3用所有特征中信息增益最高的作为分类点,cart用平方最小误差或者基尼指数最小准则作为分类或者回归,对每个给出的样本在某个特征上进行决策

随机森林,对总体的数据集随机采样出多个子集,每个子集训练一个cart决策树,多个决策树按一定的权重共同决策

第九章 聚类

  • K-means, 初始化要聚类的个数k,初始化k个中心点,计算所有样本到k个中心点的距离,将其归为最近中心点的一类,结束归类后重新计算每一类的中心点,再重复上面的步骤
  • LVQ,假定数据都有类别,比如西瓜数据集中都被标记为好瓜和坏瓜的类别,初始化q个原型向量,再将每一个样本与原型向量依次做对比,选择距离最近的一个,如果类别相同,让原型向量与样本以学习率靠近,反之则远离
  • 密度聚类,选一些初始核心对象,在密度可达-其实就是离的近的点-的点归为一类,即两个点是否在一个$\epsilon$的距离内,将已经分类的样本除去,将剩下的样本重复以上操作,聚出不同的类,直到总的样本为空

第10章 降维与度量学习

  • k临近 从样本中选择与目标样本距离最近的k个点,统计这k个点中的分类,将类别最多的一个赋予改样本