2.2 部分并行处理
整体并行处理有其缺点,在一些场景下,我们只须要对特点矩阵的某些列进行转换,而不是所有列。pipeline并没有供给响应的类(仅OneHotEncoder类实现了该功能),须要我们在FeatureUnion的基本长进行优化:
View Code
在本文提出的场景中,我们对特点矩阵的第1列(花的色彩)进行定性特点编码,对第2、3、4列进行对数函数转换,对第5列进行定量特点二值化处理。应用FeatureUnionExt类进行部分并行处理的代码如下:
- from numpy import log1p
- from sklearn.preprocessing import OneHotEncoder
- from sklearn.preprocessing import FunctionTransformer
- from sklearn.preprocessing import Binarizer
- #新建将部分特点矩阵进行定性特点编码的对象
- step2_1 = ('OneHotEncoder', OneHotEncoder(sparse=False))
- #新建将部分特点矩阵进行对数函数转换的对象
- step2_2 = ('ToLog', FunctionTransformer(log1p))
- #新建将部分特点矩阵进行二值化类的对象
- step2_3 = ('ToBinary', Binarizer())
- #新建部分并行处理对象
- #参数transformer_list为须要并行处理的对象列表,该列表为二元组列表,第一元为对象的名称,第二元为对象
- #参数idx_list为响应的须要攫取的特点矩阵的列
- step2 = ('FeatureUnionExt', FeatureUnionExt(transformer_list=[step2_1, step2_2, step2_3], idx_list=[[0], [1, 2, 3], [4]]))
3 流水线处理
pipeline包供给了Pipeline类来进行流水线处理。流水线上除最后一个工作以外,其他都要履行fit_transform办法,且上一个工作输出作为下一?工作的输入。最后一个工作必须实现fit办法,输工资上一个工作的输出;然则不限制必定有transform办法,因为流水线的最后一个工作可能是练习!
根据本文提出的场景,结归并行处理,构建完全的流水线的代码如下:
- from numpy import log1p
- from sklearn.preprocessing import Imputer
- from sklearn.preprocessing import OneHotEncoder
- from sklearn.preprocessing import FunctionTransformer
- from sklearn.preprocessing import Binarizer
- from sklearn.preprocessing import MinMaxScaler
- from sklearn.feature_selection import SelectKBest
- from sklearn.feature_selection import chi2
- from sklearn.decomposition import PCA
- from sklearn.linear_model import LogisticRegression
推荐阅读
2017年架构师最重要的48个小时 | 8折倒计时 到了2013年,Google、Facebook以及若干其他公司开端雇用相对少量专善于这些技巧的研究人员。神经收集限制赞助辨认宣布在Facebook上的脸庞,辨认>>>详细阅读
本文标题:使用Sklearn进行数据挖掘
地址:http://www.17bianji.com/lsqh/38309.html
1/2 1