关于数据挖掘:数据代码分享R语言用CHAID决策树分析花卉栽培影响因素数据可视化误差分析

3次阅读

共计 3498 个字符,预计需要花费 9 分钟才能阅读完成。

全文链接:https://tecdat.cn/?p=33078

原文出处:拓端数据部落公众号

在植物学和农业迷信畛域,了解影响动物成长和花朵产生的因素对于进步生产效率和优化栽培办法具备重要意义。因而,对于一个蕴含多个变量的数据集进行全面的剖析和可视化是十分有帮忙的。

本钻研基于一个数据集,该数据集蕴含了花卉栽培过程中的多种变量,其中包含数值型变量(如花朵数量、白天条件和夜晚条件)以及分类变量(如肥料类型、种类和栽培制度)。咱们应用 R 语言中的 CHAID 决策树算法帮忙客户对这个数据集进行了剖析,并通过可视化展示了影响种花的关键因素。

数据集中的变量解释如下:

数值型变量:

  1. Flowers(花朵):这是一个数值型变量,示意动物的花朵数量。每个样本有一个具体的数字,用于形容动物成长期间产生的花朵数量。
  2. Day(白天):这是一个数值型变量,示意动物在白天的相干信息。温度,用于形容动物在白天的环境条件和成长状态。
  3. Night(夜晚):这是一个数值型变量,示意动物在夜晚的相干信息。夜间温度,用于形容动物在夜晚的环境条件和成长状态。

分类变量:

  1. Fertilizer(肥料):这是一个分类变量,示意植物所承受的肥料类型,用于形容动物的营养供给状况。
  2. Variety(种类):这是一个分类变量,示意动物的种类,用于形容不同种类动物的特色和性质。
  3. Regimem(栽培制度):这是一个分类变量,示意动物的栽培形式或管理制度,用于形容动物的成长环境和栽培办法。

通过对这些变量的解释和钻研,咱们能够摸索花朵数量与其余变量(如白天、夜晚条件、肥料类型、种类和栽培制度)之间的关系,理解不同因素对动物成长和花朵产生的影响。同时,也能够比拟不同种类、不同栽培制度和肥料类型下的花朵数量和成长体现,以便在农业、园艺和动物滋生等畛域利用相干常识。

读取数据

df2=read.xlsx("data.xlsx",sheet = 2)  
  
head(df2)

关联剖析

cor(df2)

CHAID 决策树

CHAID(Chi-square Automatic Interaction Detector)决策树是一种用于创立分类模型的决策树算法。它基于卡方测验来确定在给定的特色和指标变量之间是否存在显著的关联。

CHAID 决策树的构建过程是逐渐进行的。它首先抉择一个作为根节点的特色,而后依据该特色的不同取值将数据集宰割成多个子集。接下来,对每个子集反复上述过程,抉择一个最佳的特色持续宰割。这个过程始终继续到满足进行准则为止,例如达到预约的树深度或子集中的样本数量有余。

在每次宰割过程中,CHAID 应用卡方测验来评估特色和指标变量之间的关联水平。它将特色的不同取值作为自变量,指标变量的不同取值作为因变量,计算卡方值。如果卡方值超过了预约的显著性程度,阐明该特色与指标变量之间存在显著的关联,能够抉择该特色作为宰割点。

CHAID 决策树的长处是可能解决离散型和连续型的特色变量,并且能够解决多分类问题。它还能够主动抉择最佳的宰割点,缩小了人工抉择特色的主观性。然而,CHAID 决策树在解决高维数据和解决缺失值方面存在肯定的局限性。

# 取得训练集  
train <- sample(1:nrow(df2), nrow(df2)*0.8)

建设决策树:Flowers

ct = deciionee(Flowers  ~ ., data = df2)

通过决策树模型能够失去以下的决策树,从后果中能够看到 day 和 night 两个变量是决策 flowers 类型的重要变量。

