python打卡day31

发布于:2025-06-16 ⋅ 阅读:(18) ⋅ 点赞:(0)

今日的示例代码包含2个部分

1.  notebook文件夹内的ipynb文件,介绍下今天的思路

2.  项目文件夹中其他部分:拆分后的信贷项目,学习下如何拆分的,未来你看到的很多大项目都是类似的拆分方法

知识点回顾

1.  规范的文件命名

2.  规范的文件夹管理

3.  机器学习项目的拆分

4.  编码格式和类型注解

作业:尝试针对之前的心脏病项目ipynb,将他按照今天的示例项目整理成规范的形式,思考下哪些部分可以未来复用。

@疏锦行

import pandas as pd

def load_heart_data(file_path: str) -> pd.DataFrame:
    """加载心脏病数据集
    Args:
        file_path: 数据文件路径
    Returns:
        包含心脏病数据的DataFrame
    """
    return pd.read_csv(file_path)
import pandas as pd
from sklearn.preprocessing import StandardScaler

def handle_missing_values(df: pd.DataFrame) -> pd.DataFrame:
    """处理缺失值(中位数填充数值型特征)"
    numeric_cols = df.select_dtypes(include=['float64', 'int64']).columns
    df[numeric_cols] = df[numeric_cols].fillna(df[numeric_cols].median())
    return df

def scale_features(df: pd.DataFrame) -> pd.DataFrame:
    """标准化特征(可复用的数值预处理逻辑)"
    scaler = StandardScaler()
    numeric_cols = df.select_dtypes(include=['float64', 'int64']).columns
    df[numeric_cols] = scaler.fit_transform(df[numeric_cols])
    return df
from sklearn.ensemble import RandomForestClassifier
import joblib

def train_heart_model(X_train, y_train, model_path: str):
    """训练心脏病预测模型"
    model = RandomForestClassifier(n_estimators=100, random_state=42)
    model.fit(X_train, y_train)
    joblib.dump(model, model_path)  # 保存模型
    return model
import matplotlib.pyplot as plt
import seaborn as sns

def plot_correlation_heatmap(df: pd.DataFrame):
    """绘制特征相关性热力图(通用可视化函数)"
    plt.figure(figsize=(12, 8))
    sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
    plt.title('Feature Correlation Heatmap')
    return plt


网站公告

今日签到

点亮在社区的每一天
去签到