zoukankan      html  css  js  c++  java
  • R语言-朴素贝叶斯分类器(1)

    利用给定的数据预测某天("Sunny","Cool","High","Strong")是否打球……

    数据:

    NO Outlook Temperature Humidity Wind Play
    1 Sunny Hot High Weak No
    2 Sunny Hot High Strong No
    3 Overcast Hot High Weak Yes
    4 Rain Mild High Weak Yes
    5 Rain Cool Normal Weak Yes
    6 Rain Cool Normal Strong No
    7 Overcast Cool Normal Strong Yes
    8 Sunny Mild High Weak No
    9 Sunny Cool Normal Weak Yes
    10 Rain Mild Normal Weak Yes
    11 Sunny Mild Normal Strong Yes
    12 Overcast Mild High Strong Yes
    13 Overcast Hot Normal Weak Yes
    14 Rain Mild High Strong No

    代码:

    data=read.table("C:\code\R\playTennis.txt",header=T)
    pre=c("Sunny","Cool","High","Strong","xx")
    sum_Yes=length(which(data$Play=="Yes"))
    sum_No=length(which(data$Play=="No"))
    sum=sum_Yes+sum_No
    #计算yes的概率
    p_O_y=length(which(data$Outlook==pre[1]&data$Play=="Yes"))/sum_Yes
    p_T_y=length(which(data$Temperature==pre[2]&data$Play=="Yes"))/sum_Yes
    p_H_y=length(which(data$Humidity==pre[3]&data$Play=="Yes"))/sum_Yes
    p_W_y=length(which(data$Wind==pre[4]&data$Play=="Yes"))/sum_Yes
    p_y=(sum_Yes/sum)*p_O_y*p_T_y*p_H_y*p_W_y
    #计算No的概率
    p_O_n=length(which(data$Outlook==pre[1]&data$Play=="No"))/sum_No
    p_T_n=length(which(data$Temperature==pre[2]&data$Play=="No"))/sum_No
    p_H_n=length(which(data$Humidity==pre[3]&data$Play=="No"))/sum_No
    p_W_n=length(which(data$Wind==pre[4]&data$Play=="No"))/sum_No
    p_n=(sum_No/sum)*p_O_n*p_T_n*p_H_n*p_W_n
    #结果
    print(p_y)
    print(p_n)

    结果:

    [1] 0.005291005
    [1] 0.02057143
  • 相关阅读:
    Linux平台开发技术指南
    VIM 笔记 (for python )
    Python如何使用urllib2获取网络资源
    5种获取RSS全文输出的方法
    python IDE比较与推荐
    ESRI ArcGIS 9.0系列软件报价
    去年写的测试GDAL用法的一些函数
    有感所谓“研究”
    超强的病毒“诺顿是个SB”
    如何在博客中插入语法格式高亮的源代码
  • 原文地址:https://www.cnblogs.com/sklww/p/3507811.html
Copyright © 2011-2022 走看看