我正在创建一个由许多图像组成的数据集,这些图像是通过对长时间序列进行预处理而创建的。每个图像是一个 (128,128) 的数组,并且有四个类。我想在 scikit-learn.database 中构建一个类似于 MNIST 的数据集,但我不知道该怎么做。
我的目标是有一些我可以这样称呼的东西:
(x_train, y_train), (x_test, y_test) = my_data()
我应该将它们保存为数字吗?或作为csv?实现这一点的最佳方法是什么?
我正在创建一个由许多图像组成的数据集,这些图像是通过对长时间序列进行预处理而创建的。每个图像是一个 (128,128) 的数组,并且有四个类。我想在 scikit-learn.database 中构建一个类似于 MNIST 的数据集,但我不知道该怎么做。
我的目标是有一些我可以这样称呼的东西:
(x_train, y_train), (x_test, y_test) = my_data()
我应该将它们保存为数字吗?或作为csv?实现这一点的最佳方法是什么?
我找到了这个解决方案,并对任何改进或建议感到高兴:
首先,我创建了一个图像的随机数据集,它是 28x28 像素,以及相应的随机标签(为了清楚起见,我还有另一个图像数据集,这只是为了解释)。然后我使用 sklearn 模块来拆分数据:
import numpy as np
from sklearn.model_selection import train_test_split
# create the data and labels
def pixel_dataset(n_data=10, dpi = 28):
ary = np.zeros((n_data, dpi, dpi))
label = []
for i in np.arange(n_data):
labels =['a', 'b', 'c']
ary[i,::] = np.reshape(np.array(np.random.randint(0, 255, 28*28)),(28,28))
label.append(np.random.choice(labels, 1)[0])
return ary, label
# create the test train split
def mydata(test_size=0.3):
X, y = pixel_dataset()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = test_size)
return (X_train, y_train), (X_test, y_test)