zoukankan      html  css  js  c++  java
  • 常用机器学习算法优缺点及应用汇总

    一、K-Means聚类算法

    优点:

    (1)原理简单,实现容易,收敛速度快

    (2)球形边界效果较好

    缺点:

    (1)k取值不好把握

    (2)非球形边界效果较差

    (3)对噪音和异常点较敏感

    应用:

    (1)被大多数搜索引擎用于通过相似性对网页进行聚类,并识别搜索结果的相关率,有助于搜索引擎减少用户的计算时间

    (2)用户画像

    (3)对数据集内部进行探索

    (4)用于数据离散压缩

    (5)处理数据不平衡问题(样本不平衡专题细讲)

    相似度衡量:

    (1)离散变量采用曼哈顿距离

    (2)连续变量采用欧式距离

    (3)文本采用余弦相似度或者杰卡德系数

    二、支持向量机

    优点:

    (1)可以通过核函数解决非线性问题

    (2)解决高维度特征问题是很有效,在特征维度大于样本数时依然有效

    (3)分类准确率较高、泛化能力强

    缺点:

    (1)特征维度远远大于样本数,表现一般(维度灾难)

    (2)SVM在样本量较大时,核函数映射维度非常高时,计算量过大

    (3)核函数选择没有统一标准

    (4)不适合大数据时代大样本

    (5)SVM是二元分类算法,虽然经扩展支持多分类,但计算量巨大。目前spark只实现了二分类

    应用:
    (1)常用于各种金融机构的股票市场预测

    三、决策树

    优点:

    (1)简单直观,提供可视化展示

    (2)基本不需要对数据进行预处理,不需要归一化、不需要处理缺失值

    (3)对于异常点容错性较高,健壮性高

    (4)解释性好

    缺点:

    (1)容易过拟合,泛化能力弱,可通过设置节点最少样本数量或限制决策树深度改进

    (2)会因为样本发生一点点的变化导致树的结构发生变化,可以通过集成学习来改善

    应用:

    (1)财务中对期权定价有很大用处

    (2)遥感是基于决策树的模式识别的应用领域

    (3)银行使用决策树算法按贷款申请人违约付款的概率进行分类

    (4)Gerber产品公司,一个流行的婴儿产品公司,使用决策树机器学习算法来决定他们是否应继续使用塑料PVC(聚氯乙烯)在他们的产品。

    (5)Rush大学医学中心开发了一个名为Guardian的工具,它使用决策树机器学习算法来识别有风险的患者和疾病趋势

    四、随机森林

    优点:

    (1)训练可以高度并行化,对于大数据时代的大样本训练速度有优势

    (2)对缺失值、异常值不敏感

    (3)泛化能力强,不需要剪枝

    (4)很难建立一个坏的随机森林、分类精度较高

    缺点:

    (1)容易使用,但理论上分析较困难

    (2)速度较慢,因为内含多个决策树弱分类器

    (3)取值划分比较多的特征容易对随机森林的决策产生影响,从而影响模型效果

    应用:

    (1)被银行用来预测贷款申请人是否可能为高风险人群

    (2)汽车工业中预测机械部件是否存在故障

    (3)医疗保健行业预测患者是否可能发展为慢性疾病

    (4)回归,预测社交媒体份额和绩效分数的平均数

    (5)预测语音识别软件中的模式,并对图像和文本进行分类

    五、朴素贝叶斯

    优点:

    (1)对小规模的数据表现较好,能处理多分类任务

    (2)对缺失数据不敏感,算法简单,常用于文本分类

    缺点:

    (1)朴素贝叶斯建立在属性之间相互独立的假设之上

    (2)通过先验和数据来决定后验的概率从而决定分类,所以分类决策存在一定的错误率

    应用:

    (1)情绪分析

    (2)文档分类

    (3)垃圾邮件过滤

    六、Aprior频繁项挖掘

    基本原理:

    (1)如果项集合频繁出现,则项集合的所有子集也频繁出现。

    (2)如果项集合不经常出现,则项集合的所有超集都不经常出现。

    优点:

    (1)易于实现,且容易并行化

    (2)频繁项集挖掘经典算法,很懂算法都是基于Aprior实现的,包括FP-Tree,GSP,CBA等

    缺点:

    (1)效率较低

    应用:

    (1)市场篮子分析

    (2)自动完成应用程序

  • 相关阅读:
    XML常用操作
    关于C#的单斜杆和双斜杆
    XX驱动保护之KdDisableDebugger
    提供程序未返回 ProviderManifestToken 字符串 解决方案
    C# int转short
    C#_混淆/反混淆,逆向/反逆向之Dotfuscator
    mouseout和mouseover、mouseenter和mouseleave
    输入法下keypress、keyup失效的解决方案
    linux常用基本命令
    如何把已完成的项目部署到服务器
  • 原文地址:https://www.cnblogs.com/dearL/p/9508967.html
Copyright © 2011-2022 走看看