Scikit-Learn模块学习笔记——数据预处理模块preprocessing
2016-04-13 17:05
417 查看
preprocessing 模块提供了数据预处理函数和预处理类,预处理类主要是为了方便添加到 pipeline 过程中。
preprocessing.scale(X, axis=0, with_mean=True, with_std=True, copy=True):
将数据转化为标准正态分布(均值为0,方差为1)
preprocessing.minmax_scale(X, feature_range=(0, 1), axis=0, copy=True):
将数据在缩放在固定区间,默认缩放到区间 [0, 1]
preprocessing.maxabs_scale(X, axis=0, copy=True):
数据的缩放比例为绝对值最大值,并保留正负号,即在区间 [-1.0, 1.0] 内。唯一可用于稀疏数据 scipy.sparse 的标准化
preprocessing.robust_scale(X, axis=0, with_centering=True, with_scaling=True, copy=True):
通过 Interquartile Range (IQR) 标准化数据,即四分之一和四分之三分位点之间
它们对应的标准化预处理类:
class preprocessing.StandardScaler(copy=True, with_mean=True, with_std=True):
标准正态分布化的类
属性:
scale_:ndarray,缩放比例
mean_:ndarray,均值
var_:ndarray,方差
n_samples_seen_:int,已处理的样本个数,调用
class preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True):
将数据在缩放在固定区间的类,默认缩放到区间 [0, 1]
属性:
min_:ndarray,缩放后的最小值偏移量
scale_:ndarray,缩放比例
data_min_:ndarray,数据最小值
data_max_:ndarray,数据最大值
data_range_:ndarray,数据最大最小范围的长度
class preprocessing.MaxAbsScaler(copy=True):
数据的缩放比例为绝对值最大值,并保留正负号,即在区间 [-1.0, 1.0] 内。可以用于稀疏数据 scipy.sparse
属性:
scale_:ndarray,缩放比例
max_abs_:ndarray,绝对值最大值
n_samples_seen_:int,已处理的样本个数
class preprocessing.RobustScaler(with_centering=True, with_scaling=True, copy=True):
通过 Interquartile Range (IQR) 标准化数据,即四分之一和四分之三分位点之间
属性:
center_:ndarray,中心点
scale_:ndarray,缩放比例
class preprocessing.KernelCenterer:
生成 kernel 矩阵,用于将 svm kernel 的数据标准化(参考资料不全)
以上几个标准化类的方法:
fit(X[, y]):根据数据 X 的值,设置标准化缩放的比例
transform(X[, y, copy]):用之前设置的比例标准化 X
fit_transform(X[, y]):根据 X 设置标准化缩放比例并标准化
partial_fit(X[, y]):累加性的计算缩放比例
inverse_transform(X[, copy]):将标准化后的数据转换成原数据比例
get_params([deep]):获取参数
set_params(**params):设置参数
将数据归一化到区间 [0, 1],norm 可取值 'l1'、'l2'、'max'。可用于稀疏数据 scipy.sparse
class preprocessing.Normalizer(norm='l2', copy=True):
数据归一化的类。可用于稀疏数据 scipy.sparse
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
将数据转化为 0 和 1,其中小于等于 threshold 为 0,可用于稀疏数据 scipy.sparse
class preprocessing.Binarizer(threshold=0.0, copy=True):
二值化处理的类,可用于稀疏数据 scipy.sparse
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params),其中 fit 函数不会做任何操作
class preprocessing.OneHotEncoder(n_values='auto', categorical_features='all', dtype='float', sparse=True, handle_unknown='error'):
将具有多个类别的特征转换为多维二元特征,所有二元特征互斥,当某个二元特征为 1 时,表示取某个类别
参数:
n_values:处理的类别个数,可以为‘auto’,int 或者 int数组
categorical_features:被当作类别来处理的特征,可以为“all”或者下标数组指定或者mask数组指定
属性:
active_features_:ndarray,实际处理的类别数
feature_indices_:ndarray,第 i 个原特征在转换后的特征中的下标在 feature_indices_[i] 和 feature_indices_[i+1] 之间
n_values_:ndarray,每维的类别数
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
class preprocessing.LabelBinarizer(neg_label=0, pos_label=1, sparse_output=False):
和 OneHotEncoder 类似,将类别特征转换为多维二元特征,并将每个特征扩展成用一维表示
属性:
classes:ndarry,所有类别的值
y_type_:str
multilabel_:bool
sparse_input_:bool
indicator_matrix_:str
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、inverse_transform(y)、get_params([deep])、set_params(**params)
preprocessing.label_binarize(y, classes, neg_label=0, pos_label=1, sparse_output=False):
LabelBinarizer 类对应的处理函数
class preprocessing.LabelEncoder:
将类别特征标记为 0 到 n_classes - 1 的数
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、inverse_transform(y)、get_params([deep])、set_params(**params)
class preprocessing.MultiLabelBinarizer(classes=None, sparse_output=False):
和 LabelBinarizer 类似
feature_extraction.DictVectorizer类
patsy包
参数:
missing_values:int 或者 “NaN”,对np.nan的值用 "NaN"
strategy:"mean"、"median"、"most_frequent"
属性:
statistics_:ndarray,当axis==0时,取每列填补时用的值
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
class preprocessing.PolynomialFeatures(degree=2, interaction_only=False, include_bias=True):
参数:
degree:int,多项式次数
interaction_only:boolean,是否只产生交叉相乘的特征
include_bias:boolean,是否包含偏移列,即全为 1 的列
属性:
powers_:ndarray,二维数组。powers_[i, j] 表示第 i 维输出中包含的第 j 维输入的次数
n_input_features_:int,输入维数
n_output_features_:int,输出维数
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
在 X 的第一列插入值为 value 的列
class preprocessing.FunctionTransformer(func=None, validate=True, accept_sparse=False, pass_y=False):
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
API:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.preprocessing
数据标准化
标准化预处理函数:preprocessing.scale(X, axis=0, with_mean=True, with_std=True, copy=True):
将数据转化为标准正态分布(均值为0,方差为1)
preprocessing.minmax_scale(X, feature_range=(0, 1), axis=0, copy=True):
将数据在缩放在固定区间,默认缩放到区间 [0, 1]
preprocessing.maxabs_scale(X, axis=0, copy=True):
数据的缩放比例为绝对值最大值,并保留正负号,即在区间 [-1.0, 1.0] 内。唯一可用于稀疏数据 scipy.sparse 的标准化
preprocessing.robust_scale(X, axis=0, with_centering=True, with_scaling=True, copy=True):
通过 Interquartile Range (IQR) 标准化数据,即四分之一和四分之三分位点之间
它们对应的标准化预处理类:
class preprocessing.StandardScaler(copy=True, with_mean=True, with_std=True):
标准正态分布化的类
属性:
scale_:ndarray,缩放比例
mean_:ndarray,均值
var_:ndarray,方差
n_samples_seen_:int,已处理的样本个数,调用
partial_fit()时会累加,调用
fit()会重设
class preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True):
将数据在缩放在固定区间的类,默认缩放到区间 [0, 1]
属性:
min_:ndarray,缩放后的最小值偏移量
scale_:ndarray,缩放比例
data_min_:ndarray,数据最小值
data_max_:ndarray,数据最大值
data_range_:ndarray,数据最大最小范围的长度
class preprocessing.MaxAbsScaler(copy=True):
数据的缩放比例为绝对值最大值,并保留正负号,即在区间 [-1.0, 1.0] 内。可以用于稀疏数据 scipy.sparse
属性:
scale_:ndarray,缩放比例
max_abs_:ndarray,绝对值最大值
n_samples_seen_:int,已处理的样本个数
class preprocessing.RobustScaler(with_centering=True, with_scaling=True, copy=True):
通过 Interquartile Range (IQR) 标准化数据,即四分之一和四分之三分位点之间
属性:
center_:ndarray,中心点
scale_:ndarray,缩放比例
class preprocessing.KernelCenterer:
生成 kernel 矩阵,用于将 svm kernel 的数据标准化(参考资料不全)
以上几个标准化类的方法:
fit(X[, y]):根据数据 X 的值,设置标准化缩放的比例
transform(X[, y, copy]):用之前设置的比例标准化 X
fit_transform(X[, y]):根据 X 设置标准化缩放比例并标准化
partial_fit(X[, y]):累加性的计算缩放比例
inverse_transform(X[, copy]):将标准化后的数据转换成原数据比例
get_params([deep]):获取参数
set_params(**params):设置参数
数据归一化
preprocessing.normalize(X, norm='l2', axis=1, copy=True):将数据归一化到区间 [0, 1],norm 可取值 'l1'、'l2'、'max'。可用于稀疏数据 scipy.sparse
class preprocessing.Normalizer(norm='l2', copy=True):
数据归一化的类。可用于稀疏数据 scipy.sparse
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
数据二值化
preprocessing.binarize(X, threshold=0.0, copy=True):将数据转化为 0 和 1,其中小于等于 threshold 为 0,可用于稀疏数据 scipy.sparse
class preprocessing.Binarizer(threshold=0.0, copy=True):
二值化处理的类,可用于稀疏数据 scipy.sparse
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params),其中 fit 函数不会做任何操作
类别数据编码
数据的某些特征是文本,特征是无序的,比如国籍,但数字是有序的,所以不能直接用数字编码class preprocessing.OneHotEncoder(n_values='auto', categorical_features='all', dtype='float', sparse=True, handle_unknown='error'):
将具有多个类别的特征转换为多维二元特征,所有二元特征互斥,当某个二元特征为 1 时,表示取某个类别
参数:
n_values:处理的类别个数,可以为‘auto’,int 或者 int数组
categorical_features:被当作类别来处理的特征,可以为“all”或者下标数组指定或者mask数组指定
属性:
active_features_:ndarray,实际处理的类别数
feature_indices_:ndarray,第 i 个原特征在转换后的特征中的下标在 feature_indices_[i] 和 feature_indices_[i+1] 之间
n_values_:ndarray,每维的类别数
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
class preprocessing.LabelBinarizer(neg_label=0, pos_label=1, sparse_output=False):
和 OneHotEncoder 类似,将类别特征转换为多维二元特征,并将每个特征扩展成用一维表示
属性:
classes:ndarry,所有类别的值
y_type_:str
multilabel_:bool
sparse_input_:bool
indicator_matrix_:str
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、inverse_transform(y)、get_params([deep])、set_params(**params)
preprocessing.label_binarize(y, classes, neg_label=0, pos_label=1, sparse_output=False):
LabelBinarizer 类对应的处理函数
class preprocessing.LabelEncoder:
将类别特征标记为 0 到 n_classes - 1 的数
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、inverse_transform(y)、get_params([deep])、set_params(**params)
class preprocessing.MultiLabelBinarizer(classes=None, sparse_output=False):
和 LabelBinarizer 类似
feature_extraction.DictVectorizer类
patsy包
数据缺失
class preprocessing.Imputer(missing_values='NaN', strategy='mean', axis=0, verbose=0, copy=True):参数:
missing_values:int 或者 “NaN”,对np.nan的值用 "NaN"
strategy:"mean"、"median"、"most_frequent"
属性:
statistics_:ndarray,当axis==0时,取每列填补时用的值
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
生成多项式数据
可以将数据多项式结合生成多维特征,比如 [a, b] 的二次多项式特征为 [1, a, b, a^2, ab, b^2]class preprocessing.PolynomialFeatures(degree=2, interaction_only=False, include_bias=True):
参数:
degree:int,多项式次数
interaction_only:boolean,是否只产生交叉相乘的特征
include_bias:boolean,是否包含偏移列,即全为 1 的列
属性:
powers_:ndarray,二维数组。powers_[i, j] 表示第 i 维输出中包含的第 j 维输入的次数
n_input_features_:int,输入维数
n_output_features_:int,输出维数
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
增加伪特征
preprocessing.add_dummy_feature(X, value=1.0):在 X 的第一列插入值为 value 的列
自定义数据转换
可以使用自定义的 python 函数来转换数据class preprocessing.FunctionTransformer(func=None, validate=True, accept_sparse=False, pass_y=False):
方法:fit(X[, y])、transform(X[, y, copy])、fit_transform(X[, y])、get_params([deep])、set_params(**params)
参考资料
User Guide:http://scikit-learn.org/stable/modules/preprocessing.htmlAPI:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.preprocessing
相关文章推荐
- webservice配置
- 【MySQL】MySQL 5.7+ 版本的初始化
- Github - 访问慢的解决方法
- 背包问题中的01背包和完全背包
- Android - Fragments
- JAVA String类
- hihocode #1036 : Trie图
- 1-Nginx 编译安装
- 微软给蓝屏死机画面加了个二维码
- 天池新人实战赛----阿里移动推荐算法大赛(离线赛与平台赛)
- 批量更新时更新分布式ID
- pageX-layerX-clientX-offsetX的区别
- xml文件解析(一)
- iOS开发:MJExtension的简单使用
- iOS网络编程1--简介
- 移动端前端UI库—Frozen UI、WeUI、SUI Mobile
- Java中的int和Integer
- 16进制颜色表
- 消息队列中点对点与发布订阅区别
- UML常用图的几种关系的总结