请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

特征的预处理方式有多个,如何同时处理?

特征有 x1,x2,x3,x4,x5,其中x1,x2需要做标准化处理,x3,x4,x5是要做One-hot-encoder。

这种情况下代码如何做?用Pipeline管道呢?

正在回答

1回答

liuyubobobo 2018-01-14 01:50:29

很好的问题。由于这个问题主要讲解机器学习算法,所以对于特征预处理没有进行特别讲解,尤其是one-hot-encoder根本没有进行提及。


一种方式是对于这种数据,封装自己的预处理类。具体过程也很简单:首先将整个数据拆成两张表,t1包括x1, x2两列的所有数据,t2包括x3,x4,x5三列的所有数据。之后,对t1做标准化处理,得到t1';t2做one-hot-encoder,得到t2'。最后t1'和t2'合并得到最终的数据结果即为对数据进行预处理的结果。


如果想使用scikit-learn的体系进行处理,此时不能只是用Pipeline,因为对这两类特征的处理是并行的关系,不是顺序的关系。还需要使用FeatureUnion。感兴趣的话可以在网上搜索一下相关使用方式。文档见这里:http://scikit-learn.org/stable/modules/generated/sklearn.pipeline.FeatureUnion.html

5 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信