task 13 集成学习

蒸汽量预测
1.特征工程
一般流程:
1.去掉无用特征
2.去掉冗余特征
3.利用存在的特征、特征转换、内容中的特征以及其他数据源生成新特征
4.特征转换(数值化、类别转换、归一化)
5.特征处理(异常值、最大值、最小值、缺失值)

  • 观察特征
    核密度估计,已知散点图,做回归,要求连线尽可能平滑,大致观察数据的分布情况。在本例中,通过核密度估计,观察训练集与测试集数据的分布情况,从而删除不具有相似分布的属性值
  • 计算相关性,并进行降维操作,即将相关性的绝对值小于阈值的特征进行删除
  • 对已经完成以上清洗的特征数据进行归一化处理
  • 特征工程:
    1.box-cox变换,使特征数据满足正态分布(一般模型假设都是假设数据为正态分布,采用数据变换可以方便后续模型的应用)。用qq图直观描述box-cox变换后数据是否符合正态分布
    2.对数变换:这一步也是数据变换,主要作用是提升特征数据的正态性(可以这样理解,取对数可以将中位数的值按比例缩小,从而形成正态分布的数据)
  • 剔除训练数据中的异常值(用回归,如岭回归ridge regression)
  • 根据去除了异常值的训练数据训练模型~
cols_transform=data_all.columns[0:-2]
for col in cols_transform:   
    # transform column
    data_all.loc[:,col], _ = stats.boxcox(data_all.loc[:,col]+1)
print(data_all.target.describe())
plt.figure(figsize=(12,4))
plt.subplot(1,2,1)
sns.distplot(data_all.target.dropna() , fit=stats.norm);
plt.subplot(1,2,2)
_=stats.probplot(data_all.target.dropna(), plot=plt)

你可能感兴趣的:(task 13 集成学习)