XGboost实例--数据处理

可以分为三大部分:
• 特征工程
• 评估准则
• XGBoost参数调优

一、 特征工程
数据分析
• 对数据进行探索性的分析的工具包:pandas、matplotlib/seaborn
• 读取训练数据,取少量样本进行观测,并查看数据规模和数据类型
– 标签、特征意义、特征类型等
• 分析每列特征的分布
– 直方图
– 包括标签列(对分类问题,可看出类别样本是否均衡)
– 检测奇异点(outliers)
• 分析每两列特征之间的相关性
– 特征与特征之间信息是否冗余
– 特征与标签是否线性相关
• 特征工程
1、直方图
• 直方图:每个取值在数据集中出现的次数,可视为概率函
数(PDF)的估计(seaborn可视化工具比较简单)
– import seaborn as sns
– %matplotlib inline( 在juypter中才能加上这句)
– sns.distplot(train.price.values, bins=50, kde=True)
• 核密度估计
– Kernel Density Estimation, KDE
– 对直方图的加窗平滑
在分类任务中,我们关心不同类别的特征分布
– 核密度估计
– order = [‘low’, ‘medium’, ‘high’]
– sns.violinplot(x=’interest_level’, y=’price’, data=train, order = order)

2、奇异点
• 奇异点:或称离群点,指远离大多数样本的样本点。通常
认为这些点是噪声,对模型有坏影响
• 可以通过直方图或散点图发现奇异点
– 直方图的尾巴
– 散点图上孤立的点
• 可以通过只保留某些分位数内的点去掉奇异点
– 如0.5%-99.5%,或>99%
– ulimit = np.percentile(train.price.values, 99)
– train[‘price’].ix[train[‘price’]>ulimit] = ulimit

3、相关性
• 我们希望特征与标签强相关
– 分类直方图可以从某种程度上看出特征与标签的相关性:不同类
别的直方图差异大
• 特征与特征之间强相关的话意味着信息冗余
– 可以两个特征可以只保留一个特征
– 或采用主成分分析(PCA)等降维
特征之间的相关性的代码实现:
—sns.heatmap(correlationMatrix,annot=True)—-使用热图的方式

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值