特征预处理
什么是特征预处理? 通过一些转换函数将特征数据转换成更加适合算法模型的特征数据的过程
一、归一化
1.定义
通过对原始数据进行变换把数据映射到(默认为【0,1】)之间
2.公式
x
′
=
x
?
m
i
n
m
a
x
?
m
i
n
x^\prime= \frac{x-min}{max-min}
x′=max?minx?min?
x
′
′
=
x
′
?
(
m
x
?
m
i
)
+
m
i
x''=x'*(mx-mi)+mi
x′′=x′?(mx?mi)+mi
作用于每一列,max为一列的最大值,min为一列的最小值,那么x’'为最终结果,mx,mi分别为指定区间值默认mx为1,mi为0
3.API
- sklearn.preprocessing.MinMaxScaler(
feature_range =(0,1)…) - MinMaxScalar.fit_transform(X)“X”:numpy array格式的数据[n_samples,n_features]“返回值”:转换后的形状相同的array
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
def minmax_demo():
'''
归一化
'''
data = pd.read_csv("dating.txt")
data = data.iloc[:,:3]
transfer = MinMaxScaler()
data_new = transfer.fit_transform(data)
print("data_new:\n",data_new)
return None
iloc和loc用法
二、标椎化
1.公式
x
′
=
x
?
m
e
a
n
σ
x'=\frac{x-mean}{\sigma}
x′=σx?mean?
作用于每一列,mean为平均值,
σ
\sigma
σ为标椎差
2.API
- sklean.preprocessing.StandardScaler()
处理之后,对每列来说,所有数据都聚集在均值为0附近,标椎差为1 StandardScaler.fit_transform(X) x:numpy array格式的数据[n_samples,n_features] 返回值:转换后的形状相同的array
特征降维
一、降维
定义
降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程
二、 特征选择
1.Filter(过滤式)
方差选择法:低方差特征过滤
相关系数——特征与特征之间的相关程度
2.Embedded(嵌入式)
决策树
正则化
深度学习
三、低方差特征过滤
API
- sklearn.feature_selection.VarianceThreshold(threshold = 0.0)
- 删除所有低方差特征
- Variance.fit_transform(X)
- X:numpy array格式的数据(n_samples,n_features)
- 返回值:训练集差异低于threshold的特征将被删除。默认值是保留所有非零方差特征,即删除所有样本中具有相同的特征。
皮尔逊相关系数
取值范围:-1>= r <= 1 API - from scipy.stats import pearsonr x:(N,)array_like y:(N,)array_like Returns:(Pearson’s correlation coefficient,p-value) 画图
import matplotlib.pyplot as plt
plt.figure(figsize = (28, 8), dpi = 100)
plt.scatter(datal['revenue'], data['total_expense'])
plt.show()
四、主成分分析
API
- sklearn.decomposition.PCA(n_components = None)
- n_components:
小数:表示保留百分之多少的信息 整数:减少到多少特征 - PCA.fit_transform(X) X: numpy array格式的数据[n_samples, n_features]
- 返回值:转换后指定维度的array
|