數(shù)據(jù)挖掘-使用R軟件預(yù)測海藻數(shù)量_第1頁
數(shù)據(jù)挖掘-使用R軟件預(yù)測海藻數(shù)量_第2頁
數(shù)據(jù)挖掘-使用R軟件預(yù)測海藻數(shù)量_第3頁
數(shù)據(jù)挖掘-使用R軟件預(yù)測海藻數(shù)量_第4頁
數(shù)據(jù)挖掘-使用R軟件預(yù)測海藻數(shù)量_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

使用R軟件預(yù)測海藻數(shù)量李強(qiáng)強(qiáng)2013.112/3/20231R軟件R是一套完整的數(shù)據(jù)處理、計(jì)算和制圖軟件系統(tǒng)。其功能包括:數(shù)據(jù)存儲和處理系統(tǒng);數(shù)組運(yùn)算工具(其向量、矩陣運(yùn)算方面功能尤其強(qiáng)大);完整連貫的統(tǒng)計(jì)分析工具;優(yōu)秀的統(tǒng)計(jì)制圖功能;簡便而強(qiáng)大的編程語言:可操縱數(shù)據(jù)的輸入和輸出,可實(shí)現(xiàn)分支、循環(huán),用戶可自定義功能。R在語義上是函數(shù)設(shè)計(jì)語言。它允許在“語言上計(jì)算”。這使得它可以把表達(dá)式作為函數(shù)的輸入?yún)?shù),而這種做法對統(tǒng)計(jì)模擬和繪圖非常有用。R是一個免費(fèi)的自由軟件。本案例使用的是R的3.0.1版。2/3/20232背景描述某些高濃度的有害藻類嚴(yán)重破壞著河流的生態(tài)環(huán)境,因此,能夠監(jiān)測并及早對海藻的繁殖進(jìn)行預(yù)測對提高河流的質(zhì)量是很有必要的。在約一年時間內(nèi),在不同的時間收集了多條不同河流的水樣。每個水樣測定了它們不同的化學(xué)性質(zhì)和7種有害藻類的存在頻率。還記錄了如收集的季節(jié)、河流大小和水流速度。案例研究動機(jī):1.化學(xué)監(jiān)測相對人工檢測價(jià)格便宜,且易于自動化。2.更好地了解藻類的頻率和水樣的某些化學(xué)性質(zhì)以及其他特性(如季節(jié)、河流類型等)是如何相關(guān)的。2/3/202330海藻數(shù)據(jù)第一個數(shù)據(jù)集:包含200個水樣。每條記錄是一條河流在該年的同一季節(jié)的三個月內(nèi)收集的水樣的平均值。其中,每條記錄由11個變量組成。其中3個名義變量:水樣收集的季節(jié)、河流大小和河水速度。8個變量是水樣的不同化學(xué)參數(shù):最大pH值、最小含氧量、平均氯化物含量、平均硝酸鹽含量、平均氨含量、平均正磷酸鹽含量、平均磷酸鹽含量和平均葉綠素含量。與之相關(guān)的是7種不同的有害藻類的頻率數(shù)目。第二個數(shù)據(jù)集:140個不含7種藻類頻率數(shù)目的測試集。2/3/202341數(shù)據(jù)加載1.點(diǎn)擊文件菜單下的"改變工作目錄"來設(shè)定當(dāng)前工作目錄。2.輸入以下命令把文件中的數(shù)據(jù)讀入:

algae<-read.table('Analysis.txt',

s=c('season',

'size',

'speed',

'mxPH','mnO2',

'Cl',

'NO3',

'NH4',

'oPO4','PO4','Chla',

'a1',

'a2',

'a3',

'a4',

'a5',

'a6',

'a7'),

na.strings=c('XXXXXXX'))3.點(diǎn)擊文件菜單下的“保存工作空間”,輸入文件名,退出,下次打開R后可通過拖拽的方式直接打開。2/3/202352數(shù)據(jù)摘要鑒于沒有該問題領(lǐng)域足夠的信息,首先了解一些數(shù)據(jù)的統(tǒng)計(jì)特性是一種較好的方式,它方便我們更好地理解問題。獲取數(shù)據(jù)統(tǒng)計(jì)特性的方法之一是獲取其描述性的統(tǒng)計(jì)摘要。命令如下:

