这是我参与「第四届青训营 」笔记创作活动的第5天
基础概念
-
监督学习、非监督学习、半监督学习
- 监督学习:是指你拥有一个输入变量(x)和一个输出变量(Y),使用算法去学习从输入到输出的映射函数:Y=f(x)
- 非监督学习:指我们只有输入变量(x),没有相关输出变量Y。非监督学习是我们事先没有任何训练样本,直接学习数据的结构和分布并将它们“分组”。
- 半监督学习介于监督学习和非监督学习之间。对于半监督学习,其训练数据的一部分是有标签的,另一部分没有标签,而没标签数据的数量通常远远大于有标签数据数量(这也是符合现实情况的)。
-
损失函数
- 为了测量预测结果,我们引入了损失函数,它是一个非负函数
-
过拟合问题
- 为什么
- 训练数据少
- 模型复杂度高
如何解决
- 降低模型的复杂度 >- 增加数据集 >- 数据增强 >- L1,L2正则化
分类算法
-
k近邻算法
- Lazy learning
- 计算测试对象到训练集中每个对象的距离
- 按照距离的远近排序
- 选取与当前测试对象最近的k的训练对象,作为该测试对象的邻居
- 统计这k个邻居的类别频率
- k个邻居里频率最高的类别,即为测试对象的类别
优缺点
优点
- 非常简单的分类算法没有之一,人性化,易于理解,易于实现 >- 适合处理多分类问题,比如推荐用户
缺点
- 属于懒惰算法,时间复杂度较高,因为需要计算未知样本到所有已知样本的距离 >- 样本平衡度依赖高,当出现极端情况样本不平衡时,分类绝对会出现偏差 >- 可解释性差,无法给出类似决策树那样的规则 >- 向量的维度越高,欧式距离的区分能力就越弱
-
贝叶斯分类器
-
决策树
- 如何选择元素去划分数据?以什么为标准
-
- 信息增益(ID3)
- Pk表示的是当前样本集合D中第k类别的样本占总体样本的比例。
- 前边的Ent(D)是总样本集合D的信息熵;
- 后边的Ent(Dv)是某个属性所对应取值的信息熵,所乘的系数为该属性每个取值的样本占总样本集合D的比例。
- 信息增益率(C4.5)
- 这里呢,我们在计算的时候,先从候选划分属性中找出信息增益高于平均水平的,再从中选取信息增益率最高的,这样会增加我们的计算速度。
- 如何解决过拟合
- 先剪枝 :通过提前停止树的构建而对树“剪枝”,一旦停止,节点就成为树叶。该树叶可以持有子集元组中最频繁的类;
- 定义一个高度,当决策树达到该高度时就可以停止决策树的生长,这是一种最为简单的方法;
- 达到某个结点的实例具有相同的特征向量,即使这些实例不属于同一类,也可以停止决策树的生长。这种方法对于处理数据中的数据冲突问题非常有效;
- 定义一个阈值,当达到某个结点的实例个数小于该阈值时就可以停止决策树的生长;
- 定义一个阈值,通过计算每次扩张对系统性能的增益,并比较增益值与该阈值的大小来决定是否停止决策树的生长。
- 后剪枝 :它首先构造完整的决策树,允许树过度拟合训练数据,然后对那些置信度不够的结点子树用叶子结点来代替,该叶子的类标号用该结点子树中最频繁的类标记。后剪枝的剪枝过程是删除一些子树,然后用其叶子节点代替,这个叶子节点所标识的类别通过大多数原则(majority class criterion)确定。所谓大多数原则,是指剪枝过程中, 将一些子树删除而用叶节点代替,这个叶节点所标识的类别用这棵子树中大多数训练样本所属的类别来标识,所标识的类称为majority class .相比于先剪枝,这种方法更常用,正是因为在先剪枝方法中精确地估计何时停止树增长很困难。
- 优点
- 便于理解和解释。树的结构可视化
- 训练需要的数据少,其他机器学习模型通常需要数据规范化,比如构建虚拟变量和移除缺失值
- 由于训练决策树的数据点的数量导致了决策树的使用开销呈指数分布(训练树模型的时间复杂度是参加训练数据点的对数值)
- 能够处理数值型数据和分类数据,其他的技术通常只能用来专门分析某一种的变量类型的数据集;
- 能够处理多路输出问题;
- 使用白盒模型。如果某种给定的情况在模型中是可以观察的,那么就可以轻易的通过布尔逻辑来解释这种情况,相比之下在黑盒模型中的结果就是很难说明清楚了;
- 可以通过数值统计测试来验证该模型。这对解释验证该模型的可靠性成为可能
- 即使是该模型假设的结果越真实模型所提供的数据有些违反,其表现依旧良好
-
SVM
- 基本思想:最大边界
感知机模型就是尝试找到一条直线,能够将二元数据隔开,在三维或者更高维中,感知机模型就是尝试找到一个超平面,将所有的二元类别都隔离开。 SVM的核心思想是:尽最大努力是两个类别有最大间隔,这样才能使分隔具有更高的可信度,并且对于未知的新样本也具很好的 分类预测能力,即泛化能力。
- 优点
- 使用核函数可以向高维空间进行映射
- 使用核函数可以解决非线性的分类
- 分类思想很简单,就是将样本与决策面的间隔最大化分类效果较好
- 缺点:
- 对大规模数据训练比较困难
- 无法直接支持多分类,但是可以使用间接的方法来做