zoukankan      html  css  js  c++  java
  • 数据挖掘 贝叶斯算法

    贝叶斯算法

    朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

    贝叶斯的公式很简单,其实就是P(A|B)就是在B已经发生的情况,A发生的概率,这个概率P(A|B)=P(AB)/P(B)在发生B的概率中,AB一起发生的概率就是P(A|B)

    那么贝叶斯公式P(B|A)=P(A|B)P(B)/P(A),朴素贝叶斯公式,依靠之前存在的事件,推测出当前在A发生下B发生的概率,因为从P(A|B)是简单的。

    那么看我说的有些主观,让我们看例子

    一所学校里面有 60% 的男生,40% 的女生。男生总是穿长裤,女生则一半穿长裤一半穿裙子。有了这些信息之后我们可以容易地计算“随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大”,这个就是前面说的“正向概率”的计算。然而,假设你走在校园中,迎面走来一个穿长裤的学生(很不幸的是你高度近似,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别),你能够推断出他(她)是男生的概率是多大吗?

    那么数据挖掘,我们有一个要我们分类的x,他有属性a1、a2

    x={a1,a2,,am}

    我们还有各种类C={y1,y2,,yn}

    我们计算出P(y1|x),P(y2|x),   P(yn|x)

    那么得到最大的一个P(yk|x)就是我们x的类别。

    简单的,假如我们按照某人是否打球来划分天气。

    这个例子数据挖掘

    Day

    Outlook

    Temperature

    Humidity

    Wind

    PlayTennis

    D1

    Sunny

    Hot

    High

    Weak

    No

    D2

    Sunny

    Hot

    High

    Strong

    No

    D3

    Overcast

    Hot

    High

    Weak

    Yes

    D4

    Rain

    Mild

    High

    Weak

    Yes

    D5

    Rain

    Cool

    Normal

    Weak

    Yes

    D6

    Rain

    Cool

    Normal

    Strong

    No

    D7

    Overcast

    Cool

    Normal

    Strong

    Yes

    D8

    Sunny

    Mild

    High

    Weak

    No

    D9

    Sunny

    Cool

    Normal

    Weak

    Yes

    D10

    Rain

    Mild

    Normal

    Weak

    Yes

    D11

    Sunny

    Mild

    Normal

    Strong

    Yes

    D12

    Overcast

    Mild

    High

    Strong

    Yes

    D13

    Overcast

    Hot

    Normal

    Weak

    Yes

    D14

    Rain

    Mild

    High

    Strong

    No

    我们要分类Outlook=sunny, Temperature=cool,Humidity=high,Wind=strong

    那么我们首先算出所有

    P(yes)=9/14P(no)=5/14

    然后就是每个列属性
    Outlook

    Outlook==Sunny 有5个,其中

    P(Sunny|yes)=P(sunnyyes)P(yes)=2/149/14=2/9P(sunny|no)=P(sunnyno)P(no)=35

    然后Outlook==Overcast 有4,其中yes=4,no=0

    outlook Sunny Overcast Rain
    yes 2 4 3
    no 3 0 2
    5 4 5

    那么就可以得到

    P(Rain|yes)=3/9P(Rain|no)=2/5

    接着对全部的计算

    我们类别yes,no可以

    P(yes)P(sunny|yes)P(cool|yes)P(high|yes)P(strong|yes)P(no)P(sunny|no)P(cool|no)P(high|no)P(strong|no)

    因为P(y1|x),P(y2|x),   P(yn|x)比较最大一个,P(yi|x)=P(x|yi)P(yi)P(x),因为P(x)相同,我们比较P(yi|x)=P(x|yi)P(yi)P(x|yi)P(yi)=P(a1|yi)P(a2|yi)P(yi)

    参考:
    - 数学之美番外篇:平凡而又神奇的贝叶斯方法

  • 相关阅读:
    代码管理模型概况
    循环链表
    队列

    链表
    java 2020-10-12T11:22:49.000+0800 字符串转换成正常时间格式
    动态数组
    mysql练习
    复杂度与LeetCode
    记一次带逗号的数字类型处理
  • 原文地址:https://www.cnblogs.com/lindexi/p/12087588.html
Copyright © 2011-2022 走看看