大数据人|大数据第一社区

 找回密码
 注册会员

扫一扫,访问微社区

查看: 1850|回复: 0
打印 上一主题 下一主题

[函数] R语言决策树代码

[复制链接]
  • TA的每日心情
    开心
    2015-7-28 13:36
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    10

    主题

    12

    帖子

    342

    积分

    超级版主

    Rank: 8Rank: 8

    积分
    342
    跳转到指定楼层
    楼主
    发表于 2015-7-27 09:21:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1. <!--StartFragment -->
    2. <DIV>library(ROCR)
    3. qiediandata=read.csv("f:<IMG src="file:///C:/Users/tipdm/AppData/Local/Temp/%25W@GJ$ACOF(TYDYECOKVDYB.png">\\data\\model.csv")
    4. data=qiediandata[,3:6]
    5. head(data)
    6. set.seed(1)  ##设置随机种子
    7. #数据集随机抽80%定义为训练数据集,20%为测试数据集
    8. int = sample(2, nrow(data), replace=TRUE, prob=c(0.2, 0.8))
    9. traindata <- data[int==2,]
    10. #nrow(traindata)/nrow(data)
    11. testdata <- data[int==1,]
    12. #cart 决策树
    13. library(tree)
    14. #tree.model <- tree(traindata[,4]~., data=traindata)
    15. tree.model <- tree(是否窃漏电~., data=traindata)
    16. #tree.model <- tree(traindata[,4]~traindata[,1]+traindata[,2]+traindata[,3], data=traindata)
    17. summary(tree.model)
    18. #第四列作为因变量,其他作为自变量 波浪号后面有个点

    19. traindata[,4]=as.factor(traindata[,4])
    20. #强制类型转化,使得可以用traindata[,4]
    21. predict(tree.model,type="class")
    22. tree.model$y

    23. newtree.model <- tree(是否窃漏电~., data=traindata)
    24. newtree.model
    25. predict(newtree.model)
    26. newtree.predictdata=predict(newtree.model,type="class")
    27. # 这两句的区别在于直接给出两个类型
    28. conf=table(act=traindata[,4],pre=newtree.predictdata)
    29. #实际和预测的比较,混淆矩阵
    30. sum(diag(conf))/sum(conf)
    31. plot(tree.model)
    32. text(tree.model)
    33. testpr=predict(newtree.model,newdata=testdata,type="class")
    34. #测试算法好不好,预测剩下的测试数据
    35. righ=table(act=as.factor(testdata[,4]),testpr)
    36. righ
    37. #ROC曲线
    38. library(ROCR)
    39. prefor<-prediction(predict(newtree.model,testdata)[,2],testdata$是否窃漏电)
    40. prefor
    41. performan<-performance(prefor,"tpr","fpr")
    42. #tpr:true positive rate,fpr:false positive rate
    43. performan
    44. plot(performan)
    45. </DIV>
    46. library(ROCR)
    47. qiediandata=read.csv("f:\\data\\model.csv")
    48. data=qiediandata[,3:6]
    49. head(data)
    50. set.seed(1) ##设置随机种子
    51. #数据集随机抽80%定义为训练数据集,20%为测试数据集
    52. int = sample(2, nrow(data), replace=TRUE, prob=c(0.2, 0.8))
    53. traindata <- data[int==2,]
    54. #nrow(traindata)/nrow(data)
    55. testdata <- data[int==1,]
    56. #cart 决策树
    57. library(tree)
    58. #tree.model <- tree(traindata[,4]~., data=traindata)
    59. tree.model <- tree(是否窃漏电~., data=traindata)
    60. #tree.model <- tree(traindata[,4]~traindata[,1]+traindata[,2]+traindata[,3], data=traindata)
    61. summary(tree.model)
    62. #第四列作为因变量,其他作为自变量 波浪号后面有个点

    63. traindata[,4]=as.factor(traindata[,4])
    64. #强制类型转化,使得可以用traindata[,4]
    65. predict(tree.model,type="class")
    66. tree.model$y

    67. newtree.model <- tree(是否窃漏电~., data=traindata)
    68. newtree.model
    69. predict(newtree.model)
    70. newtree.predictdata=predict(newtree.model,type="class")
    71. # 这两句的区别在于直接给出两个类型
    72. conf=table(act=traindata[,4],pre=newtree.predictdata)
    73. #实际和预测的比较,混淆矩阵
    74. sum(diag(conf))/sum(conf)
    75. plot(tree.model)
    76. text(tree.model)
    77. testpr=predict(newtree.model,newdata=testdata,type="class")
    78. #测试算法好不好,预测剩下的测试数据
    79. righ=table(act=as.factor(testdata[,4]),testpr)
    80. righ
    81. #ROC曲线
    82. library(ROCR)
    83. prefor<-prediction(predict(newtree.model,testdata)[,2],testdata$是否窃漏电)
    84. prefor
    85. performan<-performance(prefor,"tpr","fpr")
    86. #tpr:true positive rate,fpr:false positive rate
    87. performan
    88. plot(performan)
    复制代码

    搜索
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条


    id="mn_portal" >首页Portalid="mn_P18" onmouseover="navShow('P18')">应用id="mn_P15" onmouseover="navShow('P15')">技术id="mn_P37" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">前沿id="mn_P36" onmouseover="navShow('P36')">宝箱id="mn_P61" onmouseover="showMenu({'ctrlid':this.id,'ctrlclass':'hover','duration':2})">专栏id="mn_P65" >企业id="mn_Nd633" >导航 折叠导航 关注微信 关注微博 关注我们

    QQ|广告服务|关于我们|Archiver|手机版|小黑屋|大数据人 ( 鄂ICP备14012176号-2  

    GMT+8, 2024-5-19 03:42 , Processed in 0.247310 second(s), 29 queries .

    Powered by 小雄! X3.2

    © 2014-2020 bigdataer Inc.

    快速回复 返回顶部 返回列表