# 预测每一个样本属于每一个类别的概率  
tr.pred = predict(ct, newda

第一个样本属于每个类别的概率如下表所示


## [[1]]  
##  [1] 0.153125000 0.109375000 0.083333333 0.044791667 0.018750000  
##  [6] 0.018750000 0.007291667 0.002083333 0.001041667 0.003125000  
## [11] 0.001041667 0.001041667 0.005208333 0.025000000 0.081250000  
## [16] 0.141666667 0.162500000 0.140625000  
##

第二个样本属于每个类别的概率如下表所示

## [[2]]  
##  [1] 0.153125000 0.109375000 0.083333333 0.044791667 0.018750000  
##  [6] 0.018750000 0.007291667 0.002083333 0.001041667 0.003125000  
## [11] 0.001041667 0.001041667 0.005208333 0.025000000 0.081250000  
## [16] 0.141666667 0.162500000 0.140625000  
##

第三个样本属于每个类别的概率如下表所示


## [[3]]  
##  [1] 0.153125000 0.109375000 0.083333333 0.044791667 0.018750000  
##  [6] 0.018750000 0.007291667 0.002083333 0.001041667 0.003125000  
## [11] 0.001041667 0.001041667 0.005208333 0.025000000 0.081250000  
## [16] 0.141666667 0.162500000 0.140625000  
##

失去训练集混同矩阵

tab=table(tree.pred,df2.test$Flowers)

混同矩阵为预测 flower 类别和理论 flower 类别组成的矩阵,行为预测类别,列为理论类别。从后果能够看到理论预测类别和预测类别合乎的个数和水平。

绘制理论类别和预测类别的散点图

图中横线示意 y = x 的直线,横轴为理论类别,纵轴为预测类别,图中的点越靠近横线示意预测的成果越好。

求均方误差

mean((as.numeric(tree.pred) - as.numeric(df2.test$Flowers))^2)

## [1] 74.65885

将 flower 分成三组 5 -9,9-13,13-19

将 ”flower” 数量分成三组进行分类,每组的范畴如下:

第一组:包含 5 到 9(包含 5 和 9)之间的 flower;
第二组:包含 9 到 13(包含 9 和 13)之间的 flower;
第三组:包含 13 到 19(包含 13 和 19)之间的 flower。

# 建设 CHAID 决策树 =======================Flowers

df2$Flowers=as.numeric(df2$Flowers)

index1=which(df2$Flowers<=5) 

index2=which(df2$Flowers<=9 & df2$Flowers>=5) 

index3=which(df2$Flowers>=9) 

df2$Flowers[index1]=1
df2$Flowers[index2]=2
df2$Flowers[index3]=3

CHAID 决策树

plot(ct

table(predict(ct), df2$Flowers)

预测类别概率 Estimated class probabilities

tr.pred = predict(ct, newdata=df2.test, type="prob")  
tr.pred

## [[1]]  
## [1] 2.5125

误差

#rmse  
sqrt(mean((as.numeric(tree.pred) - as.numeric(df2.test$Flowers))^2))

## [1] 0.4875514

#nmse  
  
 

(sum( tree.pred - (df2.test$Flowers))^2)/(mean(tree.pred)*(mean((df2.test$Flowers))))/nrow(tree.pred)

## [1] 0.002686602

最受欢迎的见解

1.PYTHON 用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯模型和 KMEANS 聚类用户画像

2. R 语言基于树的办法:决策树,随机森林

3.python 中应用 scikit-learn 和 pandas 决策树

4. 机器学习:在 SAS 中运行随机森林数据分析报告

5. R 语言用随机森林和文本开掘进步航空公司客户满意度

6. 机器学习助推快时尚精准销售工夫序列

7. 用机器学习辨认一直变动的股市情况——隐马尔可夫模型的利用

8.python 机器学习:举荐零碎实现(以矩阵合成来协同过滤)

9.python 中用 pytorch 机器学习分类预测银行客户散失

正文完
 0