Python 如何使用scikit learn pipeline和transformers在不同列上进行多个数据转换
我有一些虚拟数据,为了简单起见,其中有2个特征列和1个目标变量Python 如何使用scikit learn pipeline和transformers在不同列上进行多个数据转换,python,scikit-learn,Python,Scikit Learn,我有一些虚拟数据,为了简单起见,其中有2个特征列和1个目标变量 l = [1.0,'category1',1] m = [5.0,'category2',0] n = [15.0,'category2',1] import pandas as pd df = pd.DataFrame([l,m,n], columns = ['feature1','feature2','target']) df.head() 现在我想在feature1上应用StandardScaler(),在feature2
l = [1.0,'category1',1]
m = [5.0,'category2',0]
n = [15.0,'category2',1]
import pandas as pd
df = pd.DataFrame([l,m,n], columns = ['feature1','feature2','target'])
df.head()
现在我想在feature1
上应用StandardScaler()
,在feature2
上应用onehotcodeding
。在我完成这两个步骤之后,我想使用scikit学习分类器训练一个模型。因此,我在培训过程中采取的步骤如下-
管道
对象保存到磁盘管道
对象feature1、feature2等,。。。。功能n
。我想使用scikit学习管道在不同的列上进行数据转换,我还想保存并重新加载这个管道
我知道我们可以将数据作为一系列转换器
步骤传递到管道,但我不知道如何在不同的列上实现不同的转换
注意-在某些情况下,我希望在多个列上应用相同的转换器。例如,StandardScaler()
可用于feature1
和feature100
(假设两列都是数字)
如何使用sckit学习管道实现这一点?ColumnTransformer
。搜索相关问题,并查看文档。