应用规则学习算法识别有毒的蘑菇

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972

   个人介绍: 研一|统计学|干货分享
         擅长Python、Matlab、R等主流编程软件
         累计十余项国家级比赛奖项,参与研究经费10w、40w级横向

1 目的

  应用规则学习算法识别有毒的蘑菇

2 数据来源

  该演示数据来源于: 机器学习和智能系统中心

3 案例演示

3.1 探索数据

3.1.1 读取数据并查看数据类型

  运行代码:

data1<-read.csv("G:\\机器学习\\第三次作业\\mushrooms.csv",stringsAsFactors=T)
str(data1$veil_type)  #查看数据类型

  结果展示:

##  Factor w/ 1 level "partial": 1 1 1 1 1 1 1 1 1 1 ...

   通过运行结果我们可以看到数据集veil_type列数据类型为因子型。

3.1.2 查看蘑菇数据情况

  运行代码:

data1$veil_type<-NULL #删除“veil_type”变量
table(data1$type)     #查看有毒蘑菇比例
prop.table(table(data1$type))

  结果展示:

> table(data1$type)     #查看有毒蘑菇比例
##    edible poisonous 
##      4208      3916
> prop.table(table(data1$type))
##    edible poisonous 
## 0.5179714 0.4820286

  根据运行结果显示,数据样本中大约有52%的蘑菇样本(4208个)是可食用的;有48%的蘑菇样本(3916个)是有毒的。

3.2 模型的建立及优化

3.2.1 基于数据训练模型

  运行代码:

library("RWeka")#加载包
data1_1R<-OneR(type~.,data=data1)  #1R规则
data1_1R

  结果展示:

## odor:
##  almond  -> edible
##  anise   -> edible
##  creosote    -> poisonous
##  fishy   -> poisonous
##  foul    -> poisonous
##  musty   -> poisonous
##  none    -> edible
##  pungent -> poisonous
##  spicy   -> poisonous
## (8004/8124 instances correct)

  利用单规则算法可以发现该分类器中,odor(气味)被选为规则,该规则正确地预测了8124个蘑菇样本中的8004个样本的可食性。

3.2.2 评估模型性能

  运行代码:

summary(data1_1R) #模型性能

  运行展示:

## 
## === Summary ===
## 
## Correctly Classified Instances        8004               98.5229 %
## Incorrectly Classified Instances       120                1.4771 %
## Kappa statistic                          0.9704
## Mean absolute error                      0.0148
## Root mean squared error                  0.1215
## Relative absolute error                  2.958  %
## Root relative squared error             24.323  %
## Total Number of Instances             8124     
## 
## === Confusion Matrix ===
## 
##     a    b   <-- classified as
##  4208    0 |    a = edible
##   120 3796 |    b = poisonous

  根据结果显示,样本蘑菇中有120个有毒蘑菇被错误的分类为可食用蘑菇;4208个可食用蘑菇被正确分类为可食用蘑菇;3796个有毒蘑菇被正确分类为有毒蘑菇,模型的准确率高达99%。

3.2.3 评估模型性能

  使用RIPPER优化模型。
  运行代码:

data1_JRip<-JRip(type~.,data=data1)
data1_JRip           #提高性能
summary(data1_JRip)  #模型性能

  结果展示:

> data1_JRip           #提高性能
## JRIP rules:
## ===========
## 
## (odor = foul) => type=poisonous (2160.0/0.0)
## (gill_size = narrow) and (gill_color = buff) => type=poisonous (1152.0/0.0)
## (gill_size = narrow) and (odor = pungent) => type=poisonous (256.0/0.0)
## (odor = creosote) => type=poisonous (192.0/0.0)
## (spore_print_color = green) => type=poisonous (72.0/0.0)
## (stalk_surface_below_ring = scaly) and (stalk_surface_above_ring = silky) => type=poisonous (68.0/0.0)
## (habitat = leaves) and (cap_color = white) => type=poisonous (8.0/0.0)
## (stalk_color_above_ring = yellow) => type=poisonous (8.0/0.0)
##  => type=edible (4208.0/0.0)
## 
## Number of Rules : 9

> summary(data1_JRip)  #模型性能
## === Summary ===
## 
## Correctly Classified Instances        8124              100      %
## Incorrectly Classified Instances         0                0      %
## Kappa statistic                          1     
## Mean absolute error                      0     
## Root mean squared error                  0     
## Relative absolute error                  0      %
## Root relative squared error              0      %
## Total Number of Instances             8124     
## 
## === Confusion Matrix ===
## 
##     a    b   <-- classified as
##  4208    0 |    a = edible
##     0 3916 |    b = poisonous

  利用RIPPER规则学习算法提高模型性能,此分类器共创建9条规则,模型预测准确率达100%。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小墨&晓末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值