本章节通过2019年未来杯高校AI挑战赛的竞赛进行完整的数据建模,其中包括了赛题分析、数据清洗、特种工程、模型选择、模型融合及结果整理6大过程。
认识数据(赛题介绍)
在构建模型前或者在数据分析前需要对数据有个清楚的认识,无论是对于数据竞赛还是企业项目,对于数据的认识往往是第一位的,这直接影响到最终的结果。本文是利用一个竞赛向大家进行介绍的,故根据比赛背景介绍如何对数据进行认识。了解比赛的背景、知道你要构建的模型是个分类模型还是货柜模型和评分函数。本文对这三个部分不做介绍,可自行进入官网查看。下面直接进行数据分析的阶段。
1、数据集导入
在导入数据之前需要先导入需要的程序包
import warnings
warnings.filterwarnings('ignore') #忽略警告语句
#GBDT
from sklearn.ensemble import GradientBoostingRegressor
#XGBoost
import xgboost as xgb
#LightGBM
import lightgbm as lgb
import pandas as pd
import numpy as np
import matplotlib.pylab as ply
import seaborn as sns
数据载入
data_train = pd.read_csv('./数据集/train_data.csv')
data_test = pd.read_csv('./数据集/test_a.csv')
data_train['Type'] = 'Train'
data_test['Type'] = 'Test'
#合并训练集和测试集,方便一起训练
data_all = pd.concat([data_train,data_test],ignore_index=True)
data_all表示将训练集和测试集进行了合并,方便我们后续对此进行共同处理。导入数据之后,首先看一下数据的总体分布情况这方便我们对此有个整体的认识。
首先info()函数可以显示出数据中所有变量的情况,而describe()函数仅显示数值型数据的相关情况。下面分别来看一下结果。
i