第一章 绪论
假设空间:属性所有可能取值的集合。会计算大小
NFL没有免费午餐定理:
前提:所有问题出现的机会相同。
定理:脱离具体问题,空谈算法的好坏没有意义。因为若考虑所有潜在的问题,则所有学习算法一样好。
第二章 模型评估与检验
泛化误差:学习器在新样本上的误差
泛化误差可以分解为:偏差、方差和噪声
偏差与方差的均衡
偏差:学习算法期望预测与真实结果的偏离程度;刻画了学习算法本身的拟合能力
方差:同样大小训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响
噪声:当前任务上任何学习算法所能达到的期望泛化误差的下届;刻画了任务本身的难度
高偏差:
增加更多特征
模型更复杂或者更好的优化算法
高方差:
增加数据量
特征选择(正则化,但是会伤害偏差)
K近邻算法
三要素:K值的选择、距离度量和分类决策规则
K值越小,模型容易出现偏差、整体模型变得复杂,容易发生过拟合;k值越大,整体的模型变得简单,容易造成欠拟合。
常用的选择方法是:从K=1开始,使用验证集估计分类器的误差率。重复该过程,每次K增值1,允许增加一个近邻,选择产生最小误差率的K。一般不要超过20,数据集越大,k也要增大。最好选择基数,避免产生相等的情况。
距离的选取:欧式距离、曼哈顿距离、向量空间余弦相似度、调整余弦相似度、皮尔森相关系数、Jaccard相似系数。
分类决策规则:多数表决、加权投票(与待测样本越近权重越高)
注意:K近邻算法需要进行特征归一化,消除不同特征的量纲影响
归一化方法:
- 数据归一化:将所有的数据映射到同一尺度
- 最值归一化:将数据映射到0-1之间。适用于分布有明显边界的情况,受outlier(噪声)影响较大
- 均值方差归一化:将数据归一道均值为0,方差为1的分布中,适用于数据分布没有明显的边界,可能会有极端数据值
Kd树:k是的是特征空间中的特征个数,不是k近邻中的k。
Kd树的构造步骤(基本原理):给定数据集会构造kd数
先找到根节点,l=j(mod k)+1 = 1(j是树的深度,k是特征个数),按x轴选择根节点,对数据点x坐标进行排序,找到中位点,并划分左右子树。并分别对左右子树进行划分,继续选择内部节点。
Kd树的搜索:
- 找到待测点所属的叶子节点。
- 计算叶子节点到目标节点的距离。并回退到叶子节点的父节点,进行二个检查
- 比较父节点于目标节点的距离,若小于之前的叶子节点与目标节点的距离,则将父节点替换为近似最近邻节点
- 查找父节点的另一半超矩形区域是否有更近点的点,若有则替换,若无则继续向上回退。
当回退到根节点时,再进行第二步的判断,然后搜索结束。此时的当前最近邻节点即位S的最近邻·
第四章 决策树
什么是决策树?它的优点是什么
决策树是一种常见的机器学习算法,是基于树结构来对问题进行决策或判定的。通过特征选择,生成决策树,树剪枝三个阶段来完成模型的构建。其中,树结构的叶节点对应决策结果,其他每个节点则对应一个属性测试;每个节点包含的样本集合根据属性测试的结果被划分到子节点中,根节点包含样本全集。
优点:速度快:计算量相对较小,且容易转化为分类规则(只要沿着树根一直向下走到叶节点,沿途的分裂条件就能够唯一确定一条分类的谓词)
- 准确性高:挖掘出的分类规则准确性高,易于理解。
- 可以处理连续值和类别型数据
- 不需要任何领域知识和参数假设
- 适合高维数据
第五章 神经网络
多层前馈神经网络:每层神经元与下一层神经元全互联,神经元之间不存在同层连接,也不存在跨层连接。(隐层神经元和输出层神经元都是具有激活函数的功能神经元)。
神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元之间的阈值。
BP算法思想?存在哪些不足之处?
BP算法又称为误差逆传播算法,其并不特指某一类神经网络结构,而是可以应用在多种神经网络上。
对于标准BP算法,对每个训练样本,首先将其提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;然后计算输出层的误差,再将误差反向传播至隐层神经元,然后根据根据隐层神经元的误差调整连接权重和阈值。
- 神经网络可解释性较差,往往模型结构不能很好解释输出结构
- 容易形成局部极小点,而找不到全局最小点:
- 采用多组不同的初始值进行训练,取误差最小的解作为最终参数。
- 使用模拟退火技术:每一步都以一定概率接受比当前解更差的结果
- 使用随机梯度下降:与标准梯度下降法不同,在计算梯度时加入了随机因素,及时陷入局部极小点,计算出梯度仍可能不为零。
- 遗传算法
- 训练次数多且效率低下
如何解决过拟合: