二手车交易价格预测——特征工程(1)生成适用于树,xgboostde的数据
针对生成LR的模型的链接:https://editor.csdn.net/md/?articleId=105156750
文章目录
通过对赛题的分析,我们可以看出此类问题是对价格进行回归预测,那我们对于数据需要事先做预处理分析,前期我们已经进行了EDA探索性数据分析,下面是对进行特征工程。
特征工程本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。
图片来源:特征工程全过程
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
from operator import itemgetter
%matplotlib inline
Train_data= pd.read_csv(r'D:\ershouche\used_car_train_20200313.csv', sep=' ')
Test_data = pd.read_csv(r'D:\ershouche\used_car_testA_20200313.csv', sep=' ')
Train_data['notRepairedDamage'].replace('-', np.nan, inplace=True)
Train_data['notRepairedDamage'].value_counts()
0.0 111361
1.0 14315
Name: notRepairedDamage, dtype: int64
生成 可以用于tree的数据
#对偏斜类做删除处理
del Train_data["seller"]
del Train_data["offerType"]
del Test_data["seller"]
del Test_data["offerType"]
1.通过箱线图删除异常值
def out_proc(data,col_name,scale=3): #(data:接收pandas 数据格式,col_name: pandas 列名, scale 尺度)
def box(data_ser,box_scale): #(接收箱线图的数据格式,箱线图尺度)
iqr=box_scale*(data_ser.quantile(0.75)-data_ser.quantile(0.25))
val_low=(data_ser.quantile(0.25)-iqr)
val_up=(data_ser.quantile(0.75)+iqr)
rule_low=(data_ser<val_low)
rule_up=(data_ser>val_up)
return (rule_low,rule_up),(val_low,val_up)
data_n=data.copy()
data_series=data_n[col_name]
rule,value = box(data_series,box_scale=scale)
index = np.arange(data_series.shape[0])[rule[0]|rule[1]]
print('delete number is: {}'.format(len(index