机器学习课程实验项目,涵盖从传统机器学习算法到深度学习的核心内容。本项目通过8个独立实验,系统性地探索了机器学习的主要算法和应用场景。
本项目是一个完整的机器学习课程实验集合,每个实验都采用统一的模块化设计,包含数据加载、模型定义、实验流程和评估模块。实验涵盖了:
- 传统机器学习算法(kNN、决策树、朴素贝叶斯、SVM)
- 集成学习方法(随机森林、AdaBoost)
- 无监督学习(聚类算法)
- 深度学习(卷积神经网络CNN)
Machine-Learning/
├── lab1/ # 机器学习基础实验
├── lab2/ # K-近邻算法(kNN)实验
│ ├── data/
│ │ ├── datingTestSet.txt
│ │ ├── testDigits/ # 手写数字测试集
│ │ └── trainingDigits/ # 手写数字训练集
├── lab3/ # 决策树实验
├── lab4/ # 朴素贝叶斯与决策树分类实验
├── lab5/ # 支持向量机(SVM)回归实验
├── lab6/ # 随机森林与AdaBoost集成学习实验
├── lab7/ # 聚类算法实验
│ └── clustering_result.png
└── lab8/ # 卷积神经网络(CNN)实验
└── data/
└── MNIST/ # MNIST手写数字数据集
每个实验目录包含以下标准文件:
data_loader.py- 数据加载和处理模块model.py- 机器学习模型定义experiment.py- 实验流程控制evaluate.py- 模型评估模块main.py- 主程序入口
- Python 3.7+
- NumPy
- scikit-learn
- PyTorch
- Matplotlib
- Pandas
pip install numpy scikit-learn torch matplotlib pandas- 数据集: 鸢尾花(Iris)数据集
- 算法: 逻辑回归
- 内容:
- 实现逻辑回归分类器
- 研究偏差-方差分解
- 30次随机实验的统计分析
- 模型性能评估与可视化
- 数据集: 手写数字数据集、约会数据集
- 算法: kNN分类器
- 内容:
- 手写数字识别(0-9)
- 约会对象预测分类
- 参数调优(k值和距离度量)
- 分类准确率评估
- 数据集: 葡萄酒数据集
- 算法: 决策树分类器
- 内容:
- 决策树模型训练与预测
- 决策树结构可视化
- 决策边界可视化
- 特征重要性分析
- 数据集: 邮件分类数据集
- 算法: 朴素贝叶斯、决策树
- 内容:
- 文本数据预处理
- 朴素贝叶斯分类器实现
- 与决策树分类器对比
- 分类性能评估
- 数据集: 大学录取预测数据集
- 算法: SVM回归、线性回归、决策树回归
- 内容:
- 数据归一化处理
- PCA降维
- 多种回归模型对比
- 回归性能评估
- 数据集: 大学录取预测、脉冲星预测数据集
- 算法: 随机森林、AdaBoost
- 内容:
- 集成学习方法实现
- 回归与分类任务
- 模型性能对比分析
- 集成效果评估
- 数据集: 综合数据集
- 算法: K-means、DBSCAN、层次聚类
- 内容:
- 多种聚类算法实现
- 聚类效果评估
- 聚类结果可视化
- 算法参数调优
- 数据集: MNIST手写数字数据集
- 算法: 卷积神经网络
- 框架: PyTorch
- 内容:
- CNN模型构建
- 模型训练与验证
- 手写数字识别
- 模型性能分析
# 进入实验目录
cd lab1
# 运行主程序
python main.py# 依次运行每个实验
for lab in lab1 lab2 lab3 lab4 lab5 lab6 lab7 lab8; do
cd $lab
python main.py
cd ..
done- 模块化设计: 每个实验采用统一的文件结构,便于理解和维护
- 实验复现: 支持多次运行和参数对比
- 可视化分析: 丰富的图表和可视化结果
- 真实数据集: 使用公开数据集进行实验
- 完整流程: 涵盖数据预处理、模型训练、评估全流程
本项目使用的公开数据集包括:
- Iris: 鸢尾花分类数据集
- MNIST: 手写数字识别数据集
- Wine: 葡萄酒分类数据集
- Dating: 约会对象预测数据集
- 其他合成和真实数据集
实验结果包括:
- 模型性能指标(准确率、精确率、召回率、F1值、MAE、MSE、R²等)
- 可视化图表(决策边界、聚类结果、学习曲线等)
- 模型对比分析
欢迎提交Issue和Pull Request来改进本项目。
MIT License
- Lab 1: 机器学习基础实验完成
- Lab 2: kNN算法实验完成
- Lab 3: 决策树实验完成
- Lab 4: 朴素贝叶斯实验完成
- Lab 5: SVM回归实验完成
- Lab 6: 集成学习实验完成
- Lab 7: 聚类算法实验完成
- Lab 8: CNN实验完成
- scikit-learn官方文档: https://scikit-learn.org/
- PyTorch官方文档: https://pytorch.org/
- 《机器学习》- 周志华
- 《统计学习方法》- 李航