最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

R語(yǔ)言機(jī)器學(xué)習(xí)-基于mlr-1.mlr中的機(jī)器學(xué)習(xí)一般流程

2023-04-27 22:48 作者:寬屏巴洛克  | 我要投稿

在先前,r語(yǔ)言構(gòu)建機(jī)器學(xué)習(xí)流程基于每個(gè)獨(dú)立的機(jī)器學(xué)習(xí)包,如e1071,rpart等,其語(yǔ)法、訓(xùn)練流程各不相同,學(xué)習(xí)不同的算法需要重新學(xué)習(xí)對(duì)應(yīng)的語(yǔ)法和流程。類(lèi)似于python中的scikit-learn框架,mlr包填補(bǔ)了r語(yǔ)言在機(jī)器學(xué)習(xí)框架的空白。mlr包構(gòu)建了一個(gè)統(tǒng)一的構(gòu)建機(jī)器學(xué)習(xí)的流程,使其可以快速應(yīng)用于不同類(lèi)型的機(jī)器學(xué)習(xí)模型。

mlr中的機(jī)器學(xué)習(xí)一般流程

機(jī)器學(xué)習(xí)的流程一般由構(gòu)建學(xué)習(xí)器-構(gòu)建任務(wù)-訓(xùn)練模型-預(yù)測(cè)數(shù)據(jù)-評(píng)估模型構(gòu)成。

機(jī)器學(xué)習(xí)的一般流程

下面以構(gòu)建knn預(yù)測(cè)模型為例,介紹在mlr包中如何構(gòu)建機(jī)器學(xué)習(xí)的一般流程

先決條件

本文的數(shù)據(jù)預(yù)處理基于tidyverse

需要注意的是,mlr包默認(rèn)僅安裝mlr包及其基礎(chǔ)環(huán)境,不會(huì)安裝其關(guān)聯(lián)的機(jī)器學(xué)習(xí)包,建議在安裝包時(shí)添加dependencies = TRUE參數(shù)安裝其關(guān)聯(lián)機(jī)器學(xué)習(xí)包。

載入目標(biāo)數(shù)據(jù)集與構(gòu)建分類(lèi)任務(wù)

mlr支持分類(lèi)、回歸、聚類(lèi)等多種類(lèi)型任務(wù)

以下以iris數(shù)據(jù)集為例,構(gòu)建一個(gè)基于葉片數(shù)據(jù)對(duì)鳶尾花進(jìn)行分類(lèi)的knn分類(lèi)器

載入數(shù)據(jù)集

注意,在構(gòu)建分類(lèi)任務(wù)前,需要把分類(lèi)的標(biāo)簽類(lèi)轉(zhuǎn)化為因子型

構(gòu)建分類(lèi)任務(wù)

mlr包構(gòu)建任務(wù)的函數(shù)通常以make***Task為名,如makeClusterTask,makeRegrTask等,使用data?參數(shù)指定需要執(zhí)行任務(wù)的數(shù)據(jù)集,target參數(shù)用于指定需要進(jìn)行回歸|聚類(lèi)任務(wù)的列。

劃分訓(xùn)練集與測(cè)試集

makeResampleInstance函數(shù)用于對(duì)任務(wù)劃分訓(xùn)練集和測(cè)試集,desc參數(shù)用于指定重抽樣方式,mlr支持的重抽樣方式有LOO(留一法交叉驗(yàn)證)、CV(k折交叉驗(yàn)證)、RepCV(重復(fù)k折交叉驗(yàn)證)、Holdout(留出法)、Bootstrap等。執(zhí)行函數(shù)后,返回R6類(lèi)對(duì)象,使用$符號(hào)訪問(wèn)對(duì)象,holdout$train.ids為從目標(biāo)任務(wù)中抽取用于構(gòu)建訓(xùn)練集的行序列號(hào),holdout$test.ids為從目標(biāo)任務(wù)中抽取用于構(gòu)建測(cè)試集的行序列號(hào)。

這里以留出法為例,比例設(shè)為70%訓(xùn)練集,30%測(cè)試集。

subsetTask函數(shù)用于從主任務(wù)抽取子任務(wù)集,task參數(shù)用于指定從何處抽取子任務(wù),subset參數(shù)用于指定行序號(hào)抽取數(shù)據(jù)集。注意:subset參數(shù)僅支持向量類(lèi)數(shù)據(jù)。

構(gòu)建學(xué)習(xí)器與超參數(shù)調(diào)參

可以使用listLearners函數(shù)列出所有mlr包支持的學(xué)習(xí)器,結(jié)果是一個(gè)R6對(duì)象,建議將結(jié)果賦值給變量用于輔助查詢(xún),使用$class查看支持的所有學(xué)習(xí)器。

構(gòu)建學(xué)習(xí)器

makeLearner是mlr包中用于構(gòu)建學(xué)習(xí)器的函數(shù),learner參數(shù)用于指定需要構(gòu)建的學(xué)習(xí)器。par.vals參數(shù)用于指定學(xué)習(xí)器的初始參數(shù)集,par.vals參數(shù)僅支持列表類(lèi)型數(shù)據(jù)輸入,建議若需要指定學(xué)習(xí)器的多個(gè)初始參數(shù),將其打包成一個(gè)列表數(shù)據(jù)并傳入。

