R語言機(jī)器學(xué)習(xí)與臨床預(yù)測(cè)模型49--R語言如何系統(tǒng)學(xué)習(xí)機(jī)器學(xué)習(xí)?

本內(nèi)容為【科研私家菜】R語言機(jī)器學(xué)習(xí)與臨床預(yù)測(cè)模型系列課程

你想要的R語言學(xué)習(xí)資料都在這里, 快來收藏關(guān)注【科研私家菜】


01. R語言機(jī)器學(xué)習(xí)包

mlr 包

mlr包提供了一個(gè)一般化、清洗易用涵蓋分類、回歸、生存分析、聚類等功能的可擴(kuò)展機(jī)器學(xué)習(xí)工作框架。它也提供了一個(gè)對(duì)于160多個(gè)基礎(chǔ)學(xué)習(xí)包的統(tǒng)一接口,包括了“元算法”和模型選擇技術(shù),并擴(kuò)展了基本學(xué)習(xí)算法的功能,比如超參數(shù)調(diào)參、特征選擇、集成結(jié)構(gòu)等。同時(shí)并行化計(jì)算也是其天然支持的一項(xiàng)技能。(引用于mlr:Machine Learning in R)
https://zhuanlan.zhihu.com/p/25595297

caret 包

caret包蘊(yùn)含了太多的數(shù)據(jù)分析和挖掘的功能,集成了上百種分類和回歸算法。
https://zhuanlan.zhihu.com/p/30616837

mlr3verse 包

mlr3verse 是最新、最先進(jìn)的 R 機(jī)器學(xué)習(xí)框架,它基于面向?qū)ο驲6 語法和 data.table 底層數(shù)據(jù)流(速度超快),支持future 并行,支持搭建"圖"流學(xué)習(xí)器,理念非常先進(jìn)、功能非常強(qiáng)大。mlr3verse 整合了各種機(jī)器學(xué)習(xí)算法包,實(shí)現(xiàn)了統(tǒng)一、整潔的機(jī)器學(xué)習(xí)流程化操作,足以媲美 Python 的 scikit-learn 機(jī)器學(xué)習(xí)庫.
mlr3verse 核心包包括:
mlr3: 機(jī)器學(xué)習(xí)
mlr3db: 操作后臺(tái)數(shù)據(jù)庫
mlr3filter: 特征選擇
mlr3learners: 機(jī)器學(xué)習(xí)學(xué)習(xí)器
mlr3pipelines: 特征工程,搭建圖流學(xué)習(xí)器
mlr3tuning: 超參數(shù)調(diào)參
mlr3viz: 可視化
paradox: 模型解釋

tidymodels 包

tidymodels 是與 tidyverse 一脈相承的 "管道流" R 機(jī)器學(xué)習(xí)框架,提供了統(tǒng)一的統(tǒng)計(jì)學(xué)習(xí)、機(jī)器學(xué)習(xí)算法接口。
tidymodels 核心包包括:
parsnip: 定義模型
recipes: 數(shù)據(jù)預(yù)處理和特征工程
rsample: 重抽樣
yardstick: 評(píng)估模型性能
dials: 定義調(diào)參空間
tune: 超參數(shù)調(diào)參
workflows: 構(gòu)建建模工作流


02. 常用機(jī)器學(xué)習(xí)包

1. survival

簡(jiǎn)介:survival是目前用的最多的做生存分析的包,
Surv:用于創(chuàng)建生存數(shù)據(jù)對(duì)象,survfit:創(chuàng)建KM生存曲線或是Cox調(diào)整生存曲線,
survdiff:用于不同組的統(tǒng)計(jì)檢驗(yàn),
coxph:構(gòu)建COX回歸模型,
cox.zph:檢驗(yàn)PH假設(shè)是否成立,
survreg:構(gòu)建參數(shù)模型,包括Km和cox分析。

2. glmnet