summary(algae)對于名義變量,它給出了每個可能取值的頻數(shù)。對于數(shù)值變量,它提供了均值、中位數(shù)、四分位數(shù)和極值等一系列統(tǒng)計(jì)信息。NA's表示缺失值的個數(shù)。通過觀察這些值,我們可以了解到數(shù)據(jù)分布的偏度和分散情況。2/3/202363數(shù)據(jù)可視化(1)1.繪制變量mxPH的直方圖的兩種方式:

hist(algae$mxPH)

hist(algae$mxPH,prob=T) 區(qū)別在于前者給出的是頻數(shù),后者是區(qū)間的概率。2.繪制mxPH的Q-Q圖: library(car) qqPlot(algae$mxPH,main='NormalQQplotofmaximumpH')

Q-Q圖繪制變量值和正態(tài)分布的理論分位數(shù)的散點(diǎn)圖。同時,它給出正態(tài)分布的95%置信區(qū)間的帶狀圖(虛線)。main為設(shè)置圖形的標(biāo)題。2/3/202373數(shù)據(jù)可視化(2)3.繪制變量oPO4的箱圖: boxplot(algae$oPO4,ylab="oPO4") rug(algae$oPO4,side=4) abline(h=mean(algae$oPO4,na.rm=T),lty=2) ylab為設(shè)置y軸標(biāo)題;

rug函數(shù)繪制變量的實(shí)際值,side=4表示繪制在圖的右側(cè)(1在下方,2在左側(cè),3在上方);

abline函數(shù)繪制水平線,mean表示均值,na.rm=T指計(jì)算時不考慮NA值,lty=2設(shè)置線型為虛線。2/3/202384數(shù)據(jù)清理 數(shù)據(jù)缺失的情形在實(shí)際問題中非常普遍。處理含有缺失值的數(shù)據(jù)時常用的幾種策略:將含有缺失值的案例剔除。用中心趨勢值來填補(bǔ)缺失值。根據(jù)變量之間的相關(guān)關(guān)系填補(bǔ)缺失值。根據(jù)案例之間的相似性填補(bǔ)缺失值。使用能夠處理缺失值數(shù)據(jù)的工具(見下一節(jié))。2/3/202394.1剔除缺失值(1)1.適用范圍:含缺失值的記錄在整個數(shù)據(jù)集中比例很小時。2.檢查含缺失值的記錄:

algae[!complete.cases(algae),

]3.剔除所有含缺失值的記錄: algae<-na.omit(algae)4.找出每個記錄中缺失值的個數(shù): apply(algae,1,function(x)sum(is.na(x)))

函數(shù)apply()是元函數(shù),可在某些條件下對對象應(yīng)用其他函數(shù)。第二個參數(shù)“1”表示第一個參數(shù)algae中的對象的第一個維度,即行數(shù)據(jù)。第三個參數(shù)是臨時函數(shù),功能是計(jì)算對象x中NA的數(shù)量。(注:R中有TRUE=1,FALSE=0)2/3/2023104.1剔除缺失值(2)5.可根據(jù)4編寫一個找出algae中含有給定數(shù)目缺失值的行。以下函數(shù)的功能是找出缺失值個數(shù)大于列數(shù)20%的行: library(DMwR) manyNAs(algae,0.2) 第二個參數(shù)如不指定,默認(rèn)為0.2,下面的命令與上一條等價(jià): manyNAs(algae)6.我們利用上面的函數(shù)來剔除缺失值較多的記錄: algae<-algae[-manyNAs(algae),]

這里第二個參數(shù)的默認(rèn)值為0.2。2/3/2023114.2用中心趨勢值填補(bǔ)缺失值 代表中心趨勢的值反映了變量分布的最常見值,這種方法也最自然、簡便和快捷。對于接近正態(tài)的分布來說,均值是最佳選擇;對偏態(tài)分布或有離群值的分布而言,中位數(shù)通常是更好的代表數(shù)據(jù)中心趨勢的指標(biāo);對于名義變量,通常采用眾數(shù)。可用以下函數(shù)完成填補(bǔ)所有缺失值: data(algae)

algae<-algae[-manyNAs(algae),

] algae<-centralImputation(algae) 上述方法特別適用于大數(shù)據(jù)集,但是這種方法可能導(dǎo)致較大的數(shù)據(jù)偏差,影響后期的數(shù)據(jù)分析。但使用復(fù)雜的無偏方法尋找最佳數(shù)據(jù)填補(bǔ)對大型數(shù)據(jù)集可能也不適用。2/3/2023124.3通過變量的相關(guān)性填補(bǔ)缺失值(1)

