# MLCourse **Repository Path**: WCX1024979076/mlcourse ## Basic Information - **Project Name**: MLCourse - **Description**: 机器学习小组作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-04-30 - **Last Updated**: 2025-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CMI睡眠监测 数据集来源:[https://www.kaggle.com/competitions/child-mind-institute-detect-sleep-states](https://www.kaggle.com/competitions/child-mind-institute-detect-sleep-states) ## 小组成员 | 姓名 | 学号 | |-|-| | 王春祥 | 2023E8013282129 | | 陈德 | 2023E8013282030 | | 黄雨彤 | 2023E8013282029 | ## 数据下载 从`kaggle`上下载数据集放在`data`文件夹下,需要下载的文件有`sample_submission.csv`、`test_series.parquet`、`train_events.csv`和`train_series.parquet`,具体目录结构如下。 ```txt ./ ├── data │ ├── sample_submission.csv │ ├── test_series.parquet │ ├── train_events.csv │ └── train_series.parquet ├── 其他文件夹 ``` ## 代码运行 直接运行相关`ipynb`和`py`文件即可。 代码目录树结构如下。 ```txt ./ ├── data // 数据文件夹 │ ├── sample_submission.csv │ ├── test_series_1.parquet │ ├── test_series.parquet │ ├── train_events.csv │ └── train_series.parquet ├── docker // 项目二 容器部署代码 │ ├── Dockerfile // Docker打包文件 │ ├── infer.py // RNN模型推理代码 │ ├── main.py // Flask网页端源码 │ ├── model_best.pth // pytorch模型 │ ├── plot.py // Plotly绘图源码 │ ├── sleep-critical-point-infer.ipynb // RNN模型推理源码 | └── test_series_1.parquet // 测试用传感器数据 ├── mlflow // 项目二 MLflow模型训练推理代码 │ └── mlflow_project.py // MLflow模型训练推理代码 ├── ppt // 课程汇报 PPT │ ├── beamerthemeucas.sty │ ├── figures │ ├── LICENSE │ ├── mlcoure-proj2.pdf // 项目二PPT汇报 │ ├── mlcoure-proj2.tex │ ├── mlcourse.pdf // 项目一PPT汇报 │ ├── mlcourse.tex │ ├── README.md │ ├── ref.bib │ ├── 作业一.md │ ├── 作业一.pdf // 项目一文档介绍 │ ├── 作业二.md │ └── 作业二.pdf // 项目二文档介绍 ├── random_forest // 项目一 随机森林源代码 │ ├── distributed_random_forest.ipynb // 项目一多机版随机森林代码 │ ├── metric.py // 测评代码 │ ├── random_forest_automl.ipynb // 项目一随机森林automl代码 │ ├── random_forest.ipynb // 项目一单机版随机森林源码 │ └── random_forest.py // 项目一单机版随机森林源码 ├── distributed.md // 分布式介绍文档 ├── README.md // 项目介绍文档 └── rnn // 项目一 深度学习RNN源码 ├── history.json //训练历史 ├── loss_evo.png //模型损失分析 ├── lr_evo.png //学习率分析 ├── sleep-critical-point-prepare-data.ipynb //RNN模型数据预处理代码 └── sleep-critical-point-train.ipynb //RNN模型训练代码 ``` ## Docker项目部署运行 Docker Hub地址 [https://hub.docker.com/r/timwcx/mlcourse/](https://hub.docker.com/r/timwcx/mlcourse/) docker运行&部署运行 拉取镜像: ```sh docker pull timwcx/mlcourse:latest ``` 运行镜像: ```sh docker run --name mlcourse timwcx/mlcourse:latest ``` 访问 http://docker_ip:5000 ,例如 http://172.17.0.2:5000/⁠ 上传测试用传感器数据Parquet文件,例如 [test_series_1.parquet](https://gitee.com/WCX1024979076/mlcourse/raw/master/docker/test_series_1.parquet) ## 项目介绍 详见`./ppt/mlcourse.pdf`、`./ppt/作业一.pdf`和`./ppt/作业二.pdf` ## 项目一实现 项目一要求为:单机版、分布式、深度学习系统各选择1种安装配置,实现1-2种相同机器学习算法案例,进行模型、资源、性能等对比分析,编写报告。 单机版采用随机森林实现,代码在`random_forest/random_forest.ipynb` 单机版automl对随机森林进行优化,代码在`random_forest/random_forest_automl.ipynb` 分布式多机版采用随机森林实现,代码在`random_forest/distributed_random_forest.ipynb` 深度学习系统采用RNN实现,代码在`rnn/sleep-critical-point-prepare-data.ipynb`数据预处理和`rnn/sleep-critical-point-train.ipynb` rnn深度学习系统训练代码。 ## 项目二实现 项目二要求为选择1个包含数据集的深度学习任务,按照MLops的全流程进行开发管理,要进行特征工程、模型选择、超参优化、实验评价,将模型按要求发布到docker容器中,编写报告 我们采用MLflow实现MLops,代码在`mlflow/mlflow_project.py` 容器打包主要用到`docker/Dockerfile`容器打包配置、`docker/main.py`Flask网站代码、`docker/infer.py`模型推理代码和`docker/plot.py` plotly可视化绘制文件。