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

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

R語言懲罰邏輯回歸、線性判別分析LDA、廣義加性模型GAM、多元自適應(yīng)回歸樣條MARS、KN

2022-07-16 17:41 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=27384?

原文出處:拓端數(shù)據(jù)部落公眾號(hào)

?

介紹

數(shù)據(jù)包含有關(guān)葡萄牙“Vinho Verde”葡萄酒的信息。該數(shù)據(jù)集有1599個(gè)觀測(cè)值和12個(gè)變量,分別是固定酸度、揮發(fā)性酸度、檸檬酸、殘?zhí)?、氯化物、游離二氧化硫、總二氧化硫、密度、pH值、硫酸鹽、酒精和質(zhì)量。固定酸度、揮發(fā)性酸度、檸檬酸、殘?zhí)?、氯化物、游離二氧化硫、總二氧化硫、密度、pH、硫酸鹽和酒精是自變量并且是連續(xù)的。質(zhì)量是因變量,根據(jù) 0 到 10 的分?jǐn)?shù)來衡量。

探索性分析

總共有 855 款葡萄酒被歸類為“好”品質(zhì),744 款葡萄酒被歸類為“差”品質(zhì)。固定酸度、揮發(fā)性酸度、檸檬酸、氯化物、游離二氧化硫、總二氧化硫、密度、硫酸鹽和酒精度與葡萄酒質(zhì)量顯著相關(guān)( t 檢驗(yàn)的 P 值 < 0.05),這表明了重要的預(yù)測(cè)因子。我們還構(gòu)建了密度圖來探索 11 個(gè)連續(xù)變量在“差”和“好”葡萄酒質(zhì)量上的分布。從圖中可以看出,品質(zhì)優(yōu)良的葡萄酒在PH方面沒有差異,而不同類型的葡萄酒在其他變量上存在差異,這與t檢驗(yàn)結(jié)果一致。


  1. na.oit() %>

  2. muate(qal= ase_hen(ality>5 ~good", quaity <=5 ~ "poor")) %>%

  3. muate(qua= s.fatrqual)) %>%

  4. dpeme1 <- rsparentTme(trans = .4)

  5. plot = "density", pch = "|",

  6. auto.key = list(columns = 2))

