特征预处理
什么是特征预处理:通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程
1、包含内容
- 数值型数据的无量纲化(使不同规格的数据转为同一规格):
归一化和标准化
2、特征预处理API
- sklearn.preprocessing
3、归一化
- [Min,Max]到[0,1]的线性映射
- sklearn.preprocessing.MinMaxScaler(feature_range=(0,1)…)
–MinMaxScalar.fit_transform(X) X:numpy array格式的数据[n_samples,n_features]
–返回值:转换后的形状相同的array
from sklearn.preprocessing import MinMaxScaler
def minmax_demo():
'''
归一化
:return:
'''
# 1、获取数据
data = pd.read_csv('dating.txt')
data = data.iloc[:,:3] # 提取前三列
# 2、实例化一个转换器类
transfer = MinMaxScaler(feature_range=[0, 1])
# 3、调用fit_transform
data_new = transfer.fit_transform(data)
print('data_new:\n', data_new)
return None
if __name__ == '__main__':
minmax_demo()
- 异常值:最大值、最小值
- 用最大值、最小值归一化的时候,很容易受到异常值的影响。
4、标准化
- X‘ = (x-mean)/std
- sklearn.preprocessing.StandardScaler()
–MinMaxScalar.fit_transform(X) X:numpy array格式的数据[n_samples,n_features]
–返回值:转换后的形状相同的array
from sklearn.preprocessing import StandardScaler
def stand_demo():
'''
标准化
:return:
'''
# 1、获取数据
data = pd.read_csv('dating.txt')
data = data.iloc[:,:3]
# 2、实例化一个转换器
transfer = StandardScaler()
# 3、调用fit_transform
data_new = transfer.fit_transform(data)
print('data_new:\n', data_new)
return None
if __name__ == '__main__':
stand_demo()