数据科学训练笔记

1 项目结构

  1. 各种数据源获取数据
  2. 数据处理
  3. 储存
└── root # 根目录    
    ├─ data_pipeline.py #  数据处理的实际流程;如用notebook编程则是data_pipeline.ipynb    
	├─ data_source.py # 从各种数据源获取数据,整理成通用的数据格式    
	├─ data_save.py # 数据储存    
	├─ db.py # 与数据库进行交互的代码    
	├─ utils.py # 通用的函数,有可能被各文件引用;例如数据结构转化        
    └─ main.py # 主文件,调用所有函数/功能,执行代码流程    

简单数据计算

简单数据计算

└── data_cal # 根目录    
    ├─ data_process/* # 获取/处理数据的逻辑放在这里     
    ├─ data_cache/* # 临时数据文件/处理好的数据放在这里    
    ├─ db/* # 与数据库交互的代码    
    ├─ main.py # 启动文件,调用以上所有功能性代码,专注于数据处理流程编写;用notebook编程可以是main.ipynb    
    └─ requirements.txt # 注明项目运行需要哪些库    

传统机器学习项目

└──ml_project # 根目录    
    ├── config/* # 配置文件    
    ├── data/* # 与数据有关的代码都放在这里    
    │   ├── data_pipeline/* # 对数据处理的代码     
    │   ├── feat_construct/* # 对处理好的数据构造特征     
    ├── data_cache/* # 处理好的数据/临时的数据文件放在这个路径下    
    ├── db/* # 数据库交互逻辑    
    ├── log/* # 存放日志以及定义logger类    
    ├── model/* # 与模型有关的代码    
    │   ├── model_construct/* # 构建模型类的代码,如果使用已有框架例如sklearn,可以考虑和model_train文件合并     
    │   ├── model_serve/* # 使用模型进行预测,并对结果储存至数据库;另附有对目标数据库表检测及建表的逻辑     
    │   ├── model_train/* # 对模型进行训练,并按要求储存模型文件,删除过期的模型文件;视情况可以和model_constuce文件合并    
    ├── utils/* # 通用的功能性代码,例如将一个list转化为多个特定的数据结构;utils里的函数有可能会被各种代码文件调用    
    ├── main.py # 对所有函数/功能进行调用的主文件    
    └── requirements.txt # 注明项目运行需要哪些库    

深度学习项目

└── dl_project # 根目录    
    ├─ checkpoints/* # 存放模型训练的checkpoints和计算图文件    
    ├─ data_pipeline/* # 获取/处理数据的逻辑放在这里     
    ├─ data_cache/* # 临时数据文件/处理好的数据放在这里    
    ├─ model/* # 构建模型类/存放历史版本的模型文件    
    ├─ db/* # 与数据库交互的代码    
    ├─ config/* # 配置文件;例如模型超参,数据存放路径    
    ├─ embedding/* # 训练得到的embedding     
    ├─ test/* # 测试用例    
    ├─ main.py # 启动文件,调用以上所有功能性代码,专注于项目流程逻辑编写    
    └─ requirements.txt # 注明项目运行需要哪些库    

部署模型接口

└──ml_api # 根目录    
    ├── api/* # 构造web接口,将定义方法挂载在相应的router上    
    ├── config/* # 配置文件    
    ├── core/* # 各接口核心的逻辑代码    
    │   ├── api_one_method/* # 第一个接口的逻辑     
    │   ├── api_two_method/* # 第二个接口的逻辑     
    │   ├── middlerware.py # 中间件    
    │   ├── router.py # 构造路由    
    ├── db/* # 数据库交互逻辑    
    ├── template/* # 一些模板文件    
    ├── log/* # 存放日志以及定义logger类    
    ├── utils/* # 通用的功能性代码     
    ├── requirements.txt # 注明项目运行需要哪些库    
    ├── server.py # 接口服务部署    
    └── start.sh # 开启服务的脚本文件,包括启用环境等命令    

2 类型提示

  1. 理解代码
  2. 减少bug
  3. IDE代码补全
a: int = 1

def func(x: int) -> str:
  return x
func(2)

3 熟悉内置库/常用库api

除去os, time等常用内置库外,以下库值得注意

  • functools
    提供一些高阶操作函数例如reduce, partial
  • itertools
    操作迭代对象的函数/类例如chain,combinations
  • collection
    提供额外的数据结构例如deque,defaultdict

4 代码规范

pep8, google, yapf, facebook
缩进 行最大长度79、72
注释
命名规范
函数/类里的方法尽量用动词,类名用驼峰、函数和变量用下划线

参考资源

https://www.heywhale.com/org-portal/series_60dbf244c693f4001784cd22/project/WXB27ARd6SnW0NziVLvadkHZsxdOcbvyaUoWrvWbt9c/share

posted @   zgwen  阅读(3)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示