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

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

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


介绍


数据包含有关葡萄牙“Vinho Verde”葡萄酒查看文末了解数据获取方式的信息。该数据集有1599个观测值和12个变量,分别是固定酸度、挥发性酸度、柠檬酸、残糖、氯化物、游离二氧化硫、总二氧化硫、密度、pH值、硫酸盐、酒精和质量。固定酸度、挥发性酸度、柠檬酸、残糖、氯化物、游离二氧化硫、总二氧化硫、密度、pH、硫酸盐和酒精是自变量并且是连续的。质量是因变量,根据 0 到 10 的分数来衡量。

相关视频

探索性分析


总共有 855 款葡萄酒被归类为“好”品质,744 款葡萄酒被归类为“差”品质。固定酸度、挥发性酸度、柠檬酸、氯化物、游离二氧化硫、总二氧化硫、密度、硫酸盐和酒精度与葡萄酒质量显着相关( t 检验的 P 值 < 0.05),这表明了重要的预测因子。我们还构建了密度图来探索 11 个连续变量在“差”和“好”葡萄酒质量上的分布。从图中可以看出,品质优良的葡萄酒在PH方面没有差异,而不同类型的葡萄酒在其他变量上存在差异,这与t检验结果一致。

na.oit() %>
muate(qal= ase_hen(ality>5 ~good", quaity <=5 ~ "poor")) %>%
muate(qua= s.fatrqual)) %>%
dpeme1 <- rsparentTme(trans = .4)
plot = "density", pch = "|",
auto.key = list(columns = 2))

图 1. 葡萄酒品质和预测特征之间的描述图。

表 1. 优质和劣质葡萄酒的基本特征。

# 在表1中创建一个我们想要的变量b1 <- CeatTableOe(vars  litars, straa = ’qual’ da winetab


点击标题查阅往期内容


R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图


01

02

03

04

模型


我们随机选择 70% 的观测值作为训练数据,其余的作为测试数据。所有 11 个预测变量都被纳入分析。我们使用线性方法、非线性方法、树方法和支持向量机来预测葡萄酒质量的分类。对于线性方法,我们训练(惩罚)逻辑回归模型和线性判别分析(LDA)。逻辑回归的假设包括相互独立的观察结果以及自变量和对数几率的线性关系。LDA 和 QDA 假设具有正态分布的特征,即预测变量对于“好”和“差”的葡萄酒质量都是正态分布的。对于非线性模型,我们进行了广义加性模型(GAM)、多元自适应回归样条(MARS)、KNN模型和二次判别分析(QDA)。对于树模型,我们进行了分类树和随机森林模型。还执行了具有线性和径向内核的 SVM。我们计算了模型选择的 ROC 和准确度,并调查了变量的重要性。10 折交叉验证 (CV) 用于所有模型。

inTrai <- cateatPariti(y  winequal, p = 0.7, lit =FASE)traiData <- wine\[inexTr, teDt <wi\[-idxTrain,\]

线性模型 多元逻辑回归显示,在 11 个预测因子中,挥发性酸度、柠檬酸、游离二氧化硫、总二氧化硫、硫酸盐和酒精与葡萄酒质量显着相关(P 值 < 0.05),解释了总方差的 25.1%。酒质。将该模型应用于测试数据时,准确度为 0.75(95%CI:0.71-0.79),ROC 为 0.818,表明数据拟合较好。在进行惩罚性逻辑回归时,我们发现最大化ROC时,最佳调优参数为alpha=1和lambda=0.00086,准确度为0.75(95%CI:0.71-0.79),ROC也为0.818。由于 lambda 接近于零且 ROC 与逻辑回归模型相同,因此惩罚相对较小,

但是,由于逻辑回归要求自变量之间存在很少或没有多重共线性,因此模型可能会受到 11 个预测变量之间的共线性(如果有的话)的干扰。至于LDA,将模型应用于测试数据时,ROC为0.819,准确率为0.762(95%CI:0.72-0.80)。预测葡萄酒品质的最重要变量是酒精度、挥发性酸度和硫酸盐。与逻辑回归模型相比,LDA 在满足正常假设的情况下,在样本量较小或类别分离良好的情况下更有帮助。

### 逻辑回归cl - tranControlmehod =cv" number  10,
summayFunio = TRUE)
set.seed(1)
moel.gl<- train(x = tainDaa %>% dpyr::selct(-ual),
y = trainDaa$qualmetod "glm",
metic = OC",
tContrl = crl# 检查预测因素的重要性summary(odel.m)

# 建立混淆矩阵
tetred.prb <- rdct(mod.gl, newdat = tstDat
tye = "robtest.ped <- rep("good", length(pred.prconfusionMatrix(data = as.factor(test.pred),

# 绘制测试ROC图oc.l <- roc(testaal,es.pr.robal, es.pr.robgod)

## 测试误差和训练误差er.st. <- mean(tett$qul!= tt.pred)tranped.obgl <-pric(moel.lmnewda= taiDaa,type = "robmoe.ln <-tai(xtraDa %>% dlyr:seec-qal),y = traDmethd = "met",tueGid = lGrid,mtc = "RO",trontrol  ctl)plotodel.gl, xTras =uction() lg(x)

#选择最佳参数mol.mn$bestune

# 混淆矩阵tes.red2 <- rp"good" ngth(test.ed.prob2$good))
tst.red2\[tespre.prob2$good < 0.5\] <- "poor
conuionMatridata = as.fcto(test.prd2),

非线性模型 在 GAM 模型中,只有挥发性酸度的自由度等于 1,表明线性关联,而对所有其他 10 个变量应用平滑样条。

结果表明,酒精、柠檬酸、残糖、硫酸盐、固定酸度、挥发性酸度、氯化物和总二氧化硫是显着的预测因子(P值<0.05)。

总的来说,这些变量解释了葡萄酒质量总变化的 39.1%。使用测试数据的混淆矩阵显示,GAM 的准确度为 0.76(95%CI:0.72-0.80),ROC 为 0.829。

MARS 模型表明,在最大化 ROC 时,我们在 11 个预测变量中包含了 5 个项,其中 nprune 等于 5,度数为 2。这些预测变量和铰链函数总共解释了总方差的 32.2%。根据 MARS 输出,三个最重要的预测因子是总二氧化硫、酒精和硫酸盐。

将 MARS 模型应用于测试数据时,准确度为 0.75(95%CI:0.72,0.80),ROC 为 0.823。我们还执行了 KNN 模型进行分类。当 k 等于 22 时,ROC 最大化。KNNmodel 的准确度为 0.63(95%CI:0.59-0.68),ROC 为 0.672。

QDA模型显示ROC为0.784,准确率为0.71(95%CI:0.66-0.75)。预测葡萄酒质量的最重要变量是酒精、挥发性酸度和硫酸盐。59-0.68),ROC 为 0.672。QDA模型显示ROC为0.784,准确率为0.71(95%CI:0.66-0.75)。

预测葡萄酒质量的最重要变量是酒精、挥发性酸度和硫酸盐。59-0.68),ROC 为 0.672。QDA模型显示ROC为0.784,准确率为0.71(95%CI:0.66-0.75)。预测葡萄酒质量的最重要变量是酒精、挥发性酸度和硫酸盐。

