将机器学习分为四种,分别是监督学习、无监督学习、半监督学习和增强学习。
(1)监督学习(Supervised Learning):是指每个进入算法的训练数据样本都有对应的期望值也就是目标值,进行机器学习的过程实际上就是特征值和目标队列映射的过程;通过过往的一些数据的特征以及最终结果来进行训练的方式就是监督学习法;监督学习算法的训练数据源需要由特征值以及目标队列两部分组成。
因为监督学习依赖于每个样本的打标,可以得到每个特征序列映射到的确切的目标值是什么,所以常用于回归以及分类场景。常见的监督学习算法如下表所示:
算法 |
具体包括 |
分类算法
|
K近邻(k-Nearest Neighbor,KNN)、朴素贝叶斯(Naive Bayesian algorithm)、决策树(Decision Tree)、随机森林(Random forest)、GBDT(GradientBoostingDecisionTree, 梯度提升迭代决策树)和支持向量机(Support Vector Machine, SVM)等 |
回归算法
|
逻辑回归(Logistic Regressive)、线性回归(Linear Regression)等
|
监督学习的一个问题就是获得目标值的成本比较高。
(2)无监督学习(Unsupervised Learning):就是指训练样本不依赖于打标数据的机器学习算法,它主要是用来解决一些聚类场景的问题。常见的无监督学习算法如下表所示:
算法 |
具体包括 |
聚类算法
|
K-Means(k-means clustering algorithm,k均值聚类算法)、DBSCAN(聚类算法,Density-Based Spatial Clustering of Applications wit)等
|
推荐算法
|
协同过滤(Collaborative Filtering)等
|
相较于监督学习,无监督学习的一大好处就是不依赖于打标数据。
(3)半监督学习(Semi-supervised Learning):通过对样本的部分打标来进行机器学习算法的使用,很多半监督学习算法都是监督学习算法的变形。
(4)强化学习(Reinforcement Learning):是一种比较复杂的机器学习种类, 强调的是系统与外界不断地交互,获得外界的反馈,然后决定自身的行为。
综上,监督学习主要解决的是分类和回归的场景,无监督学习主要解决聚类场景,半监督学习解决的是一些打标数据比较难获得的分类场景,强化学习主要是针对流程中不断需要推理的场景。具体的分类如下表所示:
算法 |
具体包括 |
监督学习 |
逻辑回归、K 近邻、朴素贝叶斯、随机森林、支持向量机 |
无监督学习 |
K-means、DBSCAN、协同过滤、LDA |
半监督学习 |
标签传播 |
强化学习 |
隐马尔可夫 |
监督学习(supervised learning):通过已有的训练样本(即已知数据以及其对应的输出)来训练,从而得到一个最优模型,再利用这个模型将所有新的数据样本映射为相应的输出结果,对输出结果进行简单的判断从而实现分类的目的,那么这个最优模型也就具有了对未知数据进行分类的能力。
无监督学习(unsupervised learning):我们事先没有任何训练数据样本,需要直接对数据进行建模。
有监督学习:对具有标记的训练样本进行学习,以尽可能对训练样本集外的数据进行分类预测。(LR,SVM,BP,RF,GBDT)
如果一味的去提高训练数据的预测能力,所选模型的复杂度往往会很高,这种现象称为过拟合。所表现的就是模型训练时候的误差很小,但在测试的时候误差很大。
产生的原因:
(1)过拟合原因
(2) 模型问题
解决方法:
(1)样本数据方面:
(2)模型或训练问题
如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是。
常见的线性分类器有:LR,贝叶斯分类,单层感知机、线性回归
常见的非线性分类器:决策树、RF、GBDT、多层感知机SVM两种都有(看线性核还是高斯核)
线性分类器速度快、编程方便,但是可能拟合效果不会很好
非线性分类器编程复杂,但是效果拟合能力强
Linear SVM和LR都是线性分类器
Linear SVM不直接依赖数据分布,分类平面不受一类点影响;LR则受所有数据点的影响,如果数据不同类别strongly unbalance一般需要先对数据做balancing。
Linear SVM依赖数据表达的距离测度,所以需要对数据先做normalization(归一化);LR不受其影响Linear SVM依赖penalty的系数,实验中需要做validation
n Linear SVM和LR的performance都会收到outlier的影响,其敏感程度而言,谁更好很难下明确结论。
SVM、神经网络、决策树、随机森林、逻辑回归、KNN、贝叶斯
模型复杂度:SVM支持核函数,可处理线性非线性问题;LR模型简单,训练速度快,适合处理线性问题;决策树容易过拟合,需要进行剪枝。
损失函数:SVM hinge loss; LR L2正则化; adaboost 指数损失。
数据敏感度:SVM添加容忍度对outlier不敏感,只关心支持向量,且需要先做归一化;LR对远点敏感
数据量:数据量大就用LR,数据量小且特征少就用SVM非线性核。
聚类算法中的距离度量一般用闽科夫斯基距离,在p取不同的值下对应不同的距离,例如p=1的时候对应曼哈顿距离,p=2的情况下对应欧式距离,p=inf的情况下变为切比雪夫距离,还有jaccard距离,幂距离(闽科夫斯基的更一般形式),余弦相似度,加权的距离,马氏距离(类似加权)作为距离度量需要满足非负性,同一性,对称性和直递性,闽科夫斯基在p>=1的时候满足读来那个性质,对于一些离散属性例如{飞机,火车,轮船}则不能直接在属性值上计算距离,这些称为无序属性,可以用VDM(ValueDiffrence Metrix),属性u上两个离散值a,b之间的VDM距离定义为
其中表示在第i个簇中属性u上a的样本数,样本空间中不同属性的重要性不同的时候可以采用加权距离,一般如果认为所有属性重要性相同则要对特征进行归一化。一般来说距离需要的是相似性度量,距离越大,相似度越小,用于相似性度量的距离未必一定要满足距离度量的所有性质,例如直递性。比如人马和人,人马和马的距离较近,然后人和马的距离可能就很远。
贝叶斯公式
最小化分类错误的贝叶斯最优分类器等价于最大化后验概率
基于贝叶斯公式来估计后验概率的主要困难在于,条件概率是所有属性上的联合概率,难以从有限的训练样本直接估计得到。朴素贝叶斯分类器采用了属性条件独立性假设,对于已知的类别,假设所有属性相互独立。这样,朴素贝叶斯分类则定义为:如果有足够多的独立同分布样本,那么可以根据每个类中的样本数量直接估计出来。
在离散情况下先验概率可以利用样本数量估计或者离散情况下根据假设的概率密度函数进行最大似然估计。朴素贝叶斯可以用于同时包含连续变量和离散变量的情况。如果直接基于出现的次数进行估计,会出现一项为0而乘积为0的情况,所以一般会用一些平滑的方法,例如拉普拉斯修正。
http://blog.csdn.net/xbmatrix/article/details/56695825
归一化化就是要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。
1)归一化后加快了梯度下降求最优解的速度。等高线变得显得圆滑,在梯度下降进行求解时能较快的收敛。如果不做归一化,梯度下降过程容易走之字,很难收敛甚至不能收敛
2)把有量纲表达式变为无量纲表达式, 有可能提高精度。一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)
3) 逻辑回归等模型先验假设数据服从正态分布。
归一化的类型有:线性归一化、标准差归一化、非线性归一化
归一化:
1)把数据变成(0.1)之间的小数
2)把有量纲表达式变成无量纲表达
常见的有线性转换、对数函数转换、反余切函数转换等
标准化:
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。
1 ) 最小-最大规范化(线性变换)
y=((x-MinValue) / (MaxValue-MinValue))(new_MaxValue-new_MinValue)+new_minValue
2)z-score规范化(或零-均值规范化)
y=(x-X的平均值)/X的标准差
3)小数定标规范化:通过移动X的小数位置来进行规范化
y= x/10的j次方 (其中,j使得Max(|y|) <1的最小整数
4).对数Logistic模式:
新数据=1/(1+e^(-原数据))
5)模糊量化模式
新数据=1/2+1/2sin[派3.1415/(极大值-极小值)
1、缺失值较多,直接将该特征舍弃掉,否则可能反倒会带入较大的noise,对结果造成不良影响。
2. 缺失值较少,其余的特征缺失值都在10%以内,我们可以采取很多的方式来处理:
1) 把NaN直接作为一个特征,假设用0表示;
2) 用均值填充;
3) 用随机森林等算法预测填充
直到每个叶子节点都只有一种类型的记录时停止,(这种方式很容易过拟合)。
另一种时当叶子节点的记录树小于一定的阈值或者节点的信息增益小于一定的阈值时停止
随机森林采用的是bagging的思想,bagging又称为bootstrap aggreagation,通过在训练样本集中进行有放回的采样得到多个采样集,基于每个采样集训练出一个基学习器,再将基学习器结合。
随机森林在对决策树进行bagging的基础上,在决策树的训练过程中引入了随机属性选择。传统决策树在选择划分属性的时候是在当前节点属性集合中选择最优属性,而随机森林则是对结点先随机选择包含k个属性的子集,再选择最有属性,k作为一个参数控制了随机性的引入程度。
另外,GBDT训练是基于Boosting思想,每一迭代中根据错误更新样本权重,因此是串行生成的序列化方法,而随机森林是bagging的思想,因此是并行化方法。
标称型和数值型
标称型:标称型目标变量的结果只在有限目标集中取值,如真与假(标称型目标变量主要用于分类)
数值型:数值型目标变量则可以从无限的数值集合中取值,如0.100,42.001等 (数值型目标变量主要用于回归分析)
给定一个合适的类簇指标,比如平均半径或直径,只要我们假设的类簇的数目等于或者高于真实的类簇的数目时,该指标上升会很缓慢,而一旦试图得到少于真实数目的类簇时,该指标会急剧上升。类簇的直径是指类簇内任意两点之间的最大距离。类簇的半径是指类簇内所有点到类簇中心距离的最大值。
Dropout 是一种模型选择技术,其旨在避免在训练过程中出现过拟合现象,Dropout的基本做法是在给定概率 p 的情况下随机移除输入数据 X 的维度。因此,探讨一下其如何影响潜在损失函数和最优化问题是有启发性的。
共线性:多变量线性回归中,变量之间由于存在高度相关关系而使回归估计不准确。
共线性会造成冗余,导致过拟合。
解决方法:排除变量的相关性/加入权重正则
(更新中……)