sklearn之Pipeline 估计器
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 估计器相关推荐
- sklearn之pipeline:sklearn.pipeline函数使用及其参数解释之详细攻略
sklearn之pipeline:sklearn.pipeline函数使用及其参数解释之详细攻略 目录 sklearn.pipeline函数使用及其参数解释 sklearn.pipeline函数使用及 ...
- python pipline_python中sklearn的pipeline模块实例详解
最近在看<深度学习:基于Keras的Python实践(魏贞原)>这本书,书中8.3创建了一个Scikit-Learn的Pipeline,首先标准化数据集,然后创建和评估基线神经网络模型,代 ...
- sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系、使用技巧、案例应用之详细攻略
sklearn之pipeline:pipeline函数/make_pipeline函数的简介及其区别联系.使用技巧.案例应用之详细攻略 目录 sklearn.pipeline函数简介 1.Why pi ...
- sklearn使用pipeline、ParameterGrid以及GridSearchCV进行超参数调优
model_selection.GridSearchCV model_selection.ParameterGrid pipeline.Pipeline 模型中的参数会影响模型的表现,我们可以对参数的 ...
- sklearn之pipeline:pipeline的简介、使用技巧、案例应用之详细攻略
sklearn之pipeline:pipeline的简介.使用技巧.案例应用之详细攻略 目录 sklearn.pipeline函数简介 1.Why pipeline管道机制? 2.Pipeline函数 ...
- 【机器学习】分类算法-sklearn转换器和估计器
目标 知道sklearn的转换器和估计器流程 转换器 想一下之前做的特征工程的步骤? 实例化 (实例化的是一个转换器类(Transformer)) 调用fit_transform(对于文档建立分类词频 ...
- sklearn 机器学习 Pipeline 模板
文章目录 1. 导入工具包 2. 读取数据 3. 数字特征.文字特征分离 4. 数据处理Pipeline 5. 尝试不同的模型 6. 参数搜索 7. 特征重要性筛选 8. 最终完整Pipeline 使 ...
- sklearn数据集与估计器
sklearn数据集与估计器 1 sklearn数据集 (1)数据来源:大多数以文件的形式 (csv文件..), 因为mysql有性能瓶颈.读取速度遭到限制,数据大的时候很费时间 (2)读取数据的工 ...
- 【Python-ML】SKlearn库Pipeline工作流和K折交叉验证
# -*- coding: utf-8 -*- ''' Created on 2018年1月18日 @author: Jason.F @summary: Pipeline,流水线工作流,串联模型拟合. ...
最新文章
- 2020 年最全 Python 面试题汇总 (五)
- 7-3 jmu-Java-06异常-03-throw与throws (10 分)
- REST framework 权限管理源码分析
- 框架简述 带你认识 Mybatis
- 946. Validate Stack Sequences验证栈序列
- 解决gilde加载圆角和CenterCrop冲突的问题
- 深入学习java的困惑:3年开发,下一步学习的方向以及要做什么?
- 【Java:JDBC+MySQL实现学生信息管理系统】
- 四层交换机实现负载均衡
- 【魔域口袋版】一键端+一键配置器+架设教程+GM工具
- IP协议详解之头部结构
- 新手如何成为一名黑客
- 中科呐喊WiFi热点广告机APP使用教程(安卓)
- SRS4.0源码分析-序言
- 【归并排序】基础代码
- linux下安装php并配置运行环境
- Spring-Messaging远程代码执行漏洞复现(CVE-2018-1270)
- 魔众文库系统 v2.5.0 批量上传,支持腾讯万象文档,重复检测
- 转-用Driver Studio工具包开发WDM型的USB设备驱动程序
- XP定时自动开机/关机/启动