簡(jiǎn)介:glmnet是做lasso分析的R包,包括二分類logistic回歸模型,多分類logistic回歸模型,Possion模型,Cox比例風(fēng)險(xiǎn)模型,svm模型,是目前用的最多的lasso分析的包,簡(jiǎn)單易用,通過選擇1se lambda為最優(yōu)參數(shù),廣泛應(yīng)用在篩選基因的研究中。

3. randomForests

簡(jiǎn)介:randomForest 包提供了利用隨機(jī)森林算法解決分類和回歸問題的功能。使用起來比較簡(jiǎn)單,其中randomForest()函數(shù)用于構(gòu)建隨機(jī)森林模型,importance()函數(shù)用于計(jì)算模型變量的重要性,MDSplot()函數(shù)用于實(shí)現(xiàn)隨機(jī)森林的可視化,rfImpute()函數(shù)可為存在缺失值的數(shù)據(jù)集進(jìn)行插補(bǔ)(隨機(jī)森林法),得到最優(yōu)的樣本擬合值,treesize()函數(shù)用于計(jì)算隨機(jī)森林中每棵樹的節(jié)點(diǎn)個(gè)數(shù)。

4. rms

簡(jiǎn)介:全稱是recession modeling strategy,包如其名,Harrell教授給我們提供了大量的好用便捷的函數(shù)進(jìn)行建模及模型的評(píng)價(jià)與檢驗(yàn)!最有名的是該包最先提供了畫列線圖函數(shù),這幾乎是現(xiàn)在模型可視化必備!

5. e1071

簡(jiǎn)介:e1071是用于做支持向量機(jī)分析的R包,SVM旨在多維空間中找到一個(gè)超平面(hyperplane),該平面能夠?qū)⑷繉?duì)象分成最優(yōu)的兩類,其實(shí)也可以多類,但是效果不是很好。e1071名字比較特殊簡(jiǎn)單,但是功能絕對(duì)強(qiáng)大,包括優(yōu)化的tune.svum,包括了多種核函數(shù),簡(jiǎn)單方便。

6. 回歸包 Logistic

簡(jiǎn)介:當(dāng)通過一系列連續(xù)型或類別型預(yù)測(cè)變來預(yù)測(cè)二值型結(jié)果變量時(shí),Logistic回歸是一個(gè)非常有用的工具。Logistic 回歸是二分類任務(wù)的首選方法。它輸出一個(gè) 0 到 1 之間的離散二值結(jié)果。簡(jiǎn)單來說,它的結(jié)果不是 1 就是 0。

7. caret

簡(jiǎn)介:caret包全稱是(Classificationand Regression Training),應(yīng)用之一就是數(shù)據(jù)預(yù)處理,比如我們常用的拆分訓(xùn)練集和驗(yàn)證集。caret包應(yīng)用之二:特征選擇,比如我們的svm-rfe這種特征選擇就是可以幫助我們?cè)趕vm的基礎(chǔ)上進(jìn)行選擇最重要的特征,彌補(bǔ)e1071包的不租,caret包還可以參與建模與參數(shù)優(yōu)化和模型預(yù)測(cè)與檢驗(yàn),里面功能很強(qiáng)大。

8. kmeans聚類

簡(jiǎn)介:k(均值)聚類屬于扁平聚類算法,即進(jìn)行一層劃分得到k個(gè)簇,與層次聚類算法開始不需要決定簇?cái)?shù)不同,k均值聚類需要用戶事先確定好簇個(gè)數(shù),因?yàn)闃?gòu)建一顆聚類樹是非常耗時(shí)的事情,所以k均值聚類算法的效率要優(yōu)于層次聚類??墒褂胓gfortify包進(jìn)行聚類結(jié)果的可視化展示。

9. nnet

