R语言实现 独立而治之——规则分类(区分有毒蘑菇)

Example: Identifying Poisonous Mushrooms ----

在这里插入图片描述
每年都会有很多人因为摄入有毒的野生蘑菇生病,有时甚至死亡。由于许多蘑菇在外观上彼此都非常相似,所以有时甚至经验丰富的蘑菇采集者都会中毒。

与识别其他有毒的植物(比如有毒的橡树或者有毒的常春藤)不- -样,识别- -种野生蘑菇是否有毒或者是否可以食用并没有明确的规则,如(有毒的常春藤)“三片叶子,不要碰它们( leaves of three ,let them be)"。更加复杂的是,许多传统规则,比如“有毒的蘑菇颜色鲜艳",提供的是危险的或者具有误导性的信息。如果有简单、清晰、一致的规则可用来识别有毒的蘑菇,那么就可以拯救食物采集者的生命。

由于规则学习算法的优势之–就是它们能生成易于理解的规则,所以规则学习算法似乎很适合这种分类任务。然而,规则只有在它们准确时才有用。

Step 1: Exploring and preparing the data ----

mushrooms <- read.csv("F:\\rwork\\Machine Learning with R (2nd Ed.)\\Chapter 05\\mushrooms.csv", stringsAsFactors = TRUE)
str(mushrooms)

在这里插入图片描述

#删除了这个变量,因为此变量所有的值都一样

mushrooms$veil_type <- NULL

#examine the class distribution

table(mushrooms$type)

Step 2: Training a model on the data ----

library(RWeka)

#train OneR() on the data

mushroom_1R <- OneR(type ~ ., data = mushrooms)

#得到简单规则判断是否有毒

Step 3: Evaluating model performance ----

mushroom_1R

在这里插入图片描述

summary(mushroom_1R)

在这里插入图片描述
#输出结果显示,区分了4280种可食用的蘑菇和3796种有毒的蘑菇,但是却将120种有毒的蘑菇划分为可食用,这犯了极其危险的错误。

Step 4: Improving model performance ----

mushroom_JRip <- JRip(type ~ ., data = mushrooms)
mushroom_JRip

在这里插入图片描述

summary(mushroom_JRip)

在这里插入图片描述
#输出结果发现没有将任何蘑菇分类错

发布了13 篇原创文章 · 获赞 16 · 访问量 1917

猜你喜欢

转载自blog.csdn.net/qq_44658157/article/details/103983164