|“没有最好的算法,只有最合适的算法。”
机器学习算法大致分类
常见的的十种机器学习算法
01回归算法
回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。
常见的回归算法包括:最小二乘法(OrdinaryLeastsquare),线性回归(LinearRegression),逻辑回归(LogisticRegression),逐步式回归(StepwiseRegression),多元自适应回归样条(MultivariateAdaptiveRegressionSplines)以及本地散点平滑估计(LocallyEstimatedScatterplotSmoothing)。
优点:直接、快速,知名度高
缺点:要求严格的假设需要处理异常值
02基于实例的算法
基于实例的算法常常用来对决策问题建立模型,先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。
常见的算法包括k-NearestNeighbor(KNN),学习矢量量化(LearningVectorQuantization,LVQ),以及自组织映射算法(Self-OrganizingMap,SOM)。
优点:
1)简单、有效。
2)重新训练的代价较低(类别体系的变化和训练集的变化,在Web环境和电子商务应用中是很常见的)。
缺点:
1)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。
2)对数据的局部结构比较敏感。如果查询点是位于训练集较密集的区域,那预测相对比其他稀疏集来说更准确。
3)维数灾难:临近距离可能被不相干属性主导(因此特征选择问题)
03决策树学习
决策树算法根据数据的属性采用树状结构建立决策模型,决策树模型常常用来解决分类和回归问题。
常见的算法包括:分类及回归树(ClassificationAndRegressionTree,CART),ID3(IterativeDichotomiser3),C4.5,Chi-squaredAutomaticInteractionDetection(CHAID),DecisionStump,随机森林(RandomForest),多元自适应回归样条(MARS)以及梯度推进机(GradientBoostingMachine,GBM)。
优点:容易解释,非参数型
缺点:趋向过拟合;可能或陷于局部最小值中;没有在线学习
04贝叶斯算法
贝叶斯算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(AveragedOne-DependenceEstimators,AODE),以及BayesianBeliefNetwork(BBN)。
朴素贝叶斯算法应用非常广泛,从文本分类、垃圾邮件过滤器、医疗诊断等等。朴素贝叶斯适用于特征之间的相互独立的场景,例如利用花瓣的长度和宽度来预测花的类型。“朴素”。的内涵可以理解为特征和特征之间独立性强。
优点:快速、易于训练、给出了它们所需的资源能带来良好的表现
05基于核的算法
基于核的算法中最著名的莫过于支持向量机(SVM)了。基于核的算法把输入数据映射到一个高阶的向量空间,在这些高阶向量空间里,有些分类或者回归问题能够更容易的解决。
常见的基于核的算法包括:持向量机(SupportVectorMachine,SVM),径向基函数(RadialBasisFunction,RBF),以及线性判别分析(LinearDiscriminateAnalysis,LDA)等。
优点:在非线性可分问题上表现优秀
缺点:非常难以训练;很难解释
06聚类算法
聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。
常见的聚类算法包括k-Means算法以及期望最大化算法(ExpectationMaximization,EM)。
优点:让数据变得有意义
缺点:结果难以解读,针对不寻常的数据组,结果可能无用。
07降维算法
像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。
常见的算法包括:主成份分析(PrincipleComponentAnalysis,PCA),偏最小二乘回归(PartialLeastsquareRegression,PLS),Sammon映射,多维尺度(Multi-DimensionalScaling,MDS),投影追踪(ProjectionPursuit)等。
优点:可处理大规模数据集;无需在数据上进行假设
缺点:难以搞定非线性数据;难以理解结果的意义
08关联规则学习
关联规则学习方法能够提取出对数据中的变量之间的关系的最佳解释。比如说一家超市的销售数据中存在规则{洋葱,土豆}=>{汉堡},那说明当一位客户同时购买了洋葱和土豆的时候,他很有可能还会购买汉堡肉。
常见算法包括Apriori算法和Eclat算法等。
09集成算法
集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。
常见的算法包括:Boosting,BootstrappedAggregation(Bagging),AdaBoost,堆叠泛化(StackedGeneralization,Blending),梯度推进机(GradientBoostingMachine,GBM),随机森林(RandomForest)。
优点:当先最先进的预测几乎都使用了算法集成。它比使用单个模型预测出来的结果要精确的多。
缺点:需要大量的维护工作。
10人工神经网络
人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。
人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法,(其中深度学习就是其中的一类算法),重要的人工神经网络算法包括:感知器神经网络(PerceptronNeuralNetwork),反向传递(BackPropagation),Hopfield网络,自组织映射(Self-OrganizingMap,SOM)学习矢量量化(LearningVectorQuantization,LVQ)。