sklearn Pipelines实现

代码

# log(1 + x)
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
from sklearn.pipeline import Pipeline
# from sklearn.pipeline import FeatureUnionExt


# 新建计算缺失值的对象
step1 = ('Imputer',Imputer())

# 新建将部分特征矩阵进行定性特征编码的对象
step2_1 = ('OneHotEncoder',OneHotEncoder(sparse=False))
# 新建将部分特征矩阵进行对数函数转换的对象
step2_2 = ('Tolog',FunctionTransformer(log1p))
# 新建将部分特征矩阵进行二值化类的对象
step2_3 = ('ToBinary',Binarizer())

# 新建部分并行处理对象,返回值为每个并行工作的输出的合并
step2 = ('FeatureUnionExt',FeatureUnionExt(transformer_list=[step2_1,step2_2,step2_3],idx_list=[[0], [1, 2, 3], [4]]))

# 新建无量纲化对象
step3 = ('MinMaxScaler',MinMaxScaler())

# 新建卡方校验选择特征的对象
step4 = ('SelectKBest',SelectKBest(chi2,k=3))
# 新建PCA降维的对象
step5 = ('PCA',PCA(n_components=2))
# 新建逻辑回归的对象,其为待训练的模型作为流水线的最后一步
step6 = ('LogisticRegression',LogisticRegression(penalty='12'))

# 新建流水线处理对象
# 参数steps为需要流水线处理的对象列表,该列表为二元组列表,第一元为对象的名称,第二元为对象
pipeline = Pipeline(steps=[step1, step2, step3, step4, step5, step6])

一些参考

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值