记录我的组队学习之路——基于二手车价格预测比赛——特征工程

什么是特征过程
我的理解就是在建模解决实际问题时,会在建模前收集可能与实际业务有关的特征,但这些特征可能是一些单一的特征,通过EDA发现这些特征值有异常值,缺失值等,不同的模型对特征的要求不一样,这些特征直接进入模型的效果往往不好,因此,我们需要对特征进行清洗,加工,筛选才能进入模型。
以下数据处理过程以二手车价格预测比赛为例。

异常值处理

异常值处理方法有很多如3西格玛法,箱型图,孤立森林等,下面代码展示的是箱型图法:
箱型图法的原理就是特征值的下四分位数-(上四分位数-下四分位数)到上四分位数+(上四分位数-下四分位数)这个区间的值分布是合理的,在这个范围之外大概率上是异常值了。

def outliers_proc(data, col_name, scale=3):
    """
         用于清洗异常值,默认用 box_plot(scale=3)进行清洗
         :param data: 接收 pandas 数据格式
         :param col_name: pandas 列名
         :param scale: 尺度
         :return:
    """ 
    def box_plot_outliers(data_ser, box_scale):
        """
        利用箱线图去除异常值
        :param data_ser: 接收 pandas.Series 数据格式
        :param box_scale: 箱线图尺度,
        :return:
        """
        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_plot_outliers(data_series, box_scale=scale)
    index 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值