网站开发 跨平台开发技术长沙做网站公众微信号

张小明 2026/1/19 20:29:28
网站开发 跨平台开发技术,长沙做网站公众微信号,专业网络推广公司,济南网站建设方案详细浙大疏锦行 #x1f4d8; Day 23 实战作业#xff1a;机器学习工程化 —— Pipeline 管道流 1. 作业综述 核心目标#xff1a; 本作业旨在将机器学习工作流从“手动脚本”升级为“工业级管道”。我们将利用 sklearn.pipeline 模块#xff0c;将数据清洗#xff08;缺失…浙大疏锦行 Day 23 实战作业机器学习工程化 —— Pipeline 管道流1. 作业综述核心目标本作业旨在将机器学习工作流从“手动脚本”升级为“工业级管道”。我们将利用sklearn.pipeline模块将数据清洗缺失值填充、特征处理编码、标准化与模型训练封装为一个原子对象。为什么要使用 Pipeline在之前的作业中我们在数据预处理时往往需要手动执行fillna-map/get_dummies-StandardScaler。这种分散的操作在实际工程中存在巨大隐患数据泄露 (Data Leakage)如果在整个数据集上做标准化再切分测试集的信息就泄露到了训练集中。Pipeline 能确保预处理参数如均值、方差只从训练集学习并正确应用到测试集。代码复用性差针对新数据需要重新写一遍清洗逻辑。Pipeline 可以直接保存并复用。调参困难无法在一个搜索空间内同时调整预处理参数如 PCA 维度和模型参数如 树的数量。本作业关键技术点Pipeline: 串联处理步骤。ColumnTransformer: 针对不同列数值/分类应用不同的处理逻辑。SimpleImputer,OrdinalEncoder,OneHotEncoder: 标准预处理组件的使用。步骤 1数据加载与预处理规划任务描述加载信贷数据集。不进行任何手动预处理如手动 fillna 或 map直接划分X XX和y yy。识别出哪些列是数值型、哪些是有序分类、哪些是无序分类为构建管道做准备。importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_split# 1. 加载数据datapd.read_csv(rF:\Training_camp\test\Credit_Data.csv)# 2. 分离特征和标签 (直接使用原始数据)ydata[Credit Default]Xdata.drop([Credit Default],axis1)# 3. 划分数据集 (在预处理之前划分这是Pipeline的一大优势)X_train,X_test,y_train,y_testtrain_test_split(X,y,test_size0.2,random_state42)print(f数据划分完成训练集:{X_train.shape}, 测试集:{X_test.shape})# 4. 自动识别列类型 (为 Pipeline 做准备)# 连续数值特征numeric_featuresX.select_dtypes(exclude[object]).columns.tolist()# 离散分类特征 (需要进一步区分有序和无序这里先统称为分类)categorical_featuresX.select_dtypes(include[object]).columns.tolist()print(f数值特征:{len(numeric_features)}个)print(f分类特征:{len(categorical_features)}个)数据划分完成训练集: (6000, 17), 测试集: (1500, 17) 数值特征: 13 个 分类特征: 4 个步骤 2构建处理组件 (Transformers)核心概念Pipeline 就像一条汽车组装线我们需要先定义好每个环节的“机械臂”有序特征填充缺失值 -OrdinalEncoder(编码为 1, 2, 3)无序特征填充缺失值 -OneHotEncoder(独热编码)连续特征填充缺失值 -StandardScaler(标准化)任务使用Pipeline类分别封装这三类特征的处理逻辑。fromsklearn.pipelineimportPipelinefromsklearn.imputeimportSimpleImputerfromsklearn.preprocessingimportStandardScaler,OneHotEncoder,OrdinalEncoderfromsklearn.composeimportColumnTransformer# --- 1. 定义 有序特征 处理流 ---# 必须手动指定顺序否则模型不知道大小关系ordinal_cols[Home Ownership,Years in current job,Term]ordinal_categories[[Own Home,Rent,Have Mortgage,Home Mortgage],[ 1 year,1 year,2 years,3 years,4 years,5 years,6 years,7 years,8 years,9 years,10 years],[Short Term,Long Term]]ordinal_transformerPipeline(steps[(imputer,SimpleImputer(strategymost_frequent)),# 众数填补(encoder,OrdinalEncoder(categoriesordinal_categories,handle_unknownuse_encoded_value,unknown_value-1))])# --- 2. 定义 无序特征 处理流 ---nominal_cols[Purpose]nominal_transformerPipeline(steps[(imputer,SimpleImputer(strategymost_frequent)),(encoder,OneHotEncoder(handle_unknownignore,sparse_outputFalse))# 独热编码])# --- 3. 定义 连续特征 处理流 ---# 排除掉上面用过的列剩下的就是连续特征continuous_cols[colforcolinX.columnsifcolnotinordinal_colsnominal_cols]continuous_transformerPipeline(steps[(imputer,SimpleImputer(strategymedian)),# 中位数填补(scaler,StandardScaler())# 标准化 (这对逻辑回归/SVM等很重要对树模型影响较小但无害)])# --- 4. 组装成一个大的处理器 (ColumnTransformer) ---# 它的作用是把数据按列劈开分别扔给上面定义好的三个处理器最后再拼起来preprocessorColumnTransformer(transformers[(num,continuous_transformer,continuous_cols),(ord,ordinal_transformer,ordinal_cols),(nom,nominal_transformer,nominal_cols)],remainderpassthrough# 其他未指定的列保持原样)print(✅ 预处理组件构建完成)✅ 预处理组件构建完成步骤 3组装总流水线与模型训练任务描述将preprocessor(数据处理) 和classifier(分类模型) 串联成最终的Pipeline对象。之后我们只需要对这个 Pipeline 对象调用.fit()它就会自动完成所有清洗、转换和训练工作。fromsklearn.ensembleimportRandomForestClassifierfromsklearn.metricsimportclassification_reportimporttime# 1. 组装最终管道# 逻辑原始数据 - preprocessor (清洗编码标准) - classifier (随机森林)full_pipelinePipeline(steps[(preprocessor,preprocessor),(model,RandomForestClassifier(random_state42))])# 2. 训练 (Fit)print( 开始训练 Pipeline...)start_timetime.time()# 注意这里直接传入原始的 X_train管道会自动处理一切full_pipeline.fit(X_train,y_train)# 3. 预测 (Predict)# 注意直接传入原始的 X_test管道会自动 transform 之后再预测y_predfull_pipeline.predict(X_test)end_timetime.time()print(f✅ 训练完成耗时:{end_time-start_time:.4f}秒)# 4. 评估print(\n--- 分类报告 ---)print(classification_report(y_test,y_pred)) 开始训练 Pipeline... ✅ 训练完成耗时: 1.5297 秒 --- 分类报告 --- precision recall f1-score support 0 0.76 0.97 0.85 1059 1 0.77 0.28 0.41 441 accuracy 0.76 1500 macro avg 0.77 0.62 0.63 1500 weighted avg 0.77 0.76 0.72 1500 Day 23 总结工程化的力量通过今天的实战我们将原本分散、混乱的数据处理代码重构为了一个优雅的Pipeline对象。Pipeline 的核心优势封装性 (Encapsulation)full_pipeline.fit(X, y)一行代码搞定所有不用担心漏掉哪一步预处理。安全性 (Safety)自动在训练集上计算均值/方差并应用到测试集严防数据泄露。可移植性 (Portability)这个full_pipeline对象可以直接保存 (Pickle)以后来了新数据加载出来直接.predict()即可无需重写清洗逻辑。这是从“写作业”迈向“写项目”的重要一步
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站的运营模式代做网站的公司有哪些

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

