访问【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 降维可视化降维可视化是将高维的图片数据映射到二维和三维空间中,以图像的方式观察各个类别的分布,达到可视化的目的。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net