目录

机器学习课程实验

机器学习课程的三组上机实验(大三上,2025 秋),涵盖线性模型、支持向量机与集成学习的从零实现及与 sklearn 的对比。

任务背景

  • 实验 1 线性模型:实现多元线性回归(正规方程 + 伪逆)、对数几率回归(梯度下降)与线性判别分析(LDA)三类模型,在波士顿房价数据(选取 DIS/RM/LSTAT 三特征预测 MEDV)与西瓜数据集(密度、含糖率二分类)上训练、评估并可视化,对比回归与分类模型的适用场景。
  • 实验 3 支持向量机:从零实现软间隔 SVM(通过对偶问题经 scipy.optimize.minimize 求解拉格朗日乘子),支持线性核与 RBF 核;在 sklearn 乳腺癌数据集(取前两特征、标准化、7:3 划分)上训练预测,并与 sklearn.svm.SVC 对比不同核函数、惩罚系数 C 与 gamma 对决策边界和性能的影响。
  • 实验 4、5 集成学习:从零实现 AdaBoost(决策树桩弱分类器、样本权重更新、加权投票,含 One-vs-One 多分类)与随机森林(Bootstrap 自助采样、节点分裂特征随机、多数投票),在鸢尾花及 make_circles/moons 等合成数据集上评估,与 sklearn 的 AdaBoostClassifier/RandomForestClassifier 对比准确率与训练时长,并进行超参数搜索与可视化。

内容结构

路径 说明
ML1-Linear-Regression/Test1.py 多元线性回归(正规方程 + 伪逆),读取 boston.csv
ML1-Linear-Regression/Test2.py 对数几率回归(梯度下降),读取 melon.csv
ML1-Linear-Regression/Test3.py 线性判别分析 LDA,读取 melon.csv
ML1-Linear-Regression/boston.csv 波士顿房价数据(506 样本 14 列,约 35KB)
ML1-Linear-Regression/melon.csv 西瓜数据集 3.0(数值特征,17 样本)
ML1-Linear-Regression/AGENTS.md 该实验的构建命令与代码风格说明
ML3-SVM/SVM.py 自定义软间隔 SVM(线性/RBF 核)及 sklearn SVC 对比实验
ML3-SVM/fontchk.py matplotlib 可用中文字体检查小工具
ML5-Ensemble-Learning/Adb.py AdaBoost 从零实现(决策树桩,含 OvO 多分类)
ML5-Ensemble-Learning/RF.py 随机森林从零实现(Bootstrap + 特征随机)
ML5-Ensemble-Learning/compare.py 手写实现与 sklearn 的对比及性能分析
ML5-Ensemble-Learning/data_processing.py 鸢尾花数据加载与预处理(生成 iris_data.npz)
ML5-Ensemble-Learning/iris_data.npz 预处理后的鸢尾花数据(约 7.5KB)
ML5-Ensemble-Learning/tasks.md 实验 4、5 的任务分解清单
ML5-Ensemble-Learning/实验输出与总结.txt 实验输出记录与结果分析

运行方法

依赖(由代码 import 与实验环境推断,Python 3.13,3.9+ 一般可用):

pip install numpy pandas matplotlib seaborn scikit-learn scipy tqdm

各实验在对应子目录内直接运行:

cd ML1-Linear-Regression && python Test1.py   # 依次运行 Test1/Test2/Test3.py
cd ML3-SVM && python SVM.py                    # 输出各核函数下的准确率与决策边界图
cd ML5-Ensemble-Learning && python data_processing.py && python Adb.py && python RF.py && python compare.py

说明:脚本运行会在当前目录生成 png 结果图(未入库);SVM 实验数据由 sklearn 在线加载;中文图表依赖 SimHei/WenQuanYi 等字体,乱码时可先运行 python fontchk.py 查看可用中文字体。

来源声明

  • 实验要求与讲义来自 2025 秋季学期《机器学习》课程(大三上);实验报告 docx、课程讲义 pdf 与结果 png 等二进制文件未纳入本仓库。
  • 数据来源:melon.csv 出自周志华《机器学习》西瓜数据集;boston.csv 为 UCI 波士顿房价数据的课程版本;鸢尾花、乳腺癌及合成数据集来自 scikit-learn。
  • 各算法核心代码(线性回归/逻辑回归/LDA/SVM/AdaBoost/随机森林)为本人在课程实验框架下自行实现,实验 3、4、5 为两人合作完成;sklearn 仅作对比基准。开发过程使用了 AI 编程助手辅助调试与可视化,AGENTS.md、tasks.md、实验输出与总结.txt 为当时的开发过程记录。
关于

机器学习三组实验:线性回归与 LDA、SVM(自实现与 sklearn 对比)、集成学习(AdaBoost/随机森林)

79.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号