采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
特征有 x1,x2,x3,x4,x5,其中x1,x2需要做标准化处理,x3,x4,x5是要做One-hot-encoder。
这种情况下代码如何做?用Pipeline管道呢?
很好的问题。由于这个问题主要讲解机器学习算法,所以对于特征预处理没有进行特别讲解,尤其是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
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.4k 19
3.4k 17
2.9k 15
1.6k 15
1.4k 14