04_data特征预处理 of 特征工程 【day1】
0、Xmind
1、data的特征预处理
1、what is 特征处理?
统计方法,要求的data
2、 特征预处理的方式
3、sklearn.preprocessing
there are all 预处理 method
2、归一化
1. what is 归一化?
原始data -----变换、映射----> [0,1]
2. 公式
计算过程
3. sklearn.preprocessing.MinMaxScalar
sklearn.preprocessing.MinMaxScalar
scalar缩放
语法
步骤
input:二维array
代码
from sklearn.preprocessing import MinMaxScaler # 归一化 def minmaxSclar(): """ 归一化处理 :return: None """ # mm = MinMaxScaler() mm = MinMaxScaler(feature_range=(2,3)) data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,13,46]]) print(data) if __name__ == '__main__': minmaxSclar()
4.案例:约会对象data
三个特征同等重要的时候,进行归一化
目的:
使得某一个特征对result不会造成更大的影响
5.异常点
6. 归一化总结
鲁棒性较差 (稳定性不行)
传统精确小data场景 (基本无)
3、标准化
1、 what is 标准化?
原始data ----> 均值为0,方差为1
2、公式
3、异常点
对mean影响不大
方差为0,所有这个特征的值基本一样
4、scikit-learn.preprocessing.StandardScalar
standard 标准化 scalar 缩放
data聚集zai 均值为0 方差为1的附近
语法
步骤
input 二维array
代码
from sklearn.preprocessing import StandardScaler # 标准化 def stand(): """ 标准化缩放 :return:None """ std = StandardScaler() data = std.fit_transform([[ 1., -1., 3.],[ 2., 4., 2.],[ 4., 6., -1.]]) print(data) if __name__ == '__main__': stand()
5.总结
4、缺失值
1.如何处理数据中的缺失值?方法
2.sklearn.preprocessing.Imputer
语法
missing_values 缺失值为空值
strategy 填补策略
axis 1/0 行/列
流程
代码
import numpy as np from sklearn.preprocessing import Imputer # 缺失值 def im(): """ 缺失值处理 :return: None """ # NaN,nan 空值 im = Imputer(missing_values="NaN",strategy="mean",axis=0) data = im.fit_transform([[1, 2], [np.nan, 3], [7, 6]]) print(data) return None if __name__ == '__main__': im()
3.关于np.nan(np.NaN)