簡(jiǎn)介:如果你做過多分類的變量的相關(guān)模型的分析,那么你一定用過nnet包,它可以幫助你設(shè)置啞變量。另外nnet還是一個(gè)人工神經(jīng)網(wǎng)絡(luò)的算法包,該算法提供了傳統(tǒng)的前饋反向傳播神經(jīng)網(wǎng)絡(luò)算法的實(shí)現(xiàn)。一個(gè)nnet函數(shù)就可以實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的構(gòu)建,整個(gè)過程會(huì)一直重復(fù)直至擬合準(zhǔn)則值與衰減項(xiàng)收斂。

10. rpart

簡(jiǎn)介:rpart是RecursivePartitioning and Regression Trees的簡(jiǎn)稱,rpart可以用于決策樹的構(gòu)建,修剪,圖形展示,plotcp函數(shù)可視化或者printcp函數(shù)選取合適cp值。R語言中關(guān)于決策樹建模,最為常用的有兩個(gè)包,一個(gè)是rpart包,另一個(gè)是party包,rpart還更友好,結(jié)果簡(jiǎn)單明了些。

11. mlr

簡(jiǎn)介:mlr包就是類似python的sklearn庫。囊括蓋分類、回歸、生存分析、聚類等功能的可擴(kuò)展機(jī)器學(xué)習(xí)工作框架。提供了一個(gè)對(duì)于160多個(gè)基礎(chǔ)學(xué)習(xí)包的統(tǒng)一接口,包括了“元算法”和模型選擇技術(shù),并擴(kuò)展了基本學(xué)習(xí)算法的功能,比如超參數(shù)調(diào)參、特征選擇、集成結(jié)構(gòu)等。同時(shí)并行化計(jì)算也是其天然支持的一項(xiàng)技能。雖然Caret包和CMA包融入了數(shù)據(jù)預(yù)處理和變量選擇方法,但是MLR可以無縫同時(shí)用這些方法進(jìn)行調(diào)節(jié)。

12. gbm

簡(jiǎn)介:gbm包是梯度提升回歸樹的實(shí)現(xiàn)。梯度提升回歸樹縮寫是GBRT,全稱是Gradient Boosting Regression Tree, 有時(shí)也叫做GBDT,是一個(gè)樹形算法,數(shù)據(jù)無需歸一化,其實(shí)用起來非常想glmet這個(gè)包,方法包括OOB,test,cv,一般選擇cv就行,可以方便的選擇選擇最適的回歸樹個(gè)數(shù)。

13. nlme

簡(jiǎn)介:是R語言安裝時(shí)默認(rèn)的包,可以分析分層的線性混合模型和非線性模型。并且可以處理更復(fù)雜的線性和非線性模型,可以定義方差協(xié)方差結(jié)構(gòu),可以在廣義線性模型中定義幾種分布函數(shù)和連接函數(shù)。

14. ASReml-R

簡(jiǎn)介:這個(gè)R包是一個(gè)主要用來做遺傳分析的R包,包括多年份平衡與不平衡試驗(yàn)數(shù)據(jù)分析,重復(fù)測(cè)量數(shù)據(jù)分析,平衡與不平衡試驗(yàn)設(shè)計(jì)數(shù)據(jù)分析,遺傳參數(shù)評(píng)估等,替代了ASReml這個(gè)軟件,這個(gè)軟件本來原來也是替代SAS和SPSS的部分功能。

15. Mass

簡(jiǎn)介:其實(shí)是為了介紹一種降維算法——LDA線性判別分析,LDA可以通過Mass包來建模。LDA和PCA都是線性降維技術(shù),通用的LDA與PCA相似,但是除了找到使數(shù)據(jù)方差最大的成分軸外,還對(duì)最大化多個(gè)類之間距離的軸感興趣。此外,PCA屬于“無監(jiān)督”算法,降維時(shí)不關(guān)注數(shù)據(jù)的分類,目標(biāo)是找到代表數(shù)據(jù)集最大化方差方向的一系列特征向量,也就是主成分,但是LDA屬于“有監(jiān)督”聚類,不僅關(guān)注類別關(guān)系,還可以通過線性判別式定義一系列表示最大化類別之間距離的正交軸。

