news 2026/2/28 12:13:47

day35文件的规范拆分和写法@浙大疏锦行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day35文件的规范拆分和写法@浙大疏锦行

day35文件的规范拆分和写法@浙大疏锦行

文件目录

day35_文件的规范拆分和写法/
├── data/
│ └── raw/
│ └── heart.csv # 已替换为 heart.csv 数据集
├── models/ # 用于存放训练好的模型
├── notebook/
│ └── main.ipynb # 主程序 Notebook,演示了完整的调用流程
├── src/ # 源代码目录
│ ├── init.py
│ ├── data/
│ │ ├── init.py
│ │ └── preprocessing.py # 数据加载与预处理(针对 heart.csv 进行了适配)
│ ├── models/
│ │ ├── init.py
│ │ └── train.py # 模型训练、评估与保存逻辑
│ └── visualization/
│ ├── init.py
│ └── plots.py # 可视化绘图(SHAP图、混淆矩阵)
├── README.md # 项目说明文档
└── requirements.txt # 依赖库列表

项目运行

importsysimportos# 将项目根目录添加到系统路径sys.path.append(os.path.abspath(os.path.join(os.getcwd(),"..")))fromsrc.data.preprocessingimportload_data,encode_categorical_features,handle_missing_valuesfromsrc.models.trainimporttrain_model,evaluate_model,save_modelfromsrc.visualization.plotsimportplot_feature_importance_shap,plot_confusion_matrix,set_plot_stylefromsklearn.model_selectionimporttrain_test_split

1. 数据加载与预处理

# 加载数据data_path="../data/raw/heart.csv"data=load_data(data_path)print("原始数据形状:",data.shape)data.head()

# 特征编码data_encoded,_=encode_categorical_features(data)print("编码后数据形状:",data_encoded.shape)data_encoded.head()

编码后数据形状: (303, 24)

agesextrestbpscholfbsthalachexangoldpeakcatargetrestecg_0restecg_1restecg_2slope_0slope_1slope_2thal_0thal_1thal_2thal_3
0631145233115002.3011001000100
1371130250018703.5010101000010
2410130204017201.4011000010010
3561120236017800.8010100010010
4570120354016310.6010100010010

5 rows × 24 columns

# 处理缺失值data_clean=handle_missing_values(data_encoded)print("处理缺失值后数据形状:",data_clean.shape)

处理缺失值后数据形状: (303, 24)

2. 模型训练

# 准备训练数据X=data_clean.drop(['target'],axis=1)y=data_clean['target']X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)# 训练模型model=train_model(X_train,y_train)print("模型训练完成")

3. 模型评估

evaluate_model(model,X_test,y_test)

4. 可视化

importmatplotlib.pyplotasplt# 设置中文字体和样式(直接在 Notebook 中设置,避免样式名兼容问题)plt.style.use('ggplot')plt.rcParams['font.sans-serif']=['SimHei','Microsoft YaHei','Arial Unicode MS']plt.rcParams['axes.unicode_minus']=False# 绘制混淆矩阵plot_confusion_matrix(y_test,model.predict(X_test))

importmatplotlib.pyplotasplt# 再次设置中文字体,确保 SHAP 图中文字正常显示plt.style.use('ggplot')plt.rcParams['font.sans-serif']=['SimHei','Microsoft YaHei','Arial Unicode MS']plt.rcParams['axes.unicode_minus']=False# 绘制SHAP特征重要性plot_feature_importance_shap(model,X_test)

5. 保存模型

save_model(model,"../models/heart_disease_rf_model.joblib")

@浙大疏锦行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/20 2:36:28

Bypass Paywalls Clean终极指南:5分钟学会免费阅读付费内容

在当今数字内容付费时代,Bypass Paywalls Clean作为一款专业的Chrome浏览器内容解锁工具,为用户提供了突破各类付费墙的技术解决方案。这款网页访问优化工具通过智能技术手段,让用户能够免费阅读付费内容,满足多样化的信息获取需求…

作者头像 李华
网站建设 2026/2/22 4:51:36

Beyond Compare使用技巧深度解析:掌握文件对比工具的高级应用方法

面对Beyond Compare这款专业级文件对比工具的授权管理,许多用户都在探索更高效的使用方案。通过深入分析软件的功能特性,我们能够理解其技术架构,并开发出合理的使用策略。本文将采用"问题诊断→解决方案→效果验证"的三段式结构&a…

作者头像 李华
网站建设 2026/2/23 9:42:56

Zotero重复条目合并:3步解决文献库混乱难题

Zotero重复条目合并:3步解决文献库混乱难题 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 还在为文献库中大量的重复条目而头痛吗…

作者头像 李华
网站建设 2026/2/15 6:55:49

26、深入探索Linux Mint的MATE与KDE版本

深入探索Linux Mint的MATE与KDE版本 1. MATE版本的Linux Mint 在Linux Mint的MATE版本中,当应用程序打开和关闭时,它们会在屏幕底部的面板上相应地出现和消失。运行中的应用程序的管理方式与其他桌面环境类似,用户可以通过面板的右键菜单来最小化/最大化窗口以及关闭应用程…

作者头像 李华
网站建设 2026/2/20 21:07:23

Wan2.2-T2V-A14B能否生成带有品牌专属滤镜风格的统一视觉输出?

Wan2.2-T2V-A14B能否生成带有品牌专属滤镜风格的统一视觉输出? 在品牌内容竞争日益白热化的今天,一条视频是否“一眼就能认出是你的”,可能比画质清晰度更重要。消费者每天被成百上千条广告信息轰炸,真正能留下印象的,…

作者头像 李华
网站建设 2026/2/26 15:36:46

Docker Buildx Agent镜像优化终极指南(附生产环境最佳配置)

第一章:Docker Buildx Agent镜像优化概述在现代容器化开发与部署流程中,构建高效、轻量且安全的镜像是提升交付速度和系统稳定性的关键环节。Docker Buildx 作为 Docker 官方提供的高级镜像构建工具,支持多平台构建、并行缓存管理以及自定义构…

作者头像 李华