Task3-特征工程

本文探讨了特征工程中删除异常值的重要性,以及进行数据分桶的多种原因,包括提高运算速度、增强鲁棒性、适应广义线性模型、提升模型表达能力和稳定性。数据分桶在LightGBM等模型中被广泛应用,有助于提升模型的泛化性能。
摘要由CSDN通过智能技术生成

1)删除异常值

#删除异常值
def outliers_proc(data, col_name, scale=3):
    """
    用于清洗异常值,默认用 box_plot(scale=3)进行清洗
    :param data: 接收 pandas 数据格式
    :param col_name: pandas 列名
    :param scale: 尺度
    :return:
    """
    #data_ser = Train_data
    #col_name = 'power'
    #scale = 3
    #box_scale = 3
    #data = Train_data
    def box_plot_outliers(data_ser, box_scale):
        """
        利用箱线图去除异常值
        :param data_ser: 接收 pandas.Series 数据格式
        :param box_scale: 箱线图尺度,
        :return:
        """
       # from pandas.core.frame import DataFrame
        #a=[1,2,3,4]
        #a=DataFrame(a)
        #a.quantile(0.75)
        #a.quantile(0.25)
        iqr = box_scale * (data_ser.quantile(0.75) - data_ser.quantile(0.25))
        #确定正常值范围
        val_low = data_ser.quantile(0.25) - iqr  #极差的1.5倍
        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 = np.arange(data_series.shape[0])[rule[0] | rule[1]]
    print(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值