数据来源于天池赛题:零基础入门数据挖掘 - 二手车交易价格预测
一、原理介绍
XGBoost作为一种提升树,通过集成多棵树,对数据具有极好的泛化能力。XGBoost可以很好地处理缺失值,对于特征的值有缺失的样本,XGBoost采用的稀疏感知算法可以自动学习出它的分裂方向。现将该算法的学习路径总结如下:
- 构造目标函数——泰勒级数近似
- 模型参数化
- 树的复杂度
- 寻找最佳分裂点——贪心算法、近似算法
- 稀疏感知算法
具体的算法推导过程可以参考
链接:https://mp.weixin.qq.com/s/HDEKnIufbW8xQcOgHaXlZw
二、代码实现
#加载需要的模块
import warnings
warnings.filterwarnings('ignore')
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import cross_val_score
from sklearn.metrics import mean_absolute_error, make_scorer
from xgboost.sklearn import XGBRegressor
import xgboost as xgb
from lightgbm.sklearn import LGBMRegressor
#导入数据
data = pd.read_csv('F:/data/used_car_train_20200313.csv', sep=' ') #sep=' '表示原数据是以空格分隔
data.shape