圖 1. 葡萄酒品質(zhì)和預(yù)測(cè)特征之間的描述圖。
表 1. 優(yōu)質(zhì)和劣質(zhì)葡萄酒的基本特征。

  1. # 在表1中創(chuàng)建一個(gè)我們想要的變量

  2. b1 <- CeatTableOe(vars ?litars, straa = ’qual’ da wine

  3. tab

?

模型

我們隨機(jī)選擇 70% 的觀測(cè)值作為訓(xùn)練數(shù)據(jù),其余的作為測(cè)試數(shù)據(jù)。所有 11 個(gè)預(yù)測(cè)變量都被納入分析。我們使用線性方法、非線性方法、樹方法和支持向量機(jī)來預(yù)測(cè)葡萄酒質(zhì)量的分類。對(duì)于線性方法,我們訓(xùn)練(懲罰)邏輯回歸模型和線性判別分析(LDA)。邏輯回歸的假設(shè)包括相互獨(dú)立的觀察結(jié)果以及自變量和對(duì)數(shù)幾率的線性關(guān)系。LDA 和 QDA 假設(shè)具有正態(tài)分布的特征,即預(yù)測(cè)變量對(duì)于“好”和“差”的葡萄酒質(zhì)量都是正態(tài)分布的。對(duì)于非線性模型,我們進(jìn)行了廣義加性模型(GAM)、多元自適應(yīng)回歸樣條(MARS)、KNN模型和二次判別分析(QDA)。對(duì)于樹模型,我們進(jìn)行了分類樹和隨機(jī)森林模型。還執(zhí)行了具有線性和徑向內(nèi)核的 SVM。我們計(jì)算了模型選擇的 ROC 和準(zhǔn)確度,并調(diào)查了變量的重要性。10 折交叉驗(yàn)證 (CV) 用于所有模型。?


  1. inTrai <- cateatPariti(y ?winequal, p = 0.7, lit =FASE)

  2. traiData <- wine[inexTr,

  3. teDt <wi[-idxTrain,]

線性模型 多元邏輯回歸顯示,在 11 個(gè)預(yù)測(cè)因子中,揮發(fā)性酸度、檸檬酸、游離二氧化硫、總二氧化硫、硫酸鹽和酒精與葡萄酒質(zhì)量顯著相關(guān)(P 值 < 0.05),解釋了總方差的 25.1%。酒質(zhì)。將該模型應(yīng)用于測(cè)試數(shù)據(jù)時(shí),準(zhǔn)確度為 0.75(95%CI:0.71-0.79),ROC 為 0.818,表明數(shù)據(jù)擬合較好。在進(jìn)行懲罰性邏輯回歸時(shí),我們發(fā)現(xiàn)最大化ROC時(shí),最佳調(diào)優(yōu)參數(shù)為alpha=1和lambda=0.00086,準(zhǔn)確度為0.75(95%CI:0.71-0.79),ROC也為0.818。由于 lambda 接近于零且 ROC 與邏輯回歸模型相同,因此懲罰相對(duì)較小,

但是,由于邏輯回歸要求自變量之間存在很少或沒有多重共線性,因此模型可能會(huì)受到 11 個(gè)預(yù)測(cè)變量之間的共線性(如果有的話)的干擾。至于LDA,將模型應(yīng)用于測(cè)試數(shù)據(jù)時(shí),ROC為0.819,準(zhǔn)確率為0.762(95%CI:0.72-0.80)。預(yù)測(cè)葡萄酒品質(zhì)的最重要變量是酒精度、揮發(fā)性酸度和硫酸鹽。與邏輯回歸模型相比,LDA 在滿足正常假設(shè)的情況下,在樣本量較小或類別分離良好的情況下更有幫助。

  1. ### 邏輯回歸

  2. cl - tranControlmehod =cv" number ?10,

  3. summayFunio = TRUE)

  4. set.seed(1)

  5. moel.gl<- train(x = tainDaa %>% dpyr::selct(-ual),

  6. y = trainDaa$qual

  7. metod "glm",

  8. metic = OC",

  9. tContrl = crl

  10. # 檢查預(yù)測(cè)因素的重要性

  11. summary(odel.m)

  1. # 建立混淆矩陣

  2. tetred.prb <- rdct(mod.gl, newdat = tstDat

  3. tye = "rob

  4. test.ped <- rep("good", length(pred.pr

  5. confusionMatrix(data = as.factor(test.pred),

?

  1. # 繪制測(cè)試ROC圖

  2. oc.l <- roc(testa$al, es.pr.rob$god)

  1. ## 測(cè)試誤差和訓(xùn)練誤差

  2. er.st. <- mean(tett$qul!= tt.pred)

  3. tranped.obgl <-pric(moel.lmnewda= taiDaa,

  4. type = "rob

  5. moe.ln <-tai(xtraDa %>% dlyr:seec-qal),

  6. y = traD

  7. methd = "met",

  8. tueGid = lGrid,

  9. mtc = "RO",

  10. trontrol ?ctl)

  11. plotodel.gl, xTras =uction() lg(x)

  1. #選擇最佳參數(shù)

  2. mol.mn$bestune

?

  1. # 混淆矩陣


  2. tes.red2 <- rp"good" ngth(test.ed.prob2$good))

  3. tst.red2[tespre.prob2$good < 0.5] <- "poor

  4. conuionMatridata = as.fcto(test.prd2),

?




?

非線性模型 在 GAM 模型中,只有揮發(fā)性酸度的自由度等于 1,表明線性關(guān)聯(lián),而對(duì)所有其他 10 個(gè)變量應(yīng)用平滑樣條。

結(jié)果表明,酒精、檸檬酸、殘?zhí)恰⒘蛩猁}、固定酸度、揮發(fā)性酸度、氯化物和總二氧化硫是顯著的預(yù)測(cè)因子(P值<0.05)。

總的來說,這些變量解釋了葡萄酒質(zhì)量總變化的 39.1%。使用測(cè)試數(shù)據(jù)的混淆矩陣顯示,GAM 的準(zhǔn)確度為 0.76(95%CI:0.72-0.80),ROC 為 0.829。

MARS 模型表明,在最大化 ROC 時(shí),我們?cè)?11 個(gè)預(yù)測(cè)變量中包含了 5 個(gè)項(xiàng),其中 nprune 等于 5,度數(shù)為 2。這些預(yù)測(cè)變量和鉸鏈函數(shù)總共解釋了總方差的 32.2%。根據(jù) MARS 輸出,三個(gè)最重要的預(yù)測(cè)因子是總二氧化硫、酒精和硫酸鹽。

將 MARS 模型應(yīng)用于測(cè)試數(shù)據(jù)時(shí),準(zhǔn)確度為 0.75(95%CI:0.72,0.80),ROC 為 0.823。我們還執(zhí)行了 KNN 模型進(jìn)行分類。當(dāng) k 等于 22 時(shí),ROC 最大化。KNNmodel 的準(zhǔn)確度為 0.63(95%CI:0.59-0.68),ROC 為 0.672。

QDA模型顯示ROC為0.784,準(zhǔn)確率為0.71(95%CI:0.66-0.75)。預(yù)測(cè)葡萄酒質(zhì)量的最重要變量是酒精、揮發(fā)性酸度和硫酸鹽。59-0.68),ROC 為 0.672。QDA模型顯示ROC為0.784,準(zhǔn)確率為0.71(95%CI:0.66-0.75)。

預(yù)測(cè)葡萄酒質(zhì)量的最重要變量是酒精、揮發(fā)性酸度和硫酸鹽。59-0.68),ROC 為 0.672。QDA模型顯示ROC為0.784,準(zhǔn)確率為0.71(95%CI:0.66-0.75)。預(yù)測(cè)葡萄酒質(zhì)量的最重要變量是酒精、揮發(fā)性酸度和硫酸鹽。

