Pipeline

Pipeline 将若干个估计器按顺序连在一起,比如

特征提取 -> 降维 -> 拟合 -> 预测

在整个 Pipeline 中,它的属性永远和最后一个估计器属性一样

  • 如果最后一个估计器是预测器,那么 Pipeline 是预测器

  • 如果最后一个估计器是转换器,那么 Pipeline 是转换器

pip作为转换器测试:

import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import MinMaxScalera=np.array([[1,2,3,4,5,6,np.NAN,5],[3,4,5,6,np.NAN,3,np.NAN,9]])
X=np.transpose(a)#转换
print(X)#impleImputer 起名叫 impute,MinMaxScaler起名叫 normalize。
pipp=Pipeline([("impute",SimpleImputer(missing_values=np.nan,strategy="mean")),("normalize",MinMaxScaler())])#因为这是转换器,所以pipp也是转换器
X_pro=pipp.fit_transform(X)print(X_pro)#单独尝试一下
aa=SimpleImputer(missing_values=np.nan,strategy="mean").fit_transform(X)
mms=MinMaxScaler().fit_transform(aa)print(mms)#结果和上面的是一样的

测试结果:

F:\开发工具\pythonProject\tools\venv\Scripts\python.exe F:/开发工具/pythonProject/tools/python的sklear学习/sklearn07.py
[[ 1.  3.][ 2.  4.][ 3.  5.][ 4.  6.][ 5. nan][ 6.  3.][nan nan][ 5.  9.]]
[[0.         0.        ][0.2        0.16666667][0.4        0.33333333][0.6        0.5       ][0.8        0.33333333][1.         0.        ][0.54285714 0.33333333][0.8        1.        ]]Process finished with exit code 0

FeatureUnion

如果我们想在一个节点同时运行几个估计器,我们可用 FeatureUnion

策略:

  • 对分类型变量:获取 -> 中位数填充 -> 独热编码

  • 对数值型变量:获取 -> 均值填充 -> 标准化

主要就是  transform  函数中,将输入的  DataFrame  X 根据属性名称来获取其值。

接下来建立一个流水线 full_pipe,它并联着两个流水线

categorical_pipe 处理分类型变量

DataFrameSelector 用来获取

SimpleImputer 用出现最多的值来填充 None

OneHotEncoder 来编码返回非稀疏矩阵

numeric_pipe 处理数值型变量

DataFrameSelector 用来获取

SimpleImputer 用均值来填充 NaN

normalize 来规范化数值

import pandas as pd
import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.pipeline import FeatureUnion
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import OneHotEncoder
from sklearn.base import BaseEstimator,TransformerMixinclass DataFrameSelector(BaseEstimator,TransformerMixin):def __init__(self,attribute_names):self.attribute_names=attribute_namesdef fit(self,X,y=None):return selfdef transform(self,X,y=None):return X[self.attribute_names].values#创建一个字典
fe={"height":[1.67,1.89,np.NAN,1.66,1.88,np.NAN],"weight":[56,78,92,np.NAN,78,92],"age":[26,34,18,34,25,27],"love":["apple","origine","piss","loss","good",None]
}
X=pd.DataFrame(fe)
categorical_feature=["love"]
numeric_feature=["height","age","weight"]categorical_pipe=Pipeline([("select",DataFrameSelector(categorical_feature)),("impute",SimpleImputer(missing_values=None,strategy="most_frequent")),("one_hot_encode",OneHotEncoder(sparse=False))
])numeric_pipe=Pipeline([("select",DataFrameSelector(numeric_feature)),("impute",SimpleImputer(missing_values=np.nan,strategy="mean")),("normalize",MinMaxScaler())
])full_pipe=FeatureUnion(transformer_list=[("numeric_pipe",numeric_pipe),("categorical_pipe",categorical_pipe)
])
x_pro=full_pipe.fit_transform(X)
print(x_pro)

测试结果:

F:\开发工具\pythonProject\tools\venv\Scripts\python.exe F:/开发工具/pythonProject/tools/python的sklear学习/sklearn08.py
[[0.04347826 0.5        0.         1.         0.         0.0.         0.        ][1.         1.         0.61111111 0.         0.         0.1.         0.        ][0.5        0.         1.         0.         0.         0.0.         1.        ][0.         1.         0.64444444 0.         0.         1.0.         0.        ][0.95652174 0.4375     0.61111111 0.         1.         0.0.         0.        ][0.5        0.5625     1.         1.         0.         0.0.         0.        ]]Process finished with exit code 0

