基于航班延误预测的xgboost模型代码
```python
import pandas as pd
import numpy as np
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split, GridSearchCV, StratifiedKFold
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
# 加载数据集,并将其分为特征和标签变量
data = pd.read_csv('flightdelaydata.csv') # 加载数据集,该数据集包含航班延误的相关信息(如航空公司、日期、出发地和目的地等)。
X = data.drop(['Delayed'], axis=1) # 特征变量为所有除了Delayed之外的列
y = data['Delayed'] # 标签变量为Delayed列
# 拆分训练集和测试集 (80%用于训练,20%用于测试)
Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, test_size=0.2)
# 创建xgboost模型并使用GridSearchCV对其进行优化 (此处定义max depth为4、learning rate为0.1、n estimators为100) (此处定义StratifiedKFold作为交叉验证方法,将数据集切成5份进行验证) (此处定义accuracy作为性能度量标准。如果要使用AUC作为性能度量标准,将scoring='roc_auc'即可。 )
parameters={'max depth':[4],'learning rate':[0.1],'n estimators':[100]} model=XGBClassifier() clf=GridSearchCV(model , parameters , cv=StratifiedKFold(5), scoring='accuracy') clf.fit(Xtrain , ytrain) print('Best score for training data:', clf.bestScore)
# 用最优参数对测试集进行预测 bestParams=clf.bestParams model=XGBClassifier(maxDepth=bestParams['max depth'], learningRate=bestParams['learning rate'], nEstimators=bestParams['n estimators']) model.fit(Xtrain , ytrain) predictions = model .predict ( Xtest ) print("Accuracy on test dataset: ",accuracyScore (yTest , predictions))
# 输出confusion matrix以及classification report来看一看xgboost模型的性能 cm = confusionMatrix ( YTest , predictions ) print ( cm ) print ( classificationReport (YTest , predictions ) )
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!