机器学习
LDA
LDA是一种基于有监督学习的降维方式,将数据集在低维度的空间进行投影,要使得投影后的同类别的数据点间的距离尽可能的靠近,而不同类别间的数据点的距离尽可能的远。
PCA
PCA是比较常见的线性降维方法,通过线性投影将高维数据映射到低维数据中,所期望的是在投影的维度上,新特征自身的方差尽量大,方差越大特征越有效,尽量使产生的新特征间的相关性越小。
PCA算法的具体操作为对所有的样本进行中心化操作,计算样本的协方差矩阵,然后对协方差矩阵做特征值分解,取最大的n个特征值对应的特征向量构造投影矩阵。
LR
逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层逻辑函数g(z),g(z)可以将连续值映射到0 到1的概率。
0\1分类时,g(z)为sigmoid function;
处理多分类问题时,有两种方案:
- 方案一:把sigmoid函数换成softmax函数,oftmax分类模型会有相同于类别数的输出,输出的值为对于样本属于各个类别的概率,最后对于样本进行预测的类型为概率值最高的那个类别。
- 方案二:根据每个类别都建立一个二分类器, 判断是否属于某个类别,有多少个类别就构造多少个逻辑回归分类器
LR与线性回归的区别:
- 线性回归用来做预测, LR用来做分类。
- 线性回归是来拟合函数, LR是来预测函数。
- 线性回归用最小二乘法来计算参数, LR用最大似然估计来计算参数。
- 线性回归更容易受到异常值的影响, 而LR对异常值有较好的稳定性。
softmax
softmax函数,又称归一化指数函数。它是二分类函数sigmoid函数在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。
SVM
SVM为非参数模型,基本模型定义为特征空间上的间隔最大的线性分类器,学习策略为最大化分类间隔,在学习分类器的时候,SVM只考虑与分类最相关的少数支持向量点。
核函数的作用:
核函数隐含着一个从低维空间到高维空间的映射,这个映射可以把低维空间中线性不可分的两类点变成线性可分的。
核的选择
- 当特征维数高或者样本数据量大,可以采用线性核,避免造成庞大的计算量。线性核SVM和逻辑回归本质上没有区别。
- 若特征数较少,样本数适中,对于时间不敏感,遇到的问题是线性不可分的时候可以使用高斯核来达到更好的效果
决策树
ID3决策树优先选择信息增益大的属性来对样本进行划分,但是这样的分裂节点方法有一个很大的缺点,当一个属性可取值数目较多时,可能在这个属性对应值下的样本只有一个或者很少个,此时它的信息增益将很高,ID3会认为这个属性很适合划分,但实际情况下叫多属性的取值会使模型的泛化能力较差,
所以C4.5采用信息增益率作为划分依据。但是仍不能完全解决以上问题,而是有所改善,
这个时候引入了CART树,它使用gini系数作为节点的分裂依据。
分类问题
如果给你一些数据集,你会如何分类?
根据数据特点选择不同的模型,如LR或者SVM,决策树。
- 假如特征维数较多,可以选择SVM模型,
- 如果样本数量较大可以选择LR模型,但是LR模型需要进行数据预处理;
- 假如缺失值较多可以选择决策树。
选定完模型后,相应的目标函数就确定了。
还可以在考虑正负样例比,通过上下集采样平衡正负样例比。
k-means
- 从数据集中随机选择k个聚类样本作为初始的聚类中心,
- 计算数据集中每个样本到这k个聚类中心的距离,并将此样本分到距离最小的聚类中心所对应的类中。
- 将所有样本归类后,对于每个类别重新计算每个类别的聚类中心即每个类中所有样本的质心
- 重复以上操作直到聚类中心不变为止。
缺点:
- k-means是局部最优的,容易受到初始质心的影响
- k值的选取也会直接影响聚类结果,最优聚类的k值应与样本数据本身的结构信息相吻合,而这种结构信息是很难去掌握,因此选取最优k值是非常困难的。
k值的确定:
法1:(轮廓系数)在实际应用中,由于Kmean一般作为数据预处理,或者用于辅助分聚类贴标签。所以k一般不会设置很大。可以通过枚举,令k从2到一个固定值如10,在每个k值上重复运行数次kmeans(避免局部最优解),并计算当前k的平均轮廓系数,最后选取轮廓系数最大的值对应的k作为最终的集群数目。
法2:(Calinski-Harabasz准则)
其中SSB是类间方差,,m为所有点的中心点,mi为某类的中心点;
SSW是类内方差,;
(N-k)/(k-1)是复杂度;
比率越大,数据分离度越大。
k-means与knn区别
这俩都是聚类算法,算法原理上区别比较大,主要在k上比较容易混淆:
- k-means中k是类别数目,knn中是最近邻居数目
- k-means时无监督方法,knn是监督方法
DBSCAN
DBSCAN是一种基于密度的空间聚类算法,它不需要定义簇的个数,而是将具有足够高密度的区域划分为簇,并在有噪声的数据中发现任意形状的簇,在此算法中将簇定义为密度相连的点的最大集合。
bagging
Bagging是从训练集中进行抽样组成每个基模型所需要的子训练集,然后对所有基模型预测的结果进行综合产生最终的预测结果。
Bagging中整体模型的期望近似于基模型的期望,所以整体模型的偏差相似于基模型的偏差,因此Bagging中的基模型为强模型(强模型拥有低偏差高方差)。
基模型可以并行训练,平权投票。
bagging集成是为了解决过拟合,降低方差,提高泛化性能
boosting
Boosting中基模型按次序进行训练,训练集不变,只是训练集中的每个样本在分类器中的权重都会发生变化,此权值会根据上一轮的结果进行调整。最后以一定的方式将基分类器组合成一个强分类器。
Boosting中的基模型为弱模型,若不是弱模型会导致整体模型的方差很大。
基模型的训练不可以并行,集成一般是加权投票。
boosting集成是为了解决欠拟合,降低偏差,提高训练精度。
偏差—方差均衡(Tradeoff)
偏差(bias)预测值和真实值之间的误差
方差(Variance):预测值之间的离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散。
对于样本数据,如果选择的模型过于简单,学不到很多信息,此时模型的预测值和真实值误差很大,也就是偏差很大,随着模型的复杂度提升,学到的信息也越来越多,使得偏差逐渐降低。
同样的,随着模型复杂度的提升,数据相对模型而言变得简单,使得模型学到了更多的数据噪音,方差也就越来越大。
防止过拟合
1.早停法;
2.L1和L2正则化;
3.神经网络的dropout;
4.决策树剪枝;
5.SVM的松弛变量;
6.集成学习
主要引用材料:
https://www.nowcoder.com/issue/tutorial?tutorialId=95&uuid=be388bd9340b4fb18892556560be8230