sklearn之Pipeline 估计器相关推荐

  1. sklearn之pipeline:sklearn.pipeline函数使用及其参数解释之详细攻略

    sklearn之pipeline:sklearn.pipeline函数使用及其参数解释之详细攻略 目录 sklearn.pipeline函数使用及其参数解释 sklearn.pipeline函数使用及 ...

  2. python pipline_python中sklearn的pipeline模块实例详解

    最近在看<深度学习:基于Keras的Python实践(魏贞原)>这本书,书中8.3创建了一个Scikit-Learn的Pipeline,首先标准化数据集,然后创建和评估基线神经网络模型,代 ...

  3. sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系、使用技巧、案例应用之详细攻略

    sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系.使用技巧.案例应用之详细攻略 目录 sklearn.pipeline函数简介 1.Why pi ...

  4. sklearn使用pipeline、ParameterGrid以及GridSearchCV进行超参数调优

    model_selection.GridSearchCV model_selection.ParameterGrid pipeline.Pipeline 模型中的参数会影响模型的表现,我们可以对参数的 ...

  5. sklearn之pipeline:pipeline的简介、使用技巧、案例应用之详细攻略

    sklearn之pipeline:pipeline的简介.使用技巧.案例应用之详细攻略 目录 sklearn.pipeline函数简介 1.Why pipeline管道机制? 2.Pipeline函数 ...

  6. 【机器学习】分类算法-sklearn转换器和估计器

    目标 知道sklearn的转换器和估计器流程 转换器 想一下之前做的特征工程的步骤? 实例化 (实例化的是一个转换器类(Transformer)) 调用fit_transform(对于文档建立分类词频 ...

  7. sklearn 机器学习 Pipeline 模板

    文章目录 1. 导入工具包 2. 读取数据 3. 数字特征.文字特征分离 4. 数据处理Pipeline 5. 尝试不同的模型 6. 参数搜索 7. 特征重要性筛选 8. 最终完整Pipeline 使 ...

  8. sklearn数据集与估计器

    sklearn数据集与估计器 1 sklearn数据集 (1)数据来源:大多数以文件的形式  (csv文件..), 因为mysql有性能瓶颈.读取速度遭到限制,数据大的时候很费时间 (2)读取数据的工 ...

  9. 【Python-ML】SKlearn库Pipeline工作流和K折交叉验证

    # -*- coding: utf-8 -*- ''' Created on 2018年1月18日 @author: Jason.F @summary: Pipeline,流水线工作流,串联模型拟合. ...

最新文章

  1. 2020 年最全 Python 面试题汇总 (五)
  2. 7-3 jmu-Java-06异常-03-throw与throws (10 分)
  3. REST framework 权限管理源码分析
  4. 框架简述 带你认识 Mybatis
  5. 946. Validate Stack Sequences验证栈序列
  6. 解决gilde加载圆角和CenterCrop冲突的问题
  7. 深入学习java的困惑:3年开发,下一步学习的方向以及要做什么?
  8. 【Java:JDBC+MySQL实现学生信息管理系统】
  9. 四层交换机实现负载均衡
  10. 【魔域口袋版】一键端+一键配置器+架设教程+GM工具
  11. IP协议详解之头部结构
  12. 新手如何成为一名黑客
  13. 中科呐喊WiFi热点广告机APP使用教程(安卓)
  14. SRS4.0源码分析-序言
  15. 【归并排序】基础代码
  16. linux下安装php并配置运行环境
  17. Spring-Messaging远程代码执行漏洞复现(CVE-2018-1270)
  18. 魔众文库系统 v2.5.0 批量上传,支持腾讯万象文档,重复检测
  19. 转-用Driver Studio工具包开发WDM型的USB设备驱动程序
  20. XP定时自动开机/关机/启动

热门文章

  1. FatFs - Generic FAT Filesystem Module
  2. 架构的坑系列:重构过程中的过度设计
  3. 17.3.13--python编码问题
  4. Unity中使用多构造函数(转)
  5. Swift--集合类型 数组 字典 集合
  6. 纪念我2014.1.4 中国银行广东分行面试
  7. iPod Touch也将支持运行Android系统
  8. TextBoxWatermarkExtender扩展器与RequiredFieldValidator控件相冲突的解决方案
  9. jQuery实现字体变大和缩小
  10. 值得收藏的图片网站,设计素材不愁,还能承包你一年壁纸