zoukankan      html  css  js  c++  java
  • 分类算法小结

    一、【逻辑回归】


    1、原理

    线性函数通过一个sigmod函数,即可转换为[0,1]之间的概率值

    2、优点

    3、缺点

    4、应用

    二、【朴素贝叶斯】


    1、原理

    公式:P(A|B)=P(B|A)P(A) /P(B)

    由联合概率公式 P(A,B)=P(A|B)P(B)=P(B|A)P(A) 推导而来,P(A)叫做先验概率,P(A|B)叫做后验概率,P(A,B)叫做联合概率。

    2、优点

    3、缺点

    4、应用

    如果在机器学的视角下,我们把A理解成“类别标签”,把B理解成“具有某种特征”。这样贝叶斯公司可以理解为:P(类别|特征)=P(特征|类别)P(类别) /P(特征)

    例如,场景垃圾邮件判断。我们收到一封邮件,里面的内如是“我司可以办理正规发票(保真)17%增值税发票点数优惠”。那么我们要做的就是判断P(‘垃圾邮件’|‘我司可以办理正规发票(保真)17%增值税发票点数优惠’)是否大于1/2!而这里我们又到用了分词技术。(如结巴分词等)

    我们可以将这个公式转化成

    P(‘垃圾邮件’|‘我司可以办理正规发票(保真)17%增值税发票点数优惠’)=P(‘垃圾邮件’|(‘我’,‘司’,‘可’,‘办理’,‘正规发                                                                                                                                  票’,‘保真’,‘增值税’,‘发票’,‘点数’,‘优惠’))

    这里我们用A标示‘垃圾邮件’,B标示分词词组(‘我’,‘司’,‘可’,‘办理’,‘正规发票’,‘保真’,‘增值税’,‘发票’,‘点数’,‘优惠’)

    根据贝叶斯公式可以将求上式P(A|B)转换成 

    P(B|A)P(A) /P(B)形式。

    这里P(B|A)是P((‘我’,‘司’,‘可’,‘办理’,‘正规发票’,‘保真’,‘增值税’,‘发票’,‘点数’,‘优惠’)|‘垃圾邮件’)

    而根据传说中的条件独立假设 

    又可以将P((‘我’,‘司’,‘可’,‘办理’,‘正规发票’,‘保真’,‘增值税’,‘发票’,‘点数’,‘优惠’)|‘垃圾邮件’)转换成

    P(‘我’|‘垃圾邮件’)*P(‘司’|‘垃圾邮件’)*....*P(‘点数’|‘垃圾邮件’)*P(‘优惠’|‘垃圾邮件’)

    这样,这个例子里面就转换成了对P(‘我’|‘垃圾邮件’)等的概率计算。我们在训练集中,需要进行统计得出这些个概率。例如,P(‘发票’|‘垃圾邮件’)=垃圾邮件中所有‘发票’出现的次数/垃圾邮件中所有词语出现的次数。这样整个判断垃圾邮件的分类问题,就转换成了一个统计概率问题。这种分类问题就能得以解决。

    上述这种增加了条件独立假设的贝叶斯方法叫做朴素贝叶斯方法。由上面的例子可以看出,朴素贝叶斯方法是很简单的。

    但是,朴素贝叶斯存在这一个问题,就是在它眼里是没有词语之间的顺序的。如刚才上例

    P((‘我’,‘司’,‘可’,‘办理’,‘正规发票’)|‘垃圾邮件’)=P(‘我’|‘垃圾邮件’)*P(‘司’|‘垃圾邮件’)*...*P(‘正规发票’|‘垃圾邮件’)

    由于乘法满足交换律,那么上面可以认为是

    P(‘我’|‘垃圾邮件’)*P(‘司’|‘垃圾邮件’)*...*P(‘正规发票’|‘垃圾邮件’) = P(‘正规发票’|‘垃圾邮件’)*...*P(‘司’|‘垃圾邮件’)*P(‘我’|‘垃圾邮件’)=P((‘正规发票’,‘可’,‘办理’,‘我’,‘司’)|‘垃圾邮件’)

    这个语句就尴尬了!

    不过,朴素贝叶斯在实际应用中的效率是很高的。效果好的出奇。

    三、【决策树】


    1、原理

    根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上。

    2、优点

    3、缺点

    4、应用

    【随机森林】


    1、原理

    2、优点

    3、缺点

    4、应用 

    【支持向量机SVM】

    1、原理

    2、优点

    3、缺点

    4、应用

    【k最近邻】

    1、原理

    2、优点

    3、缺点

    4、应用

    【Adaboost】

    1、原理

    2、优点

    3、缺点

    4、应用

  • 相关阅读:
    闰年测试
    EditBox的测试用例设计
    测试工程中的评审
    测试框架
    github
    第一次上机实验
    对软件测试的初步认识
    白盒测试
    Date : 日期对象
    C++ 格式化输出 及 输入 流
  • 原文地址:https://www.cnblogs.com/zwt20120701/p/12285138.html
Copyright © 2011-2022 走看看