• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      R语言

      • 首页
      • 博客
      • R语言
      • 【R扩展包】caret包运用

      【R扩展包】caret包运用

      • 发布者 weinfoadmin
      • 分类 R语言
      • 日期 2016年3月9日
      测试开头

      在大数据如火如荼的时候,机器学习无疑成为了炙手可热的工具,机器学习是计算机科学和统计学的交叉学科,旨在通过收集和分析数据的基础上,建立一系列的算法,模型对实际问题进行预测或分类。R语言无疑为我们提供了很好的工具,它正是计算机科学和统计科学结合的产物,开源免费,相对于Python、Orange Canvas、Weka、Kinme这些免费的数据挖掘软件来说,更容易上手,统计图形也更加美观。今天在这里和大家介绍一下Caret机器学习包的一些基本用法。

      一、数据收集
            下载kernlab包里的spam数据集,spam是一个邮件数据集,共有4601个观测值,58个变量,最后一个变量是一个二值变量,“spam”和“no spam”,我们要做的工作就是通过建立模型了预测观测值是否为“spam”。首先加载软件包和数据集:
      library(caret) library(kernlab)
      data(spam)
      head(spam)
      make address all num3d our over remove internet order mail receive will people report
      1 0.00 0.64 0.64 0 0.32 0.00 0.00 0.00 0.00 0.00 0.00 0.64 0.00 0.00
      2 0.21 0.28 0.50 0 0.14 0.28 0.21 0.07 0.00 0.94 0.21 0.79 0.65 0.21
      3 0.06 0.00 0.71 0 1.23 0.19 0.19 0.12 0.64 0.25 0.38 0.45 0.12 0.00
      4 0.00 0.00 0.00 0 0.63 0.00 0.31 0.63 0.31 0.63 0.31 0.31 0.31 0.00
      5 0.00 0.00 0.00 0 0.63 0.00 0.31 0.63 0.31 0.63 0.31 0.31 0.31 0.00
      6 0.00 0.00 0.00 0 1.85 0.00 0.00 1.85 0.00 0.00 0.00 0.00 0.00 0.00
      、、、、、、

      二、数据划分
            机器学习一般将数据划分成训练数据、验证数据(可选)、测试数据、三个部分,训练数据和验证数据用来训练模型,估计模型的具体参数,测试数据用来验证模型预测的准确程度。下面我们就对spam这个数据进行划分
      inTrain <- createDataPartition(y=spam$type,p=0.75,list=FALSE)
      training <- spam[inTrain, ]
      testing <- spam[-inTrain, ]
      以上命令中createDataPartition( )就是数据划分函数,对象是spam$typ,p=0.75表示训练数据所占的比例为75%,list是输出结果的格式,默认list=FALSE。 training <- spam[inTrain, ],testing <- spam[-inTrain, ]分别制定具体的训练数据和测试数据。

      三、训练模型
             以上的工作完成后就可以将训练数据放入训练器中对模型参数进行训练了
      modelFit <- train(type~.,data=training,method="glm") train( )函数就是我们的训练器,type~是回归方程,data=training指定数据集,method="glm"指定具体的模型形式,这里我们用的是glm估计,当然读者也可以用SVM(支持向量机),nnet神经网络等其他模型形式,以下是模型的具体内容:
      modelFit$finalModel
      Coefficients:
      (Intercept) make address all num3d 
      -1.989e+00 -5.022e-01 -1.702e-01 1.553e-01 3.368e+00 
      our over remove internet order 
      7.554e-01 6.682e-01 2.220e+00 5.586e-01 1.144e+00 
      mail receive will people report 
      Degrees of Freedom: 3450 Total (i.e. Null); 3393 Residual
      Null Deviance: 4628 
      Residual Deviance: 1335 AIC: 1451(篇幅有限,中间有删减)

      四、验证模型
             当模型的参数全部训练完毕后,就要将测试数据带入模型中进行验证预测了
      predictions <- predict(modelFit,newdata=testing)
      predictions####预测结果如下
      [1] spam spam spam spam spam spam spam spam spam spam spam 
      [12] spam spam spam spam spam spam spam spam spam spam spam 
      [23] nonspam spam spam spam spam spam spam nonspam spam spam spam 
      [34] spam spam spam spam spam spam spam spam spam spam spam 
      [45] spam spam spam spam spam spam spam spam spam spam spam 

      五、错误分类矩阵
            想知道模型预测的准确率如何呢?这个时候就要用到错误分类矩阵了,将模型预测的值和真实的值进行比较,计算错误分类率。通过观察错误分类矩阵,我们可知准确率为0.9252,结果还是很理想的。

      confusionMatrix(predictions,testing$type)####输出结果如下

      Confusion Matrix and Statistics

      Reference
      Prediction nonspam spam
      nonspam 658 47
      spam 39 406

      Accuracy : 0.9252 
      95% CI : (0.9085, 0.9398)
      No Information Rate : 0.6061 
      P-Value [Acc > NIR] : <2e-16 

      Kappa : 0.8429 
      Mcnemar's Test P-Value : 0.4504 

      Sensitivity : 0.9440 
      Specificity : 0.8962 
      Pos Pred Value : 0.9333 
      Neg Pred Value : 0.9124 
      Prevalence : 0.6061 
      Detection Rate : 0.5722 
      Detection Prevalence : 0.6130 
      Balanced Accuracy : 0.9201 


      来自:Cousera机器学习课程学习心得

      更多精彩内容,请点击阅读原文。

      数据人网(http://shujuren.org),数据人学习、交流和分享的家园,专注于从数据中学习,努力发觉数据之洞见,积极利用数据之价值。为“让人懂数据、用数据”之使命坚持做点事情。大家可以来投稿,做分享和传播,可以给反馈。您有什么想法,请反馈给我们,谢谢。数据人网,我们共建和共享。

      数据人网构建了数据人圈子,诚邀热爱数据和利用数据朋友入群。加小编微信:luqin360,注明入圈子。

             数据人网官方公众号:数据科学自媒体,分享数据科学干货。

            

             【R扩展包】caret包运用




      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      【数据分析】数值型数据的探索分析
      2016年3月9日

      下一篇文章

      【R知识】R语言apply函数族笔记
      2016年3月10日

      你可能也喜欢

      3-1665801675
      R语言学习:重读《R数据科学(中文版)》书籍
      28 9月, 2022
      6-1652833487
      经典铁死亡,再出新思路
      16 5月, 2022
      1-1651501980
      R语言学习:阅读《R For Everyone 》(第二版)
      1 5月, 2022

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?