机器学习——几种分类算法的汇总

机器学习——几种分类算法的汇总

参考博客:http://www.apachecn.org/map/179.html
参考博客写的很全面,也有例子,我这算是转载缩减记录方便自己记忆,有想参考的朋友可以参照原博客学习。
分类算法 分类:将实例数据划到合适的类别中。
标称型
:标称型目标变量的结果只在有限目标集中取值,如真与假(标称型目标变量主要用于分类)
数值型
:数值型目标变量则可以从无限的数值集合中取值,如0.100,42.001等 (数值型目标变量主要用于回归分析)
整个开发流程:收集数据——准备数据——分析数据——训练算法——测试算法——使用算法
开发流程: 收集数据:收集样本数据 准备数据:注意样本格式 分析数据:为了确保数据集中是否存在垃圾数据。(若存在算法可处理的数据格式或可信任的数据源,则可以跳过该步骤;另外该步骤需要人工干预,会降低自动化系统价值) 训练算法:无监督算法无目标变量,可跳过该步骤 测试算法:评估算法效果 使用算法:将机器学习算饭转化为应用程序
1.k-近邻(KNN)
工作原理:
开发流程: 收集数据:任何方法 准备数据:距离计算所需的数值,最好是结构化的数据格式 分析数据:任何方法 训练算法:跳过 测试算法:计算错误率 使用算法:输入样本数据和结构化的输出结果,然后运行k-近邻算法判断输入数据分类属于哪个分类,最后对计算出的分类执行后续处理。
算法特点: 优点:精度高、对异常值不敏感、无数据输入假定 缺点:计算复杂度高、空间复杂度高 适用数据范围:数值型和标称型
2.决策树(Decision Tree) 算法主要用来处理分类问题,是最经常使用的数据挖掘算法之一。
概念: 熵(entropy):指体系的混乱程度。 信息熵:是一种信息的度量方式,表示信息的混乱程度。 信息增益:在划分数据集前后信息发生的变化。
开发流程: 收集数据:任何方法 准备数据:树构造算法只适用于标称型数据,因此数值型数据必须离散化 分析数据:任何方法,构造树完成后,应检查图形是都符合预期 训练算法:构造树的数据结构 测试算法:使用经验树计算错误率 使用算法:任何监督学习算法(决策树)
算法特点: 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。 缺点:可能会产生过度匹配问题。 适用数据类型:数值型和标称型
3.朴素贝叶斯 朴素贝叶斯主要应用于文档的自动分类 收集数据:任何方法 准备数据:需要数值型或布尔型数据 分析数据:有大量特征时,绘制特征作用不大,此时使用脂肪头疼效果更好。 训练算法:计算不同的独立特征的条件概率 测试算法:计算错误率 使用算法:一个常见的朴素贝叶斯应是文档分类(也可不是)。
算法特点: 优点:在数据较少的情况下依然有效,可以处理多类别问题。 缺点:对于输入数据的准备方式较为敏感。 适用数据类型:标称型数据
4.逻辑回归 该算法是根据现有数据对分类边界线建立回归公式,以此进行分类。 概念: 回归:用一条直线拟合数据点的过程,而拟合就是可以很好的将每个数据点用一条直线连接起来,连接数据点较少的过程叫做欠拟合,用曲线将所有数据点完整连接的过程叫做过拟合。 sigmoid函数:调整得到一个0~1之间的数值(大于0.5为1类) 梯度上升法:为了寻找最佳参数
开发流程: 收集数据:任何方法 准备数据:结构化数据格式(距离计算需要数值型数据) 分析数据:任何方法 训练算法:训练数据直到找到最佳的分类回归系数 测试算法:一旦训练步骤完成,分类将会很快 使用算法:首先,对输入数据进行转化,得到其对应结构化数值;其次基于训练好的回归系数对数值进行简单的回归计算,判定其类别。
算法特点: 优点:计算代价不高,易于理解和实现 缺点:容易欠拟合,分类精度可能不高 使用数据类型:数值型和标称型数据
5.支持向量机 该算法是一个二类分类器
概念 支持向量(Support Vector):分离超平面最近的那些点。 机(Machine):表示一种算法,而不是表示机器。 超平面:分类的决策边界。n维需要n-1维的超平面分隔。 步骤: 1.寻找最大分类间距 2.通过拉格朗日函数求优化问题
开发流程: 收集数据:任何方法 准备数据:数值型数据 分析数据:有助于可视化分隔超平面 训练算法:训练数据实现两个参数的调优 测试算法:简单计算过程 使用算法:几乎所有的分类问题都可以用SVM。
算法特点: 优点:计算代价不高,易于理解和实现 缺点:容易欠拟合,分类精度可能不高 使用数据类型:数值型和标称型数据 **************************************************************** 集成算法(ensemble method):对其他算法进行组合的一种形式 1.投票算法(bagging):基于数据随机重抽样分类器构造的方法。例如随机森林(random forest) 2.再学习(boosting):基于所有分类器的加权求和方法。 bagging和boosting的区别: 1.bagging是一种与boosting所使用的多个分类器的类型(数据量和特征量)都是一致的。 2.bagging是由不同的分类器(数据和特征随机化)经过训练,综合得出的
出现最多的分类结果;boosting是通过调整已有分类器错分的那些数据来获得新的分类器,
得出目前最优的结果。 3.bagging中的分类器权重是相等的;而boosting中的分类器加权求和,所以权重并不相等,每个权重代表的是其对应分类器的上一轮迭代中的成功过度。 ****************************************************************
6.随机森林 随机森林指的是利用多棵树对样本进行训练并预测的一种分类器。
开发流程: 收集数据:任何方法 准备数据:转换样本集 分析数据:任何方法 训练算法:通过数据随机化和特征随机化,进行多实例的分类评估 测试算法:计算错误率 使用算法:输入样本数据,然后运行随机森林算法,判断输入数据分类属于哪个分类,最后对计算出的分类执行后续处理。
算法特点: 优点:几乎无需输入准备、可实现隐式特征选择、训练速度非常快、其他模型很难超越。 缺点:劣势在于模型大小、是个很难去解释的黑盒子。 使用数据类型:数值型和标称型数据

    原文作者:机器学习
    原文地址: https://www.cnblogs.com/Zhi-Z/p/8912396.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