import pandas as pd
def load_heart_data(file_path: str) -> pd.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
打卡:@浙大疏锦行