1.用以下命令獲取變量之間的相關(guān)矩陣: data(algae) symnum(cor(algae[,4:18],use="complete.obs")) 其中,函數(shù)cor()產(chǎn)生相關(guān)值矩陣(忽略前3個名義變量),use參數(shù)指計(jì)算相關(guān)值時忽略含有NA的記錄。2.結(jié)果顯示,有兩個相關(guān)性較大的值:NH4和NO3之間,PO4和oPO4之間。 前者相關(guān)性不是特別明顯(0.6~0.8),考慮到只樣本62和樣本199含有過多的缺失值,若剔除它們,樣本中NH4和NO3就不存在缺失值了。后者相關(guān)值很高(大于0.9)*,可用變量的相關(guān)性填補(bǔ)缺失值。*根據(jù)領(lǐng)域?qū)<业慕忉?,總的磷酸鹽值包含正磷酸鹽值。2/3/2023134.3通過變量的相關(guān)性填補(bǔ)缺失值(2)3.尋找PO4和oPO4之間的線性關(guān)系的方法: algae<-algae[-manyNAs(algae),] lm(formula=PO4~oPO4,data=algae) 我們得到線性模型:PO4=42.897+1.293*oPO4.4.剔除樣本62和樣本199后,僅樣本28在PO4上有缺失值,我們用上面的線性關(guān)系來填補(bǔ):

algae[28,"PO4"]<-42.897+1.293*algae[28,"oPO4"]

查看填補(bǔ)的記錄: algae[28,]2/3/2023144.4通過案例的相關(guān)性填補(bǔ)缺失值1.度量相似性時,最常用的指標(biāo)是歐式距離。我們可通過使用這種度量來尋找與任何含有缺失值的案例最相似的10個水樣,并用它們填補(bǔ)缺失值。 方法一:簡單計(jì)算這10個最近的案例的中位數(shù)并用中位數(shù)填補(bǔ)缺失值;若缺失值是名義變量則采用眾數(shù)。 方法二:采用這些最相似數(shù)據(jù)的加權(quán)均值。這里用高斯核函數(shù)從距離獲得權(quán)重。命令如下:

clean.algae<-knnImputation(algae,k=10)2.這種方法看起來更合理,但也可能存在不相關(guān)的變量扭曲相似性,甚至造成大型數(shù)據(jù)集的計(jì)算特別復(fù)雜等問題。因此,填補(bǔ)缺失值時,大多應(yīng)根據(jù)分析領(lǐng)域的知識來確定。2/3/2023155獲取預(yù)測模型用于預(yù)測海藻的兩種模型:多元線性回歸模型和回歸樹模型。線性回歸不能使用有缺失值的數(shù)據(jù)集,而回歸樹模型可以很自然地處理帶缺失值的數(shù)據(jù)。多元線性回歸模型是最常用的統(tǒng)計(jì)數(shù)據(jù)分析方法,該方法給出了一個有關(guān)目標(biāo)變量與一組解釋變量關(guān)系的線性函數(shù)。由于多元線性回歸模型中沒有處理缺失值的方法,因此,我們可以做如下的數(shù)據(jù)預(yù)處理:data(algae)algae<-algae[-manyNAs(algae),]clean.algae<-knnImputation(algae,k=10)這里還是先移除缺失值較多的記錄,然后根據(jù)訓(xùn)練集數(shù)據(jù)個案的相似性來填補(bǔ)缺失值。2/3/2023165.1線性回歸模型(1) 建立用于預(yù)測海藻頻率的線性回歸模型:

lm.a1<-lm(a1~.,data=clean.algae[,1:12]) 函數(shù)lm()建立一個線性回歸模型,其中,第一個參數(shù)給出了模型的函數(shù)形式。這個函數(shù)的形式是用數(shù)據(jù)中的其他所有變量來預(yù)測變量a1,第一個參數(shù)中的點(diǎn)“.”代表數(shù)據(jù)框中的所有除a1外的變量。如需要用變量mxPH和NH4來預(yù)測變量a1,就要定義模型為"a1~mxPH+NH4"。參數(shù)data是用來設(shè)定建模所用的數(shù)據(jù)集。2/3/2023175.1線性回歸模型(2) 通過下面的代碼,我們可以獲取更多線性模型的信息:

summary(lm.a1) 首先,給出數(shù)據(jù)擬合的殘差(residuals)。殘差應(yīng)該是均值為0且為正態(tài)分布的。 其次,對于每個多元線性回歸方程的系數(shù)(變量),給出它的估計(jì)值和標(biāo)準(zhǔn)誤差,并使用t檢驗(yàn)來驗(yàn)證系數(shù)為0的假設(shè)檢驗(yàn)。 再者,給出模型與數(shù)據(jù)的吻合度,即模型所能解釋的數(shù)據(jù)變差的比例。R-squared越接近于1說明模型擬合得越好,越小則代表模型擬合得越差。 最后,還可以檢驗(yàn)任何解釋變量與目標(biāo)變量的依賴關(guān)系。

2/3/2023185.2回歸樹模型(1)因模型解釋的方差比例太低,才約32%,故實(shí)際驗(yàn)證結(jié)果表明:對海藻案例應(yīng)用線性模型是不合適的。用線性思維去考慮非線性問題,得不到理想的結(jié)果。我們考慮使用回歸樹預(yù)測。建立回歸樹: library(rpart) data(algae) algae<-algae[-manyNAs(algae),] rt.a1<-rpart(a1~.,data=algae[,1:12])函數(shù)的形式是用數(shù)據(jù)中其他所有變量來預(yù)測a1,data是用來設(shè)定建模所用的數(shù)據(jù)集。2/3/2023195.2回歸樹模型(2) 回歸樹rt.a1的圖形表示的兩種方法: plot(rt.a1) text(rt.a1) 或

prettyTree(rt.a1) 建立回歸樹通常分兩步。最初,生成一棵較大的樹,然后通過統(tǒng)計(jì)估計(jì)刪除底部的一些結(jié)點(diǎn)來對樹進(jìn)行修剪。這樣是為了防止過度擬合。2/3/2023206模型評價(jià)和選擇 使用已有的訓(xùn)練數(shù)據(jù)獲得模型的性能指標(biāo)是不可靠的,因?yàn)檫@些計(jì)算是有偏的。實(shí)際上,有的模型可以很容易獲得訓(xùn)練數(shù)據(jù)的零誤差預(yù)測。然而,這一優(yōu)秀性能很難推廣到目標(biāo)變量值未知的新樣本上。這種現(xiàn)象我們通常稱為過度擬合訓(xùn)練數(shù)據(jù)。我們需要一個模型,使它在未知數(shù)據(jù)上有可靠的預(yù)測性能。 k折交叉驗(yàn)證是獲得模型性能可靠估計(jì)的一種常用方法,它適用于小數(shù)據(jù)集。2/3/202321k折交叉驗(yàn)證方法

K折交叉驗(yàn)證:初始采樣分割成K個子樣本,一個單獨(dú)的子樣本被保留作為驗(yàn)證模型的數(shù)據(jù),其他K-1個樣本用來訓(xùn)練。交叉驗(yàn)證重復(fù)K次,每個子樣本驗(yàn)證一次,平均K次的結(jié)果或者使用其它結(jié)合方式,最終得到一個單一估測。常見的選擇是k=10。有時還會重復(fù)進(jìn)行多次K折交叉驗(yàn)證以獲得更加可靠的估計(jì)。 總之,在做一項(xiàng)預(yù)測任務(wù)時要做出以下決策: 1)為預(yù)測任務(wù)選擇模型; 2)選擇比較模型性能的評估指標(biāo); 3)選擇獲取評估指標(biāo)的可靠估計(jì)的實(shí)驗(yàn)方法。2/3/202322進(jìn)行模型比較的函數(shù) 在R中,有函數(shù)experimentalComparison()可用來進(jìn)行模型之間的選擇和比較。它有三個參數(shù):1)用于比較的數(shù)據(jù)集;2)需要比較的可選模型;3)實(shí)驗(yàn)過程中的系數(shù)。此函數(shù)適用于任何模型和任何數(shù)據(jù),從這個意義上說,它是一個泛型函數(shù)。 使用者提供一組實(shí)現(xiàn)待比較的模型的函數(shù),其中每一個函數(shù)應(yīng)該對訓(xùn)練集和測試集實(shí)現(xiàn)一個完整的“訓(xùn)練+測試+評估”周期。在評估過程的每一次迭代中,調(diào)用這些函數(shù)。這些函數(shù)返回一個向量,其元素為交叉驗(yàn)證中用戶需要的性能評估指標(biāo)量。2/3/202323兩個目標(biāo)模型的函數(shù)cv.rpart<-function(form,train,test,...){ m<-rpartXse(form,train,...) p<-predict(m,test) mse<-mean((p-resp(form,test))^2) c(nmse=mse/mean((mean(resp(form,train))-resp(form,test))^2))}cv.lm<-function(form,train,test,...){ m<-lm(form,train,...) p<-predict(m,test) p<-ifelse(p<0,0,p) mse<-mean((p-resp(form,test))^2) c(nmse=mse/mean((mean(resp(form,train))-resp(form,test))^2))}2/3/202324函數(shù)的說明11.我們用NMSE(標(biāo)準(zhǔn)化后的平均絕對誤差)作為回歸樹模型和線性回歸模型的性能評估指標(biāo)。2.這些函數(shù)的前三個參數(shù)是公式、訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。3.特殊參數(shù)"..."可用在任意的R函數(shù)中,它允許一個特定函數(shù)具有可變的參數(shù),它用來給實(shí)際模型傳遞所需要的額外參數(shù)。4.函數(shù)resp()用于根據(jù)公式獲得數(shù)據(jù)集的目標(biāo)變量值。2/3/202325模型的交叉驗(yàn)證比較

