sklearn训练mnist可能出现的问题

1 篇文章 0 订阅
1 篇文章 0 订阅
本文介绍了在新版sklearn中如何解决fetch_mldata()方法已移除的问题,提供了使用fetch_openml()加载MNIST数据集的代码,并指出了在使用机器学习实战3-SGD分类器项目时,因数据类型错误导致的分类问题,提出了将比较运算符改为字符串比较的解决方案。
摘要由CSDN通过智能技术生成

本文参考了机器学习实战3-sklearn使用下载MNIST数据集进行分类项目,针对我使用该教程中出现的问题提出解决方案。

1.数据集加载

原文中使用了如下代码进行数据集的加载:

from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original')
mnist

在更高级版本的sklearn.datasets中已经没有fetch_mldata()方法,使用该方法进行数据集的加载则会报错。

此时应该使用如下方法进行数据集的加载:

from sklearn.datasets import fetch_openml
mnist = fetch_openml("mnist_784", data_home="./")
print(mnist)

data_home根据数据集存放的位置进行更改。

代码问题

在原文的2.1、随机梯度下降(SGD)分类器中有如下代码:

y_train_5 = (y_train == 5) # True for all 5s, False for all other digits.
y_test_5 = (y_test == 5)

在y_train和y_test中保存的数字全都是以字符串的形式,使用上述代码的结果是y_train_5,y_test_5中的所有数据都是false,因此修改代码为:

y_train_5 = (y_train == '5')
y_test_5 = (y_test =='5')

希望能够有所帮助。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值