R语言实战机器学习
前言
面向医学生/医生的实用机器学习教程,不适合计算机相关专业人士。
为什么写这个合集?
写这个合集的目的是为了帮助,从未接触过或不太了解机器学习的医学生/医生,快速了解机器学习,以及快速上手机器学习实战。
各种机器学习方法在医学领域中的使用越来越频繁,在各种医学相关的文献期刊中也是越来越常见,但是机器学习对于没有任何计算机背景的医学生/医生来说并不是那么友好。
- 首先,复杂的概念以及冗长的公式推导让人望而却步;
- 其次,目前市面上关于机器学习的书籍或视频资料等大多都是面向计算机相关人员的,对于没有任何计算机背景的人来说学习门槛偏高;
- 第三,网络中的资料知识点太过杂乱,没有系统性的整理,质量也良莠不齐,很多代码难以复现,或者使用的方法太过老旧等,东拼西凑的学习体验较差。
所以我基于自己的学习经验以及看过的一些资料,整理了这本R语言机器学习相关的合集。相比于其他资料,个人认为本合集的优势很明显:
- 本人是外科医生,也是从零开始学的这些东西,我对于各位医学生/医生学习过程中的痛点难点更加熟悉;
- 系统整理、有头有尾、从易到难、循序渐进,重点展示大家迫切需要的内容;
- 对于一些原理和概念,使用通俗易懂的语言进行解释,没有任何公式推导的内容。
合集介绍
本合集主要介绍如何使用R语言实现常见的机器学习方法,具体来说,本合集介绍了以下13种方法(后续可能会增加):
- 聚类分析
- 主成分分析
- 线性回归
- 逻辑回归
- lasso回归
- KNN
- 支持向量机
- 决策树
- 随机森林
- GBM
- XGBoost
- lightGBM
- CatBoost
对于每种方法,都会首先介绍它的原理,这部分内容使用简洁易懂的语言向大家介绍一些算法的基本概念,不包含任何数学公式,方便大家理解。
然后是代码实战部分,这部分内容主要包括模型建立、参数解释、结果解读、模型评价、超参数调优等内容,力求详细、方便理解。由于临床医学中常见的任务都是分类任务,所以示例代码基本都是分类任务的演示。
对于生存分析,本合集并未涉及,因为生存任务和传统的分类/回归任务差别很大,大到可能需要单独开一个合集介绍,相关内容可参考:R语言生存分析。
模型评价部分重点展示了混淆矩阵、敏感度/特异度、ROC曲线、PR曲线、校准曲线、决策曲线等。
代码实战部分我并没有使用目前R语言机器学习领域很火爆的两个R包:tidymodels
和mlr3
,而是对于每种算法都使用了其对应的经典R包,比如:lasso回归部分使用了glmnet
包、支持向量机部分使用了e1071
包、随机森林部分使用了randomForest
包。因为这两个R包本身还是基于这些经典的R包的,tidymodels
和mlr3
本身没有实现任何算法,它们只是对这些经典的R包进行了深度整合。所以,从这些R包开始学习方便为以后的进一步学习打下基础,如果你没接触过这些经典R包的话,有一些小问题你可能很难发现。
tidymodels和mlr3的使用教程我在公众号中一直在更新,不久后也会整理成合集,还有一个模型解释的合集也会整理出来。有了这些经典R包的基础之后,你会发现再学习tidymodels
和mlr3
会更加容易上手,毕竟就只需要学习下这两个R包的使用逻辑和语法就好了。
除此之外,本合集还介绍了一些机器学习中的其他重要问题,主要包括:
- 数据预处理
- 数据划分
- 模型评价
- 超参数调优
- 变量选择
本合集介绍的内容非常基础,只是机器学习相关内容中的冰山一角,比如,对于模型的超参数调优,我只是演示了如何使用R包实现,虽然方法是对的,但是调参的方向并不一定对,或者说,有可能你一通操作下来,模型的表现还不如默认参数好。因为每种模型的调参方向都是不一样的,使用的方法也会有差别,这个需要专业知识,也需要相关的经验。更多专业的知识,需要大家自己阅读专业的书籍。
由于合集内容大部分都是代码实操,所以需要你对R语言有一些基础的理解,不然你可能会一直被一些基础的报错所困扰。每篇内容可能需要不同的R包,这里并没有展示安装这些R包的过程,大家需要自己安装。
限于个人专业、水平、时间等问题,难免有很多不足之处,欢迎大家以各种方式(微信、QQ、公众号留言等)交流、建议。但是请不要抬杠,也请不要成为喷子、伸手党。
本合集是基于我公众号发表的机器学习相关推文修改而来,为了更加适合机器学习初学者阅读以及方便理解,进行了大量修改,甚至可以说是从头重写!和我的其他合集一样,本合集也会保持长期更新。