如何使用sklearn进行数据挖掘( 二 )


formation/20210521/347/354403.png alt= 如何使用sklearn进行数据挖掘
?整体并行处理有其缺陷,在一些场景下,我们只需要对特征矩阵的某些列进行转换,而不是所有列 。pipeline并没有提供相应的类,需要我们在FeatureUnion的基础上进行优化 。
?在本文提出的场景中,我们对特征矩阵的第1列(花的颜色)进行定性特征编码,对第2、3、4列进行对数函数转换,对第5列进行定量特征二值化处理 。使用FeatureUnionExt类进行部分并行处理的代码如下:
3 流水线处理?pipeline包提供了Pipeline类来进行流水线处理 。流水线上除最后一个工作以外,其他都要执行fit_transform方法,且上一个工作输出作为下一个工作的输入 。最后一个工作必须实现fit方法,输入为上一个工作的输出;但是不限定一定有transform方法,因为流水线的最后一个工作可能是训练!
?根据本文提出的场景,结合并行处理,构建完整的流水线的代码如下:
4 自动化调参?网格搜索为自动化调参的常见技术之一,grid_search包提供了自动化调参的工具,包括GridSearchCV类 。对组合好的对象进行训练以及调参的代码如下:
5 持久化externals.joblib包提供了dump和load方法来持久化和加载内存数据:

注意:组合和持久化都会涉及pickle技术,在sklearn的技术文档中有说明,将lambda定义的函数作为FunctionTransformer的自定义转换函数将不能pickle化 。
看完上述内容,你们对如何使用sklearn进行数据挖掘有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持 。

推荐阅读