机器学习(python)-Fashion Mnist分类模型构建

三种机器学习方法和使用CNN训练FashionMNIST的性能比较,三种机器学习方法分别为:随机森林、KNN、朴素贝叶斯。
完整实验代码可在https://github.com/Ryanlzz/fashion-mnist-train查看
data

一、数据准备

1.数据来源

根据Fashion Mnist论文给出的网址下载数据集:
https://github.com/zalandoresearch/fashion-mnist
data

2.数据背景

FashionMNIST 是一个替代 MNIST 手写数字集的图像数据集。 它是由 Zalando(一家德国的时尚科技公司)旗下的研究部门提供。其涵盖了来自 10 种类别的共 7 万个不同商品的正面图片。FashionMNIST 的大小、格式和训练集 / 测试集划分与原始的 MNIST 完全一致。60000/10000 的训练测试数据划分,28x28 的灰度图片。

经典的MNIST数据集包含了大量的手写数字。十几年来,来自机器学习、机器视觉、人工智能、深度学习领域的研究员们把这个数据集作为衡量算法的基准之一。我们会在很多的会议,期刊的论文中发现这个数据集的身影。实际上,MNIST数据集已经成为算法作者的必测的数据集之一。有人曾调侃道:“如果一个算法在MNIST不work, 那么它就根本没法用;而如果它在MNIST上work, 它在其他数据上也可能不work!”

制作这个数据集的目的就是取代MNIST,作为机器学习算法良好的“检测器”,用以评估各种机器学习算法。为什么不用MNIST了呢? 因为MNIST就现在的机器学习算法来说,是比较好分的,很多机器学习算法轻轻松松可以达到99%,因此无法区分出各类机器学习算法的优劣。

为了和MNIST兼容,Fashion-MNIST 与MNIST的格式,类别,数据量,train和test的划分,完全一致。

3.数据的样本和特征

其中训练集包含60000个样例,测试集包含10000个样例,分为10类,其中的样本都来自日常穿着的衣裤鞋包,每个都是28×28的灰度图像,其中总共有10类标签,每张图像都有各自的标签。
download

二、被测试的机器方法介绍

1.随机森林

1)基本原理

随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关联的。当有一个新样本的时候,我们让森林的每一棵决策树分别进行判断,看看这个样本属于哪一类,然后用投票的方式,哪一类被选择的多,作为最终的分类结果。在回归问题中,随机森林输出所有决策树输出的平均值。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YZiW9O7b-1607663807871)(https://s3.ax1x.com/2020/12/11/rkTQuF.png)]

2)主要参数设置及其意义

n_estimators:森林(决策)树的数目。n_estimators太小,容易过拟合,n_estimators太大,又容易欠拟合,一般选择一个适中的数值。(默认值为10)。

max_depth:树的最大深度。数据少或者特征少的时候可以不管这个值。如果模型样本量多,特征也多的情况下,推荐限制这个最大深度,具体的取值取决于数据的分布。常用的可以取值10-100之间。 (默认值 None)

min_samples_split:分割内部节点所需的最少样本数量。值越大,决策树越简单,越不容易过拟合。(默认值 2)

min_samples_leaf:叶子节点上包含的样本最小值。值越大,叶子节点越容易被被剪枝,决策树越简单,越不容易过拟合。(默认值 1)

max_features:寻求最佳分割时的考虑的特征数量,即特征数达到多大时进行分割。值越大,模型学习能学习到的信息越多,越容易过拟合。(默认值 auto)

2.KNN

1)基本原理

KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。
KNN

2)算法描述

1 计算测试数据与各个训练数据之间的距离;
2 按照距离的递增关系进行排序;
3 选取距离最小的K个点;
4 确定前K个点所在类别的出现频率;
5 返回前K个点中出现频率最高的类别作为测试数据的预测分类。

3)距离计算:欧氏距离

对于距离的度量,有很多的距离度量方式,但是最常用的是欧式距离,即对于两个n维向量x和y,两者的欧式距离定义为
d ( p , q ) = d ( q , p ) = ( q 1 − p 1 ) 2 + ( q 2 − p 2 ) 2 + ⋯ + ( q n − p n ) 2 =

  • 9
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: load_data_fashion_mnist是一个函数,用于加载Fashion-MNIST数据集。Fashion-MNIST是一个包含10个类别的图像数据集,每个类别包含600个28x28像素的灰度图像。这个函数可以方便地将数据集加载到Python中,并将其分为训练集和测试集。 ### 回答2: load_data_fashion_mnist是一个Python函数,用于从Fashion-MNIST数据集中加载训练数据和测试数据Fashion-MNIST是一个广泛使用的计算机视觉数据集,用于模型训练和测试,其中包含60,000个训练图像和10,000个测试图像。这些图像分为10个不同的类别,包括T恤、裤子、套衫、裙子、外套、凉鞋、衬衫、运动鞋、包和短靴。 在使用load_data_fashion_mnist函数之前,需要先安装并导入对应的库。这个函数使用Keras库,因此需要在代码中导入该库。加载数据集的代码如下: ```python from keras.datasets import fashion_mnist (train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data() ``` 其中,train_images和train_labels是用于训练的图像数据和标签,test_images和test_labels是用于测试的图像数据和标签。load_data函数返回的所有图像都是28x28的NumPy数组,每个像素值都介于0和255之间。 为了加快训练速度,数据需要进行预处理。通常的做法是将像素值缩小到0到1之间,并对标签进行独热编码。独热编码是指将每个标签转化为一个二进制向量,其中一个元素为1,其他元素为0。这可以使用Keras中的to_categorical函数进行处理。处理代码如下: ```python train_images = train_images / 255.0 test_images = test_images / 255.0 from keras.utils import to_categorical train_labels = to_categorical(train_labels) test_labels = to_categorical(test_labels) ``` 最后,将处理过的数据传递给模型进行训练即可。通过使用Fashion-MNIST数据集,可以快速测试和验证计算机视觉模型的性能,同时可以避免使用传统的手写数字数据集时存在的过拟合问题。 ### 回答3: load_data_fashion_mnist是tensorflow中的一个函数,用于加载时尚MNIST数据集。时尚MNIST是一种衍生自经典MNIST数据集的数据集,其包含了10种不同类别的时尚物品。每个样本是一张28x28像素的灰度图像,像素值在0到255之间。数据集一共有60000个训练样本和10000个测试样本。 使用load_data_fashion_mnist函数可以方便地加载时尚MNIST数据集,并将其划分为训练集和测试集。load_data_fashion_mnist函数的返回值是一个元组,包含四个NumPy数组对象: 1.训练集样本数组x_train:包含了所有的训练样本,每个样本是一个28x28的灰度图像,像素值在0到255之间。 2.训练集标签数组y_train:包含了所有训练样本的标签,每个标签是一个0到9之间的整数,分别代表10个不同类别。 3.测试集样本数组x_test:包含了所有的测试样本,每个样本是一个28x28的灰度图像,像素值在0到255之间。 4.测试集标签数组y_test:包含了所有测试样本的标签,每个标签是一个0到9之间的整数,分别代表10个不同类别。 开发者可以使用这些数组对象来训练和测试机器学习模型,对时尚MNIST数据集进行分类、识别等任务。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值