文章来源:https://www.dezyre.com/article/top-10-machine-learning-algorithms/202python
本人自行翻译,若有错误,还请指出。后续会继续补充实例及代码实现。算法
手动分类网页,文档,电子邮件或任何其余冗长的文本注释将是困难且实际上不可能的。 这是朴素贝叶斯分类器机器学习算法来解决。 分类器是从可用类别之一分配整体的元素值的函数。 例如,垃圾邮件过滤是朴素贝叶斯分类器算法的流行应用程序。 此处的垃圾邮件过滤器是一种分类器,可为全部电子邮件分配“垃圾邮件”或“不垃圾邮件”标签。数据库
朴素贝叶斯分类器算法是最受欢迎的学习方法之一,按照类似性分类,用流行的贝叶斯几率定理来创建机器学习模型,特别是用于疾病预测和文档分类。 它是基于贝叶斯几率定理的单词的内容的主观分析的简单分类。dom
何时使用机器学习算法 - 朴素贝叶斯分类器?机器学习
(1)若是您有一个中等或大的训练数据集。函数
(2)若是实例具备几个属性。工具
(3)给定分类参数,描述实例的属性应该是条件独立的。性能
A.朴素贝叶斯分类器的应用学习
(1)情绪分析 - 用于Facebook分析表示积极或消极情绪的状态更新。测试
(2)文档分类 - Google使用文档分类来索引文档并查找相关性分数,即PageRank。 PageRank机制考虑在使用文档分类技术解析和分类的数据库中标记为重要的页面。
(3)朴素贝叶斯算法也用于分类关于技术,娱乐,体育,政治等的新闻文章。
(4)电子邮件垃圾邮件过滤 - Google Mail使用NaïveBayes算法将您的电子邮件归类为垃圾邮件或非垃圾邮件。
B.朴素贝叶斯分类器机器学习算法的优势
(1)当输入变量是分类时,朴素贝叶斯分类器算法执行得很好。
(2)当朴素贝叶斯条件独立假设成立时,朴素贝叶斯分类器收敛更快,须要相对较少的训练数据,而不像其余判别模型,如逻辑回归。
(3)使用朴素贝叶斯分类器算法,更容易预测测试数据集的类。 多等级预测的好赌注。
(4)虽然它须要条件独立假设,可是朴素贝叶斯分类器在各类应用领域都表现出良好的性能。
Python中的数据科学库实现NaïveBayes - Sci-Kit学习
数据科学图书馆在R实施朴素贝叶斯 - e1071
K-means是用于聚类分析的广泛使用的无监督机器学习算法。 K-Means是一种非肯定性和迭代的方法。 该算法经过预约数量的簇k对给定数据集进行操做。 K Means算法的输出是具备在簇之间分割的输入数据的k个簇。
例如,让咱们考虑维基百科搜索结果的K均值聚类。 维基百科上的搜索词“Jaguar”将返回包含Jaguar这个词的全部页面,它能够将Jaguar称为Car,Jaguar称为Mac OS版本,Jaguar做为动物。 K均值聚类算法能够应用于对描述相似概念的网页进行分组。 所以,算法将把全部谈论捷豹的网页做为一个动物分组到一个集群,将捷豹做为一个汽车分组到另外一个集群,等等。
A.使用K-means聚类机学习算法的优势
(1)在球状簇的状况下,K-Means产生比层级聚类更紧密的簇。
(2)给定一个较小的K值,K-Means聚类计算比大量变量的层次聚类更快。
B.K-Means聚类的应用
K Means Clustering算法被大多数搜索引擎(如Yahoo,Google)用于经过类似性对网页进行聚类,并识别搜索结果的“相关率”。 这有助于搜索引擎减小用户的计算时间。
Python中的数据科学库实现K均值聚类 - SciPy,Sci-Kit学习,Python包装
数据科学库中的R实现K均值聚类 - 统计
支持向量机是一种分类或回归问题的监督机器学习算法,其中数据集教导关于类的SVM,以便SVM能够对任何新数据进行分类。 它经过找到将训练数据集分红类的线(超平面)将数据分类到不一样的类中来工做。 因为存在许多这样的线性超平面,SVM算法尝试最大化所涉及的各类类之间的距离,而且这被称为边际最大化。 若是识别出最大化类之间的距离的线,则增长对未看见数据良好推广的几率。
A.SVM分为两类:
线性SVM - 在线性SVM中,训练数据,即分类器由超平面分离。
非线性SVM在非线性SVM中,不可能使用超平面来分离训练数据。 例如,用于面部检测的训练数据由做为面部的一组图像和不是面部的另外一组图像(换句话说,除了面部以外的全部其余图像)组成。 在这种条件下,训练数据太复杂,不可能找到每一个特征向量的表示。 将面的集合与非面的集线性分离是复杂的任务。
B.使用SVM的优势
(1)SVM对训练数据提供最佳分类性能(精度)。
(2)SVM为将来数据的正确分类提供了更高的效率。
(3)SVM的最好的事情是它不对数据作任何强有力的假设。
(4)它不会过分拟合数据。
C.支持向量机的应用
(1)SVM一般用于各类金融机构的股票市场预测。 例如,它能够用来比较股票相对于同一行业中其余股票的表现的相对表现。 股票的相对比较有助于管理基于由SVM学习算法作出的分类的投资决策。
(2)Python中的数据科学库实现支持向量机-SciKit学习,PyML,SVMStruct Python,LIBSVM
(3)R中的数据科学库实现支持向量机 - klar,e1071
Apriori算法是无监督机器学习算法,其从给定数据集生成关联规则。 关联规则意味着若是项目A出现,则项目B也以必定几率出现。 生成的大多数关联规则采用IF_THEN格式。 例如,若是人们买了一个iPad,他们还买了一个iPad保护套。 为了获得这样的结论的算法,它首先观察购买iPad的人购买iPad的人数。 这样一来,比例就像100个购买iPad的人同样,85我的还购买了一个iPad案例。
A.Apriori机器学习算法的基本原理:
若是项集合频繁出现,则项集合的全部子集也频繁出现。
若是项集合不常常出现,则项集合的全部超集都不常常出现。
B.先验算法的优势
(1)它易于实现而且能够容易地并行化。
(2)Apriori实现使用大项目集属性。
C.Apriori算法应用
检测不良药物反应
Apriori算法用于关于医疗数据的关联分析,例如患者服用的药物,每一个患者的特征,不良的不良反应患者体验,初始诊断等。该分析产生关联规则,其帮助识别患者特征和药物的组合 致使药物的不良反作用。
市场篮子分析
许多电子商务巨头如亚马逊使用Apriori来绘制数据洞察,哪些产品多是一块儿购买,哪些是最响应促销。 例如,零售商可能使用Apriori预测购买糖和面粉的人极可能购买鸡蛋来烘烤蛋糕。
自动完成应用程序
Google自动完成是Apriori的另外一个流行的应用程序,其中 - 当用户键入单词时,搜索引擎寻找人们一般在特定单词以后键入的其余相关联的单词。
Python中的数据科学库实现Apriori机器学习算法 - 在PyPi中有一个python实现Apriori
数据科学库在R中实现Apriori机器学习算法 – arules
线性回归算法显示了2个变量之间的关系,以及一个变量中的变化如何影响另外一个变量。 该算法显示了在改变自变量时对因变量的影响。 自变量被称为解释变量,由于它们解释了因变量对因变量的影响。 依赖变量一般被称为感兴趣的因子或预测因子。
A.线性回归机器学习算法的优势
(1)它是最可解释的机器学习算法之一,使得它很容易解释给别人。
(2)它易于使用,由于它须要最小的调谐。
(3)它是最普遍使用的机器学习技术运行快。
B.线性回归算法应用
估计销售额
线性回归在业务中有很大的用途,基于趋势的销售预测。若是公司每个月的销售额稳步增加 - 对月度销售数据的线性回归分析有助于公司预测将来几个月的销售额。
风险评估
线性回归有助于评估涉及保险或金融领域的风险。健康保险公司能够对每一个客户的索赔数量与年龄进行线性回归分析。这种分析有助于保险公司发现,老年顾客倾向于提出更多的保险索赔。这样的分析结果在重要的商业决策中起着相当重要的做用,而且是为了解决风险。
Python中的数据科学库实现线性回归 - statsmodel和SciKit
R中的数据科学库实现线性回归 - 统计
你正在制做一个周末计划,去访问最好的餐馆在城里,由于你的父母访问,但你是犹豫的决定在哪家餐厅选择。每当你想去一家餐馆,你问你的朋友提利昂若是他认为你会喜欢一个特定的地方。为了回答你的问题,提利昂首先要找出,你喜欢的那种餐馆。你给他一个你去过的餐馆列表,告诉他你是否喜欢每一个餐厅(给出一个标记的训练数据集)。当你问提利昂你是否想要一个特定的餐厅R,他问你各类问题,如“是”R“屋顶餐厅?”,“餐厅”R“服务意大利菜吗?”,现场音乐?“,”餐厅R是否营业至午夜?“等等。提利昂要求您提供几个信息问题,以最大限度地提升信息收益,并根据您对问卷的答案给予YES或NO回答。这里Tyrion是你最喜欢的餐厅偏好的决策树。
决策树是一种图形表示,其使用分支方法来基于某些条件来例示决策的全部可能的结果。在决策树中,内部节点表示对属性的测试,树的每一个分支表示测试的结果,叶节点表示特定类标签,即在计算全部属性以后做出的决定。分类规则经过从根到叶节点的路径来表示。
A.决策树的类型
(1)分类树 - 这些被视为用于基于响应变量将数据集分红不一样类的默认种类的决策树。 这些一般在响应变量本质上是分类时使用。
(2)回归树 - 当响应或目标变量是连续或数字时,使用回归树。 与分类相比,这些一般用于预测类型的问题。
根据目标变量的类型 - 连续变量决策树和二进制变量决策树,决策树也能够分为两种类型。 它是有助于决定对于特定问题须要什么样的决策树的目标变量。
B.为何选择决策树算法?
(1)这些机器学习算法有助于在不肯定性下做出决策,并帮助您改善沟通,由于他们提供了决策状况的可视化表示。
(2)决策树机器学习算法帮助数据科学家捕获这样的想法:若是采起了不一样的决策,那么情境或模型的操做性质将如何剧烈变化。
(3)决策树算法经过容许数据科学家遍历前向和后向计算路径来帮助作出最佳决策。
C.什么时候使用决策树机器学习算法
(1)决策树对错误是鲁棒的,而且若是训练数据包含错误,则决策树算法将最适合于解决这样的问题。
(2)决策树最适合于实例由属性值对表示的问题。
(3)若是训练数据具备缺失值,则可使用决策树,由于它们能够经过查看其余列中的数据来很好地处理丢失的值。
(4)当目标函数具备离散输出值时,决策树是最适合的。
D.决策树的优势
(1)决策树是很是本能的,能够向任何人轻松解释。来自非技术背景的人,也能够解释从决策树绘制的假设,由于他们是不言自明的。
(2)当使用决策树机器学习算法时,数据类型不是约束,由于它们能够处理分类和数值变量。
(3)决策树机器学习算法不须要对数据中的线性进行任何假设,所以能够在参数非线性相关的状况下使用。这些机器学习算法不对分类器结构和空间分布作出任何假设。
(4)这些算法在数据探索中是有用的。决策树隐式执行特征选择,这在预测分析中很是重要。当决策树适合于训练数据集时,在其上分割决策树的顶部的节点被认为是给定数据集内的重要变量,而且默认状况下完成特征选择。
(5)决策树有助于节省数据准备时间,由于它们对缺失值和异常值不敏感。缺乏值不会阻止您拆分构建决策树的数据。离群值也不会影响决策树,由于基于分裂范围内的一些样本而不是准确的绝对值发生数据分裂。
E.决策树的缺点
(1)树中决策的数量越多,任何预期结果的准确性越小。
(2)决策树机器学习算法的主要缺点是结果可能基于预期。当实时作出决策时,收益和产生的结果可能与预期或计划不一样。有机会,这可能致使不现实的决策树致使错误的决策。任何不合理的指望可能致使决策树分析中的重大错误和缺陷,由于并不老是可能计划从决策可能产生的全部可能性。
(3)决策树不适合连续变量,并致使不稳定性和分类高原。
(4)与其余决策模型相比,决策树很容易使用,可是建立包含几个分支的大决策树是一个复杂和耗时的任务。
(5)决策树机器学习算法一次只考虑一个属性,而且可能不是最适合于决策空间中的实际数据。
(6)具备多个分支的大尺寸决策树是不可理解的,而且形成若干呈现困难。
F.决策树机器学习算法的应用
(1)决策树是流行的机器学习算法之一,它在财务中对期权订价有很大的用处。
(2)遥感是基于决策树的模式识别的应用领域。
(3)银行使用决策树算法按贷款申请人违约付款的几率对其进行分类。
(4)Gerber产品公司,一个流行的婴儿产品公司,使用决策树机器学习算法来决定他们是否应继续使用塑料PVC(聚氯乙烯)在他们的产品。
(5)Rush大学医学中心开发了一个名为Guardian的工具,它使用决策树机器学习算法来识别有风险的患者和疾病趋势。
Python语言中的数据科学库实现决策树机器学习算法是 - SciPy和Sci-Kit学习。
R语言中的数据科学库实现决策树机器学习算法是插入符号。
让咱们继续咱们在决策树中使用的一样的例子,来解释随机森林机器学习算法如何工做。提利昂是您的餐厅偏好的决策树。然而,提利昂做为一我的并不老是准确地推广你的餐厅偏好。要得到更准确的餐厅推荐,你问一对夫妇的朋友,并决定访问餐厅R,若是大多数人说你会喜欢它。而不是只是问Tyrion,你想问问Jon Snow,Sandor,Bronn和Bran谁投票决定你是否喜欢餐厅R或不。这意味着您已经构建了决策树的合奏分类器 - 也称为森林。
你不想让全部的朋友给你相同的答案 - 因此你提供每一个朋友略有不一样的数据。你也不肯定你的餐厅偏好,是在一个困境。你告诉提利昂你喜欢开顶屋顶餐厅,但也许,只是由于它是在夏天,当你访问的餐厅,你可能已经喜欢它。在寒冷的冬天,你可能不是餐厅的粉丝。所以,全部的朋友不该该利用你喜欢打开的屋顶餐厅的数据点,以提出他们的建议您的餐厅偏好。
经过为您的朋友提供略微不一样的餐厅偏好数据,您可让您的朋友在不一样时间向您询问不一样的问题。在这种状况下,只是稍微改变你的餐厅偏好,你是注入随机性在模型级别(不一样于决策树状况下的数据级别的随机性)。您的朋友群如今造成了您的餐厅偏好的随机森林。
随机森林是一种机器学习算法,它使用装袋方法来建立一堆随机数据子集的决策树。模型在数据集的随机样本上进行屡次训练,以从随机森林算法中得到良好的预测性能。在该总体学习方法中,将随机森林中全部决策树的输出结合起来进行最终预测。随机森林算法的最终预测经过轮询每一个决策树的结果或者仅仅经过使用在决策树中出现最屡次的预测来导出。
例如,在上面的例子 - 若是5个朋友决定你会喜欢餐厅R,但只有2个朋友决定你不会喜欢的餐厅,而后最后的预测是,你会喜欢餐厅R多数老是胜利。
A.为何使用随机森林机器学习算法?
(1)有不少好的开源,在Python和R中可用的算法的自由实现。
(2)它在缺乏数据时保持准确性,而且还能抵抗异常值。
(3)简单的使用做为基本的随机森林算法能够实现只用几行代码。
(4)随机森林机器学习算法帮助数据科学家节省数据准备时间,由于它们不须要任何输入准备,而且可以处理数字,二进制和分类特征,而无需缩放,变换或修改。
(5)隐式特征选择,由于它给出了什么变量在分类中是重要的估计。
B.使用随机森林机器学习算法的优势
(1)与决策树机器学习算法不一样,过拟合对随机森林不是一个问题。没有必要修剪随机森林。
(2)这些算法很快,但不是在全部状况下。随机森林算法当在具备100个变量的数据集的800MHz机器上运行时,而且50,000个案例在11分钟内产生100个决策树。
(3)随机森林是用于各类分类和回归任务的最有效和通用的机器学习算法之一,由于它们对噪声更加鲁棒。
(4)很难创建一个坏的随机森林。在随机森林机器学习算法的实现中,容易肯定使用哪些参数,由于它们对用于运行算法的参数不敏感。一我的能够轻松地创建一个体面的模型没有太多的调整
(5)随机森林机器学习算法能够并行生长。
(6)此算法在大型数据库上高效运行。
(7)具备较高的分类精度。
C.使用随机森林机器学习算法的缺点
他们可能很容易使用,但从理论上分析它们是很困难的。
随机森林中大量的决策树能够减慢算法进行实时预测。
若是数据由具备不一样级别数量的分类变量组成,则算法会偏好具备更多级别的那些属性。 在这种状况下,可变重要性分数彷佛不可靠。
当使用RandomForest算法进行回归任务时,它不会超出训练数据中响应值的范围。
D.随机森林机器学习算法的应用
(1)随机森林算法被银行用来预测贷款申请人是否多是高风险。
(2)它们用于汽车工业中以预测机械部件的故障或故障。
(3)这些算法用于医疗保健行业以预测患者是否可能发展成慢性疾病。
(4)它们还可用于回归任务,如预测社交媒体份额和绩效分数的平均数。
(5)最近,该算法也已经被用于预测语音识别软件中的模式并对图像和文本进行分类。
Python语言中的数据科学库实现随机森林机器学习算法是Sci-Kit学习。
R语言的数据科学库实现随机森林机器学习算法randomForest。
这个算法的名称可能有点混乱,在逻辑回归机器学习算法是分类任务,而不是回归问题的意义上。名称“回归”在这里意味着线性模型拟合到特征空间中。该算法将逻辑函数应用于特征的线性组合,以基于预测变量来预测分类依赖变量的结果。
描述单个试验的结果的概率或几率被建模为解释变量的函数。逻辑回归算法有助于基于给定的预测变量估计落入分类依赖变量的特定级别的几率。
假设你想预测明天在纽约是否会有降雪。这里,预测的结果不是连续的数字,由于将存在降雪或没有降雪,所以不能应用线性回归。这里的结果变量是几个类别之一,并使用逻辑回归有帮助。
(剩余内容等待更新后继续补充)