文件的拆分和使用
知识点回顾
- 规范的文件命名
- 规范的文件夹管理
- 机器学习项目的拆分
- 编码格式和类型注解
作业:
day31 data.py
# -*- coding: utf-8 -*-
import sys
import io
# 设置标准输出为 UTF-8 编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
import pandas as pd
def load_data(file_path: str) -> pd.DataFrame:
"""加载数据文件
Args:
file_path: 数据文件路径
Returns:
加载的数据框
"""
return pd.read_csv(file_path)
if __name__ == "__main__":
# 测试代码
data = load_data("day31 文件的拆分和使用/data/raw/heart.csv")
print("数据读取完成!")
day31 文件的拆分和使用\src\data\preprocessing.py
# -*- coding: utf-8 -*-
import sys
import io
import os
# 设置标准输出为 UTF-8 编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
import pandas as pd
import numpy as np
from typing import Tuple, Dict
def load_data(file_path: str) -> pd.DataFrame:
"""加载数据文件
Args:
file_path: 数据文件路径
Returns:
加载的数据框
"""
return pd.read_csv(file_path)
# 仅以处理缺失值为例
def handle_missing_values(data: pd.DataFrame) -> pd.DataFrame:
"""处理缺失值
Args:
data: 包含缺失值的数据框
Returns:
处理后的数据框
"""
data_clean = data.copy()
continuous_features = data.select_dtypes(include=['int64', 'float64']).columns.tolist()
for feature in continuous_features:
mode_value = data[feature].mode()[0]
data_clean[feature].fillna(mode_value, inplace=True)
return data_clean
if __name__ == "__main__":
# 测试代码
data = load_data("day31 文件的拆分和使用/data/raw/heart.csv")
# data_encoded, mappings = encode_categorical_features(data)
data_clean = handle_missing_values(data)
print("数据预处理完成!")
输出
data_clean[feature].fillna(mode_value, inplace=True)
训练耗时: 0.3986 秒
分类报告:
precision recall f1-score support
0 0.83 0.83 0.83 29
1 0.84 0.84 0.84 32
accuracy 0.84 61
macro avg 0.84 0.84 0.84 61
weighted avg 0.84 0.84 0.84 61
混淆矩阵:
[[24 5]
[ 5 27]]
模型已保存至: day31 文件的拆分和使用/models/random_forest_model.joblib
1822

被折叠的 条评论
为什么被折叠?



