3、Datawhale入门-特征工程

1 目的

1.对数据的特征进一步分析,并进行处理
2.数据特征分析的可视化

2 特征处理

2.1 异常处理

通过箱线图(或 3-Sigma)分析删除异常值;
BOX-COX 转换(处理有偏分布);
长尾截断;

2.2 特征归一化/标准化

标准化(转换为标准正态分布);
归一化(抓换到 [0,1] 区间);
针对幂律分布,可以采用公式log((1+x)/(1+𝑚𝑒𝑑𝑖𝑎𝑛))

2.3 数据分桶

等频分桶;
等距分桶;
Best-KS分桶;
卡方分桶;

2.4 缺失值处理

不处理;
删除;
插值补全;
分箱,缺失值一个箱;

2.5 特征构造

构造统计量特征、报告计数、求和、比例、标准差等;
时间特征,包括相对时间和绝对时间,节假日、双休日等;
地理信息,包括分箱,分布编码等方法;
非线性变换,包括log/平方/根号等;
特征组合。

2.6 特征筛选

过滤式(filter):先对数据进行特征选择,然后在训练学习器,常见的方法有Relief/方差选择法/相关系数法/卡方检验法/互信息法;
包裹式(wrapper):直接把最终将要使用的学习器的性能作为特征子集的评价准则,常见方法有LVM
嵌入式:结合过滤式和包裹式,学习器训练过程中自动进行特征选择,常见的有lasso回归;

2.7 降维

PCA/LDA/ICA;
特征选择也是一种降维.

3 样本特征分析(代码)

对于已有样本
1在这里插入图片描述

3.1 导入数据集
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 = pd.read_csv('train.csv', sep=' ')
test = pd.read_csv('testA.csv', sep=' ')
3.2 删除异常值

对训练集处理

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)

def outliers_proc(data, col_name, scale=3):
    """
    用于清洗异常值,默认用 box_plot(scale=3)进行清洗
    :param data: 接收 pandas 数据格式
    :param col_name: pandas 列名
    :param scale: 尺度
    :return:
    """
    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("删除的数字是: {}".format(len(index)))
    data_n = data_n.drop(index)
    data_n.reset_index(drop=True, inplace=True)
    print("现在的列号是: {}".format(data_n.shape[0]))
    index_low = np.arange(data_series.shape[0])[rule[0]]
    outliers = data_series.iloc[index_low]
    print("小于下限的数据为:")
    print(pd.Series(outliers).describe())
    index_up = np.arange(data_series.shape[0])[rule[1]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Datawhale第三期的任务涉及到了预训练模型、数据集增强、排序算法和数组与链表。根据引用中的描述,这一期的任务中只选择了任务三的其中两种方法,分别是预训练模型和数据集增强。同时,引用提到了关于排序算法的任务,包括归并排序、快速排序、插入排序、冒泡排序、选择排序和堆排序。此外,引用提到了数组和链表的任务。所以,Datawhale第三期的任务涵盖了预训练模型、数据集增强、排序算法以及数组和链表。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Datawhale第三期CV方向任务三学习记录](https://blog.csdn.net/bb1ink/article/details/132504529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [leetcode卡-Datawhale-DatasSructure-Sorting-binarySearch:Day3-DataWhale-D](https://download.csdn.net/download/weixin_38731075/20047898)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [leetcode有效期-Datawhale-Coding:Datawhale-编码](https://download.csdn.net/download/weixin_38530211/20050746)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值