16. kernlab

簡(jiǎn)介:這個(gè)R包是一個(gè)主要用來做SVM的R包,功能類似e1071,使用bsvm和libsvm庫中的優(yōu)化方法,得以實(shí)現(xiàn)svm算法。對(duì)于分類,有C-SVM分類算法和v-SVMz這2類分類算法,并且還包括C分類器的有界約束的版本。對(duì)于回歸,提供了2種回歸方法,ε-SVM、v-SVM回歸算法。對(duì)于多類分類,有一對(duì)一方法和原生多類分類方法。

17. mboost

簡(jiǎn)介:mboost包提供基于提升(boosting)的機(jī)器學(xué)習(xí)算法和模型。可以用于用于廣義線性、加性和非參數(shù)模型的可擴(kuò)展的boosting框架。大概是3步完成,首先是最小乘方或者回歸樹作為基本學(xué)習(xí)器;
然后梯度下降算法(提升)用于優(yōu)化通用的風(fēng)險(xiǎn)函數(shù),最后對(duì)于潛在的高維數(shù)據(jù)擬合通用的線性、可加性和交互性模型。

18. xgboost

簡(jiǎn)介:XGBoost 是Extreme Gradient Boosting 的縮寫,在競(jìng)賽平臺(tái)Kaggle很流行。xgboost包使用efficient trees作為基學(xué)習(xí)器來實(shí)現(xiàn)tree-based boosting。XGBoost 算法是一種現(xiàn)在在數(shù)據(jù)科學(xué)競(jìng)賽的獲勝方案很流行的算法,一般不管怎么樣,都先用這個(gè)方法來一次看看效果,一般都不錯(cuò)。XGBoost僅適用于數(shù)值型向量,我們可以利用熱編碼轉(zhuǎn)換。

19. vegan

vegan 包是由芬蘭Oulu大學(xué)生物系Oksanen等幾位數(shù)量生態(tài)學(xué)者編寫的R包。Vegan包提供各種群落生態(tài)學(xué)分析工具,包括常用的PCA,DCA,RDA和CCA等方法,并且打包好了關(guān)于這些方法的計(jì)算和檢驗(yàn)的代碼,甚至還包括了大部分多元分析方法,操作簡(jiǎn)便,代碼簡(jiǎn)單。

20. CatBoost

簡(jiǎn)介:CatBoost全稱是CategoricalBoosting,該算法類似于XGBoost,LightGBM的Gradient Boosting算法,這個(gè)算法的創(chuàng)新之處主要是,首先對(duì)于離散特征值的處理,采用了ordered TS(target statistic)的方法。第二是提供了兩種訓(xùn)練模式:Ordered和Plain。里面主要包括catboost.train、catboost.predict、calc_accuracy等函數(shù)。

21. h2o包

簡(jiǎn)介:通過連接外部服務(wù)器,支持R語言和GPU結(jié)合加速深度學(xué)習(xí)。現(xiàn)目前R語言應(yīng)用在深度學(xué)習(xí)的相關(guān)包數(shù)量不多,h2o支持多線程分析,加快深度學(xué)習(xí)的運(yùn)行速度。是人工神經(jīng)網(wǎng)絡(luò)ANN分析的利器。使用h2o.init()連接到h2o平臺(tái),然后就可以開始深度學(xué)習(xí)了

03. 參考資料:

R語言︱常用統(tǒng)計(jì)方法包+機(jī)器學(xué)習(xí)包(名稱、簡(jiǎn)介) - 嗶哩嗶哩 (bilibili.com)
https://www.zhihu.com/question/403123109/answer/1304932701


關(guān)注R小鹽,關(guān)注科研私家菜(VX_GZH: SciPrivate),有問題請(qǐng)聯(lián)系R小鹽。讓我們一起來學(xué)習(xí) R語言機(jī)器學(xué)習(xí)與臨床預(yù)測(cè)模型

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容