张小明 2026/1/17 21:15:34 网站建设

自己做网站用花钱吗中建官网

如何3分钟完成加密音频格式转换?全网最全解密工具使用教程 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: h…

张小明 2026/1/17 21:15:34 网站建设

彩票网站模板源码不愁销路的小工厂项目

在智慧交通体系加速建设的当下,高速公路的管理正从静态、被动响应,转向动态、主动干预。然而,传统固定探头存在视野盲区、难以快速机动部署的固有缺陷,尤其在应对突发事故、节假日大流量或恶劣天气时,难以提供全局、实…

张小明 2026/1/17 21:15:32 网站建设

网站升级页面连接设置做ppt常用网站

在数字化转型深入发展的今天,企业AI应用已进入“深水区”。作为技术人员,我们不仅需要关注技术实现,更要理解业务需求,把握落地节奏。本文将从实战角度,分享企业AI智能体的完整开发流程。一、智能体类型选择与架构设计…

张小明 2026/1/17 21:15:32 网站建设

设计网站推荐视频wordpress套cf速度怎么样

在移动设备上部署完整的开发环境正成为趋势,Termux作为Android上功能强大的终端工具,为开发者提供了前所未有的便利。然而,随着功能扩展而来的安全风险往往被忽视。本文将带你构建完整的Termux安全防护体系,从攻击链分析到实战配置…

张小明 2026/1/17 21:15:36 网站建设

手机网站生成app开淘宝店和做网站有什么区别

在远程协作成为工作新常态的今天,Deskreen隐私保护功能为你提供了一个安全的数字屏障。当你在进行屏幕共享时,是否曾担心过敏感信息的意外泄露?Deskreen的隐私保护机制正是为了解决这一痛点而生,让你在分享屏幕的同时保持对隐私的…

张小明 2026/1/17 21:15:37 网站建设