数据预处理
2019-05-04 13:25
302 查看
转载请注明出处:https://www.geek-share.com/detail/2665479969.html
===========
常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍;
1. 标准化(Standardization or Mean Removal and Variance Scaling)
变换后各维特征有0均值,单位方差。也叫z-score规范化(零均值规范化)。计算方式是将特征值减去均值,除以标准差。
sklearn.preprocessing.scale(X)
- 1
scaler = sklearn.preprocessing.StandardScaler().fit(train)scaler.transform(train)scaler.transform(test)
- 1
- 2
- 3
2. 最小-最大规范化
最小-最大规范化对原始数据进行线性变换,变换到[0,1]区间(也可以是其他固定最小最大值的区间)
min_max_scaler = sklearn.preprocessing.MinMaxScaler()min_max_scaler.fit_transform(X_train)
- 1
- 2
3.规范化(Normalization)
规范化是将不同变化范围的值映射到相同的固定范围,常见的是[0,1],此时也称为归一化。《机器学习》周志华
将每个样本变换成unit norm。
X = [[ 1, -1, 2],[ 2, 0, 0], [ 0, 1, -1]]sklearn.preprocessing.normalize(X, norm='l2')
- 1
- 2
array([[ 0.40, -0.40, 0.81], [ 1, 0, 0], [ 0, 0.70, -0.70]])
- 1
在度量样本之间相似性时,如果使用的是二次型kernel,需要做Normalization
4. 特征二值化(Binarization)
给定阈值,将特征转换为0/1
binarizer = sklearn.preprocessing.Binarizer(threshold=1.1)binarizer.transform(X)
- 1
- 2
5. 标签二值化(Label binarization)
lb = sklearn.preprocessing.LabelBinarizer()
- 1
6. 类别特征编码
有时候特征是类别型的,而一些算法的输入必须是数值型,此时需要对其编码。enc = preprocessing.OneHotEncoder() enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) enc.transform([[0, 1, 3]]).toarray() #array([[ 1., 0., 0., 1., 0., 0., 0., 0., 1.]])
- 1
- 2
- 3
7.标签编码(Label encoding)
le = sklearn.preprocessing.LabelEncoder() le.fit([1, 2, 2, 6]) le.transform([1, 1, 2, 6]) #array([0, 0, 1, 2]) #非数值型转化为数值型le.fit(["paris", "paris", "tokyo", "amsterdam"])le.transform(["tokyo", "tokyo", "paris"]) #array([2, 2, 1])
- 1
- 2
- 3
- 4
- 5
- 6
8.特征中含异常值时
sklearn.preprocessing.robust_scale
- 1
- 2
9.生成多项式特征
这个其实涉及到特征工程了,多项式特征/交叉特征。
poly = sklearn.preprocessing.PolynomialFeatures(2)poly.fit_transform(X)
- 1
- 2
转化后:
参考文献:
相关文章推荐
- 数据挖掘过程中:数据预处理
- 【数据挖掘】数据预处理与Rapidminer相应的操作
- TensorFlow 图像数据预处理及可视化
- 使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- 代码笔记:caffe-reid的数据预处理
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- Nematus(一)数据预处理与超参数配置
- 数据预处理--数据降维
- 用sklearn.preprocessing做数据预处理(六)——非线性特征
- 预处理数据的方法总结(使用sklearn-preprocessing)
- sklearn中常用数据预处理方法
- (大)数据处理:从txt到MySql的数据预处理迁徙
- Spark MLlib 数据预处理-特征变换
- 数据预处理—Python常用函数归纳
- Pytorch入门学习(七)---- 数据加载和预处理的通用方法
- 对数据预处理的一点理解[ZZ]
- 深度学习: 数据预处理
- php数据库操作--数据预处理、更新、删除
- 数据预处理 center&scale&box-cox
- 算法实践进阶(一)【任务1 - 数据预处理】