mlr案例:回歸

原英文地址:https://mlr.mlr-org.com/articles/tutorial/usecase_regression.html

目錄

  • 定義任務(wù)
  • 調(diào)整
  • 基準(zhǔn)測(cè)試
  • 性能

我們使用著名的mlbench::BostonHousing() 數(shù)據(jù)集進(jìn)行回歸。

首先缘滥,讓我們看一下數(shù)據(jù):

data(BostonHousing, package = "mlbench")
summary(BostonHousing)
##       crim                zn             indus       chas   
##  Min.   : 0.00632   Min.   :  0.00   Min.   : 0.46   0:471  
##  1st Qu.: 0.08204   1st Qu.:  0.00   1st Qu.: 5.19   1: 35  
##  Median : 0.25651   Median :  0.00   Median : 9.69          
##  Mean   : 3.61352   Mean   : 11.36   Mean   :11.14          
##  3rd Qu.: 3.67708   3rd Qu.: 12.50   3rd Qu.:18.10          
##  Max.   :88.97620   Max.   :100.00   Max.   :27.74          
##       nox               rm             age              dis        
##  Min.   :0.3850   Min.   :3.561   Min.   :  2.90   Min.   : 1.130  
##  1st Qu.:0.4490   1st Qu.:5.886   1st Qu.: 45.02   1st Qu.: 2.100  
##  Median :0.5380   Median :6.208   Median : 77.50   Median : 3.207  
##  Mean   :0.5547   Mean   :6.285   Mean   : 68.57   Mean   : 3.795  
##  3rd Qu.:0.6240   3rd Qu.:6.623   3rd Qu.: 94.08   3rd Qu.: 5.188  
##  Max.   :0.8710   Max.   :8.780   Max.   :100.00   Max.   :12.127  
##       rad              tax           ptratio            b         
##  Min.   : 1.000   Min.   :187.0   Min.   :12.60   Min.   :  0.32  
##  1st Qu.: 4.000   1st Qu.:279.0   1st Qu.:17.40   1st Qu.:375.38  
##  Median : 5.000   Median :330.0   Median :19.05   Median :391.44  
##  Mean   : 9.549   Mean   :408.2   Mean   :18.46   Mean   :356.67  
##  3rd Qu.:24.000   3rd Qu.:666.0   3rd Qu.:20.20   3rd Qu.:396.23  
##  Max.   :24.000   Max.   :711.0   Max.   :22.00   Max.   :396.90  
##      lstat            medv      
##  Min.   : 1.73   Min.   : 5.00  
##  1st Qu.: 6.95   1st Qu.:17.02  
##  Median :11.36   Median :21.20  
##  Mean   :12.65   Mean   :22.53  
##  3rd Qu.:16.95   3rd Qu.:25.00  
##  Max.   :37.97   Max.   :50.00

