特征处理汇总

2021-07-29  本文已影响0人  米斯特芳

本文将陆续汇总特征处理常见方法

StandardScaler:标准化

通过求z-score,求数据转换为正态分布,常用于回归等基于正态分布的算法

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler().fit(X_train)
standardized_X = scaler.transform(X_train)
standardized_X_test = scaler.transform(X_test)

Normalizer正则化

常见于难以收敛的场景,防止过拟合。
应用:神经网络,文本分类,聚类,逻辑回归,
基于矩阵的行,将样本向量转换为单位向量,样本向量在点乘运算或核函数计算相似性时,拥有统一的标准

from sklearn.preprocessing import Normalizer
scaler = Normalizer().fit(X_train)
normalized_X = scaler.transform(X_train)
normalized_X_test = scaler.transform(X_test)

min-max归一化

将数据转换为0-1之间,提升收敛速度和精度

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler().fit(X_train)
normalized_X = scaler.transform(X_train)
normalized_X_test = scaler.transform(X_test)

Binarizer二值化

对二维数据处理,如果是一个特征(series),需要reshape为二维的

from sklearn.preprocessing import Binarizer
# 小于等于10的置为0,大于10的置为1
binarizer = Binarizer(threshold=10).fit(X)
binary_X = binarizer.transform(X)

LabelEncoder类别数值化

from sklearn.preprocessing import LabelEncoder
# 设置类别
le = LabelEncoder().fit(['male','female'])
encoded_x = le.transform(x)
x=le.fit_transform(x)# 也可以一步到位

OneHotEncoder类别向量化

将每一个元素转为向量,只有1个值为1,其余为0,长度为特异值的个数

from sklearn.preprocessing import OneHotEncoder
import numpy as np
tr=OneHotEncoder()
x=np.array(['hehe','haha','hehe','gg']).reshape(-1,1)# 对象需要是二维的
res=tr.fit_transform(x)
# hehe转为[0,0,1],此处共有3种类别

PolynomialFeatures特征构造

通过多项式对特征进行构造(用途?)
比如(a,b)->(1,a,b,ab,a2,b2,ab2,ba2,...)

from sklearn.preprocessing import PolynomialFeatures
# 指定多项式最高幂次
# interaction_only:True表示只有交叉项
# include_bias:True表示允许0次幂(即都为1的列)
poly = PolynomialFeatures(5,interaction_only=True,include_bias=False)
poly.fit_transform(np.arange(6).reshape(3, 2)) 

Imputer空值处理

from sklearn.preprocessing import Imputer
# strategy:mean/median/most_frequent
imp = Imputer(missing_values=0, strategy='mean', axis=0)
imp.fit_transform(X_train[,col])

PCA主成分分析

用于降维

from sklearn.decomposition import PCA
pca = PCA(n_components=0.95)
pca.fit_transform(X)
print(pca.explained_variance_ratio_)# 解释方差比
print(pca.singular_values_)# 特征值

KMeans聚类

from sklearn.cluster import KMeans
k_means = KMeans(n_clusters=3, random_state=0)
k_means.fit_predict(X)
上一篇 下一篇

猜你喜欢

热点阅读