【sklearn第四讲】数据集变换

机器学习训练营——机器学习爱好者的自由交流空间(qq群号:696721295)

scikit-learn提供了一个数据变换库,可以实现清洗、缩减、扩展或产生特征表示。类似其它估计量,这些都由具有fit方法的类表示。fit方法从训练集学习模型参数(例如均值和标准差),transform方法应用这个变换模型到未知数据上。而fit_transform方法可以更方便高效地同时建模和变换训练数据。

管道:链式估计量

Pipeline能够把多个估计量链成一个。当预处理数据存在一个固定的步骤顺序时,例如,特征选择、归一化、分类,它是有用的。Pipeline服务于两个目的:

  • 便利和打包

只需在你的数据上调用一次fit, predict, 就可以拟合整个估计过程。

  • 联合参数选择

你可以在pipeline里立即grid search所有估计量的参数。

除了最后一个,在pipeline里的所有估计量,都必须被变换(即,必须有一个transform方法),最后的估计量可以是任何类型的(transformer, classifier等)。

使用方法

使用一个(key, value)对列表创建pipeline, 在这里key是一个字符串,表示你想要的步骤名字,value是一个估计量对象。

这里写图片描述

工具函数make_pipeline是pipeline的快速创建法,它取的估计量数是可变的,返回一个pipeline, 自动填充名字。

这里写图片描述

一个pipeline的估计量作为列表存储在steps属性里。

扫描二维码关注公众号,回复: 1542301 查看本文章

这里写图片描述

作为一个字典存储在named_steps属性里。
这里写图片描述
使用<estimator>__<parameter>语法访问估计量的参数。
这里写图片描述

特征联合:组合的特征空间

FeatureUnion组合几个变换对象成为一个新的变换。一个FeatureUnion取一个变换对象列表。在拟合期间,每个对象被数据单独拟合。出于变换数据的目的,这些变换是并行的,它们输出的样本向量按端到端的方式连成一个更大的向量。FeatureUnion和Pipeline组合可以实现更复杂的模型。

使用方法

使用(key, value)对形式的列表创建一个FeatureUnion, key是变换名(一个字符串),value是一个估计量对象。
这里写图片描述
像pipeline一样,特征组合也有一个快速创建函数make_union, 它不需要明确命名成分。同样,使用set_params, 各个步骤也可以被替代,设置为None则可以忽略。
这里写图片描述

阅读更多精彩内容,请关注微信公众号:统计学习与大数据

猜你喜欢

转载自blog.csdn.net/wong2016/article/details/80628292