决策树 连续变量_从0开始入门R语言—决策树之C5.0

f268f1d21ea494e8401774b0e0187b70.png

相信一些同学对分类算法中决策算法已经有了一定的了解。

概念上可以参考:

  • 决策树--信息增益,信息增益比,Geni指数的理解 - 张小呱 - 博客园
  • 决策树算法 - hermione1985 - 博客园
  • 决策树原理与应用:C5.0

下面我们说如何用R实现决策树算法. 采用数据集Pima- Indians- diabetes

##################决策树之C5.0###########################################
##################1、获取数据和简单了解数据##############################
diabetes=read.table("E:2019分享LearningRPima- Indians- diabetes.txt",header = FALSE,sep=',',stringsAsFactors = FALSE)
# Number of times pregnant 怀孕次数
# Plasma glucose concentration a 2 hours in an oral glucose tolerance test  口服葡萄糖耐受试验中,2小时的血浆葡萄糖浓度。
# Diastolic blood pressure (mm Hg) 舒张压(mm Hg)
# Triceps skin fold thickness (mm) 三头肌皮肤褶层厚度(mm)
# 2-Hour serum insulin (mu U/ml) 2小时血清胰岛素含量(μU/ ml)
# Body mass index (weight in kg/(height in m)^2) 体重指数(体重,kg /(身高,m)^ 2)
# Diabetes pedigree function 糖尿病家族史
# Age (years) 年龄(岁)
# Class variable (0 or 1) 类变量(0 或 1)
colnames(diabetes)<-c("PregntCnt","Pla_glus","bloodPressure","Triceps","insulin","massIndex","function","Age","Class")#给数据列命名
head(diabetes)
summary(diabetes)#查看数据整体情况
nrow(diabetes)#查看行数

########################2、变量初步筛选########################################
#####对于连续变量和分类变量,采用方差分析法(https://www.jianshu.com/p/cf0f637d5db7)########################
#####分析各解释变量与因变量之间的关系################
diabetes$Class<-as.factor(diabetes$Class)#将分类变量因子化
shapiro.test(diabetes$PregntCnt) #在进行方差分析时,需要对变量进行正态检验,若P-value<W则认为不能拒绝假设,认为数据是正态的
bartlett.test(diabetes$PregntCnt,diabetes$Class)#P<<0.5(显著性水平),方差齐次性检验不通过,方差不通过用oneway.test().通过用ano()
oneway.test(PregntCnt~Class,data=diabetes)#P<<0.5,拒绝原假设,认为有糖尿病和非糖尿病患者在怀孕次数这个变量上显著性差异

#同上方式:正态检验-->齐次性检验-->齐次则用oneway.test-->非其次用anova.lm
fac<-colnames(diabetes[,1:8])
p<-c()
F<-c()
for(i in 1:(ncol(diabetes)-1)){
    
  shapiro<-shapiro.test(diabetes[,i])
  if(shapiro$p.value<0.05){
    
    bartlett_result<-bartlett.test(diabetes[,i],diabetes$Class)
    if (bartlett_result$p.value<0.05){
    
        oneway<-oneway.test(diabetes[,i]~diabetes$Class)  #方差不齐次采用oneway.test检验
        p[i]<-oneway$p.value
        F[i]<-oneway[1]$statistic
        }
    else{
    
       anov<-anova(lm(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值