关注聚数云海公众号,数据分析不迷路
嗨~我是小聚,这里是聚数学院每周分享。在我们日常生活中所用到的推荐系统、智能图片美化应用和聊天机器人等应用中,各种各样的机器学习和数据处理算法正尽职尽责地发挥着自己的功效。本文中小聚特筛选并简单罗列了一些最常见的算法,希望能帮助大家更好学习和工作。
“没有最好的算法,只有最合适的算法。”
⚪机器学习算法大致分类
监督学习算法(Supervised Algorithms):在监督学习训练过程中,可以由训练数据集学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。主要算法包括神经网络、支持向量机、最近邻居法、朴素贝叶斯法、决策树等。
无监督学习算法(Unsupervised Algorithms):这类算法没有特定的目标输出,算法将数据集分为不同的组。
强化学习算法(Reinforcement Algorithms):强化学习普适性强,主要基于决策进行训练,算法根据输出结果(决策)的成功或错误来训练自己,通过大量经验训练优化后的算法将能够给出较好的预测。类似有机体在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。
⚪常见的的十种机器学习算法
01 回归算法
回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。
常见的回归算法包括:最小二乘法(Ordinary Least Square),线性回归(Linear Regression),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing)。
优点:直接、快速,知名度高
缺点:要求严格的假设需要处理异常值
02 基于实例的算法
基于实例的算法常常用来对决策问题建立模型,先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。
常见的算法包括 k-Nearest Neighbor(KNN),学习矢量量化(Learning Vector Quantization,LVQ),以及自组织映射算法(Self-Organizing Map,SOM)。
优点:
1)简单、有效。
2)重新训练的代价较低(类别体系的变化和训练集的变化,在Web环境和电子商务应用中是很常见的)。
3)计算时间和空间线性于训练集的规模(在一些场合不算太大)。
缺点:
1)当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。
2)对数据的局部结构比较敏感。如果查询点是位于训练集较密集的区域,那预测相对比其他稀疏集来说更准确。
3)维数灾难:临近距离可能被不相干属性主导(因此特征选择问题)
03 决策树学习
决策树算法根据数据的属性采用树状结构建立决策模型,决策树模型常常用来解决分类和回归问题。
常见的算法包括:分类及回归树(Classification And Regression Tree,CART),ID3(Iterative Dichotomiser3),C4.5,Chi-squared Automatic Interaction Detection(CHAID),Decision Stump,随机森林(Random Forest),多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine,GBM)。
优点:容易解释,非参数型
缺点:趋向过拟合;可能或陷于局部最小值中;没有在线学习
04 贝叶斯算法
贝叶斯算法是基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators,AODE),以及 Bayesian Belief Network(BBN)。
朴素贝叶斯算法应用非常广泛,从文本分类、垃圾邮件过滤器、医疗诊断等等。朴素贝叶斯适用于特征之间的相互独立的场景,例如利用花瓣的长度和宽度来预测花的类型。“朴素”。的内涵可以理解为特征和特征之间独立性强。
优点:快速、易于训练、给出了它们所需的资源能带来良好的表现
缺点:如果输入变量是相关的,则会出现问题
05 基于核的算法
基于核的算法中最著名的莫过于支持向量机(SVM)了。基于核的算法把输入数据映射到一个高阶的向量空间,在这些高阶向量空间里,有些分类或者回归问题能够更容易的解决。
常见的基于核的算法包括:持向量机(Support Vector Machine,SVM),径向基函数(Radial Basis Function,RBF),以及线性判别分析(Linear Discriminate Analysis,LDA)等。
优点:在非线性可分问题上表现优秀
缺点:非常难以训练;很难解释
06 聚类算法
聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。
常见的聚类算法包括 k-Means 算法以及期望最大化算法(Expectation Maximization,EM)。
优点:让数据变得有意义
缺点:结果难以解读,针对不寻常的数据组,结果可能无用。
07 降维算法
像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。
常见的算法包括:主成份分析(Principle Component Analysis,PCA),偏最小二乘回归(Partial Least Square Regression,PLS),Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS),投影追踪(Projection Pursuit)等。
优点:可处理大规模数据集;无需在数据上进行假设
缺点:难以搞定非线性数据;难以理解结果的意义
08 关联规则学习
关联规则学习方法能够提取出对数据中的变量之间的关系的最佳解释。比如说一家超市的销售数据中存在规则{洋葱,土豆}=>{汉堡},那说明当一位客户同时购买了洋葱和土豆的时候,他很有可能还会购买汉堡肉。
常见算法包括 Apriori 算法和 Eclat算法等。
09 集成算法
集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练, 然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。
常见的算法包括:Boosting,Bootstrapped Aggregation(Bagging),AdaBoost,堆叠泛化(Stacked Generalization,Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。
优点:当先最先进的预测几乎都使用了算法集成。它比使用单个模型预测出来的结果要精确的多。
缺点:需要大量的维护工作。
10 人工神经网络
人工神经网络算法模拟生物神经网络,是一类模式匹配算法。通常用于解决分类和回归问题。
人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法,(其中深度学习就是其中的一类算法),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network),反向传递(Back Propagation), Hopfield 网络,自组织映射(Self-Organizing Map, SOM)学习矢量量化(Learning Vector Quantization,LVQ)。
优点:
在语音、语义、视觉、各类游戏(如围棋)的任务中表现极好。
算法可以快速调整,适应新的问题。
缺点:
需要大量数据进行训练
训练要求很高的硬件配置
模型处于「黑箱状态」,难以理解内部机制
元参数(Metaparameter)与网络拓扑选择困难。
关注"聚数云海"公众号,免费领取数据分析学习资料!