回归分析:回归分析的本质是函数估计的问题(包括参数估计和非参数估计),依据因变量的联系或离散分为回归或者分类,是一种有监督学习方法。
广义线性模型:拟合的是关于y的可导函数,如逻辑回归,拟合的就是y的ln函数。
线性回归求解的两个表示:用最小化均方误差和基于高斯分布的极大似然估计求解线性回归,其结果是一样的(在线性回归中假设Y|X服从高斯分布,而逻辑回归服从伯努利分布)。线性回归是一种特征线性加和就能得到最终结果的模型。
逻辑回归:因为普通线性模型的因变量是连续的,所以想法是将其转化为离散的,直观想法是阶跃函数,而阶跃函数不可导,所以选取对数概率函数 P ( y = 1 / x ⃗ ) = 1 1 + e − z , z = w ⃗ ⋅ x ⃗ + b P ( y = 1 / \vec { x } ) = \frac { 1 } { 1 + e ^ { - z } } \quad , z = \vec { w } \cdot \vec { x } + b P(y=1/x)=1+e−z1,z=w⋅x+b。逻辑回归是伯努利分布的极大似然估计。
逻辑回归的参数估计:1、极大似然估计;2、交叉熵损失函数最小。
选取sigmod函数的原因:符合利用指数分布族求广义线性模型中推导出来的结果,
使用梯度下降法要进行特征归一化。两个好处:提升收敛速度,提升模型精度。
最小二乘的求解,当 x → T x → \overrightarrow { \boldsymbol { x } } ^ { T } \overrightarrow { \boldsymbol { x } } xTx的逆不存在时,解析解无法求解,此时,加入正则化项。
熵:描述是一种自信息量(对 A事件中随机变量进行编码的最小字节数)
KL散度:计算两个分布之间的不同,但不具备对称性。(采用B的编码来表示A所需要的额外字节数)
交叉熵:KL散度=交叉熵-熵(使用B的编码来表示A所需的平均字节数),用来表示学习模型的分布于训练数据分别的不同。也是似然函数的极大化。
先找到两个分类的均值点,再进行投影。
类内散度矩阵:两个分类的协方差矩阵之和,
类间散度矩阵:两分类之差也它的外积。
import matplotlib.pyplot as plt
plt.figure():创建一个画板,在不同的画板上面绘制不同的图片,参数,figsize facecolor
plt.
决策树:是一种贪心算法,也是一种基于条件概率分布的进行判断的方法。
三个步骤:特征选择、决策树生成、决策树剪枝
决策树构建:将加入正则化项的极大似然函数作为损失函数
以局部最优特征选择后分隔的纯度最高为标准,一般的判断方法有基尼指数、熵(基于分类)和方差(基于回归)。
要求:随着概率的增加而减小;两个独立的信息的信息量是和的关系。符号的原因是保证信息量要为正的,底数是2是为了保持和信息论一致。
信息量是一个具体事件发生带来的信息,信息熵是结果出来之前对可能产生的信息量的期望。
熵的意义是混乱程度,期望是均值的大小,所以信息熵是每个事件的信息量与所有信息量均值的偏离程度。
在给定条件X下,Y的条件概率分布 的熵 对X的数学期望。即已知X的条件下随机变量Y的不确定性。
信息熵-条件熵
信息增益对种类多的特征有偏向,因此选择信息增益比。以信息增益比上特征的熵(不是信息熵),刻画的其实是对数据集的辨认能力,因为种类越多特征的信息熵越大。
二者的区别:ID3利用信息增益,C4.5利用信息增益比。还有一些编程实现上的区别。
二者的缺点:只有生成没有剪枝。
通过极小化损失函数来实现。即将叶结点的熵进行累加,然后加以正则化项。
分为两步:决策树生成;决策树剪枝
回归生成树利用平方误差最小化,分类生成树利用基尼指数最小化策略。是一颗二叉树。
分为两步:从底部不断剪枝,获得一系列决策树;使用交叉验证法来选择最好的那颗。
连续值的处理:将M个连续值按照间隔分为M-1个划分点,将离散点作为划分特征进行处理。
缺失值的处理:将增益进行修正。
利用先验概率,通过贝叶斯公式,计算出后验概率,选择后验概率最大的类别。
主要特点:属性可以离散,可以连续;效率比较稳定;对噪声和缺失数据不太敏感;数据不相关时,分类效果好,数据相关时,分类效果不低于决策树。
根据以往的经验或数据分析得到的概率。
根据本次实验得到的信息修正后的概率。(由果求因)
后验概率是一种条件概率,它限制了目标条件为隐变量取值,而其中的条件为观测结果。
计算的是在已知事件B发生的情况下,事件A发生的概率,二者是有先后关系的,即A在前,B在后。
由因求果,事件A与B可能不存在关系。
概率:已知模型和参数,推测结果
统计:已知结果,推测模型和参数
存在一个唯一确定的参数,等同于经验风险最小化。
参数服从一个分布。等同于结构风险最小化,在贝叶斯中,结构就是指先验概率,以硬币和奥卡姆剃刀为例,在结构中,越简略的模型越可能发生。而硬币则是大部分硬币是0.5,给出了限制。
参数估计是极大似然估计
做决策是极大后验概率估计
利用训练数据集对特征向量空间进行划分,并且作为其分类的模型。
KNN三要素:K值的选择,距离度量和分类决策规则(取均值的决策规则)
K值减小:相当于模型复杂,容易过拟合。
K值加大:减小了估计误差
常用于交叉验证法选择误差最小的。
KNN要求一定要做归一化处理,且将类别特征转化为数值特征。
经验风险最小化
不存在显式的训练过程,只是将训练数据保存在内存中,当遇到测试数据时再进行训练。
为加快训练的速度,采用KD树。
以每一个特征作为一个轴,以特征中值作为轴中心,进行划分,不断切分,形成样本空间的一个划分。当将所有特征划分完毕后,继续划分,直到两个子空间中不再有样本存在时,划分停止。此时得到KD树。
减少冗余信息所造成的误差,提高模型精度。得到降维后的坐标数据
通过映射方法将高维数据映射到低维数据
高维情况下造成的数据稀疏以及距离难以计算
通过降维前后交叉验证
基于降维之后的样本重构时,尽量与原始样本相近。
1、交叉验证选择
2、设置特征值阈值
1、最近重构性:重构后与原来样本距离最下
2、最大可分性:投影后样本尽量分开
事实证明,二者等价。
目的:把数据从N维降到K维
手段:选取K个正交基,使得投影之后的数据,两两之间协方差为0,方差最大。
和PCA一样是求协方差矩阵的特征值和特征向量。
假设数据嵌套在一个欧式空间构成的流形上,其共性是需要构造流形的局部邻域结构,然后利用这些结构将样本点全部映射到低维空间上。
要求原始样本间的距离在低维空间仍然保持。
聚类的作用:探索数据间隐含的关系,寻找数据的分布规律。将数据聚集到不同的簇上,做数据的预处理。
外部指标:聚类结果与某个模型进行比较
内部指标:不参考外部模型
有序属性:常用的闵氏距离,p=1时为曼哈顿距离,p=2时为欧式距离。
无序属性:VDM(刻画的是属性取值在各簇频率分布上的差异)
是指聚类结构能够通过一组原型刻画,原型是指样本空间中具有代表性的点。
常用方法有两类:K均值聚类和高斯混合聚类
采用概率模型进行
聚类结构通过样本分布的紧密程度来确定。
在不同层上对数据集进行划分,形成树状的聚类结构。
是一种迭代算法,用于含有隐变量的概率模型参数估计。
核心:求最大最小点。即寻找一个分割面,样本点离分割面的最小距离是所有分割面中最大的。
arg max w , b { 1 ∥ w ∥ min n [ y i ( w T x i + b ) ] } \arg \max _ { w , b } \left\{ \frac { 1 } { \| w \| } \min _ { n } \left[ y _ { i } \left( w ^ { T } x _ { i } + b \right) \right] \right\} argw,bmax{∥w∥1nmin[yi(wTxi+b)]}
将上式进行变形,可以写做
arg max w , b , ∥ w ∥ = 1 margin \arg \max _ { w , b , \| w \| = 1 } \operatorname { margin } argw,b,∥w∥=1maxmargin
subject to y i ( w T x i + b ) ≥ margin , ∀ i \text { subject to } y _ { i } \left( w ^ { T } x _ { i } + b \right) \geq \operatorname { margin } , \forall i subject to yi(wTxi+b)≥margin,∀i
之所以构造出后续的形式,是为了转换为凸二次规划问题。
更好地求解,也方便引入核函数,来解决非线性问题。
为每一个样本添加一个松弛变量。
最终形式与硬间隔一样,只是a的范围得到了限制。
将两向量映射成特征空间中两个向量的内积。
当选择的核是正定核时,仍是凸二次规划。
衡量两个向量的相似程度
对缺失点敏感,计算复杂度较高,因此多适应于小样本。超参数较多,只能用穷举法来计算,计算量较大。
只需少样本即可计算。可以解决非线性问题,高维,避免局部极小值,提高泛化性能。
神经网络理论上可以表示很复杂的函数、空间分布,但是真实的神经网络能否训练出完美合适的分隔位置还需要看网络初始值,样本容量和分布。
BP:误差逆传播
标准BP算法:多次迭代
累积BP算法:输入所有训练集以后再进行迭代
超参数:神经网络层数、每层的神经元个数
参数:阈值和权值
每一个门单元在计算时只考虑:1、这个门的输出值。2、其输出值关于输入值的局部梯度。
链式法则:将这些计算出来的局部梯度从后往前进行相乘,即得到输出对输入的总梯度。
反向传播是门单元之间通过梯度信号相互通信,只要让输入沿着总梯度方向进行变化,无论自身输出值怎么变化,整个网络的输出值都是按照总梯度来变化的。
专用的门:sigmod函数,在神经网络中,有专用的门函数。
在实现的过程中,也是分段来实现,每次仅计算一个门的输出和局部梯度。可以在前向传播时记录中间变量,这样在反向传播时会节省计算资源。
矩阵反向传播的计算:1、利用链式求导法则;2、将变量视为标量来计算;3、使用维数相容来调整转置和前后顺序。
隐含层神经元个数需要测试,缺乏理论支持。
BP神经网络容易过拟合,实施两种策略。
早停策略:分为训练集和测试集,当训练集误差减小,测试集误差上升时,停止训练,返回误差最小的神经网络。
正则化:修改损失函数,添加正则化项。
有标签数据远远小于无标签数据的数量,无标签数据和有标签数据一样,都是对同一分布独立重复采样得来的。
半监督学习:如何自动利用无标签数据提升学习性能的算法。
主要在于生成式模型的假设,不同的生成模型产生不同的方法。
优点:方法简单,易于实现。
缺点:需要生成式模型必须和真实的数据分布相吻合。
顶点表示样本,边表示样本点相似程度。
标记传播方法:将未获得标签的样本通过标记传播的方法打上标签。
原来:弱可学习和强可学习是等价的,在发现弱可学习的前提下,可以通过方法来提升为强可学习。
用来提高泛化能力。
1、产生一组个体学习器;2、利用某种策略,将个体学习器进行结合。
有一定的准确性,且学习器之间要保证差异。
boosting(提升方法):学习器之间有强依赖关系,必须通过串行生成。
bagging(自举汇聚法):学习器之间弱依赖关系,可同时生成。
多是通过改变训练集的权重,针对不同的训练集分布学习一系列分类器,然后将分类器进行加权结合。
权值调整:将分类错误的样本权重增大
分类器组合:将分类误差错误率较少的分类器权重增大,错误率较大的权重减小。
模型:加法模型
损失函数:指数函数
学习算法:前向分布算法
以分类树或回归树为基分类器的提升方法。
仍表示为加法模型,基分类器为决策树模型,损失函数为平方损失函数(回归问题)或指数损失函数(分类问题)。
对每一层的残差进行计算,可以理解为增大了分类错误样本的权重。
为何说GBDT是回归树,因为回归树才可以把叶结点相加。
GBDT分类方法:1、当损失函数是指数函数时,退化为adaboost;2、当损失函数是对数似然损失函数时,此时用预测概率值与真实概率的差作为损失来进行拟合。
其正则化的三种方法:1、即减小学习步长;2、采用不放回的子采样方式;3、对回归树进行剪枝。
核心:1、分裂特征的选择;2、叶子结点权重的确定
分裂特征的选择:可以用枚举法,XGboost采用了其他高效的方法
权重的确定:通过泰勒展开式二项来最小化结构损失函数。
能够自定义损失函数,只要一阶导数和二阶导数存在。
支持并行化(在分裂特征选择时):同层级节点之间可以并行;节点内选择最佳分裂点、候选分裂点计算增益时可以并行。
针对稀疏数据的处理:
gi和hi各有N个需要计算(N为样本个数),但是每棵之间都有联系,这也是其能并行计算,且速度很快的原因。
通过确定树的结构来确定树的参数。
是通过对损失函数的近似求解析解
去除唯一属性、缺失值处理、属性编码、数据标准化正则化、特征选择、主成分分析
如id等属性,将其去除。
如c4.5,有着直接处理缺失值特征的手段
当某一特征的属性大量缺失时,将此特征删除
当特征属性可以量化时,采取均值插补;当特征属性不可量化时,采用众树插补。
将样本分类(层次聚类法),然后用同类均值插补
将缺失的属性作为预测目标来预测
将属性映射到高维空间,采用one-hot编码,将缺失值定为1.
首先估计出待插补的值,然后加入噪声,形成不同的数据集,然后根据某种指标,从数据集上选择最合适的插补值。
压缩感知:从部分信号中恢复原信号。
将特征属性按照某一阈值进行分割,进行二元化,得到伯努利分布的特征属性。
当属性是不可测量时,且不能被看成有序属性时,采用one-hot编码。
优点:能够处理非数值属性,编码后的属性是稀疏的。
将样本的属性缩放到某个特定的范围内。
数据标准化的两个原因:1、某些算法要求属性具有零均值和单位方差;2、样本不同属性具有不同的数量级时,消除数量级的影响。造成的影响(大数量级的属性将占有主要影响地位、梯度下降时迭代收敛速度减慢、所有依赖数据样本距离的算法将大受影响)。
min-max标准化:属性值被缩放到0-1之间。
z-score标准化:标准化后,均值为0,方差为1。
将样本的某个范数缩放到1,这样在使用二次型或核方法计算两个样本的相似性时,会很有作用。
特征选择的原因:1、降低维数灾难;2、去除不相关的特征会降低学习任务的难度。
特征选择和降维技术是处理高维数据的两大手段。
特征选择的三类方法:过滤式(filter)、包裹式(wrapper)、嵌入式(embedding)
先对数据集进行特征选择、再训练学习器。特征选择过程与后续学习效果无关。
方差选择法:计算各个特征的方差,选择大于阈值的方差加入特征集。
相关系数法:各个特征对目标值的相关系数及相关系数的P值。
卡方检验:考察自变量对因变量的相关性
互信息法:
Relief,一种根据样本间差异性进行过滤的方法。
把最终要使用的学习器的性能作为特征子集的评价标准。缺点是要多次计算学习器,计算开销较大。
学习器训练过程中自动加入了特征选择。
字典学习:学习一个字典,通过该字典将样本转化为合适的稀疏表达方式。
稀疏编码:获取样本的稀疏表达(稀疏的好处:1、当矩阵高度稀疏时,问题很大可能转化为线性问题;2、节省空间)
通过映射获得稀疏矩阵,对稀疏矩阵的要求。(1、矩阵要足够稀疏;2、能够最大还原原始矩阵的信息)
Lasso求解:迭代优化求解。每次固定其中的一个变量,进行迭代优化计算。
在普通线性模型中,可以通过模型的系数来选择特征,然而在含有线性特征时,在出现噪声后,会受到很大的影响。(L1正则化与此同理)。
L2正则化会让系数选择的更为平均,如在L1正则化中出现的问题,L2会使其更为平均。且使用L2正则化之后,系数会更为稳定,较少受到噪声的影响。
基于树模型的特征选择:准确率高,鲁棒性好,易于应用。
离线评估:准确率、精确率-召回率
在线评估:用户生命周期价值、用户点击率、用户流失率
损失函数:单个样本的损失函数
风险函数:实际的风险(由于真实样本概率未知,因此不可求得)
经验风险函数:训练集在模型上的最小风险函数
结构风险函数:在经验风险的基础上加以惩罚项
极大似然估计就是经验风险最小化的例子:它以负对数作为损失函数。
最大后验概率估计是结构风险最小化的例子
PR曲线与ROC曲线刻画的都是阈值对于分类器性能的影响。
测试准确率:测试数据集上的准确率
混淆矩阵:查准率、查全率
不同的问题中,判别标准也不同
P-R曲线:PR图可以很好地用来比较两个分类器的优劣。
平衡点:查准率等于查全率的点,通常认为较远时更为优异。
多类混淆矩阵:方法1:先计算PR再平均;方法2:先平均,再计算PR。
ROC曲线:真正例率、假正例率