文章目录
第一章 绪论
-
什么是机器学习
-
基本概念
- 有监督学习
- 无监督学习
- 输入与输出空间
- 训练集
- 假设空间Н
- 奥卡姆剃刀(Occam’s razor)原则
- 回归(regression)和分类(classification)
-
常用评价指标
- 错误率E=α/m
- 正确率或称准确率Acc=1-E
- 误差(error)
- 经验(训练)误差
- 泛化误差(generalization error)
- 方差和均方差
- E(f;T) = 1/m∑i=1m(f(xi)-yi)2
- σ= E(f;T)1/2
- 过拟合(over-fitting)欠拟合
- 置信度(confidence level)
- 置信区间
-
常用公式和函数
- 欧氏距离d(P1,P2) = ((x1-x2)2+(y1-y2)2)1/2
- 曼哈顿距离(街区距离)d(p1,p2) = |x1-x2|+|y1-y2|
- 闵可夫斯基距离d(A,B) = (∑k=1n(|xk-yk|p))1/p
- 海明距离-对应位置的不同字符数
- 杰卡德(Jaccard)相似度 J(A,B) = |A∩B| / |A∪B|
- 余弦相似度cos(Θ)=(a.b) /(||a||×||b||)
- 先验概率P(A)
- 联合概率P(A,B) = P(A) ×P(B)
- 条件概率(后验概率)P(B|A) = P(A,B)/P(A)
- 正态分布(高斯分布)
- 符号函数sign
- 指示函数
- 损失/代价函数(loss function)L(y,f(x))
- 0-1损失函数
- 平方损失函数
- 绝对损失函数
- 对数损失函数
- hinge损失函数 max(0,1-z)
- 指数损失函数
- 阶跃函数sgn
- sigmoid函数
- 正则化(regularizayion)
- 正则化方法
- 不适定问题
- 目的:防止过拟合
- 本质:约束(限制)要优化的参数
- 正则化通过添加一些约束,使原问题解空间得到了压缩,简化了模型。
- 测试集组织
- 留出法(hold-out)
- 交叉验证法(cross validation)
- 自助法(bootstrapping)
第二章 贝叶斯分类器
单属性情况
派的样例-贝叶斯公式为:
P(pos|thick)=P(thick|pos)×P(pos)/P(thick)
P(neg|thick)=P(thick|neg)×P(neg)/P(thick)
分母一致故只需要计算分子比较大小
离散多属性情况
朴素贝叶斯假设 P(ci|x)=P(x|ci)P(ci)/P(x)
朴素贝叶斯分类器-argmax(P(ci)*连乘P(x|ci))
- 属性之间不相互独立
- case1: 可以忽略影响
- case2: 不能忽略影响时,计算P(x|cj)可采取的办法有
- 采用更加复杂的公式或方法
- 去除冗余的属性
- 用一个新的属性替换相关联的属性
- 采用其他分类方法
例子-判断类别
- 朴素贝叶斯分类算法
- 属性少的时候
- 问题
- 未覆盖全样本空间->概率0 -拉普拉斯修正
- 稀少事件的概率估算 -使用m-估值
连续属性情况
- 离散化方法
- 概率密度函数
贝叶斯公式
p(ci|x)=p(x|ci)P(ci)/p(x)
x处的概率密度函数为:
p(x|ci|)=∏p(xi|cj)
高斯钟形函数–近似计算概率密度函数方法
例子-瓜的好坏-连续值得用高斯函数
第三章 最近邻分类器(Nearest Neighbor)
-
k近邻学习(kNN)-训练开销为0
-
三要素
- k值选择、-交叉验证法或较小的奇数
- 距离度量、-欧氏距离
- 分类决策规则-多数投票
-
重点在于搜索-kd树
- 构造kd树定义和算法(四步)
- 例子
- kd树kNN搜索-例子
-
加权最近邻
-
几个问题
- 不相关属性的影响
- 属性值的尺度影响-解决办法:标准化属性尺度
- 危险样例-预处理(两种情况)
- 检测-托梅克(Tomck)连接技术(三个条件)
- 删除存在的问题
- 检测-托梅克(Tomck)连接技术(三个条件)
第四章 线性和多项式模型
线性模型的定义:
f(x)=w0x0+w1x1+w2x2+…+wdxd
=∑wixi
=wx
线性回归(linear r egression)
-
最小二乘法,基于方差最小化的方法
-
极大似然估计,均值为0方差为的平方的高斯分布
- 转换为对数似然(连乘->连加)
- 矩阵求导公式
- 梯度下降算法
- 梯度求导公式
- 随机梯度下降算法(第一个为噪声样本则迭代偏离了,但比下面快)
- 批量梯度下降方法(避免第一个样本)
- mini-patch梯度下降(二者折中)
- 例子
- 正则化
- 转换为对数似然(连乘->连加)
-
逻辑回归(logistic regression) -解决的是二分类问题
-
逻辑回归模型
if ∑wx>0 then output 1 else output 0
-
单位阶跃函数、S形函数
-
极大似然函数
- 对数似然函数
-
-
多分类问题
- softmax回归
- 建立似然函数
- 目标函数采用对数似然
- 二分类器组 一对多(建立多个而分类器,如四个二分类器组成四分类器)
- n个二分类器
- 一个分类器输出为1,其他为0
- 若多个分类输出为1,则进行加权,选择最大的作为结果
- 一对一
- 需要 n(n-1)/2 个二分类器
- 采用多数投票得到
- 一对多每个分类器需要全部的训练数据,而一对一只需要两个类别的样例
- softmax回归
非线性可分问题
- 可采用多项式模型
- 空间变换-将线性不可分问题转化为线性可分的问题
- 容易过拟合
第五章 决策树(decision tree)
5.1 构造决策树
自顶向下的递归方法,其基本思想是以信息熵为度量,构造一棵熵值下降最快的树,到叶子结点处的熵值为0
- 高度和节点数更小的比较好,开销较小
- 存在问题,如分支没有全,如shape有三个,只显示两个,则预测结果不确定
- 原因:数据样例不全
5.2 ID3决策树
- 算法思想
grow(D)
取信息量最大的属性at
将D划分为若干个子集Di
对每个子集Di
if Di中所有样例都属于同一个类别
then 创建一个类标记的叶结点
else grow(Di)
- 优缺点
- 信息量定义,与概率值成反比,代表事件的不确定性
- 熵-即平均信息量,代表系统的混乱程度,0.5的时候最大
- 条件熵-经验熵(系统熵)-经验条件熵
- 信息增益 G(D,at)=H(D)-H(D|at) 系统熵 - 条件经验熵
- 选择信息增益最大生成决策树
- 例子
5.3 C4.5决策树
- 连续属性处理-主要是选择阈值
- 计算阈值的信息增益
- 增益率(避免偏向数目较多的属性)
- 分裂信息量
5.4 过拟合
- 剪枝(pruning)
- 误差估计(训练集)
- 准确率(测试集)
- 预剪枝(prepruning)
- 准确率
- 后剪枝(postpruning)-自底向上
- 准确率
- 剪枝方案的选择
- 误差
5.5 CART决策树
- 采用基尼指数 gini(D) = 1 - sum(pk^2),与不确定性成反比
- 选择基尼指数小的
- CART剪枝(底部剪枝+交叉验证)
- α的取值
- 1.计算内部节点的所有α,取最小的,直至根节点
- 2.交叉验证
第六章 人工神经网络(neural network)
6.1 神经元(neuron)模型
6.2 多层感知机(perceptron)
- 感知机
- 多层感知机
6.3 前向传播
6.4 反向传播BP算法
-
过拟合问题的解决
- 早停止
- 正则化项
-
局部最小和全局最小
- 跳出局部最小的三个方法
- 几个激活函数sigmoid tanh relu
6.5 神经网络的结构问题
6.6 径向基函数网络(Radial Basis Function)
-
RBF也是一种属性变换的方法 , 线性不可分–>线性可分
-
基本思想 输入到隐层无权重 经过高斯函数
-
训练三个参数w(隐层到输出),高斯中心,σ值
第七章 支持向量机(Support Vector Machine)
7.1 支持向量
有多个划分划分超平面,如何选择
- 计算任一点到超平面的距离
- 支持向量即一些样本点,位于边界上
- 间隔:支持向量到超平面的距离之和
- 求间隔最大 =》转成最小化的形式(对偶问题)
7.2 对偶问题
-
原始问题(约束问题)
-
引入拉格朗日函数(先求拉格朗日的最大化)再进行最小化,将原始问题转化为拉格朗日极小极大问题
-
对偶问题:先对拉格朗日最小化 再最大化 (因为x比较好求,拉格朗日乘子不好求)–》极大极小问题
-
拉格朗日乘子法
-
建立目标函数后得到新的拉格朗日目标函数
-
最小化得到w,b
-
带入w,b到拉格朗日函数,进行最大化,即得到了对偶问题
-
添加符号变成最小化,满足kkt文件的即是支持向量
-
SMO算法,解出λ*,b*,w*,固定两个λ做变量,其他为常量
-
SMO例子-见视频
7.3 核函数
线性不可分问题,除了用高阶多项式函数拟合,也可采用升维的方式变换为线性可分问题。即将样本从原始空间映射到更高维特征空间。(通过核函数)
-
空间变换
- 存在的两个问题(找不到映射函数和训练复杂度高),工程上难以实现
-
核技巧
- 样本映射到高维空间后的内积怎么求,提高svm的速度
- 先升维到高维空间后,计算超平面的时候内积又变换到了低维,故运算速度提升了
- 核函数K(xi,xj)=φ(xi)Tφ(xj),故定义核函数即可,无需显示的定义映射函数
-
常用的五个核函数
-
核函数的组合
-
核函数的两个问题
- 如何知道一个函数是否是核函数
- K是有效的核函数《=》核函数矩阵K是对称的半正定矩阵,Kij=Kji
- 哪个核函数是最适合的(未解决)
- 如何知道一个函数是否是核函数
7.4 软间隔
- 允许支持向量机在一些样本上出错
- 松弛变量,加上了松弛因子,多了一个拉格朗日乘子
7.5 支持向量回归—SVR
样本映射到高维空间后的内积怎么求,提高svm的速度
-
先升维到高维空间后,计算超平面的时候内积又变换到了低维,故运算速度提升了
-
核函数K(xi,xj)=φ(xi)Tφ(xj),故定义核函数即可,无需显示的定义映射函数
-
常用的五个核函数
-
核函数的组合
-
核函数的两个问题
- 如何知道一个函数是否是核函数
- K是有效的核函数《=》核函数矩阵K是对称的半正定矩阵,Kij=Kji
- 哪个核函数是最适合的(未解决)
- 如何知道一个函数是否是核函数
7.4 软间隔
- 允许支持向量机在一些样本上出错
- 松弛变量,加上了松弛因子,多了一个拉格朗日乘子
7.5 支持向量回归—SVR
SVR容忍f(x)和y之间可以有ε的偏差,只有当偏差大于时ε才计算损失。