""" 特征工程的数据处理: 1.异常数据处理(采用数据清洗); 1)删除含有异常值的记录; 2)将异常值视为缺失值,交给缺失值处理方法来解决; 3)用平均值修正; 4)不处理 2.数据不平衡处理(数据增强) 2.1 离散数据异常,采用one-hot编码归置:以0、1表示 3.文本处理:词袋法、TF-IDF (将文本转换成数值法) 4.多项式扩展、哑编码、标准化、归一化、PCA 5.将均值、方差、协方差等信息作为特征属性 6.结合业务衍生新的属性 """
### 空值数据填充法
import numpy as np
from sklearn.impute import SimpleImputer
# 初始数据准备 X = [ [np.nan, 3, 4, 1], [2, 5, np.nan, 0], [6, 3, 4, 7], [1, 7, 2, 0] ] X2 = [ [2, 6, np.nan, 9], [np.nan, 4, 2, 9], [np.nan, 5, 0, 3], [3, 4, 0, np.nan] ]
# 创建样本处理器
iml0 = SimpleImputer(missing_values=np.nan, strategy='mean')
iml1 = SimpleImputer(missing_values=np.nan, strategy='medina')
iml2 = SimpleImputer(missing_values=np.nan, strategy='most_frequent')
iml3 = SimpleImputer(missing_values=np.nan, strategy='constant', fill_value=1)
# 先进行数据的训练 print('-----------------均值---------------------') im0.fit_transform(X) print(iml0.statistics_)
# 先进行数据的训练
print('-----------------中位数---------------------')
im1.fit_transform(X)
print(iml1.statistics_)
# 先进行数据的训练
print('-----------------众数---------------------')
im2.fit_transform(X)
print(iml2.statistics_)
print('-----------------常数---------------------')
im0.fit_transform(X)
print(iml3.statistics_)
Output:
-----------------均值---------------------
[[3. 3. 4. 1. ]
[2. 5. 3.33333333 0. ]
[6. 3. 4. 7. ]
[1. 7. 2. 0. ]]
[3. 4.5 3.33333333 2. ]
-----------------中位数---------------------
[[2. 3. 4. 1.]
[2. 5. 4. 0.]
[6. 3. 4. 7.]
[1. 7. 2. 0.]]
[2. 4. 4. 0.5]
------------------众数--------------------
[[1. 3. 4. 1.]
[2. 5. 4. 0.]
[6. 3. 4. 7.]
[1. 7. 2. 0.]]
[1. 3. 4. 0.]
------------------常数填充--------------------
[[2. 6. 1. 9.]
[1. 4. 2. 9.]
[1. 5. 0. 3.]
[3. 4. 0. 1.]]
[1. 1. 1. 1.]
Process finished with exit code 0