DAY31:文件的規范拆分和寫法
恩師@浙大疏錦行
?
知識點:
- 規范的文件命名
- 規范的文件夾管理
- 機器學習項目的拆分
- 編碼格式和類型注解
一、機器學習項目流程:
1、數據加載:從文件、數據庫、API 等獲取原始數據。
? ? - 命名參考:`load_data.py` 、`data_loader.py`
2、數據探索與可視化:了解數據特性,初期可用 Jupyter Notebook,成熟后固化繪圖函數。
? ? - 命名參考:`eda.py` 、`visualization_utils.py`
3、數據預處理:處理缺失值、異常值,進行標準化、歸一化、編碼等操作。
? ? - 命名參考:`preprocess.py` 、`data_cleaning.py` 、`data_transformation.py`
4、特征工程:創建新特征,選擇、優化現有特征。
? ? - 命名參考:`feature_engineering.py`
5、模型訓練:構建模型架構,設置超參數并訓練,保存模型。
? ? - 命名參考:`model.py` 、`train.py`
6、模型評估:用合適指標評估模型在測試集上的性能,生成報告。
? ? - 命名參考:`evaluate.py`
7、模型預測:用訓練好的模型對新數據預測。
? ? - 命名參考:`predict.py` 、`inference.py`
二、文件的組織
1、項目核心代碼組織:
src/:存放項目的核心代碼
src/data/:存放與數據相關的代碼
src/models/:關于模型的代碼
src/utils/:存放通用輔助代碼
2、配置文件管理
config/目錄
3、實驗與探索代碼
notebooks/或experiments/
4、項目產出物管理
data/:存放項目相關數據
models/:存放訓練好的模型
reports/或output/:存儲項目運行的報告文件/輸出文件
三、編碼格式和類型注解
1、編碼格式
(1)編碼聲明必須出現在文件的前兩行(通常是首行),否則會被忽略。
(2)如果編碼格式沒問題,可能是vscode的編碼格式不是utf-8,可以嘗試修改編碼格式。
(3)常見的編碼報錯是因為字符串編碼問題,可以嘗試顯式轉化,即讀取的時候轉化為utf-8編碼。
2、類型注解
def add(a: int, b: int) -> int:return a + bdef greet(name: str) -> None:print(f"Hello, {name}")
# 定義一個矩形類
class Rectangle:width: float # 矩形寬度(浮點數),類屬性的類型注解(不初始化值)height: float # 矩形高度(浮點數)def __init__(self, width: float, height: float):self.width = widthself.height = heightdef area(self) -> float:# 計算面積(寬度 × 高度)return self.width * self.height
?