【发布时间】:2015-09-09 22:58:46
【问题描述】:
我编写了一个 python 脚本来获取一个大文件(一个矩阵 ~50k 行 X ~500 列)并将其用作数据集来训练随机森林模型。
我的脚本有两个功能,一个是加载数据集,另一个是使用所述数据训练随机森林模型。这些都可以正常工作,但是文件上传需要大约 45 秒,每次我想训练一个略有不同的模型(在同一数据集上测试许多模型)时,这样做很痛苦。这是文件上传代码:
def load_train_data(train_file):
# Read in training file
train_f = io.open(train_file)
train_id_list = []
train_val_list = []
for line in train_f:
list_line = line.strip().split("\t")
if list_line[0] != "Domain":
train_identifier = list_line[9]
train_values = list_line[12:]
train_id_list.append(train_identifier)
train_val_float = [float(x) for x in train_values]
train_val_list.append(train_val_float)
train_f.close()
train_val_array = np.asarray(train_val_list)
return(train_id_list,train_val_array)
这将返回一个带有 col 的 numpy 数组。 9 作为标签和列。 12-end 作为元数据来训练随机森林。
我将使用相同的数据训练我的模型的许多不同形式,所以我只想上传一次文件并将其提供给我的随机森林函数。我希望文件成为我认为的对象(我对 python 很陌生)。
【问题讨论】:
-
我相信如果你在python控制台运行,你可以加载一次文件,然后单独加载其他文件/调用函数,而不必重新加载文件
-
您必须查看pandas 库以进行数据处理。使用它来操作数据是小菜一碟。如果您以前使用过 R,您将能够很快掌握它。具体来说,您应该查看文档中的
read_xxx函数,这些函数允许您将不同的文件格式加载到数据帧中。
标签: python object large-file-upload