从mnist训练集中按现有顺序分出六个万份数据,编写程序,统计每万份数据中与测试集相同位置上具有相同数字的个数。使用python实现
时间: 2024-03-20 09:41:41 浏览: 106
以下是实现该程序的 Python 代码:
```python
import numpy as np
from sklearn.datasets import fetch_openml
from collections import Counter
# 加载mnist数据集
mnist = fetch_openml('mnist_784', version=1, cache=True)
# 将数据集划分为训练集和测试集
X_train, X_test = mnist.data[:60000], mnist.data[60000:]
y_train, y_test = mnist.target[:60000], mnist.target[60000:]
# 将训练集按现有顺序分成六份
X_train_split = np.array_split(X_train, 6)
y_train_split = np.array_split(y_train, 6)
# 统计每万份数据中与测试集相同位置上具有相同数字的个数
for i in range(6):
y_pred = [y_train_split[i][j] for j in range(len(y_train_split[i])) if np.array_equal(X_test[j], X_train_split[i][j])]
counter = Counter(y_pred)
print(f"第{i+1}份数据中与测试集相同位置上具有相同数字的个数:{dict(counter)}")
```
该代码先加载mnist数据集,将数据集划分为训练集和测试集,然后将训练集按现有顺序分成六份。对于每份数据,程序遍历其中的样本,找到与测试集相同位置上具有相同数字的样本,并将它们的标签存入一个列表中。最后,使用 Python 的 Counter 类对这个列表进行计数,得到每个数字出现的次数,并输出结果。
阅读全文