机器学习笔记【二】

问题集锦

1、聚类方法有哪些
K均值聚类: 随机选择K个样本,分别计算其他样本到这K个样本的距离,与距离最近的样本聚成一类;然后,计算每一簇的均值,作为下一次计算标准;如此循环,直到每类样本成员没有变化为止。(通俗讲法)

学习向量量化: 目的是找到一组原型向量来刻画聚类结构,它与一般聚类方法不同的是假设样本有类别标记。其中,每个样本是由多个属性组成的向量表示。和K均值聚类相似,先取K个样本作为原型向量,计算其他样本与原型向量的距离,取距离最近且标记相同的样本更新原型向量,可表示为p=p+learning_rate*(x-p),(x为距离最近且标记相同的样本,p为原型向量)

高斯混合模型聚类: 采用概率模型表达聚类模型。高斯混合分布由K个混合成分组成,每个混合成分对应一个高斯分布,每个成分对应一个混合系数。假设样本的生成过程由高斯混合分布给出。采用EM算法求解,先根据当前参数求出后验概率,再根据后验概率更新高斯分布的均值、协方差矩阵、以及混合成分系数(利用极大似然估计,最大化似然,针对每一参数偏导为0。推导过程为详尽看)。

2、集成学习
根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类?即个体学习器问存在强依赖关系、必须串行生成的序列化方法?以及个体学习器间不存在强依赖关系、可同时生成的并行化方法;前者的代表是 Boosting,后者的代表是 Bagging 和"随机森林" (Random Forest)。(摘自西瓜书)
Boosting
工作机制:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值 T , 最终将这 T 个基学习器进行加权结合.
AdaBoost:基于加性模型,只适用于二分类任务。(转第六点)

Bagging:
工作流程: 采样出 T 个含 m 个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。通常对分类任务使用简单投票法,对回归任务使用简单平均法。从偏差方差分解的角度看, Bagging 主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显.

随机森林:
随机森林在以决策树为基学习器构建 Bagging 集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。传统决策树在选择划分属性时是在当前结点的属性集合(假定有 d 个属性)中选择一个最优属性;而在RF 中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含 k个属性的子集,然后再从这个子集 中选择一个最优属性用 于划分. 这里 的参数k 控制了 随机性的引入程度 ;若令 k = d , 则基决策树的构建与 传统决策树相同。
若令 k = 1 , 则是随机选择一个属性用 于划分 ; 一般情况下,推荐值 k = log2 d。(摘自西瓜书)
随机森林中基学习器的多样性不仅来自样本扰动(Bagging仅有样本扰动),还来自属性扰动,这就使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升。

结合策略:平均法、投票法。

3、逻辑回归
损失函数:(交叉熵损失)
单个样本
在这里插入图片描述
全部样本
在这里插入图片描述
补充:
交叉熵一般公式

(单个样本)
在这里插入图片描述
信息熵公式
在这里插入图片描述
参考范例:https://blog.csdn.net/b1055077005/article/details/100152102

4、神经网络中网络权重W初始化为0有什么问题?
w初始化全为0,很可能直接导致模型失效,无法收敛。

5、梯度下降、自适应学习率
参考:
https://www.cnblogs.com/zingp/p/11352012.html

6、Adaboost、XgBoost、GBDT区别
Adaboost:每次根据基学习器错分的数据点来生成下一个基学习器,通过调整错分数据点的权重用来改进模型。
具体说来,整个Adaboost 迭代算法就3步:

(1)初始化训练数据的权值分布。如果有N个样本,则每一个训练样本最开始时都被赋予相同的权值:1/N。
(2)训练弱分类器。具体训练过程中,如果某个样本点已经被准确地分类,那么在构造下一个训练集中,它的权值就被降低;相反,如果某个样本点没有被准确地分类,那么它的权值就得到提高。然后,权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
(3)将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。换言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。

GBDT:GBDT每一次的计算是都为了减少上一次的残差,进而在残差减少(负梯度)的方向上建立一个新的模型。(残差在数理统计中是指实际观察值与估计值(拟合值)之间的差)
和 AdaBoost 一样,Gradient Boosting 也是重复选择一个表现一般的模型并且每次基于先前模型的表现进行调整。不同的是,AdaBoost 是通过提升错分数据点的权重来定位模型的不足而 Gradient Boosting 是通过算梯度(gradient)来定位模型的不足。因此相比 AdaBoost, Gradient Boosting 可以使用更多种类的目标函数。

