Skip to content

About

Machine Learning Course Experiment

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Machine Learning Course Experiments

机器学习课程实验项目,涵盖从传统机器学习算法到深度学习的核心内容。本项目通过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

实验内容

Lab 1: 机器学习基础

  • 数据集: 鸢尾花(Iris)数据集
  • 算法: 逻辑回归
  • 内容:
    • 实现逻辑回归分类器
    • 研究偏差-方差分解
    • 30次随机实验的统计分析
    • 模型性能评估与可视化

Lab 2: K-近邻算法(kNN)

  • 数据集: 手写数字数据集、约会数据集
  • 算法: kNN分类器
  • 内容:
    • 手写数字识别(0-9)
    • 约会对象预测分类
    • 参数调优(k值和距离度量)
    • 分类准确率评估

Lab 3: 决策树

  • 数据集: 葡萄酒数据集
  • 算法: 决策树分类器
  • 内容:
    • 决策树模型训练与预测
    • 决策树结构可视化
    • 决策边界可视化
    • 特征重要性分析

Lab 4: 朴素贝叶斯与决策树

  • 数据集: 邮件分类数据集
  • 算法: 朴素贝叶斯、决策树
  • 内容:
    • 文本数据预处理
    • 朴素贝叶斯分类器实现
    • 与决策树分类器对比
    • 分类性能评估

Lab 5: 支持向量机(SVM)回归

  • 数据集: 大学录取预测数据集
  • 算法: SVM回归、线性回归、决策树回归
  • 内容:
    • 数据归一化处理
    • PCA降维
    • 多种回归模型对比
    • 回归性能评估

Lab 6: 集成学习

  • 数据集: 大学录取预测、脉冲星预测数据集
  • 算法: 随机森林、AdaBoost
  • 内容:
    • 集成学习方法实现
    • 回归与分类任务
    • 模型性能对比分析
    • 集成效果评估

Lab 7: 聚类算法

  • 数据集: 综合数据集
  • 算法: K-means、DBSCAN、层次聚类
  • 内容:
    • 多种聚类算法实现
    • 聚类效果评估
    • 聚类结果可视化
    • 算法参数调优

Lab 8: 卷积神经网络(CNN)

  • 数据集: 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

联系方式

邮箱:xhhdaxx@gmail.com

更新日志

  • Lab 1: 机器学习基础实验完成
  • Lab 2: kNN算法实验完成
  • Lab 3: 决策树实验完成
  • Lab 4: 朴素贝叶斯实验完成
  • Lab 5: SVM回归实验完成
  • Lab 6: 集成学习实验完成
  • Lab 7: 聚类算法实验完成
  • Lab 8: CNN实验完成

参考资料

About

Machine Learning Course Experiment

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages