数据挖掘期末大作业附加题

数据挖掘期末大作业附加题

一、前提说明:
课程开始时间大概为:2020.10.10;结束时间大概为:2021.1.7;当课程进行到一半时,时间大概为:2020.11.24号;此时,还没有开始进行平时考试,没有计算数据,所以我打算使用四次平时考试的成绩和一次期末考试成绩来预测我们要求的期末成绩。数据集太少我们额外加上期末考试的数据,当做一次普通考试,并且将排名改为等级,由低到高分为四个等级,分别的A,B,C,D,他们的占比分别为:10%,20%,30%,40%。我建立的这个模型只能通过四次成绩预测一下,他们期末考试的等级。

二、结果分析:
1)首先读入数据,我选择的是周一上午的考试,四次平时考试和一次期末考试,在选取适合的列根据SID,进行合并,然后将数据输出为CSV,在CSV文件中将排名转换为对应等级。

2)对于研究预测因子间的相关性,corrplot 包中的corrplot函数提供了很直观的图形方法:(图不太清楚,其实没关系,下面我还要对数据进行处理)
在这里插入图片描述

3)数据分配与建模,我们将我们的数据集的70%的数据用来训练模型,剩余的30%用来检验模型预测的结果。数据的量纲实际上是不一样的,另外某些因子间存在高度的相关性,这对我们的建模是不利的,因此我们需要进行一些预处理,我们又需要用到preProcess 函数:我们首先将数值型因子进行了标准化,确保所有的因子在一个量纲上,接着对已经标准化的数据进行主成分分析,消除因子中的高相关性。这里我们不需要SID数据,要进行删除。
对应截图:
在这里插入图片描述

4)线性判别分析(LDA):
lda_Model <- train(model_Formula,
data=Train,
method=“lda”,
trControl=modelControl)
Test1 <- Test[,-1]
Test1 l d a P r e d i c t i o n < − p r e d i c t ( l d a M o d e l , T e s t 1 ) t a b l e ( T e s t ldaPrediction <- predict(lda_Model,Test1) table(Test ldaPrediction<predict(ldaModel,Test1)table(Test等级,Test1$ldaPrediction)
在这里插入图片描述

说明:主对角线上的数据的对的,也就是产生了1+1+2+4+5=13个错误,还是不错的。
5)随机森林
rf_Model <- train(model_Formula,
data=Train,
method=“rf”,
trControl=modelControl,
ntrees=500)
Test1 r f P r e d i c t i o n < − p r e d i c t ( r f M o d e l , T e s t 1 ) t a b l e ( T e s t rfPrediction <- predict(rf_Model,Test1) table(Test rfPrediction<predict(rfModel,Test1)table(Test等级,Test1$rfPrediction)
在这里插入图片描述

说明:主对角线上的数据的对的,也就是产生了1+1+1+2+7+6=18个错误,还是不错的。

6)对两种模型进行对比:
model_Comparison <-
resamples(list(
LinearDiscrimant=lda_Model,
RandomForest=rf_Model
))
summary(model_Comparison)
bwplot(model_Comparison,layout=c(2,1))
在这里插入图片描述

从图上看“线性判别分析(LDA)”比较好,我们可以将“线性判别分析(LDA)”的结果作为我们最终使用的模型

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木得感情的野指针

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值