目录
机器学习笔记(一)
一、模型评估
- 误差:预测输出与样本真是输出之间的差异
- 训练集上的误差:训练误差、经验误差
- 新样本、测试集上的误差:泛化误差
- 拟合程度
- 欠拟合:拟合程度不足,学习能力低下导致没有充分利用特征
- 过拟合:拟合程度过度,导致将原本不属于特征的部分也学习进来
- 评估方法
- 留出法
- 数据集划分为两个互斥集合——训练集、测试集
- 交叉验证法
- 将数据集划分为k个大小相似的互斥集合
- 用其中 k-1做训练集,1个做测试集
- 循环测试求平均
- 自助法
- D中随机挑选样本拷贝入D‘
- 不被选中的大概为36.8%
- 把D’作为训练集,D/D’作为测试集
- 留出法
- 性能度量
-
均方误差:误差的平方的平均
-
错误率(E):预测值不等于实际值的样本数目占总样本比例
-
精度(acc):1-错误率
-
查准率§:真正例/所有预测正例 (预测对的概率)
-
查全率®:真正例/所有实际正例 (成功预测出来的概率)
- 评价标准:
- BEP:平衡点,P = R的时候的值
- F1:P和R的调和平均值
- Fβ:加权调和平均 β>1查全率更重要,反之查准率更重要
- 评价标准:
-
ROC:纵坐标查全率(真正例率),横坐标假正例率
-
AUC:ROC与x=1,y=0围成的面积
-
二、监督学习
- 所给的数据集有准确的**“正确答案”(标签)**
- 可以有无限个特征
- 可以大致分为回归问题和二分类问题
- 回归问题:给一些特征,来预测线性的结果,如:房价
- 二分类问题:给一些特征,来预测离散的结果,如:肿瘤为良性还是恶性
三、无监督学习
- 所给的数据集没有任何标签或者有相同的标签
- 目的就是判断出数据的聚集簇——聚类算法
- 用于将数据根据数据的特征,分为多个类
四、单变量线性回归(Linear Regression with One Variable)
-
监督学习:最主要的工作就是得到线性模型,也就是f(x)=wx+b,其实也就是求得最合适的w和b
-
所需要的是:一种算法,得到让代价函数取值最小的w和b
3.1代价函数(平方误差函数)(损失函数)
- 建模误差:预测值与实际值之间的差距,也就是|f(x)-y|
- 代价函数:误差的平方的平均值(最小二乘法)
3.2梯度下降
-
随机选择一个w,b的组合
-
寻找下一个能放代价函数下降最多的参数组合
-
直到做到局部最小值
-
其中α是学习率:代价函数减小的幅度,不能太大也不能太小。
- 如果太大:会导致结果发散
- 如果太小:会导致效果不佳
-
偏导数(斜率),理论上应该是越来越小的,因为越来越平缓
3.3梯度下降的线性回归
- 批量梯度下降:每一次梯度下降都用到了所有的训练样本
五、多变量线性回归(Linear Regression with Multiple Variables)
4.1多维特征
- 特征的数量不知一个,那么这个时候,就不能简单用一个标量x来表示特征,而是需要用向量x
- 因为特征为n维向量,那么w也不能为标量,w应该也得是一个n维向量
- 如果将b也放入向量,那么w中需要有一个1与之对应,这个时候,特征和w都变为n+1维向量
4.2多变量梯度下降
- 计算方法一致,唯一的区别就是将标量的运算变成了矢量的运算
- 对每一个特征xi求偏导,梯度下降时,就是减去损失函数的相应偏导值×学习率α
4.3梯度下降之特征缩放
-
在部分特征差异较大时,需要使用非常多次迭代才能够实现收敛
-
这时候可以将所有尺度都尽量收缩到-1到1之间,用的是类似于标准化的方式
-
对于很多多项式形式的模型,可以通过对特征进行一定数学处理使之符合线性模型
六、正规方程
-
在一些情况下可以代替梯度下降算法
-
通过正规求解损失函数的偏导数等于零,从而得到向量w
-
当特征变量的数目比较小的时候一般使用标准方程法而不使用梯度下降法。
六、逻辑回归(y离散)
-
对数几率回归,用于考虑二分类问题。
-
逻辑模型
- 其中:逻辑函数(对数几率函数):
,为了让y∈[0,1],是对任意阶可导的凸函数 - 作用:用于根据选择的参数w计算f(x)=1的可能性
- 其中:逻辑函数(对数几率函数):
-
代价函数(损失函数)
-
最大似然法:P(A|θ),找到让P取值最大的θ
-
逻辑回归的梯度下降法和线性回归的梯度下降法看起来基本相同,其实是不同的
七、线性判别分析(LDA)
- 找到一对w,b。使得这条直线让同类样例的投影点尽可能接近,异类样例投影点尽可能远离。
- 同类样例投影点尽可能靠近 ==》 同类投影点的协方差尽可能小
- 异类样例的投影点尽可能远离 ==》 类中心的距离尽可能大
八、决策树
-
用于解决分类问题的一种算法
-
以树的形式对样本进行分类,一棵决策树包含一个根结点、若干内部节点和若干叶结点
- 根节点无入
- 内部节点:特征
- 叶子节点:分类结果
-
从根节点到每一个叶结点的路径对应一个判定测试序列
8.1生成决策树是一个递归的过程
- 二元属性:分为是否
- 序数属性(连续值):根据阈值来分
- 多元属性:可以将多种分为一种
- 指标:
- 信息熵:度量样本集合纯度的指标
-
-(pi * logpi的和)
-
信息熵越小==》纯度越高
- 信息增益
- Gain(D,a) =》属性a的信息增益
- 总信息熵-属性a产生的分支节点信息熵×比重的和
- 基尼系数:度量数据集纯度的指标
- Gini(D) = 1-[p² + (1-p)²]
- 基尼系数越低==》纯度越高
- 信息熵:度量样本集合纯度的指标
8.2剪枝处理
- 用于对付"过拟合"现象的手段
- 预剪枝
- 在对每个结点进行划分之前
- 如果当前结点的划分不能带来决策树泛化性能的提升,就停止划分
- 计算存在当前内部节点和不存在当前内部节点的比率
- 在对每个结点进行划分之前
- 后剪枝
- 生成一棵完整的决策树
- 自底向上对非叶结点进行考察
- 将子树替换为叶子节点,验证精度变化
- 后剪枝相较预剪枝能够避免欠拟合的风险,但是花销更大
8.3连续值和损失值
-
连续值处理
- 根据数据差异的中位点作为阈值对连续值进行划分为离散值
- 连续属性可以多次划分
-
损失值处理
- 用于处理一些有属性缺失的数据,是为了充分利用数据
8.4多变量决策树
- 样本分类等于是在每个坐标轴上寻找分类边界,普通决策树的边界与轴平行
- 多变量决策树就是斜划分
- 非叶节点不再是针对某个属性,而是针对属性的线性组合
九、支持向量机(SVM)
9.1支持向量机的基本型
-
支持向量
- 离超平面最近且满足条件的训练样本点
-
找到两类样本"正中间"的划分超平面
-
找到的划分直线:wx+b
-
将各x带入,那么>0和<0就分布在直线的两端
-
个点到达直线的距离可以带入方程直接求得
-
主要目标就是找到最大的d,也就是找到最小的||w||
-
s.t.表示条件约束
-
1用于保证结果的唯一性
-
9.2对偶问题
用拉格朗日乘数法来求最大的d
-
强对偶关系:min max f = max min f
- 如果f是凸优化问题,那么强对偶性成立
- 这个模型就是符合强耦合性的模型,强耦合性说明模型可以使用拉格朗日乘数法
- L = 待求极值的函数 + α(拉格朗日因数) × 约束条件
- 分别三者求偏导,并令偏导为0,求出符合该状态下的参数值
-
对三个参数分别求偏导,并让偏导为0,可以求得α、w、b
9.3 SMO算法
- 选择一个参数,固定其他的所有参数,那么这个参数就可以由其他参数来表示。
- 步骤
- 选取一对需更新的变量,这两个变量的差别要尽可能大
- 固定其他的所有变量
- 算式就演变成为αiyi + αjyj = c
- c是让所有参数乘上对应特征值 的和等于零的一个常数
- 这样就能够求得w
- 再根据y f(x)=1解得b
9.4 核函数
部分训练样本不是线性可分的,无法得到使得正确划分成两类样本的超平面,这个时候需要将样本从原始空间映射到一个更高维的特征空间
- 由于更高维的空间有更复杂的计算,因此使用核函数
- 特征空间的内积 = 原始样本空间的内积通过核函数计算的结果
- 对称函数的矩阵是半正定的
- 常用核函数
- 线性核
- 多项式核
- 高斯核
- 拉普拉斯核
9.5 软间隔和正则化
- 代替损失函数
- 为了使得不满足约束的样本尽量减少,引入代替损失函数
- 常见代替损失函数
- hinge损失 ==》 max(0,1-z)
- 指数损失 ==》 exp(-z)
- exp为以e为底的指数函数
- 对率损失 =》log(1+exp(-z))
- 软间隔
- 允许支持向量机在一些样本上出错
- 引入松弛变量 ξ
- 原式 ≥ 1 - ξ (软间隔支持向量机)
9.6 支持向量回归
- 传统回归 ==》 f(x)与y完全相同
- 支持向量回归 ==》 允许f(x)与y最多有ε的误差,误差大于ε才计算损失
- ε为不敏感损失
- 带入ε和软间隔ξ后建立拉格朗日函数,步骤一致
9.7 核方法
- 如果不考虑偏移项b,支持向量学得模型总能表示为核函数的线性组合