本內(nèi)容為【科研私家菜】R語言機(jī)器學(xué)習(xí)與臨床預(yù)測模型系列課程
你想要的R語言學(xué)習(xí)資料都在這里, 快來收藏關(guān)注【科研私家菜】
01. R語言機(jī)器學(xué)習(xí)包
mlr 包
mlr包提供了一個(gè)一般化孕豹、清洗易用涵蓋分類貌踏、回歸、生存分析丧蘸、聚類等功能的可擴(kuò)展機(jī)器學(xué)習(xí)工作框架漂洋。它也提供了一個(gè)對于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: 評估模型性能
dials: 定義調(diào)參空間
tune: 超參數(shù)調(diào)參
workflows: 構(gòu)建建模工作流
02. 常用機(jī)器學(xué)習(xí)包
1. survival
簡介:survival是目前用的最多的做生存分析的包糊余,
Surv:用于創(chuàng)建生存數(shù)據(jù)對象,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
簡介:glmnet是做lasso分析的R包尊沸,包括二分類logistic回歸模型威沫,多分類logistic回歸模型,Possion模型洼专,Cox比例風(fēng)險(xiǎn)模型棒掠,svm模型,是目前用的最多的lasso分析的包屁商,簡單易用烟很,通過選擇1se lambda為最優(yōu)參數(shù),廣泛應(yīng)用在篩選基因的研究中。
3. randomForests
簡介:randomForest 包提供了利用隨機(jī)森林算法解決分類和回歸問題的功能雾袱。使用起來比較簡單恤筛,其中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
簡介:全稱是recession modeling strategy,包如其名述么,Harrell教授給我們提供了大量的好用便捷的函數(shù)進(jìn)行建模及模型的評價(jià)與檢驗(yàn)蝌数!最有名的是該包最先提供了畫列線圖函數(shù),這幾乎是現(xiàn)在模型可視化必備度秘!
5. e1071
簡介:e1071是用于做支持向量機(jī)分析的R包顶伞,SVM旨在多維空間中找到一個(gè)超平面(hyperplane),該平面能夠?qū)⑷繉ο蠓殖勺顑?yōu)的兩類剑梳,其實(shí)也可以多類唆貌,但是效果不是很好。e1071名字比較特殊簡單垢乙,但是功能絕對強(qiáng)大锨咙,包括優(yōu)化的tune.svum,包括了多種核函數(shù)追逮,簡單方便酪刀。
6. 回歸包 Logistic
簡介:當(dāng)通過一系列連續(xù)型或類別型預(yù)測變來預(yù)測二值型結(jié)果變量時(shí),Logistic回歸是一個(gè)非常有用的工具钮孵。Logistic 回歸是二分類任務(wù)的首選方法骂倘。它輸出一個(gè) 0 到 1 之間的離散二值結(jié)果。簡單來說巴席,它的結(jié)果不是 1 就是 0历涝。
7. caret
簡介:caret包全稱是(Classificationand Regression Training),應(yīng)用之一就是數(shù)據(jù)預(yù)處理漾唉,比如我們常用的拆分訓(xùn)練集和驗(yàn)證集睬关。caret包應(yīng)用之二:特征選擇,比如我們的svm-rfe這種特征選擇就是可以幫助我們在svm的基礎(chǔ)上進(jìn)行選擇最重要的特征毡证,彌補(bǔ)e1071包的不租电爹,caret包還可以參與建模與參數(shù)優(yōu)化和模型預(yù)測與檢驗(yàn),里面功能很強(qiáng)大料睛。
8. kmeans聚類
簡介:k(均值)聚類屬于扁平聚類算法丐箩,即進(jìn)行一層劃分得到k個(gè)簇摇邦,與層次聚類算法開始不需要決定簇?cái)?shù)不同,k均值聚類需要用戶事先確定好簇個(gè)數(shù)屎勘,因?yàn)闃?gòu)建一顆聚類樹是非常耗時(shí)的事情施籍,所以k均值聚類算法的效率要優(yōu)于層次聚類「攀可使用ggfortify包進(jìn)行聚類結(jié)果的可視化展示丑慎。
9. nnet
簡介:如果你做過多分類的變量的相關(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
簡介:rpart是RecursivePartitioning and Regression Trees的簡稱,rpart可以用于決策樹的構(gòu)建这揣,修剪悔常,圖形展示,plotcp函數(shù)可視化或者printcp函數(shù)選取合適cp值给赞。R語言中關(guān)于決策樹建模机打,最為常用的有兩個(gè)包,一個(gè)是rpart包片迅,另一個(gè)是party包残邀,rpart還更友好,結(jié)果簡單明了些障涯。
11. mlr
簡介:mlr包就是類似python的sklearn庫。囊括蓋分類膳汪、回歸唯蝶、生存分析、聚類等功能的可擴(kuò)展機(jī)器學(xué)習(xí)工作框架遗嗽。提供了一個(gè)對于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
簡介: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
簡介:是R語言安裝時(shí)默認(rèn)的包专筷,可以分析分層的線性混合模型和非線性模型。并且可以處理更復(fù)雜的線性和非線性模型灵份,可以定義方差協(xié)方差結(jié)構(gòu)仁堪,可以在廣義線性模型中定義幾種分布函數(shù)和連接函數(shù)。
14. ASReml-R
簡介:這個(gè)R包是一個(gè)主要用來做遺傳分析的R包填渠,包括多年份平衡與不平衡試驗(yàn)數(shù)據(jù)分析弦聂,重復(fù)測量數(shù)據(jù)分析,平衡與不平衡試驗(yàn)設(shè)計(jì)數(shù)據(jù)分析氛什,遺傳參數(shù)評估等莺葫,替代了ASReml這個(gè)軟件,這個(gè)軟件本來原來也是替代SAS和SPSS的部分功能枪眉。
15. Mass
簡介:其實(shí)是為了介紹一種降維算法——LDA線性判別分析捺檬,LDA可以通過Mass包來建模。LDA和PCA都是線性降維技術(shù)贸铜,通用的LDA與PCA相似堡纬,但是除了找到使數(shù)據(jù)方差最大的成分軸外,還對最大化多個(gè)類之間距離的軸感興趣蒿秦。此外烤镐,PCA屬于“無監(jiān)督”算法,降維時(shí)不關(guān)注數(shù)據(jù)的分類棍鳖,目標(biāo)是找到代表數(shù)據(jù)集最大化方差方向的一系列特征向量炮叶,也就是主成分,但是LDA屬于“有監(jiān)督”聚類渡处,不僅關(guān)注類別關(guān)系镜悉,還可以通過線性判別式定義一系列表示最大化類別之間距離的正交軸。
16. kernlab
簡介:這個(gè)R包是一個(gè)主要用來做SVM的R包医瘫,功能類似e1071侣肄,使用bsvm和libsvm庫中的優(yōu)化方法,得以實(shí)現(xiàn)svm算法醇份。對于分類茫孔,有C-SVM分類算法和v-SVMz這2類分類算法叮喳,并且還包括C分類器的有界約束的版本。對于回歸缰贝,提供了2種回歸方法馍悟,ε-SVM、v-SVM回歸算法剩晴。對于多類分類锣咒,有一對一方法和原生多類分類方法。
17. mboost
簡介:mboost包提供基于提升(boosting)的機(jī)器學(xué)習(xí)算法和模型赞弥∫阏可以用于用于廣義線性、加性和非參數(shù)模型的可擴(kuò)展的boosting框架绽左。大概是3步完成悼嫉,首先是最小乘方或者回歸樹作為基本學(xué)習(xí)器;
然后梯度下降算法(提升)用于優(yōu)化通用的風(fēng)險(xiǎn)函數(shù)拼窥,最后對于潛在的高維數(shù)據(jù)擬合通用的線性戏蔑、可加性和交互性模型。
18. xgboost
簡介:XGBoost 是Extreme Gradient Boosting 的縮寫鲁纠,在競賽平臺(tái)Kaggle很流行总棵。xgboost包使用efficient trees作為基學(xué)習(xí)器來實(shí)現(xiàn)tree-based boosting。XGBoost 算法是一種現(xiàn)在在數(shù)據(jù)科學(xué)競賽的獲勝方案很流行的算法改含,一般不管怎么樣情龄,都先用這個(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)的代碼帜慢,甚至還包括了大部分多元分析方法笼裳,操作簡便唯卖,代碼簡單粱玲。
20. CatBoost
簡介:CatBoost全稱是CategoricalBoosting,該算法類似于XGBoost,LightGBM的Gradient Boosting算法拜轨,這個(gè)算法的創(chuàng)新之處主要是抽减,首先對于離散特征值的處理,采用了ordered TS(target statistic)的方法橄碾。第二是提供了兩種訓(xùn)練模式:Ordered和Plain卵沉。里面主要包括catboost.train颠锉、catboost.predict、calc_accuracy等函數(shù)史汗。
21. h2o包
簡介:通過連接外部服務(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í)包(名稱、簡介) - 嗶哩嗶哩 (bilibili.com)
https://www.zhihu.com/question/403123109/answer/1304932701
關(guān)注R小鹽埋市,關(guān)注科研私家菜(VX_GZH: SciPrivate)冠桃,有問題請聯(lián)系R小鹽。讓我們一起來學(xué)習(xí) R語言機(jī)器學(xué)習(xí)與臨床預(yù)測模型