赞
踩
航班延误是航空公司、旅客和机场管理方面都面临的一个重要问题。航班延误不仅会给旅客带来不便,还会对航空公司和机场的运营产生负面影响(点击文末“阅读原文”获取完整代码数据)。
相关视频
因此,对航班延误的影响因素进行预测分析,对于航空公司、旅客和机场管理方面都具有重要意义。
本文通过对航班数据进行分析,帮助客户使用lasso变量筛选、决策树、朴素贝叶斯、QDA、LDA等方法,对航班延误的影响因素进行预测分析。同时,本文还对缺失值进行处理,并使用k折交叉验证对模型进行评估。
本文所使用的数据集为航班数据集。数据集中包括了航班号、起飞时间、到达时间、起飞机场、到达机场、航班延误等信息。
- data=read.table("12_months_dataFinal.csv")
-
- head(data)
colnames(data)
1.航空公司:航空公司,尾号和航班号。
2.时间:季度、月和日。
3.操作:承运人,尾号和航班号。
4.地理:起源机场和目的地机场。
点击标题查阅往期内容
PYTHON链家租房数据分析:岭回归、LASSO、随机森林、XGBOOST、KERAS神经网络、KMEANS聚类、地理可视化
左右滑动查看更多
01
02
03
04
分别采用三种方法对空值进行处理
在进行数据分析之前,需要对数据进行预处理。本文采用了如下方法进行数据预处理:
data1=na.omit(data)
data2[index,i]=mean(na.omit(data[,i]))
completedData <- complete(tempData,1)
使用lasso算法进行筛选变量是指在统计学和机器学习中,使用一种叫做Lasso(Least Absolute Shrinkage and Selection Operator)的算法来进行特征选择的过程。Lasso算法通过对数据进行正则化,将某些特征的系数缩小至0,从而实现对特征的筛选和降维。这样可以避免过拟合和提高模型的泛化能力,同时还可以提高模型的解释性和可解释性。Lasso算法在数据挖掘、生物信息学、金融、图像处理等领域都有广泛的应用。
xmat <- model.matrix( ARR\_DELAY\~. -DEP\_DELAY- DEP\_DEL15-ARR\_DEL15 , dat
cv.lasso <- cv.glmn
点击标题查阅往期内容
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
左右滑动查看更多
01
02
03
04
coef(cv.lasso
Lasso(Least Absolute Shrinkage and Selection Operator)是一种用于特征选择和回归分析的统计方法。它可以通过对输入数据进行正则化来减少模型的复杂度,并且可以将一些不重要的特征的权重缩小甚至归零,从而达到特征筛选的目的。
在Lasso中,通过调整正则化参数λ的大小,可以控制模型的复杂度和特征选择的程度。当λ越大时,模型的复杂度越小,特征选择的程度越高。因此,可以通过交叉验证等方法来选择最优的λ值,进而筛选出最优的变量。
简而言之,通过Lasso方法筛选出最优的变量,就是在控制模型复杂度的前提下,选出对目标变量影响最大的特征,从而提高模型的预测能力。
variables<-row\.names(c)\[inds]
data2=data2[,c(variables[-1],"ARR_DELAY")]
使用决策树填充缺失值是指在数据集中存在缺失值的情况下,使用决策树模型来预测缺失值并进行填充。具体地,可以将数据集中的所有特征和标签都作为输入,将含有缺失值的样本作为测试数据,利用已有的数据来训练决策树模型,然后使用训练好的模型来预测缺失值并进行填充。这种方法可以利用数据集中已有的信息来预测缺失值,从而提高数据的完整性和可用性。
m <- rpart(ARR_DELAY~ QUARTER+MONTH+DAY_OF_MONTH+DAY_OF_WEEK+UNIQUE_CA
m$variable.importance
predict(m, data[notna
朴素贝叶斯是一种基于贝叶斯定理的分类算法。它假设所有特征之间相互独立,即朴素贝叶斯算法中的“朴素”指的是这种独立性假设。该算法通过计算每个类别的先验概率和每个特征在每个类别中的条件概率来预测新数据的分类。朴素贝叶斯算法在文本分类、垃圾邮件过滤、情感分析等领域得到了广泛应用。
mod1<-naiveBayes ( class~ ARR_DELAY_GROUP+DEP_DELAY_NEW+DEP_DELAY_GROU
混淆矩阵
混淆矩阵是用于评估分类模型性能的一种方法。它是一个二维矩阵,其中行表示真实类别,列表示预测类别。矩阵中的每个元素表示属于真实类别的样本被预测为属于预测类别的数量。混淆矩阵可以用于计算准确率、召回率、F1分数等指标,以评估分类模型的性能。
table(data2[1:50000,"class"], fit)
plot( performance( prediction(as.numeric(fit), as.numeric(data2[1:50000,
s"] )), "auc" )@y.values[[1]]
- fit <-predict(mod1,datates )
- plot( performance( prediction(as.numeric(fit), as.numeric(datatest[1:90,
k折交叉验证是一种常用的模型评估方法。它将数据集分成k个等份,然后每次将其中一个子集作为验证集,剩下的k-1个子集作为训练集,进行k次模型训练和验证。最终将k次验证的结果取平均值作为模型的性能指标。这种方法可以有效地利用数据集,减小因为数据集不同而导致的模型性能差异,并且可以避免过拟合。
- performance( prediction(as.numeric(fit), as.numeric(datatest[1:90,"clas
- k=10
- for(kk in 1:k){
- index=sample(1:dim(data2)[1],floor(dim(data2)[1]*(1/k)),replace=F)#se
QDA是一种分类算法,全称为Quadratic Discriminant Analysis,即二次判别分析。它是一种基于贝叶斯定理的分类方法,适用于分类问题中的多个类别和多个特征。QDA假设每个类别的特征分布都是高斯分布,并且每个类别的协方差矩阵不同,因此可以通过计算每个类别的概率来进行分类。与线性判别分析(LDA)相比,QDA可以更好地处理非线性的分类问题,但是由于需要估计每个类别的协方差矩阵,当特征维度很高时,计算复杂度会很高。
z <- qda(data2[,c(selection2
- ##ROC
-
- plot( performance( prediction(as.numeric(fit), as.n
performance( prediction(as.numeric(fit), as.numeric(data2[ ,"class"]
k折交叉验证
- ## 1 th accuracy of qda is 0.8807619
- ## 2 th accuracy of qda is 0.8872381
- ## 3 th accuracy of qda is 0.8798095
- ## 4 th accuracy of qda is 0.8899048
- ## 5 th accuracy of qda is 0.888
- ## 6 th accuracy of qda is 0.8822857
- ## 7 th accuracy of qda is 0.8746667
- ## 8 th accuracy of qda is 0.8912381
- ## 9 th accuracy of qda is 0.8857143
- ## 10 th accuracy of qda is 0.8965714
-
- precisek/k#caculate precision
-
- ## [1] 0.885619
线性判别分析是一种很重要的分类算法,同时也是一种降维方法。和PCA一样,LDA也是通过投影的方式达到去除数据之间冗余的一种算法。
z <- lda(class ~ ., data2
ROC代表接收者操作特征曲线(Receiver Operating Characteristic Curve),是一种用于评估分类模型性能的方法。ROC曲线是一条以假阳性率(False Positive Rate)为横坐标,真阳性率(True Positive Rate)为纵坐标的曲线。ROC曲线越靠近左上角,说明模型的性能越好。ROC曲线下方的面积被称为AUC(Area Under the Curve),AUC越大,模型的性能越好。
performance( prediction(as.numeric(fit), as.numeric(data2[ ,"class"])),
k折交叉验证
- ## 1 th accuracy of lda is 0.831619
- ## 2 th accuracy of lda is 0.8251429
- ## 3 th accuracy of lda is 0.8213333
- ## 4 th accuracy of lda is 0.8219048
- ## 5 th accuracy of lda is 0.8209524
- ## 6 th accuracy of lda is 0.8184762
- ## 7 th accuracy of lda is 0.8226667
- ## 8 th accuracy of lda is 0.8171429
- ## 9 th accuracy of lda is 0.816381
- ## 10 th accuracy of lda is 0.8251429
-
- precisek/k#caculate precision
-
- ## [1] 0.8220762
决策树是一种基于树形结构的分类和回归算法,它通过对数据集进行分割,逐步生成一棵决策树,每个节点代表一个决策,每个分支代表一个可能的结果,最终叶子节点代表分类或回归的结果。在分类问题中,决策树可以通过一系列的条件判断对数据进行分类;在回归问题中,决策树可以通过对数据进行分割并对每个分割区域内的数据进行平均或加权平均来预测数值型的结果。决策树具有易于理解、易于实现、可解释性强等优点,但也容易出现过拟合等问题。
z <- rpart(class ~ ., data2[,c(selection2,"class")] )
plot( performance( prediction(as.num
- ## 1 th accuracy of lda is 1
- ## 2 th accuracy of lda is 1
- ## 3 th accuracy of lda is 1
- ## 4 th accuracy of lda is 1
- ## 5 th accuracy of lda is 1
- ## 6 th accuracy of lda is 1
- ## 7 th accuracy of lda is 1
- ## 8 th accuracy of lda is 1
- ## 9 th accuracy of lda is 1
- ## 10 th accuracy of lda is 1
-
- precisek/k#caculate precision
-
- ## [1] 1
点击文末“阅读原文”
获取全文完整代码数据资料。
本文选自《R语言航班延误影响预测分析:lasso、决策树、朴素贝叶斯、QDA、LDA、缺失值处理、k折交叉验证》。
点击标题查阅往期内容
Python高维变量选择:SCAD平滑剪切绝对偏差惩罚、Lasso惩罚函数比较
R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
广义线性模型glm泊松回归的lasso、弹性网络分类预测学生考试成绩数据和交叉验证
贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析免疫球蛋白、前列腺癌数据
R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
R语言高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据(含练习题)
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
R语言Bootstrap的岭回归和自适应LASSO回归可视化
R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
R语言用LASSO,adaptive LASSO预测通货膨胀时间序列
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
R语言Bootstrap的岭回归和自适应LASSO回归可视化
R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归分析
R语言用LASSO,adaptive LASSO预测通货膨胀时间序列
R语言自适应LASSO 多项式回归、二元逻辑回归和岭回归应用分析
R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择的分类模型案例
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。