這個(gè)數(shù)據(jù)集涉及波士頓郊區(qū)的房?jī)r(jià)。用于回歸訓(xùn)練的目標(biāo)向量是medv——是以1000美元為單位的房?jī)r(jià)中位數(shù)值于宙。關(guān)于其他13個(gè)變量的描述可以通過(guò)`mlbench::BostonHousing()獲取摩梧。

定義一個(gè)任務(wù)

現(xiàn)在,讓我們定義一個(gè)回歸任務(wù)卖漫。

# Make a task
regr.task = makeRegrTask(data = BostonHousing, target = "medv")
regr.task
## Supervised task: BostonHousing
## Type: regr
## Target: medv
## Observations: 506
## Features:
##    numerics     factors     ordered functionals 
##          12           1           0           0 
## Missings: FALSE
## Has weights: FALSE
## Has blocking: FALSE
## Has coordinates: FALSE

為了得到一個(gè)特征類(lèi)型的概覽费尽,我們打印了regr.task。結(jié)果顯示數(shù)據(jù)集中有12個(gè)數(shù)值變量和1個(gè)因子變量羊始。

調(diào)整

輸入listLearners("regr")我們可以看到可以用于回歸任務(wù)的學(xué)習(xí)器有哪些旱幼。

存在如此多的學(xué)習(xí)器,因此我們難以為該任務(wù)選擇一個(gè)最優(yōu)的突委,因此我們會(huì)選擇其中的一些柏卤,并且比較它們的結(jié)果。這個(gè)分析使用經(jīng)典的線性回歸模型(regr.lm)匀油、帶徑向基核(regr.ksvm)的SVM(kernlab::ksvm())和來(lái)自ranger包(ranger::ranger())的隨機(jī)森林缘缚。

為了快速瀏覽所有學(xué)習(xí)器特異的可調(diào)整參數(shù),你可以使用getLearnerParamSet() 或者他的別名ParamHelpers::getParamSet()敌蚜,它會(huì)列出學(xué)習(xí)器的超參數(shù)和其他屬性桥滨。

在設(shè)定一個(gè)基準(zhǔn)實(shí)驗(yàn)之前,我們可以指定將要調(diào)整的超參數(shù)弛车。mlr包提供的強(qiáng)大的調(diào)整算法齐媒,比如iterated F-racing (irace::irace()), CMA Evolution Strategy (cmaes::cma_es()), model-based / Bayesian optimization (mlrMBO::mbo()) and generalized simulated annealing (GenSA::GenSA())。

對(duì)每個(gè)模型都有一個(gè)超參數(shù)將會(huì)調(diào)整纷跛,即SVM模型中的參數(shù)\sigma和隨機(jī)森林中樹(shù)的數(shù)目喻括。我們先指定這些參數(shù)的搜索空間。通過(guò)makeTuneControlCMAES()忽舟,我們?cè)O(shè)定調(diào)整方法為CMA Evolution Strategy (cmaes::cma_es())双妨。隨后我們使用重采樣策略中的5折交叉驗(yàn)證淮阐,并以均方根誤差(rmse)作為優(yōu)化標(biāo)準(zhǔn)。

set.seed(1234)

# Define a search space for each learner'S parameter
ps_ksvm = makeParamSet(
  makeNumericParam("sigma", lower = -12, upper = 12, trafo = function(x) 2^x)
)

ps_rf = makeParamSet(
  makeIntegerParam("num.trees", lower = 1L, upper = 200L)
)

# Choose a resampling strategy
rdesc = makeResampleDesc("CV", iters = 5L)

# Choose a performance measure
meas = rmse

# Choose a tuning method
ctrl = makeTuneControlCMAES(budget = 100L)

# Make tuning wrappers
tuned.ksvm = makeTuneWrapper(learner = "regr.ksvm", resampling = rdesc, measures = meas,
  par.set = ps_ksvm, control = ctrl, show.info = FALSE)
tuned.rf = makeTuneWrapper(learner = "regr.ranger", resampling = rdesc, measures = meas,
  par.set = ps_rf, control = ctrl, show.info = FALSE)

基準(zhǔn)實(shí)驗(yàn)

為了指導(dǎo)基準(zhǔn)實(shí)驗(yàn)刁品,必須選擇一個(gè)評(píng)估方法泣特。我們使用前面設(shè)定的重采樣策略和性能度量并將其包裝為參數(shù)傳入benchmark()函數(shù)。

# Four learners to be compared
lrns = list(makeLearner("regr.lm"), tuned.ksvm, tuned.rf)

# Conduct the benchmark experiment
bmr = benchmark(learners = lrns, tasks = regr.task, resamplings = rdesc, measures = rmse, 
  show.info = FALSE)

性能

現(xiàn)在我們來(lái)評(píng)估結(jié)果:

getBMRAggrPerformances(bmr)
## $BostonHousing
## $BostonHousing$regr.lm
## rmse.test.rmse 
##       4.901218 
## 
## $BostonHousing$regr.ksvm.tuned
## rmse.test.rmse 
##       3.643597 
## 
## $BostonHousing$regr.ranger.tuned
## rmse.test.rmse 
##       3.425189

箱線圖顯示了RF在這個(gè)任務(wù)中優(yōu)于其他學(xué)習(xí)器挑随。盡管之前進(jìn)行了調(diào)整状您,但線性和套索回歸的基準(zhǔn)實(shí)驗(yàn)產(chǎn)生了類(lèi)似但不良的結(jié)果。

plotBMRBoxplots(bmr)
image

文章有些細(xì)節(jié)部分我現(xiàn)在也不是很理解兜挨,感興趣的朋友不妨讀讀原文膏孟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拌汇,隨后出現(xiàn)的幾起案子柒桑,更是在濱河造成了極大的恐慌,老刑警劉巖噪舀,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件魁淳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡与倡,警方通過(guò)查閱死者的電腦和手機(jī)界逛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)纺座,“玉大人息拜,你說(shuō)我怎么就攤上這事【幌欤” “怎么了少欺?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)别惦。 經(jīng)常有香客問(wèn)我狈茉,道長(zhǎng)夫椭,這世上最難降的妖魔是什么掸掸? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮蹭秋,結(jié)果婚禮上扰付,老公的妹妹穿的比我還像新娘。我一直安慰自己仁讨,他們只是感情好羽莺,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著洞豁,像睡著了一般盐固。 火紅的嫁衣襯著肌膚如雪荒给。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天刁卜,我揣著相機(jī)與錄音志电,去河邊找鬼。 笑死蛔趴,一個(gè)胖子當(dāng)著我的面吹牛挑辆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播孝情,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鱼蝉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了箫荡?” 一聲冷哼從身側(cè)響起魁亦,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羔挡,沒(méi)想到半個(gè)月后吉挣,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡婉弹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年睬魂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镀赌。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡氯哮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出商佛,到底是詐尸還是另有隱情喉钢,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布良姆,位于F島的核電站肠虽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晃琳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一宰缤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧韩玩,春花似錦、人聲如沸陆馁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)叮贩。三九已至击狮,卻和暖如春佛析,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背彪蓬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工说莫, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人寞焙。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓储狭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親捣郊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辽狈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容