定義好用于模型學(xué)習(xí)和測試的函數(shù)后,我們可按下列代碼進(jìn)行模型的交叉驗(yàn)證比較:

res<-experimentalComparison(

c(dataset(a1~.,clean.algae[,1:12],'a1')),

c(variants('cv.lm'),

variants('cv.rpart',se=c(0,0.5,1))),

cvSettings(3,10,1234)

)

參數(shù)一的形式為dataset(<formula>,<dataframe>,<label>);

參數(shù)二包含可選的模型方法并通過variants()指定,該函數(shù)第一個參數(shù)為目標(biāo)模型的函數(shù)名,第二個作為可選參數(shù);

參數(shù)三設(shè)定交叉驗(yàn)證試驗(yàn)的參數(shù)(repetition,fold,seed)。2/3/202326查看比較結(jié)果1.查看比較結(jié)果的摘要:

summary(res) 從結(jié)果中可知,apart.v1有最優(yōu)的平均NMSE值。2.驗(yàn)證結(jié)果也可轉(zhuǎn)化成可視化圖形:

plot(res)3.可通過以下代碼查看模型所對應(yīng)的參數(shù): getVariant("cv.rpart.v1",res)2/3/202327多個預(yù)測任務(wù)同時進(jìn)行DSs

<-

sapply(

names(clean.algae)[12:18], function(x,names.attrs){ f<-as.formula(paste(x,"~.")) dataset(f,clean.algae[,c(names.attrs,x)],x) }, names(clean.algae)[1:11])res.all<-experimentalComparison(

DSs, c(variants('cv.lm'),

variants('cv.rpart',se=c(0,0.5,1)) ), cvSettings(5,10,1234))2/3/202328函數(shù)的說明21.該代碼首先創(chuàng)建用于比較7個預(yù)測任務(wù)的數(shù)據(jù)集向量。對每一個預(yù)測問題需構(gòu)建一個公式,該公式由一個字符串構(gòu)成,它是數(shù)據(jù)集中相應(yīng)的需要預(yù)測的目標(biāo)變量和符號"~."連接而成的。然后,該字符串通過函數(shù)as.formula()轉(zhuǎn)換為一個R公式。2.這次采用重復(fù)5次10折交叉驗(yàn)證以提高統(tǒng)計(jì)結(jié)果的顯著性。3.本條指令運(yùn)行的時間稍長(處理器:Intel(R)Core(TM)i5-3210MCPU@2.50GHz,2501Mhz,2個內(nèi)核,4個邏輯處理器,約需1分鐘)。2/3/202329模型對不同海藻的結(jié)果1.所有海藻交叉驗(yàn)證結(jié)果的可視化:

plot(res.all) 圖中顯示有幾個結(jié)果很差,即其NMSE值明顯大于1。這意味著測試結(jié)果比簡單采用目標(biāo)變量的均值這一基準(zhǔn)模型還要差!2.查看每個問題對應(yīng)的最優(yōu)模型的代碼:

bestScores(res.all)

其結(jié)果說明,只有海藻1的預(yù)測結(jié)果尚可。3.考慮用組合法進(jìn)行模型構(gòu)建。通過產(chǎn)生大量可選模型并把其進(jìn)行組合,這樣得到的模型可以克服單個模型的局限性。2/3/202330隨機(jī)森林1.隨機(jī)森林作為組合模型的代表,它由大量的樹模型(回歸樹或分類樹)構(gòu)成。每個樹是完全生長的(沒有事后剪枝),在樹生長的每一步,最好的結(jié)點(diǎn)分割方法將從變量集合的一個隨機(jī)子集中選取?;貧w任務(wù)的預(yù)測采用組合中預(yù)測結(jié)果的平均值。2.以下代碼是包含三個版本的隨機(jī)森林模型的交叉驗(yàn)證,在組合中每個模型有不同數(shù)目的數(shù)。2/3/202331隨機(jī)森林的交叉驗(yàn)證library(randomForest)cv.rf<-function(form,train,test,...){ m<-randomForest(form,train,...) p<-predict(m,test) mse<-mean((p-resp(form,test))^2) c(nmse=mse/mean((mean(resp(form,train))-resp(form,test))^2))}res.all<-experimentalComparison(

DSs, c(variants('cv.lm'),

variants('cv.rpart',se=c(0,0.5,1)),

variants('cv.rf',ntree=c(200,500,700))), cvSettings(5,10,1234))2/3/202332模型應(yīng)用的結(jié)果1.采用下面的函數(shù)來證實(shí)組合方法的優(yōu)勢:

bestScores(res.all) 對于某些問題,隨機(jī)森林給出很好的結(jié)果。但像海藻7,結(jié)果還不能令人滿意。2.還不知道這些最佳模型和其它模型之間的區(qū)別是否顯著。即,采用別的隨機(jī)數(shù)據(jù)我們能得到相似結(jié)果的可能性有多大? 我們用Wilcoxon(威爾科克森)檢驗(yàn)來判斷顯著性。上述結(jié)果表明,對海藻1、2、4和6,模型"cv.rf.v3"最好,檢驗(yàn)代碼為:

compAnalysis(res.all,against='cv.rf.v3',

datasets=c('a1','a2','a4','a6'))2/3/202333顯著性分析1.結(jié)果中的“sig.X”列是我們需要的信息。沒有任何標(biāo)識符則意味著相應(yīng)的模型和"cv.rf.v3"模型之間有顯著差異的可能性低于95%。加號意味著相應(yīng)模型的平均性能估計(jì)指標(biāo)顯著高于模型"cv.rf.v3"。由于好的模型對應(yīng)較低的NMSE值,所以該模型的性能比模型"cv.rf.v3"差。減號的含義相反。2.從結(jié)果可知,不同版本之間的隨機(jī)森林模型的差異在統(tǒng)計(jì)上通常不顯著。與其他模型相比,在大部分情況下,隨機(jī)森林具有顯著的優(yōu)勢。3.參數(shù)against和datasets取不同的值,可對在其他海藻上有最優(yōu)性能的模型進(jìn)行類似分析。2/3/2023347預(yù)測海藻頻率 本案例的目的:預(yù)測140個水樣的7個海藻的頻率值。 我們已經(jīng)采用交叉驗(yàn)證的過程給出了最佳的預(yù)測模型,下面應(yīng)該應(yīng)用所有可得的訓(xùn)練數(shù)據(jù)來構(gòu)建模型,并將得到的模型應(yīng)用到測試數(shù)據(jù)集。為了避免回歸樹采用它自身的缺失值的處理方法,我們采用了k近鄰法填補(bǔ)數(shù)據(jù)框clean.algae的NA值。隨機(jī)森林本身沒有處理缺失值的方法,我們把數(shù)據(jù)框clean.algae作為它的訓(xùn)練集數(shù)據(jù)。1.為每種藻類選擇最優(yōu)的預(yù)測模型:

bestModelsNames<-sapply(bestScores(res.all),

function(x)x['nmse','system'])

learners<-c(rf='randomForest',rpart='rpartXse')

funcs<-learners[sapply(strsplit(bestModelsNames,'\\.'),

function(x)x[2])]2/3/202335parSetts<-lapply(bestModelsNames, function(x)getVariant(x,res.all)@pars)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論