GAM 和 MARS 的优点是这两个模型都是非参数模型,并且能够处理高度复杂的非线性关系。具体来说,MARS 模型可以在模型中包含潜在的交互作用。然而,由于模型的复杂性、耗时的计算和高度的过拟合倾向是这两种模型的局限性。对于 KNN 模型,当 k 很大时,预测可能不准确。

### GAMse.see(1)
md.gam<- ran(x =trainDta %%dplr::slect(-qal),y = traiat$ual,thod = "am",metri = "RO",trCotrol = ctrl)
moel.gm$finlMdel

summary(mel.gam)

# 建立混淆矩阵test.pr.pob3 - prdict(mod.ga nwdata =tstData,
tye = "prb")
testped3 - rep"good" legt(test.predpob3$goo))
testprd3\[test.predprob3good < 0.5\] <- "poo
referetv = "good")

model.mars$finalModel

vpmodl.rs$inlodel)


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

相关文章
|
2月前
|
机器学习/深度学习 算法 前端开发
R语言基础机器学习模型:深入探索决策树与随机森林
【9月更文挑战第2天】决策树和随机森林作为R语言中基础且强大的机器学习模型,各有其独特的优势和适用范围。了解并熟练掌握这两种模型,对于数据科学家和机器学习爱好者来说,无疑是一个重要的里程碑。希望本文能够帮助您更好地理解这两种模型,并在实际项目中灵活应用。
|
3月前
|
机器学习/深度学习 数据采集
R语言逻辑回归、GAM、LDA、KNN、PCA主成分分类分析预测房价及交叉验证
上述介绍仅为简要概述,每个模型在实施时都需要仔细调整与优化。为了实现高度精确的预测,模型选择与调参是至关重要的步骤,并且交叉验证是提升模型稳健性的有效途径。在真实世界的房价预测问题中,可能还需要结合地域经济、市场趋势等宏观因素进行综合分析。
68 3
|
6月前
|
机器学习/深度学习 算法
R语言分类回归分析考研热现象分析与考研意愿价值变现
R语言分类回归分析考研热现象分析与考研意愿价值变现
|
6月前
|
数据可视化 数据挖掘 索引
R语言层次聚类、多维缩放MDS分类RNA测序(RNA-seq)乳腺发育基因数据可视化|附数据代码2
R语言层次聚类、多维缩放MDS分类RNA测序(RNA-seq)乳腺发育基因数据可视化|附数据代码
|
6月前
|
机器学习/深度学习 算法 数据库
数据分享|R语言用核Fisher判别方法、支持向量机、决策树与随机森林研究客户流失情况
数据分享|R语言用核Fisher判别方法、支持向量机、决策树与随机森林研究客户流失情况
|
6月前
|
存储 数据可视化 数据挖掘
R语言层次聚类、多维缩放MDS分类RNA测序(RNA-seq)乳腺发育基因数据可视化|附数据代码1
R语言层次聚类、多维缩放MDS分类RNA测序(RNA-seq)乳腺发育基因数据可视化|附数据代码
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
21天前
|
数据挖掘 C语言 C++
R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。
【10月更文挑战第21天】时间序列分析是一种重要的数据分析方法,广泛应用于经济学、金融学、气象学、生态学等领域。R语言是一种强大的统计分析工具,提供了丰富的函数和包用于时间序列分析。本文将介绍使用R语言进行时间序列分析的基本概念、方法和实例,帮助读者掌握R语言在时间序列分析中的应用。
40 3
|
6月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
6月前
|
机器学习/深度学习 数据可视化
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为2
R语言逻辑回归logistic模型ROC曲线可视化分析2例:麻醉剂用量影响、汽车购买行为