当前位置: 首页 > news >正文

打卡第二十四天

 pipeline管道知识回顾:1.转化器和估计器的概念

2.管道工程

3.ColumnTransformer和Pipeline类

作业:整理下全部逻辑的先后顺序,看看能不能制作出适合所有机器学习的通用pipeline

数据预处理

数据预处理是机器学习pipeline中的关键步骤。它包括数据清洗、特征选择、特征缩放等操作。数据清洗可以处理缺失值、异常值和重复数据。特征选择通过选择最相关的特征来减少维度,提高模型性能。特征缩放如标准化或归一化,确保不同特征的数值范围一致。

from sklearn.preprocessing import StandardScaler
from sklearn.feature_selection import SelectKBest, f_classif# 数据清洗
data = data.dropna()# 特征选择
selector = SelectKBest(f_classif, k=10)
X_new = selector.fit_transform(X, y)# 特征缩放
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X_new)

模型选择与训练

选择合适的模型是pipeline的核心。根据任务类型(分类、回归、聚类等)选择不同的模型。训练模型时,使用交叉验证来评估模型的性能,避免过拟合。

from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier# 模型选择
model = RandomForestClassifier()# 交叉验证
scores = cross_val_score(model, X_scaled, y, cv=5)
print("Cross-validation scores:", scores)

超参数调优

超参数调优可以显著提高模型性能。使用网格搜索或随机搜索来找到最佳的超参数组合。

from sklearn.model_selection import GridSearchCV# 超参数调优
param_grid = {'n_estimators': [10, 50, 100],'max_depth': [None, 10, 20]
}
grid_search = GridSearchCV(model, param_grid, cv=5)
grid_search.fit(X_scaled, y)
print("Best parameters:", grid_search.best_params_)

模型评估

模型评估是pipeline的最后一步。使用不同的评估指标(如准确率、召回率、F1分数等)来评估模型的性能。

from sklearn.metrics import classification_report# 模型评估
y_pred = grid_search.predict(X_scaled)
print(classification_report(y, y_pred))

自动化与部署

将整个pipeline自动化,并使用工具如MLflow或Airflow进行管理和部署。自动化pipeline可以确保每次运行的一致性,并方便在生产环境中部署。

import mlflow# 自动化与部署
with mlflow.start_run():mlflow.log_params(grid_search.best_params_)mlflow.log_metrics({"accuracy": scores.mean()})mlflow.sklearn.log_model(grid_search, "model")

通过以上步骤,可以构建一个适合所有机器学习任务的通用pipeline,确保数据处理的标准化、模型选择的灵活性、超参数调优的自动化以及模型评估的全面性。

@浙大疏锦行

http://www.xdnf.cn/news/571213.html

相关文章:

  • Swagger在java的运用
  • PostgreSQL 日常维护
  • Elasticsearch常用命令
  • 宁夏建设工程专业技术职称评审条件
  • 嵌入式Linux:移植使用scp指令
  • Java多线程深度解析:从核心机制到高阶实战
  • upload-labs通关笔记-第16关 文件上传之exif_imagetype绕过(图片马)
  • springcloud集成seata报错Error creating bean with name ‘globalTransactionScanner‘
  • 解决RedisTemplate的json反序列泛型丢失问题
  • SpringAI开发SSE传输协议的MCP Server
  • 安卓开发用到的设计模式(1)创建型模式
  • OpenCv高阶(十四)——LBPH人脸识别
  • 如何用 Qwen1.5-7B-Chat 模型打造高效轻量的 Python 智能助手(详细实操指南)
  • Windows在PowerShell或CMD运行 curl 命令报错 解决办法 (zx)
  • 如何支持Enhanced RTMP H.265(HEVC)
  • 蓝耘Ubantu服务器测试最新 PP-StructureV3 教程
  • linux 查看java的安装路径
  • Java面试问题基础篇
  • Wireshark 抓包工具使用
  • Visual Studio Code插件离线安装指南:从市场获取并手动部署
  • Android Framework学习八:SystemServer及startService原理
  • 鸿蒙开发——9.wrapBuilder与@BuilderParam对比解析
  • Oracle 11g post PSU Oct18 设置ssl连接(使用jks)
  • 拉普拉斯高斯(LoG)滤波器掩模的注意事项
  • 计及可再生能源不确定性的经济优化调度方法
  • AI与IT从业者的关系更似“进化催化剂“而非“职业终结者“
  • 太阳能电池IV测试设备AAA型AMG1.5太阳光模拟器
  • 道可云人工智能每日资讯|浙江省人民政府印发《关于支持人工智能创新发展的若干措施》
  • [特殊字符] 遇见Flask
  • 【HTML-4】HTML段落标签:构建内容结构的基础