项目简介
本项目聚焦于机器学习领域,借助Python和scikit-learn等框架,实现了多种分类与聚类算法。项目对MNIST(手写体数字)、Yale(人脸图像)和lung(生物数据)三个不同类型的数据集进行处理,并评估各算法在这些数据集上的性能。项目包含SVM、神经网络、贝叶斯、聚类等多个实验,还涉及基于回归学习及流形结构保持的无监督特征选择内容。
项目的主要特性和功能
分类算法
- SVM分类:实现线性SVM、基于高斯核和拉普拉斯核的SVM分类器,对MNIST、Yale和lung数据集分类并输出训练集和测试集准确率。
- 神经网络分类:包含BP神经网络和基于RBF的分类器,对三个数据集分类并输出最高准确率。
- 贝叶斯分类:实现朴素贝叶斯分类器和AODE分类器,对数据集分类并输出准确率。
聚类算法
- K均值聚类:使用K-means算法对数据集聚类,用Acc和NMI指标评价聚类效果。
- 学习向量量化聚类:实现LVQ聚类算法,对数据集聚类并计算Acc和NMI。
- 高斯混合聚类:运用高斯混合模型对数据集聚类,输出准确率和NMI。
无监督特征选择
基于回归学习及流形结构保持的方法进行无监督特征选择,对比特征提取与不提取时K-means聚类的ACC和NMI,研究不同超参数对聚类结果的影响,提供绘图功能展示迭代过程和超参数影响。
安装使用步骤
环境准备
确保已安装Python环境,使用以下命令安装项目所需依赖库:
bash
pip install numpy scipy scikit-learn torch matplotlib munkres
运行代码
- 下载本项目的源码文件,将数据集文件(MNIST.mat、Yale.mat、lung.mat)存放在
datasets
目录下。 - 针对不同实验,直接运行对应的Python脚本,示例如下:
- 运行SVM实验:
bash python svm_experiment.py
- 运行神经网络实验(BP神经网络和RBF分类器):
bash python neural_network_experiment.py
- 运行贝叶斯实验:
bash python bayes_experiment.py
- 运行聚类实验(K-means、LVQ、高斯混合聚类):
bash python clustering_experiment.py
- 运行无监督特征选择实验:
bash python feature_selection_code.py
- 运行绘图脚本:
bash python feature_selection_plot.py
- 运行SVM实验:
结果查看
运行代码后,终端会输出各个算法在不同数据集上的准确率、NMI等评估指标。无监督特征选择部分会在img
目录下生成相关图像文件,用于展示迭代过程和超参数对聚类结果的影响。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】