# ML-Demo **Repository Path**: swxu_2005/ml-demo ## Basic Information - **Project Name**: ML-Demo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-05 - **Last Updated**: 2026-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ML-Demo 机器学习算法演示平台,提供多种经典机器学习算法的交互式演示和可视化。 ## 项目简介 ML-Demo 是一个前后端分离的机器学习演示系统,支持多种分类和回归算法,并提供丰富的数据集供实验使用。 ### 支持的算法 **回归算法:** - 线性回归 (Linear Regression) - 多元回归 (Multiple Regression) **分类算法:** - 逻辑回归 (Logistic Regression) - K近邻 (K-Nearest Neighbors, KNN) - 决策树 (Decision Tree) - 朴素贝叶斯 (Naive Bayes) - 支持向量机 (Support Vector Machine, SVM) ### 可用数据集 **回归任务:** - 糖尿病数据集 (Diabetes) - 442个样本,10个特征 - 加州房价数据集 (California Housing) - 20640个样本,8个特征 **分类任务:** - 乳腺癌诊断数据集 (Breast Cancer) - 569个样本,30个特征 - 鸢尾花数据集 (Iris) - 150个样本,4个特征 - 葡萄酒数据集 (Wine) - 178个样本,13个特征 - 手写数字数据集 (Digits) - 1797个样本,64个特征 ## 技术栈 ### 后端 - **FastAPI** - 现代化的 Python Web 框架 - **scikit-learn** - 机器学习库 - **NumPy** - 数值计算 - **Pandas** - 数据处理 - **Uvicorn** - ASGI 服务器 ### 前端 - **React** - UI 框架 - **TypeScript** - 类型安全 - **Vite** - 构建工具 - **React Router** - 路由管理 ## 项目结构 ``` ML-Demo/ ├── backend/ # 后端服务 │ ├── algorithms/ # 算法实现 │ │ ├── linear_regression.py │ │ ├── multiple_regression.py │ │ ├── logistic_regression.py │ │ ├── knn.py │ │ ├── decision_tree.py │ │ ├── naive_bayes.py │ │ └── svm.py │ ├── datasets.py # 数据集管理 │ ├── utils.py # 工具函数 │ ├── main.py # FastAPI 应用入口 │ └── requirements.txt # Python 依赖 └── frontend/ # 前端应用 ├── src/ │ ├── api/ # API 调用 │ ├── components/ # 组件 │ ├── pages/ # 页面 │ ├── App.tsx # 应用入口 │ └── main.tsx # React 入口 └── package.json # Node.js 依赖 ``` ## 快速开始 ### 环境要求 - Python 3.8+ - Node.js 16+ - npm 或 yarn ### 后端设置 1. 进入后端目录: ```bash cd backend ``` 2. 创建虚拟环境(推荐): ```bash python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` 4. 启动后端服务: ```bash python main.py ``` 后端服务将在 `http://localhost:8000` 启动。 API 文档可访问:`http://localhost:8000/docs` ### 前端设置 1. 进入前端目录: ```bash cd frontend ``` 2. 安装依赖: ```bash npm install # 或 yarn install ``` 3. 启动开发服务器: ```bash npm run dev # 或 yarn dev ``` 前端应用将在 `http://localhost:5173` 启动。 ## API 接口 ### 获取数据集列表 ``` GET /api/datasets?task={regression|classification} ``` ### 获取数据集详情 ``` GET /api/datasets/{name} ``` ### 获取数据集预览 ``` GET /api/datasets/{name}/preview?n_rows={number} ``` ### 训练模型 ``` POST /api/train/{algorithm} Body: { "dataset": "dataset_name", "params": {} } ``` 支持的算法参数: - `linear-regression`: 无需参数 - `multiple-regression`: 无需参数 - `logistic-regression`: `C` (正则化强度), `max_iter` (最大迭代次数) - `knn`: `n_neighbors` (邻居数量), `weights` (权重方式) - `decision-tree`: `max_depth` (最大深度), `min_samples_split` (最小分割样本数) - `naive-bayes`: 无需参数 - `svm`: `C` (正则化参数), `kernel` (核函数类型) ## 使用说明 1. 启动后端和前端服务 2. 在浏览器访问前端应用 3. 选择要使用的算法页面 4. 选择数据集 5. 调整算法参数(可选) 6. 点击训练按钮查看结果 ## 开发 ### 添加新算法 1. 在 `backend/algorithms/` 目录下创建新的算法文件 2. 实现训练函数,返回包含指标和预测结果的字典 3. 在 `backend/main.py` 的 `ALGORITHM_MAP` 中注册算法 4. 在前端创建对应的页面组件 ### 添加新数据集 1. 在 `backend/datasets.py` 的 `_load_all()` 函数中添加数据加载逻辑 2. 在 `_DESCRIPTIONS` 中添加数据集描述 ## 许可证 MIT License