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,已处理的样本个数,调用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.html
API:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.preprocessing

Scikit-Learn模块学习笔记——数据预处理模块preprocessing的更多相关文章

  1. scikit-learn模块学习笔记(数据预处理模块preprocessing)

    本篇文章主要简单介绍sklearn中的数据预处理preprocessing模块,它可以对数据进行标准化.preprocessing 模块提供了数据预处理函数和预处理类,预处理类主要是为了方便添加到pi ...

  2. Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)

    所谓学习问题,是指观察由n个样本组成的集合,并根据这些数据来预测未知数据的性质. 学习任务(一个二分类问题): 区分一个普通的互联网检索Query是否具有某个垂直领域的意图.假设现在有一个O2O领域的 ...

  3. 莫烦python教程学习笔记——数据预处理之normalization

    # View more python learning tutorial on my Youtube and Youku channel!!! # Youtube video tutorial: ht ...

  4. Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html

    Python3学习笔记(urllib模块的使用)   1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None,  ...

  5. Python 日期时间处理模块学习笔记

    来自:标点符的<Python 日期时间处理模块学习笔记> Python的时间处理模块在日常的使用中用的不是非常的多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的 ...

  6. sklearn学习笔记(一)——数据预处理 sklearn.preprocessing

    https://blog.csdn.net/zhangyang10d/article/details/53418227 数据预处理 sklearn.preprocessing 标准化 (Standar ...

  7. Python 3之str类型、string模块学习笔记

    Windows 10家庭中文版,Python 3.6.4, Python 3.7官文: Text Sequence Type — str string — Common string operatio ...

  8. Webpack4 学习笔记二 CSS模块转换

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack 打包css模块 webpack是js模块打包器, 如果在入口文件引入css文件或其它的less.sass等文件,需要 ...

  9. python自动化测试学习笔记-5常用模块

    上一次学习了os模块,sys模块,json模块,random模块,string模块,time模块,hashlib模块,今天继续学习以下的常用模块: 1.datetime模块 2.pymysql模块(3 ...

随机推荐

  1. css笔记图

    1.css3选择器 2.css3动画 3.flex 4.自适应 5.边距图

  2. web基础

    1.认识webapp程序?     请求方式不同:基于事件触发------基于http协议下的http请求和http响应.点击百度一下-----发送了请求:不仅会携带问题,ip地址,主机号.请求是客户 ...

  3. jQuery原型方法each使用和源码分析

    jQuery.each方法是jQuery的核心工具方法之一,通用例遍方法,可用于例遍对象和数组.不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象.通常需要两个参数 ...

  4. Android SurfaceView的生命周期

    本文利用SurfaceView来实现视频的播放 本文地址:http://www.cnblogs.com/wuyudong/p/5851156.html,转载请注明源地址. 在main.xml布局文件添 ...

  5. 【读书笔记】iOS网络-测试与操纵网络流量

    一,观测网络流量. 观测网络流量的行为叫做嗅探或数据包分析. 1,嗅探硬件. 从iOS模拟器捕获数据包不需要做特别的硬件或网络配置.如果需要捕获这些数据包,那么可以使用嗅探软件来监听回送设备或是用于连 ...

  6. 【Android】自定义控件让TextView的drawableLeft与文本一起居中显示

    前言 TextView的drawableLeft.drawableRight和drawableTop是一个常用.好用的属性,可以在文本的上下左右放置一个图片,而不使用更加复杂布局就能达到,我也常常喜欢 ...

  7. 网络婚礼之AFNetWorking3.0

    目前使用人数最多的第三方网络库,没有之一.从开始的NSURLConnection到现在的NSURLSession,它都一直保持着与苹果的步调一致,而由它也衍生出大量的相关第三方网络功能库,不仅仅因为他 ...

  8. Android touch事件处理流程

    前面我们看了key事件的处理流程,相信大家对此已经有了新的认识,这篇文章我打算带领大家来看看稍微复杂些的touch 事件的处理流程.说它复杂是因为key事件本身就key down,up,long pr ...

  9. js简单解密(eval解密)

    今天看博客园文章,看到一篇比较好的文章. 今天又学会一招,可以对一些采用eval加密的js进行解密. 打开谷歌或者火狐浏览器,然后按 F12,接着把这代码复制进去, 最后,去掉开头 4 个字母 eva ...

  10. yii2 如何在页面底部加载css和js

    作者:白狼 出处:www.manks.top/article/yii2_load_js_css_in_end 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接 ...