数据的预处理

本文介绍了数据预处理的重要性以及步骤,包括处理缺失值、离群点和重复数据,以及数据转换如分类变量转换、处理数据不均衡和归一化。详细探讨了缺失值的填补方法、离群点检测的算法以及处理不平衡数据集的策略,如过采样和欠采样技术。同时,还提到了数据归一化和标准化在模型训练中的作用。
摘要由CSDN通过智能技术生成

一、数据可能存在问题

在实际业务处理中,数据通常是脏数据。所谓的脏,指数据可能存在以下几种问题(主要问题):

  1. 数据缺失

  2. 数据噪声 (Noisy)是数据值不合常理的情况。如 Salary = “-100”

  3. 数据不一致 (Inconsistent)是数据前后存在矛盾的情况。如 Age = “42” vs. Birthday = “01/09/1985”

  4. 数据冗余 (Redundant)是数据量或者属性数目超出数据分析需要的情况。

  5. 数据集不均衡 (Imbalance)是各个类别的数据量相差悬殊的情况。

  6. 离群点/异常值 (Outliers)是远离数据集中其余部分的数据。

  7. 数据重复(Duplicate)是在数据集中出现多次的数据。

二、数据预处理步骤

数据进行预处理主要有以下步骤,第一部分提及的各种脏数据的处理就在这些步骤中完成:

  1. 数据清洗 Data Cleansing

  2. 数据转换 Data Transformation

  3. 数据描述 Data Description

  4. 特征选择 Feature Selection 或特征组合 Feature Combination

  5. 特征抽取 Feature Extraction

1、数据预处理

在数据清洗阶段,我们处理第一部分提及的缺失数据、离群点和重复数据。

1.1 缺失值处理

缺失数据有以下几类:

a.Missing completely at random: 缺失的概率是随机的,比如门店的计数器因为断电断网等原因在某个时段数据为空。

b.Missing conditionally at random: 数据是否缺失取决于另外一个属性,比如一些女生不愿意填写自己的体重。

c.Not missing at random: 数据缺失与自身的值有关,比如高收入的人可能不愿意填写收入。

处理方式有以下几种:

(1) 如果样本数量占总体比例较小且不是必要的,可以直接删除
(2)用pandas的df.fillna()方法填补,可以选择的有均值、众数、中位数等方式
(3)采用随机森林方法预测缺失的值,需要输入的是未包含缺失值的其他列
(4)使用插值法,如拉格朗日插值法,可以快速插补
拉格朗日插值法的代码如下

def ployinterp_column(s, n, k=5):
    y = s[list(range(n-k, n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值