机器学习基本认识
机器学习基本认识
0. 概述
数据挖掘主要包括数据库、机器学习、统计学三个方面的知识。机器学习主要是数据、模型、评估。模型主要是函数集、损失函数(如何从函数集中找最优的一个函数)、求解过程。
机器学习的应用,应注意具体的场景,基本的假设和数据的情况。
1. 特征工程
1.1 归一化
1.2 类别特征
1.3 组合特征
1.4 不平衡数据
在两类数据的预测时,例如癌症患者诊断,搜索结果等。癌症患者诊断中,希望分类器低的假阴性率,即减少将癌症患者误诊为健康。因为,即使将健康人诊断为癌症(假阳性),也还是可以复查的;而将癌症患者误诊为健康,则会错过治疗时间。搜索结果,则相反,希望分类器将更多的相关结果返回,即更大的召回率。因为,返回结果中包括一些无关结果也是可以接受的,但是相关结果没过出来就不好。当然,无关结果太多也不好。上面的癌症患者和相关结果就是关心的正样本,而且相同的时正样本占比很小。
处理这个问题,可以从数据集、模型、评估,三个方面入手。
模型一般都是假定类平衡分布和相等的错误代价,所以传统分类算法不适合不平衡数据。可以使用组合技术,即集成学习。
另个,是阈值移动,例如对于返回概率的模型,从0.5降到0.4,使正样本容易分类。分类器包括:朴素贝叶斯,后向传播类的神经网络。
更改模型的评估指标。在不同的场景,可以更关心某一个指标。
数据集入手,包括:
- 过抽样:对正样本重复采样,使正样本和负样本的个数相同。
- 欠抽样:减少负样本的数量,使负样本和正样本的个数相同。
过抽样和欠抽样都改变训练集的分布。过抽样的方法,如SMOTE算法。
- 阈值移动和组合技术优于过抽样和欠抽样。
- 对于多分类,没有好的解决方案。
2. 模型评估
2.1 评价指标
2.2 过拟合与欠拟合
2.3 超参数选择
3. 算法
3.1 算法分类
算法的分类方法有很多种。按是否有标签,可以分为有监督和无监督模型。按数据的情况来分类,可以分为分类、关联规则、聚类、回归、离群点检测等。
图 机器学习算法分类
3.2 逻辑回归
3.3 决策树
3.4 支持向量机
3.5 朴素贝叶斯
3.6 KMeans
4. 降维
4.1 主成分分析PCA
4.2 线性判别分析
5. 集成学习
集成学习(ensemble learning, 系综)是用多个分类器的投票来进行分类。分类器,即为基分类器可以是决策树、逻辑回归、支持向量集等前面的算法,但是一般用决策树比较多。
主要思想是将许多简单模型组合起来,共同回答同一个问题,这样得到的结果可能比一个模型的结果更接近真实答案。但是如何将这些模型给的结果组合起来,得到一个结果呢?这就有许多方法了。
主要有bagging, boosting, 随机森林。
5.1 bagging
bagging(装袋)就是将训练数据作为超参数,对训练数据进行有放回的采样,得到子集。然后一个子集训练一个基分类器。最终,基分类器的组合,就是最终的bagging模型。
pasting与bagging不同的是,采样是不放回的。这种模型一般用在在线和大数据集的情形下。
上述两个方法的评价:
- 与单个分类器相比,准确率会有提升。
- 对于噪声数据和过拟合的影响,鲁棒性更好。
- 总的来说,最终结果与直接在原始训练集上训练的单个预测器相比,集成的偏差相近,但是方差更低。
- 更容易并行化或者扩展。
5.2 Boosting
boosting(提升法)的总体思路是循环训练基分类器,每一次都更关注其前序的”错误“。最终,组合每个分类器的表决,其中每个分类器的投票的权重是其准确率的函数。
其中,前一个分类器的”错误“有多种提升方式。一个是对训练数据中每个数据的权重进行调整;一个是对前一个分类器的残差进行训练学习。
有AdaBoost(自适应提升法,adaptive boosting)和梯度提升。
5.3 随机森林
每个分类器都是一棵决策树,因此分类器的集合就是一个”森林“。
数据集D, 包括F个属性,基分类器为M, 模型个数为k个。
随机森林使用bagging和随机属性选择结合来构建。过程是,在构建第i个分类器\(M_i\)时,随机抽样数据集\(D_i\), 随机选择属性\(F_i\)个,且\(F_i << F\). 这样的随机森林为Forest-RI.
另一种方式为Forest-RC,是使用属性的随机线性组合。在树结点,选择L个原属性,从[-1,1]中随机选择一个数作为系数相加,最终得到\(F_i\)个属性,然后搜索最佳划分。在属性较少时,很有用。
- 对于错误和离群点更鲁棒
- 准确率依赖于分类器的个体实力和它们之间的相关性
- 由于每次划分可以只考虑少量属性,因此适合大型数据库。