XGboost:
XGBoost的核心算法思想是:

(1)不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数f(x),去拟合上次预测的残差。
(2)当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数
(3)最后只需要将每棵树对应的分数加起来就是该样本的预测值。

XGboost和GBDT有什么区别:
(1)GBDT是机器学习算法,XGBoost是该算法的工程实现。
(2)在使用CART作为基分类器时,XGBoost显式地加入了正则项来控制模 型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。
(3)GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代 价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。
(4)传统的GBDT采用CART作为基分类器,XGBoost支持多种类型的基分类 器,比如线性分类器。
(5)传统的GBDT在每轮迭代时使用全部的数据,XGBoost则采用了与随机 森林相似的策略,支持对数据进行采样。
(6)传统的GBDT没有设计对缺失值进行处理,XGBoost能够自动学习出缺 失值的处理策略。

为什么XGBoost要用泰勒展开,优势在哪里?
XGBoost使用了一阶和二阶偏导, 二阶导数有利于梯度下降的更快更准. 使用泰勒展开取得函数做自变量的二阶导数形式, 可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算, 本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 这种去耦合增加了XGBoost的适用性, 使得它按需选取损失函数, 可以用于分类, 也可以用于回归。

总结:
(1)Adaboost与GBDT两者boosting的不同策略是两者的本质区别。
(2)Adaboost强调Adaptive(自适应),通过不断修改样本权重(增大分错样本权重,降低分对样本权重),不断加入弱分类器进行boosting。
(3)而GBDT则是旨在不断减少残差(回归),通过不断加入新的树旨在在残差减少(负梯度)的方向上建立一个新的模型。——即损失函数是旨在最快速度降低残差。
(4)而XGBoost的boosting策略则与GBDT类似,区别在于GBDT旨在通过不断加入新的树最快速度降低残差,而XGBoost则可以人为定义损失函数(可以是最小平方差、logistic loss function、hinge loss function或者人为定义的loss function),只需要知道该loss function对参数的一阶、二阶导数便可以进行boosting,其进一步增大了模型的泛华能力,其贪婪法寻找添加树的结构以及loss function中的损失函数与正则项等一系列策略也使得XGBoost预测更准确。
(5)XGBoost的具体策略可参考本专栏的XGBoost详述。 GBDT每一次的计算是都为了减少上一次的残差,进而在残差减少(负梯度)的方向上建立一个新的模型。
(6)XGBoost则可以自定义一套损失函数,借助泰勒展开(只需知道损失函数的一阶、二阶导数即可求出损失函数)转换为一元二次函数,得到极值点与对应极值即为所求。

参考:https://www.cnblogs.com/mantch/p/11164221.html
https://zhuanlan.zhihu.com/p/42740654

7、主成分分析PCA
主成分分析是一种矩阵的压缩算法,在减少矩阵维数的同时尽可能的保留原矩阵的信息,简单来说就是将 n×m的矩阵转换成n×k的矩阵,仅保留矩阵中所存在的主要特性,从而可以大大节省空间和数据量。
(1)输入样本矩阵,大小:m*n。每一行为一个n维样本,共m个;
(2)对样本矩阵进行中心化(取均值)
(3)计算样本的协方差矩阵
(4)计算协方差矩阵的特征值并取出最大的k个特征值所对应的特征向量,构成一个新的矩阵
(5)这个矩阵就是我们要求的特征矩阵(也称特征脸),里面每一列就为样本的一维主成分。把样本矩阵投影到以该矩阵为基的新空间中,便可以将n维数据降低成k维数据。

第一个优化目标:降维后各维度的方差尽可能大。
第二个优化目标:是保证不同维度之间的相关性为0(其实就是让基向量互相正交)
(相同特征之间方差越大越好,不同特征之间协方差越小越好)

根据线性代数,我们可以知道同一元素的协方差就表示该元素的方差,不同元素之间的协方差就表示它们的相关性。因此这两个优化目标可以用协方差矩阵来表示。

参考:https://www.cnblogs.com/xinyuyang/p/11178676.html
https://blog.csdn.net/a10767891/article/details/80288463

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值