拜访【WRITE-BUG 数字空间】_[内附残缺源码和文档]
本次工作以花卉辨认为题,借用机器学习办法,实现降维可视化、聚类分析、辨认分类等工作。降维可视化是在以 PCA、tSNE 等办法,将花卉数据进行降维,失去降维后的二维图像,这样便能够将其在立体上展现进去。聚类分析是利用适合的聚类办法,对花卉数据进行聚类,将聚类之后的后果与标签进行对应,探讨不同聚类办法的后果。应用非深度学习和深度学习的办法,对曾经标注实现然而可能含有误标数据的花卉样本进行分类,失去最终的花卉辨认准确率。
一、问题剖析本次工作以花卉辨认为题,借用机器学习办法,实现降维可视化、聚类分析、辨认分类等工作。降维可视化是在以 PCA、tSNE 等办法,将花卉数据进行降维,失去降维后的二维图像,这样便能够将其在立体上展现进去。聚类分析是利用适合的聚类办法,对花卉数据进行聚类,将聚类之后的后果与标签进行对应,探讨不同聚类办法的后果。应用非深度学习和深度学习的办法,对曾经标注实现然而可能含有误标数据的花卉样本进行分类,失去最终的花卉辨认准确率。二、问题求解 2.1 数据预处理 2.1.1 预处理流程给定的数据集为 jpg 格局的数据,因为读取 jpg 格局的图片比较慢,所以将 jpg 格局存储在 numpy 的多维数组中,将提取出的多维数组存储在磁盘中,并且在下一次读取数据时,先判断是否存在曾经打包好的多维数组文件。如果存在,那么间接读取多维数组的数据;如果不存在,那么读取源文件,并将数据存到多维数组中,再存到磁盘里,供下次应用。
2.1.2 预处理实现依照下面的解决流程,获取解决后的图片数组文件。为了后续不便,最终失去的图片的格局为 38080 的图片。每一个模块实现过程如下:读取图片文件:os.listdir 获取图片所在的文件夹下的所有图片的名称,失去图片的总个数 N。利用 matplotlib 提供的 imread 函数读取 jpg 格局的文件。转换到 38080 的格局:间接读出的 jpg 格局的格局为 80803 的数组,利用 numpy 的 transpose 函数,转换各个坐标轴,即 = . (2,0,1) 失去 38080 的数据。失去所有的图片数据和标签数据:申请 N380*80 的数组 Pictures 和 N 维向量 labels,每读取一个图片,将以后图片赋值到 Pictures 中,同时将文件名的第一个字母转换成数字,即为对应的标签,将其赋值到 labels 向量中。保留读取的文件:利用 np.save 将解决失去的数据保留。读取曾经保留后文件:利用 np.load 加载曾经保留的数据。2.2 降维可视化降维可视化是将高维的图片数据映射到二维和三维空间中,以图像的形式察看各个类别的散布,达到可视化的目标。