GAM 和 MARS 的優(yōu)點(diǎn)是這兩個(gè)模型都是非參數(shù)模型,并且能夠處理高度復(fù)雜的非線性關(guān)系。具體來說,MARS 模型可以在模型中包含潛在的交互作用。然而,由于模型的復(fù)雜性、耗時(shí)的計(jì)算和高度的過擬合傾向是這兩種模型的局限性。對(duì)于 KNN 模型,當(dāng) k 很大時(shí),預(yù)測(cè)可能不準(zhǔn)確。

  1. ### GAM

  2. se.see(1)

  3. md.gam<- ran(x =trainDta %%dplr::slect(-qal),

  4. y = traiat$ual,

  5. thod = "am",

  6. metri = "RO",

  7. trCotrol = ctrl)

  8. moel.gm$finlMdel

summary(mel.gam)

  1. # 建立混淆矩陣

  2. test.pr.pob3 - prdict(mod.ga nwdata =tstData,

  3. tye = "prb")

  4. testped3 - rep"good" legt(test.predpob3$goo))

  5. testprd3[test.predprob3good < 0.5] <- "poo

  6. referetv = "good")



?

model.mars$finalModel

vpmodl.rs$inlodel)

?



  1. # 繪制測(cè)試ROC圖

  2. ocmas <- roctestataqua, tes.pred.rob4god)

  3. ## Stting level: conrol = god, case= poor

  4. ## Settig diectio: cntrols> case

  5. plot(ro.mars legac.axes = TRE, prin.auc= RUE)

  6. plot(soothroc.mars), co = 4, ad =TRUE)

