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

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")

@浙大疏锦行

http://www.cnnetsun.cn/news/11652.html

相关文章:

  • OpenCore Legacy Patcher:让老旧Mac设备重获新生的终极指南
  • 2025轻量嵌入革命:EmbeddingGemma如何重新定义边缘智能门槛
  • AI写作查重工具盘点:主流平台对比及降重全流程
  • 3步解决ComfyUI Florence2模型加载失败问题:从新手到专家的完整指南
  • 抖音评论采集完全指南:零基础获取海量用户反馈数据
  • SketchUp STL插件终极指南:从3D建模到实体打印的完整流程
  • 如何快速掌握Figma中文插件:设计师的终极本地化解决方案
  • 炉石传说自动化脚本:5大核心问题解决方案全解析
  • 3步解锁M1/M2/M3 Mac新玩法:PlayCover安装iOS应用终极指南
  • 数据驱动时代:企业数字化转型的核心路径与实践策略
  • Wan2.2-T2V-A14B在艺术展览数字内容创作中的尝试
  • N_m3u8DL-CLI-SimpleG高效实战:专业级M3U8视频下载解决方案
  • 大数据爬虫可视化一线城市二手房价格分析预测系统的设计与分析
  • DREAMVFIA WebScraper SDK - 企业级Web抓取开发套件项目开源完整代码数据包
  • IpaDownloadTool:iOS应用分发的终极解决方案
  • YimMenu DLL注入终极指南:从零基础到精通掌握
  • GEO 优化是新概念割韭菜,还是 AI 搜索时代的必修课?——从“概念辨析”到“实战范围”的完整拆解
  • 网盘直链解析工具:解锁高速下载新体验
  • 大模型预训练与微调全攻略,从“通才“到“专家“的技术蜕变
  • Java全栈工程师面试实录:从技术细节到项目实战
  • 如何高效下载百度网盘资源:pan-baidu-download完整使用指南
  • GEO优化(生成式引擎搜索)
  • Blender 3MF插件:从入门到精通的场景化指南
  • 揭秘VSCode远程调试量子计算应用:5个你必须知道的关键步骤
  • AI元人文构想:为价值安家,让优化有度
  • Wan2.2-T2V-A14B如何确保生成人物不出现畸形肢体
  • Wan2.2-T2V-A14B模型的显存占用与批量生成策略
  • Blender与虚幻引擎的无缝桥梁:解密PSK/PSA插件核心技术
  • AMD Ryzen处理器高级调试实战:SMUDebugTool深度配置指南
  • Wan2.2-T2V-A14B与传统AE模板相比的优势与局限