[DataAnalysis]常用数据预处理方法汇总

常用的包括聚集、降维、离散化和标准化等

聚集aggregating

将两个或多个对象合并成单个对象,但是难免会丢失细节。

抽样sampling

统计学使用抽样是因为得到感兴趣的整个数据集成本太高、太费时间,但是数据挖掘使用抽样是因为处理所有的数据的费用成本太高、太费时间。

抽样方法包括:简单随机抽样;分层抽样等。

维归约(降维)

数据集可能包含大量特征,选择维归约是维度降低许多数据挖掘算法的效果会更好,因为一方面是因为维归约可以删除不相关的特征并降低噪声,模型更容易理解,可视化也更容易实现;另一方面是因为维灾难。

维灾难是指:随着数据维度增加,数据在它所占据的空间中越来越系数。对于分类可能意味着没有足够的数据对象来创建模型,将所有可能的对象可靠地指派到一个类。对于聚类,点之间的密度和距离的定义失去了意义。结果是对于高维数据,许多分类算法准确率下降,聚类质量下降。

特征子集选择:

(1)嵌入方法:算法本身包含特征选择

(2)过滤方法:在数据挖掘算法运行前就进行特征选择,比如选择相关度尽可能低的属性集合。

(3)包装方法:将目标数据挖掘算法作为黑盒,并不枚举所有可能的子集来找出最佳属性子集。

(4)特征加权:也属于一种保留或删除特征的办法。特征越重要则赋予的权值越大,而不太重要的特征赋予较小的权值。

特征创建

由原来的属性创建新的属性集,从而更有效地捕获数据集中的重要信息。并且新属性可能是由多个旧属性创建的,从而数目可能比原属性少。

(1)特征提取:由原始数据创建新的特征集。比如图像识别中按照照片是否包括人脸创建新的特征。

(2)映射数据到新的空间:比如对时间序列实施傅里叶变换可以转化为频率信息明显的表示;小波变换

(3)特征构造:原始数据集具有必要的信息但是其形式不适合数据挖掘算法,在这种情况下一个或多个由原特征构造的新特征可能比原特征更有用。

离散化和二元化

1、连续变量离散化

2、对于标称变量构造哑变量进行二元化

变量变换

常用的变量变换就是规范化或者标准化。

在Python中,数据预处理数据分析和机器学习项目的关键步骤,它包括数据清洗、转换、规范化和特征选择等。以下是常用的一些Python数据预处理方法: 1. **数据清洗(Data Cleaning)**: - 处理缺失值:使用`pandas`库中的`dropna`、`fillna`或插补方法(如`mean`, `median`, `mode`)填充缺失值。 - 删除重复项:`duplicated` 和 `drop_duplicates`。 - 异常值检测:通过统计分析(如Z-score, IQR)或可视化找出离群值并处理。 2. **数据转换(Data Transformation)**: - 标准化/归一化:`scikit-learn`的`StandardScaler` 和 `MinMaxScaler` 对数值型数据进行标准化或归一化。 - 逻辑编码/独热编码:`pandas.get_dummies` 或 `OneHotEncoder` 对类别变量进行编码。 - 对数/指数变换:处理偏斜分布的数据。 3. **数据类型转换**: 使用`astype()` 方法数据从一种类型转换为另一种类型,如字符串转数字。 4. **特征选择(Feature Selection)**: - 相关性分析:计算特征之间的相关系数,`corr()` 函数。 - 特征重要性:使用随机森林、梯度提升机等模型计算特征的重要性。 5. **数据切分(Data Splitting)**: - 划分训练集和测试集:`train_test_split` 函数,用于模型训练和评估。 6. **编码(Encoding)**: - 数字编码:对文本数据进行编码,如词袋模型或TF-IDF。 - 文本预处理:去除停用词、标点符号,进行词干提取或词形还原。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值