我正在通过对分类值使用一键编码对数据进行预处理来处理ML模型。我有30万行这样的内容:
['1901', array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.]), array([0., 0., 0., ..., 0., 0., 0.]), '69.55', '9', '95.95', array([1.]), '8', '2000', array([0., 1., 0.]), array([1.]), array([0., 1.]), array([0., 1., 0., 0., 0., 0., 0., 0., 0., 0.]), '11.75', '7.0', '9.6791', '121', array([0., 1.]), array([0., 1., 0., 0.]), '0'], ['8451958', array([0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.]), array([0., 0., 0., ..., 0., 0., 0.]), '99.55', '3', '2098.65', array([1.]), '8', '18', array([0., 1., 0.]), array([1.]), array([0., 1.]), array([0., 0., 1., 0., 0., 0., 0., 0., 0., 0.]), '13.24', '24.0', '7.81', '22033', array([0., 1.]), array([0., 0., 1., 0.]), '0']
其中数组是分类值的一键编码。
要训练我的模型,我必须使用以下代码扩展内部数组:
new_label_x = []
for j in range(len(label_x)):
new_line = []
for i in range(len(label_x[j])):
if type(label_x[j][i]) is numpy.ndarray:
for k in label_x[j][i]:
new_line.append(float(k))
else:
new_line.append(float(label_x[j][i]))
new_label_x.append(new_line)
但是,出现内存错误的原因可能是我的numpy.ndarray中有一个包含5000个元素,而new_label_x却变得太大(长度= 5249)。解决此问题的最佳方法是什么?