数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC(下)

简介: 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC

数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC(上):https://developer.aliyun.com/article/1491709


# 绘制测试ROC图
ocmas <- roctestataqua, tes.pred.rob4god)
## Stting level: conrol = god, case= poor
## Settig diectio: cntrols> caseplot(ro.mars legac.axes = TRE, prin.auc= RUE)
plot(soothroc.mars), co = 4, ad =TRUE)

errr.tria.mas <-man(tainat$qul ! trai.red.ars)### KNNGrid < epa.gri(k seq(from = 1, to = 40, by = 1))
seted(1fknnrainqual ~.,
dta = trnData,
mthd ="knn"metrrid = kid)
ggplot(fitkn

# 建立混淆矩阵ts.re.po7 < prdi(ft.kn, ewdt = estDaatype = "prb"

### QDAseteed1)%>% pyr:c-ual),y= trataq
ethod "d"mric = "OC",tContol =ctl)# 建立混淆矩阵tet.pprob <-pedct(mol.da,nedaa = teDta,te = "pb")
testred6<- rep(o", leng(est.ped.pob6$goo))

树方法


基于分类树,最大化AUC时最终的树大小为41。测试错误率为 0.24,ROC 为 0.809。此分类树的准确度为 0.76(95%CI:0.72-0.80)。我们还进行了随机森林方法来研究变量的重要性。因此,酒精是最重要的变量,其次是硫酸盐、挥发性酸度、总二氧化硫、密度、氯化物、固定酸度、柠檬酸、游离二氧化硫和残糖。pH 是最不重要的变量。对于随机森林模型,测试错误率为 0.163,准确率为 0.84(95%CI:0.80-0.87),ROC 为 0.900。树方法的一个潜在限制是它们对数据的变化很敏感,即数据的微小变化可能引起分类树的较大变化。

# 分类ctr <- tintol(meod ="cv", number = 10,smmryFuton= twoClassSma
et.se(1rart_grid = a.fra(cp = exp(eq(10,-, len =0)))clsste = traqua~., rainDta,metho ="rprt
tueGrid = patid,
trCtrl  cr)
ggt(class.tee,highight =TRE)

## 计算测试误差rpartpred = icla.te edta =testata, ye = "aw)
te.ero.sree = mean(testa$a !=rartpre)
rprred_trin  reic(ss.tre,newdta = raiata, tye  "raw")
# 建立混淆矩阵
teste.pob8 <-rdic(cste, edata =tstData,pe = "po"
tet.pd8 - rpgod" legthtetred.rb8d))

# 绘制测试ROC图
ro.r <-oc(testaual, tstedrob$od)pot(rc.ctreegy.axes  TU pit.a = TRE)plo(ooth(c.tre, col= 4, ad = TRE

# 随机森林和变量重要性
ctl <traontr(mthod= "cv, numbr = 10,clasPos = RUEoClssSummry)
rf.grid - xpa.gr(mt = 1:10,
spltrule "gini"min.nd.sie =seq(from = 1,to  12, by = 2))se.sed(1)
rf.fit <- inqual
mthd= "ranger",
meric = "ROC",
 = ctrl
gglt(rf.it,hiliht  TRE)

scle.ermutatin.iportace  TRU)barplt(sort(rangr::imoranc(random

支持向量机


我们使用带有线性核的 SVM,并调整了成本函数。我们发现具有最大化 ROChad 成本的模型 = 0.59078。该模型的 ROC 为 0.816,准确度为 0.75(测试误差为 0.25)(95%CI:0.71-0.79)。质量预测最重要的变量是酒精;挥发性酸度和总二氧化硫也是比较重要的变量。如果真实边界是非线性的,则具有径向核的 SVM 性能更好。

st.seed(svl.fi <- tain(qual~ . ,data = trainDatamehod= "mLar2",tueGri = data.frae(cos = ep(seq(-25,ln = 0))

## 带径向核的SVMsvmr.grid  epand.gid(C = epseq(1,4,le=10)),
iga = expsq(8,len=10)))
svmr.it<- tan(qual ~ .,
da = taiDataRialSigma",
preProcess= c("cer" "scale"),
tunnrol = c)

模型比较

模型建立后,我们根据所有模型的训练和测试性能进行模型比较。下表显示了所有模型的交叉验证分类错误率和 ROC。结果中,随机森林模型的 AUC 值最大,而 KNN 最小。因此,我们选择随机森林模型作为我们数据的最佳预测分类模型。基于随机森林模型,酒精、硫酸盐、挥发性酸度、总二氧化硫和密度是帮助我们预测葡萄酒质量分类的前 5 个重要预测因子。由于酒精、硫酸盐和挥发性酸度等因素可能决定葡萄酒的风味和口感,所以这样的发现符合我们的预期。在查看每个模型的总结时,我们意识到KNN模型的AUC值最低,测试分类错误率最大,为0.367。其他九个模型的 AUC 值接近,约为 82%。

rsam = rsmes(list(summary(resamp)

comrin = sumaryes)$satitics$ROr_quare  smary(rsamp)saisis$sqrekntr::ableomris\[,1:6\])

bpot(remp meic = "ROC")

f<- datafram(dl\_Name, TainError,Test\_Eror, Tes_RC)


knir::abe(df)

结论


模型构建过程表明,在训练数据集中,酒精、硫酸盐、挥发性酸度、总二氧化硫和密度是葡萄酒质量分类的前 5 个重要预测因子。我们选择了随机森林模型,因为它的 AUC 值最大,分类错误率最低。该模型在测试数据集中也表现良好。因此,这种随机森林模型是葡萄酒品质分类的有效方法。

相关文章
|
2月前
|
机器学习/深度学习 存储 算法
用kNN算法诊断乳腺癌--基于R语言
用kNN算法诊断乳腺癌--基于R语言
|
2月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
2月前
|
数据可视化 算法
【R语言实战】——kNN和朴素贝叶斯方法实战
【R语言实战】——kNN和朴素贝叶斯方法实战
|
2月前
|
机器学习/深度学习 数据可视化 算法
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为1
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为
|
2月前
|
机器学习/深度学习 数据采集 算法
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分析分类预测房价及交叉验证|数据分享
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分析分类预测房价及交叉验证|数据分享
|
2月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
2月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
2月前
利用R语言进行典型相关分析实战
利用R语言进行典型相关分析实战
|
2月前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
2月前
|
机器学习/深度学习 算法
R语言分类回归分析考研热现象分析与考研意愿价值变现
R语言分类回归分析考研热现象分析与考研意愿价值变现

相关实验场景

更多