我有一个数据集已加载到内存中,并希望从中进行引导。当前,我使用sklearn {{1}}的默认实现。我使用生成器从驻留在内存中的数据集中生成引导批处理。
但是,由于每次引导迭代都会创建一个新数组,因此这会占用大量内存。是否有更有效的方法来从存储在磁盘或内存中的数据实现引导程序?
答案 0 :(得分:1)
只需创建索引即可对原始功能和目标进行切片,并在每次需要引导数据集时应用这些索引。
这是使用sklearn的波士顿数据集的示例实现:
import numpy as np
from sklearn.datasets import load_boston
def get_bootstrap_indices(dataset, datasets: int):
for _ in range(datasets):
yield np.random.choice(np.arange(len(dataset)), size=len(dataset), replace=True)
dataset = load_boston().data
print(f"Original dataset shape: {dataset.shape}")
for indices in get_bootstrap_indices(dataset, 10):
print(dataset[indices].shape)