这里写目录标题
有监督学习算法(学习样本中有结果标记)
有监督学习(Supervised learning):利用一组已知类别的样本来训练模型,使其达到性能要求。特点为输入数据(训练数据)均有一个明确的标识或结果(标签)。
分类算法Classification
通过已有数据集(训练集)的学习,得到一个目标函数f(模型),把每个属性集x映射到目标属性y(类),且y必须是离散的(若y为连续的,则属于回归算法)。通过对已知类别训练集的分析,从中发现分类规则,以此预测新数据的类别。
常用的分类算法有:
- 基于统计的:朴素贝叶斯(NB,Naïve Bayes)
- 基于规则的:决策树(DT,Decision Tree):
- ID3(迭代树3代,Iterative Dichotomiser)
- C4.5
- C50
- CART
- 基于神经网络的:神经网络
- 基于距离的:KNN(K最近邻,K-Nearest Neighbour)
- SVM(支持向量机,Support Vector Machine)
- ……
常用评估指标(评估模型的好坏)
- 精确率:预测结果与实际结果的比例
- 召回率:预测结果中某类结果的正确覆盖率
- F1-Score:统计量,综合评估分类模型,取值0-1之间
回归预测Regression
在做分类算法时,如果分类结果是连续值,它就是一个回归。
- 线性回归(Linear Regression)
- 逻辑回归(Logistics Regression)
- 岭回归(Ridge Regression)
- 拉索回归(LASSO Regression)
- ……
无监督学习算法(学习样本中无结果标记)
无监督学习(Unsupervised learning):从无标记的训练数据中推断结论。其特点为输入数据(训练数据)不存在明确的标识或结果(标签)。常见的无监督学习为聚类,即发现隐藏的模式或者对数据进行分组。
聚类算法Clustering
聚类(Clustering)就是将相似的事物聚集在一起,而将不相似的事物划分到不同的类别的过程。它是一种探索性的分析,不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。聚类分析所使用的方法不同,常常会得到不同的结论。
- 层次聚类
- 划分聚类
- K-Means(K均值聚类)
- 基于密度的聚类
- DBScan
- DBScan
关联规则Association Rule
关联规则(Association Rule)是反映事物与事物间相互的依存关系和关联性。如果两个或多个事物间存在一定的关联关系,则其中一个事物能够通过其他事物预测到。最常见的场景就是购物篮分析(MarketBasket)。通过分析顾客购物篮中的不同商品之间的关系,来分析顾客的购买习惯。经典案例就是啤酒与尿布。
- Apriori
- Eclat
半监督学习算法(学习样本中部分记录有结果标记)
- 半监督分类:在无类标签的样例的帮助下训练有类标签的样本,弥补有类标签的样本不足的缺陷
- 半监督回归:在无输出的输入的帮助下训练有输出的输入,获得性能更好的回归器
- 半监督聚类:在有类标签的样本的信息帮助下获得比只用无类标签的样例得到的结果更好的簇
- 半监督降维:在有类标签的样本的信息帮助下找到高维输入数据的低维结构,同时保持原始高维数据和成对约束的结构不变
其他学习算法:
集成学习算法
针对同一数据集,训练多种学习器,来解决同一问题。
Bagging
将训练样本通过有放回的抽样构建多个子集,再训练出多个不同的模型 ,预测结果(最终结果)将由各分类器结果投票得出
0表示模型预测结果错误,1表示正确。模型1:0,模型2:0,模型3:0,表示三个模型的预测结果都错了,根据少数服从多数的原则,只要有两个模型的预测结果正确,最终的预测结果就正确。
模型1预测错误的概率 × 模型2预测错误的概率 × 模型3预测错误的概率 = 三个模型都预测错误的概率
由于是少数服从多数,上面四种情况最终预测是错误的,下面四种情况最终预测是正确的。
把每一种情况的概率相加,得出最终预测错误的概率为0.352,最终预测正确的概率为0.648
相对于单一的模型,准确率从60%提升到了64.8%
虽然多个模型叠加能够增加准确率,例如
单个弱分类器的准确率 | 模型中弱分类个数 | 最终准确率 |
---|---|---|
0.6 | 11 | 0.753 |
0.6 | 101 | 0.979 |
但有个前提假设,那就是模型和模型之间是独立的。而事实上不可能是独立的。 首先这些模型算法肯定是一样的(大致一样),其次它们使用的数据集也不是完全独立的。
Boosting
重复使用一类学习器来修改训练集
每次训练后根据结果调整样本的权重
每个学习器加权后的线性组合即为最终结果
对于一个原始的训练样本,使用机器学习算法得到模型1,将模型1对原始训练样本预测错误的数据权重加大,放到一个新的数据集中,对这个新的数据集,使用相同的机器学习算法得到一个模型2,将模型2对这个新的数据集预测错误的数据权重加大,放到一个新的数集集中,如此循环…最终以线性组合的方式把它们叠加起来得到最终的模型
例:AdaBoost
- Stacking
- 由两级组成,第一级为初级学习器,第二级为高级学习器
- 第一级学习器的输出作为第二级学习器的输入
随机森林RandomForest
随机森林是分类算法中非常重要的一个算法。由许多棵决策树组成,树生成的时候采用了随机的方法。通常会把它叫做Smart Bagging。
生成步骤:
- 随机采样, 生成多个样本集
- 对每个样本集构建决策树
优点:
- 可以处理多分类
- 在很大程度上减少或避免了过拟合
- 容易实现并行
- 对数据集容错能力强
深度学习
深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。属于机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本
常见深度学习算法:
- 受限波尔兹曼机 Restricted Boltzmann Machine(RBM)
- 深度信念网络 Deep Belief Networks(DBN)
- 卷积网络 Convolutional Network
- 栈式自编码 Stacked Auto-encoders
增强学习
增强学习(Reinforcement Learning)要解决的问题是:一个能感知环境的自治 agent,通过学习,选择能达到其目标的最优动作。本质就是解决 “决策(decision making)” 问题,即学会自动进行决策。比如控制移动机器人、在工厂中学习最优操作工序、学习棋类对奔等。
常见增强学习算法:
- Q-Learning
- 时间差学习 Temporal difference learning
迁移学习
迁移学习(Transfer Learning)是要把已学训练好的模型参数迁移到新的模型来帮助新模型训练数据集。初衷是节省人工标注样本的时间,让模型可以通过已有的标记数据向未标记数据迁移。换言之,就是运用已有的知识来学习新的知识,核心是找到已有知识和新知识之间的相似性。
优化算法
- 最大期望(EM:Expectation Maximization)
降维算法
- PCA(主成分分析)、PLS(偏最小二乘回归)、MDS(多维尺度分析)