news 2026/7/8 14:05:04

Scikit-learn Pipeline:构建可复用的 ML 流水线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Scikit-learn Pipeline:构建可复用的 ML 流水线

Scikit-learn Pipeline:构建可复用的 ML 流水线

1. Pipeline 基础

fromsklearn.pipelineimportPipelinefromsklearn.preprocessingimportStandardScalerfromsklearn.decompositionimportPCAfromsklearn.ensembleimportRandomForestClassifier# 创建流水线pipe=Pipeline([('scaler',StandardScaler()),('pca',PCA(n_components=10)),('clf',RandomForestClassifier(n_estimators=100))])# 训练pipe.fit(X_train,y_train)# 预测y_pred=pipe.predict(X_test)# 评分score=pipe.score(X_test,y_test)

2. ColumnTransformer

fromsklearn.composeimportColumnTransformerfromsklearn.preprocessingimportStandardScaler,OneHotEncoderfromsklearn.imputeimportSimpleImputer numeric_features=['age','income','score']categorical_features=['city','gender']preprocessor=ColumnTransformer([('num',Pipeline([('imputer',SimpleImputer(strategy='median')),('scaler',StandardScaler()),]),numeric_features),('cat',Pipeline([('imputer',SimpleImputer(strategy='most_frequent')),('encoder',OneHotEncoder(handle_unknown='ignore')),]),categorical_features),])# 完整流水线pipe=Pipeline([('preprocessor',preprocessor),('classifier',RandomForestClassifier())])

3. 自定义 Transformer

fromsklearn.baseimportBaseEstimator,TransformerMixinclassFeatureEngineer(BaseEstimator,TransformerMixin):def__init__(self,add_interaction=True):self.add_interaction=add_interactiondeffit(self,X,y=None):returnselfdeftransform(self,X):X=X.copy()X['price_per_sqft']=X['price']/X['area']ifself.add_interaction:X['age_income']=X['age']*X['income']returnX# 使用pipe=Pipeline([('feature_eng',FeatureEngineer()),('scaler',StandardScaler()),('clf',RandomForestClassifier())])

4. GridSearch + Pipeline

fromsklearn.model_selectionimportGridSearchCV param_grid={'pca__n_components':[5,10,15],'clf__n_estimators':[50,100,200],'clf__max_depth':[5,10,None],}grid=GridSearchCV(pipe,param_grid,cv=5,scoring='accuracy')grid.fit(X_train,y_train)print(f"最佳参数:{grid.best_params_}")

总结

组件作用
Pipeline串联处理步骤
ColumnTransformer按列分别处理
FeatureUnion并行特征提取
自定义 Transformer封装业务逻辑
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 14:04:19

直播带货,知识与销售并行

直播不仅是卖货,更是传递知识的舞台。我们邀请健康领域主播,一边讲解饮水知识,一边推荐适合的产品。在直播间,用户可以直接提问:“滤芯多久换一次?”“孩子适合哪种水?”主播即时回答&#xff0…

作者头像 李华
网站建设 2026/7/8 14:00:42

457. Java 反射 - 深度访问

文章目录457. Java 反射 - 深度访问1. 深度访问示例:修改私有字段2. 深度反射与 Java 模块系统3. 总结457. Java 反射 - 深度访问 到目前为止,我们看到的都是 安全的反射操作: 获取公共方法调用静态方法调用接口方法 这些方法没有真正突破…

作者头像 李华
网站建设 2026/7/8 13:56:21

高压隔离技术:ISOM8710与PIC32MZ的工业应用解析

1. 高压安全隔离技术概述在工业自动化、电力电子和医疗设备等领域,高压电路与低压控制系统的安全隔离是确保人员和设备安全的关键需求。ISOM8710作为TI(德州仪器)推出的高性能数字隔离器,与Microchip的PIC32MZ1024EFF144微控制器组…

作者头像 李华
网站建设 2026/7/8 13:52:31

萨科微slkor2026年7月6日“每日芯闻”。国际芯闻:

萨科微slkor2026年7月6日“每日芯闻”。国际芯闻:1、韩媒报道,三星电子DRAM继第一季度涨价90%,第二季度涨价60%之后,第三季度将再涨价20%。2、微软公司拟投资25亿美元及派遣 6000 名员工,设立新的人工智能实施部门。3、…

作者头像 李华