数据有缺失值、数据有重复值,预处理。
这里给出数据预处理的常用流程
去除唯一属性
处理缺失值;
属性编码
数据标准化、正则化
特征选择;
主成分分析。
主成分介绍过
这里主要介绍前面的几个常用流程
from sklearn.preprocessing import Binarizer
X=[[1,2,3,4,5],
[5,4,3,2,1],
[3,3,3,3,3,],
[1,1,1,1,1]]
print("before transform:", X)
binarizer=Binarizer(threshold=2.5)
print("after transform:" ,binarizer.transform(X))
PS C:\Users\ZTZ\Desktop\md\分类> & D:/software/Anaconda3/envs/base_tensorflow/python c:/Users/ZTZ/Desktop/untitled0.py
before transform: [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 3, 3, 3, 3], [1, 1, 1, 1, 1]]
after transform: [[0 0 1 1 1]
[1 1 1 0 0]
[1 1 1 1 1]
[0 0 0 0 0]]
指定了独热码编码的数值类型,默认为np. float
布尔值,指定结果是否稀疏。
一个字符,数据转换时,遇到了某个集合类型的属性,
但该属性未列入 categorical_features时的情形,可以指定为如下。
error’:抛出异常
ignore’:忽略。
from sklearn.preprocessing import OneHotEncoder
X=[[1,2,3,4,5],
[5,4,3,2,1],
[3,3,3,3,3],
[1,1,1,1,1]]
print("before transform:",X)
encoder=OneHotEncoder(sparse=False)
encoder.fit(X)
#print("active_features_: ",encoder.active_features_)
#print("feature_indices_: ",encoder.feature_indices_)
#print("n_values_:" ,encoder.n_values_)
print("after transform: ",
encoder.transform([[1, 2,3,4,5]]))
before transform: [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 3, 3, 3, 3], [1, 1, 1, 1, 1]]
after transform: [[1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1.]]
这本书下面在放屁
from sklearn.preprocessing import Normalizer
X=[[1,2,3,4,5],
[5,4,3,2,1],
[3,3,3,3,3,],
[1,1,1,1,1]]
print("before transform:", X)
normalizer=Normalizer(norm="l2")
print("after transform:" ,normalizer.transform(X))
PS C:\Users\ZTZ\Desktop\md\分类> & D:/software/Anaconda3/envs/base_tensorflow/python c:/Users/ZTZ/Desktop/untitled0.py
before transform: [[1, 2, 3, 4, 5], [5, 4, 3, 2, 1], [3, 3, 3, 3, 3], [1, 1, 1, 1, 1]]
after transform: [[0.13483997 0.26967994 0.40451992 0.53935989 0.67419986]
[0.67419986 0.53935989 0.40451992 0.26967994 0.13483997]
[0.4472136 0.4472136 0.4472136 0.4472136 0.4472136 ]
[0.4472136 0.4472136 0.4472136 0.4472136 0.4472136 ]]
为啥要把每个样本的的几个特征正则化啊