第三十一天打卡
知识点回顾
- 规范的文件命名
- 规范的文件夹管理
- 机器学习项目的拆分
- 编码格式和类型注解
作业:尝试针对之前的心脏病项目ipynb,将他按照今天的示例项目整理成规范的形式,思考下哪些部分可以未来复用。
以下是将心脏病预测项目整理为规范结构的建议方案,并分析可复用部分:
-
规范化目录结构建议:
bash
复制
下载
heart-disease-prediction/ ├── data/ │ ├── raw/ # 原始数据 │ │ └── heart.csv │ └── processed/ # 处理后的数据 ├── notebooks/ # 原始/探索性notebook │ └── original_analysis.ipynb ├── src/ │ ├── config.py # 配置参数 │ ├── data_preprocessing.py │ ├── model.py │ ├── train.py │ ├── evaluate.py │ └── utils.py # 工具函数 ├── requirements.txt ├── README.md └── .gitignore
-
可复用组件分析:
a) 数据预处理模块 (data_preprocessing.py)
python
复制
下载
from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from pandas import DataFrame import pandas as pddef load_data(path: str) -> DataFrame:"""加载原始数据集"""return pd.read_csv(path)def preprocess_data(df: DataFrame, test_size: float = 0.2) -> tuple:"""数据预处理流水线包含特征工程、缺失值处理、数据标准化等"""# 原项目中的预处理逻辑X = df.drop('target', axis=1)y = df['target']# 标准化scaler = StandardScaler()X_scaled = scaler.fit_transform(X)return train_test_split(X_scaled, y, test_size=test_size, random_state=42)
b) 通用模型模块 (model.py)
python
复制
下载
from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import GridSearchCV from typing import Anydef build_model(param_grid: dict = None) -> Any:"""构建可配置的分类模型"""model = RandomForestClassifier(random_state=42)if param_grid:return GridSearchCV(model, param_grid, cv=5)return model
c) 评估模块 (evaluate.py)
python
复制
下载
from sklearn.metrics import classification_report, roc_auc_score import matplotlib.pyplot as plt from sklearn.metrics import plot_roc_curvedef generate_report(model, X_test, y_test) -> dict:"""生成评估报告"""y_pred = model.predict(X_test)return {'classification_report': classification_report(y_test, y_pred),'roc_auc': roc_auc_score(y_test, y_pred)}def plot_roc(model, X_test, y_test, save_path: str = None):"""绘制ROC曲线"""plot_roc_curve(model, X_test, y_test)if save_path:plt.savefig(save_path)plt.show()
-
可复用部分总结:
-
数据预处理流水线:可扩展到其他结构化数据分类任务
-
模型构建模块:通过参数配置支持不同算法
-
评估模块:通用分类评估指标和可视化
-
工具函数:数据分割策略、特征标准化方法
-
配置管理系统:参数集中管理方式
-
实验跟踪模式:可扩展添加MLflow等工具@浙大疏锦行