数据挖掘 Task3:特征工程

本文详细介绍了数据挖掘中的特征工程,包括特征构造的目的和常用操作,如异常值处理、新特征构造、数据标准化以及特征过滤。特征构造涉及清除异常值、构造新特征如汽车使用时间和品牌销量,以及数据标准化的归一化和离散化。此外,还探讨了特征过滤的相关性分析和包裹式方法。特征工程的目的是提高机器学习模型的性能,通过有效的特征处理和选择,可以显著提升模型的预测能力。
摘要由CSDN通过智能技术生成

1、特征构造

1.1特征构造的目的

对特征(属性)做进一步分析,对数据进行处理,可以对数据进行一些图表总结

1.2 常用操作

1.2.1清除异常值

1.2.1.1 箱型图

在这里插入图片描述
在Q3+1.5IQR和Q1-1.5IQR处画两条与中位线一样的线段,这两条线段为异常值截断点,称其为内限;在Q3+3IQR和Q1-3IQR处画两条线段,称其为外限。处于内限以外位置的点表示的数据都是异常值,其中在内限与外限之间的异常值为温和的异常值(mild outliers),在外限以外的为极端的异常值(extreme outliers)。四分位距IQR=Q3-Q1。

def extreme_outliers(data,col,scale):
    def box_outliers(data_series,box_scale):#箱型图寻找异常值,box_scale控制异常值范围
        iqr=box_scale*(data_series.quantile(0.75)-data_series.quantile(0.25))#
        low=data_series.quantile(0.25)-iqr
        high=data_series.quantile(0.75)+iqr
        rule_low=data_series<low
        rule_high=data_series>high
        return (rule_low,rule_high),(low,high)#返回的是两个元组,一个是有异常值的行索引,一个是异常值内限
    rule,number=box_outliers(data[col],scale)
    index=np.arange(data[col].shape[0])[rule[0]|rule[1]]
    print('异常数据数量:'+str(len(index)))
    index_1=np.delete(np.arange(data[col].shape[0]),index)#删除异常值后的下标
    data_p=data.iloc[index_1]#在全数据范围内删除带有异常值的记录
    fig,ax=plt.subplots(1,2,figsize=(10,8))
    sns.boxplot(y=data[col],ax=ax[0])#原始数据
    sns.boxplot(y=data_p[col],ax=ax[1])#异常值删除后的数据
    plt.show()
    return data_p
extreme_outliers(train,'price',1.5)

函数参考教程,按自己的理解重新写了一遍,就是删除指定倍数的异常值,然后结果能通过箱型图直观地表现出来,删除异常值后的数据更直观更聚集。
在这里插入图片描述

1.2.2 构造新特征

1.汽车使用时间
data['time']=(pd.to_datetime(data['creatDate'],format='%Y%m%d',errors='coerce')-
      pd.to_datetime(data['regDate'],format='%Y%m%d',errors='coerce')).dt.days

注意点:errors=‘coerce’,无法转换的情况使其成为空值

2.城市信息
data['city']=data['regionCode'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值