超參數(shù)調(diào)參

makeParamSet用于指定超參數(shù)調(diào)參的參數(shù)搜索空間,可支持多類(lèi)型的超參數(shù)調(diào)參,調(diào)參參數(shù)指定格式為make*數(shù)據(jù)類(lèi)型*Param,如makeDiscreteParam

在超參數(shù)調(diào)參中,我們需要對(duì)調(diào)參的搜索方式進(jìn)行指定,mlr支持網(wǎng)格搜索,隨機(jī)搜素等,使用makeTuneControl*搜索方式*()函數(shù)進(jìn)行指定,以下是指定為網(wǎng)格搜索方式的一個(gè)示例

在指定參數(shù)搜索空間,搜索方式后,我們需要調(diào)用自動(dòng)調(diào)參器函數(shù)對(duì)學(xué)習(xí)器參數(shù)進(jìn)行自動(dòng)調(diào)參,在mlr中,自動(dòng)調(diào)參器的函數(shù)為tuneParams(),如下例所示

learner參數(shù)用于指定需要進(jìn)行調(diào)參的學(xué)習(xí)器,task參數(shù)用于指定從何任務(wù)收集數(shù)據(jù)評(píng)估調(diào)參性能,par.set用于指定調(diào)參的參數(shù)搜索空間,resampling參數(shù)用于指定重抽樣方式,其傳入的參數(shù)makeResampleDesc函數(shù)用于指定重抽樣的參數(shù)描述(類(lèi)似于makeResampleInstance函數(shù)),control參數(shù)用于指定參數(shù)的搜索方式。

自動(dòng)調(diào)參器的結(jié)果以R6對(duì)象返回,使用$符號(hào)訪問(wèn)對(duì)象元素,$x為調(diào)參結(jié)果,將調(diào)參結(jié)果賦給setHyperPars函數(shù)用于更新學(xué)習(xí)器參數(shù),下面是該函數(shù)的使用示例

訓(xùn)練、預(yù)測(cè)、評(píng)估模型與重抽樣

在上述的流程結(jié)束后,我們可以開(kāi)始對(duì)模型真正的訓(xùn)練,mlr中訓(xùn)練模型的函數(shù)為train()

learner參數(shù)用于需要訓(xùn)練的學(xué)習(xí)器,task參數(shù)則用于指定從何任務(wù)/何數(shù)據(jù)集訓(xùn)練模型。

結(jié)束訓(xùn)練后,使用predict函數(shù)對(duì)訓(xùn)練結(jié)果進(jìn)行預(yù)測(cè)和評(píng)估

predict中第一個(gè)參數(shù)用于指定從何訓(xùn)練后的模型進(jìn)行預(yù)測(cè),task參數(shù)用于指定該模型從何數(shù)據(jù)集中預(yù)測(cè)數(shù)據(jù),此外predict函數(shù)也支持對(duì)新數(shù)據(jù)的預(yù)測(cè),使用 newdata參數(shù)用于指定需要應(yīng)用預(yù)測(cè)的數(shù)據(jù),此處數(shù)據(jù)不需要轉(zhuǎn)化為任務(wù)。

使用performance函數(shù)對(duì)訓(xùn)練模型進(jìn)行評(píng)估

重抽樣

為尋找最佳訓(xùn)練模型,我們可以使用重抽樣函數(shù)對(duì)學(xué)習(xí)器進(jìn)行多輪訓(xùn)練與評(píng)估

使用resample函數(shù)對(duì)任務(wù)進(jìn)行重抽樣和訓(xùn)練學(xué)習(xí)器

需要注意的是,如需要保存resample函數(shù)中每一輪重抽樣的模型,需要指定models參數(shù)為T(mén)RUE。

調(diào)用重抽樣獲得的模型并使用其進(jìn)行預(yù)測(cè)

其后續(xù)步驟和普通的訓(xùn)練-預(yù)測(cè)流程相似,具體實(shí)例如下

本文的全部代碼

推薦閱讀

[1]機(jī)器學(xué)習(xí)實(shí)戰(zhàn)-使用R、Tidyverse和mlr -- 赫芬·I.里斯

[2]R手冊(cè)(Machine Learning)--mlr(Part 1)R手冊(cè)(Machine Learning)--mlr(Part 1)_WilenWu的博客-CSDN博客


R語(yǔ)言機(jī)器學(xué)習(xí)-基于mlr-1.mlr中的機(jī)器學(xué)習(xí)一般流程的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
泗阳县| 佛教| 章丘市| 淄博市| 奉化市| 乌拉特中旗| 孟村| 永定县| 浦江县| 浦县| 长兴县| 九台市| 鸡西市| 石柱| 临颍县| 连南| 十堰市| 南涧| 宜川县| 安化县| 杭锦后旗| 体育| 汤阴县| 阳原县| 陆丰市| 苏尼特左旗| 丰都县| 普兰店市| 大埔县| 黎城县| 铜梁县| 道孚县| 青冈县| 武鸣县| 哈巴河县| 崇义县| 潞西市| 兴和县| 万年县| 五家渠市| 宝山区|