?


  1. errr.tria.mas <-man(tainat$qul ! trai.red.ars)

  2. ### KNN

  3. Grid < epa.gri(k seq(from = 1, to = 40, by = 1))

  4. seted(1

  5. fknnrainqual ~.,

  6. dta = trnData,

  7. mthd ="knn"

  8. metrrid = kid)

  9. ggplot(fitkn

?

  1. # 建立混淆矩陣

  2. ts.re.po7 < prdi(ft.kn, ewdt = estDaa

  3. type = "prb"

?


  1. ### QDA

  2. seteed1)%>% pyr:c-ual),

  3. y= trataq

  4. ethod "d"

  5. mric = "OC",

  6. tContol =ctl)

  7. # 建立混淆矩陣

  8. tet.pprob <-pedct(mol.da,nedaa = teDta,

  9. te = "pb")

  10. testred6<- rep(o", leng(est.ped.pob6$goo))


?

?

?

樹方法


基于分類樹,最大化AUC時(shí)最終的樹大小為41。測(cè)試錯(cuò)誤率為 0.24,ROC 為 0.809。此分類樹的準(zhǔn)確度為 0.76(95%CI:0.72-0.80)。我們還進(jìn)行了隨機(jī)森林方法來研究變量的重要性。因此,酒精是最重要的變量,其次是硫酸鹽、揮發(fā)性酸度、總二氧化硫、密度、氯化物、固定酸度、檸檬酸、游離二氧化硫和殘?zhí)恰H 是最不重要的變量。對(duì)于隨機(jī)森林模型,測(cè)試錯(cuò)誤率為 0.163,準(zhǔn)確率為 0.84(95%CI:0.80-0.87),ROC 為 0.900。樹方法的一個(gè)潛在限制是它們對(duì)數(shù)據(jù)的變化很敏感,即數(shù)據(jù)的微小變化可能引起分類樹的較大變化。

  1. # 分類

  2. ctr <- tintol(meod ="cv", number = 10,

  3. smmryFuton= twoClassSma

  4. et.se(1

  5. rart_grid = a.fra(cp = exp(eq(10,-, len =0)))

  6. clsste = traqua~., rainDta,

  7. metho ="rprt

  8. tueGrid = patid,

  9. trCtrl ?cr)

  10. ggt(class.tee,highight =TRE)


  1. ## 計(jì)算測(cè)試誤差

  2. rpartpred = icla.te edta =testata, ye = "aw)

  3. te.ero.sree = mean(testa$a !=rartpre)

  4. rprred_trin ?reic(ss.tre,newdta = raiata, tye ?"raw")

  5. # 建立混淆矩陣

  6. teste.pob8 <-rdic(cste, edata =tstData,pe = "po"

  7. tet.pd8 - rpgod" legthtetred.rb8d))


?

  1. # 繪制測(cè)試ROC圖

  2. ro.r <-oc(testaual, tstedrob$od)

  3. pot(rc.ctreegy.axes ?TU pit.a = TRE)

  4. plo(ooth(c.tre, col= 4, ad = TRE

?

  1. # 隨機(jī)森林和變量重要性

  2. ctl <traontr(mthod= "cv, numbr = 10,

  3. clasPos = RUEoClssSummry)

  4. rf.grid - xpa.gr(mt = 1:10,

  5. spltrule "gini"

  6. min.nd.sie =seq(from = 1,to ?12, by = 2))

  7. se.sed(1)

  8. rf.fit <- inqual

  9. mthd= "ranger",

  10. meric = "ROC",

  11. = ctrl

  12. gglt(rf.it,hiliht ?TRE)


  1. scle.ermutatin.iportace ?TRU)

  2. barplt(sort(rangr::imoranc(random

?

?



支持向量機(jī)

我們使用帶有線性核的?SVM,并調(diào)整了成本函數(shù)。我們發(fā)現(xiàn)具有最大化 ROChad 成本的模型 = 0.59078。該模型的 ROC 為 0.816,準(zhǔn)確度為 0.75(測(cè)試誤差為 0.25)(95%CI:0.71-0.79)。質(zhì)量預(yù)測(cè)最重要的變量是酒精;揮發(fā)性酸度和總二氧化硫也是比較重要的變量。如果真實(shí)邊界是非線性的,則具有徑向核的 SVM 性能更好。

  1. st.seed(

  2. svl.fi <- tain(qual~ . ,

  3. data = trainData

  4. mehod= "mLar2",

  5. tueGri = data.frae(cos = ep(seq(-25,ln = 0))

?

?


?

?

  1. ## 帶徑向核的SVM

  2. svmr.grid ?epand.gid(C = epseq(1,4,le=10)),

  3. iga = expsq(8,len=10)))

  4. svmr.it<- tan(qual ~ .,

  5. da = taiDataRialSigma",

  6. preProcess= c("cer" "scale"),

  7. tunnrol = c)

?

?

?

模型比較
?

模型建立后,我們根據(jù)所有模型的訓(xùn)練和測(cè)試性能進(jìn)行模型比較。下表顯示了所有模型的交叉驗(yàn)證分類錯(cuò)誤率和 ROC。結(jié)果中,隨機(jī)森林模型的 AUC 值最大,而 KNN 最小。因此,我們選擇隨機(jī)森林模型作為我們數(shù)據(jù)的最佳預(yù)測(cè)分類模型?;陔S機(jī)森林模型,酒精、硫酸鹽、揮發(fā)性酸度、總二氧化硫和密度是幫助我們預(yù)測(cè)葡萄酒質(zhì)量分類的前 5 個(gè)重要預(yù)測(cè)因子。由于酒精、硫酸鹽和揮發(fā)性酸度等因素可能決定葡萄酒的風(fēng)味和口感,所以這樣的發(fā)現(xiàn)符合我們的預(yù)期。在查看每個(gè)模型的總結(jié)時(shí),我們意識(shí)到KNN模型的AUC值最低,測(cè)試分類錯(cuò)誤率最大,為0.367。其他九個(gè)模型的 AUC 值接近,約為 82%。

  1. rsam = rsmes(list(


  2. summary(resamp)



  1. comrin = sumaryes)$satitics$RO

  2. r_quare ?smary(rsamp)saisis$sqre

  3. kntr::ableomris[,1:6])

?

bpot(remp meic = "ROC")

?

  1. f<- datafram(dl_Name, TainError,Test_Eror, Tes_RC)

  2. knir::abe(df)

結(jié)論

模型構(gòu)建過程表明,在訓(xùn)練數(shù)據(jù)集中,酒精、硫酸鹽、揮發(fā)性酸度、總二氧化硫和密度是葡萄酒質(zhì)量分類的前 5 個(gè)重要預(yù)測(cè)因子。我們選擇了隨機(jī)森林模型,因?yàn)樗?AUC 值最大,分類錯(cuò)誤率最低。該模型在測(cè)試數(shù)據(jù)集中也表現(xiàn)良好。因此,這種隨機(jī)森林模型是葡萄酒品質(zhì)分類的有效方法。?

最受歡迎的見解

1.R語言多元Logistic邏輯回歸 應(yīng)用案例

2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實(shí)現(xiàn)

3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)

4.R語言泊松Poisson回歸模型分析案例

5.R語言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗(yàn)

6.r語言中對(duì)LASSO回歸,Ridge嶺回歸和Elastic Net模型實(shí)現(xiàn)

7.在R語言中實(shí)現(xiàn)Logistic邏輯回歸

8.python用線性回歸預(yù)測(cè)股票價(jià)格

9.R語言如何在生存分析與Cox回歸中計(jì)算IDI,NRI指標(biāo)


R語言懲罰邏輯回歸、線性判別分析LDA、廣義加性模型GAM、多元自適應(yīng)回歸樣條MARS、KN的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
信阳市| 大同县| 景德镇市| 乐陵市| 白水县| 新郑市| 察哈| 慈溪市| 巴林右旗| 莆田市| 东光县| 澳门| 海丰县| 崇明县| 高尔夫| 兰州市| 普洱| 门头沟区| 凤冈县| 宝山区| 三原县| 加查县| 年辖:市辖区| 舒兰市| 如皋市| 高尔夫| 阿城市| 那曲县| 会宁县| 文山县| 来安县| 灌云县| 金寨县| 宝应县| 林周县| 宜兴市| 洮南市| 兴海县| 天门市| 普兰店市| 建始县|