如何使用Patsy的API准备大型数据集?

恩康纳

我正在执行逻辑回归,并且在大于小样本时使用Patsy的API来准备数据时遇到了麻烦。

dmatrices直接在DataFrame上使用该函数,我会遇到这个突然的错误(请注意,在笔记本电脑上遇到此错误后,我用300GB的内存启动了EC2,并得到了相同的错误):

Traceback (most recent call last):
File "My_File.py", line 22, in <module>
   df, return_type="dataframe")
File "/root/anaconda/lib/python2.7/site-packages/patsy/highlevel.py", line 297, in dmatrices
 NA_action, return_type)
File "/root/anaconda/lib/python2.7/site-packages/patsy/highlevel.py", line 156, in do_highlevel_design
return_type=return_type)
File "/root/anaconda/lib/python2.7/site-packages/patsy/build.py", line 989, in build_design_matrices
results.append(builder._build(evaluator_to_values, dtype))
File "/root/anaconda/lib/python2.7/site-packages/patsy/build.py", line 821, in _build
m = DesignMatrix(np.empty((num_rows, self.total_columns), dtype=dtype),
MemoryError

因此,我梳理了Patsy的文档,发现了这个瑰宝:

patsy.incr_dbuilder(formula_like, data_iter_maker, eval_env=0)
    Construct a design matrix builder incrementally from a large data set.

但是,该方法的文档很少,并且源代码基本上没有注释。

我到达了此代码:

def iter_maker():
    with open("test.tsv", "r") as f:
        reader = csv.DictReader(f, delimiter="\t")
        for row in reader:
            yield(row)


y, dta = incr_dbuilders("s ~ C(x) + C(y):C(rgh) + \
C(z):C(f) + C(r):C(p) + C(q):C(w) + \
C(zr):C(rt) + C(ff):C(djjj) + C(hh):C(tt) + \
C(bb):lat + C(jj):lng + C(ee):C(bb) + C(qq):C(uu)",
        iter_maker)

df = dmatrix(dta, {}, 0, "drop", return_type="dataframe")

但我收到 PatsyError: Error evaluating factor: NameError: name 'ff' is not defined

由于_try_incr_builders(从dmatrix调用)在highlevel.py的第151行返回None 因此引发此错误

使用这些Patsy函数准备数据的正确方法是什么?您可能拥有的任何示例或指南都会有所帮助。

纳撒尼尔·史密斯

y并且dtaDesignInfo对象-它们编码所有采取的数据帧的行所需的信息并将其转换为一个设计矩阵的行。但是,它们中没有实际数据-要获得设计矩阵的一部分,您必须给他们一部分数据。要使用它们,您需要做类似的事情

for data_chunk in iter_maker():
  y_chunk, design_chunk = dmatrices((y, dta), data_chunk,
                                    NA_action="drop", return_type="dataframe")
  # do something with y_chunk and design_chunk
  # ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Patsy的API准备大型数据集?

来自分类Dev

如何使用** for **循环清理大型数据集

来自分类Dev

如何使用Matlab向量化“大型数据集”的for循环

来自分类Dev

如何使用大型数据集并行化 python 循环

来自分类Dev

如何为CNN准备自己的数据集

来自分类Dev

如何训练大型数据集进行分类

来自分类Dev

CloudFirestore如何查询大型数据集?

来自分类Dev

使用JQPlot绘制大型数据集

来自分类Dev

在大型数据集上使用Leaps或glmnet

来自分类Dev

使用AngularJS加载大型数据集

来自分类Dev

使用Python创建大型数据集

来自分类Dev

使用Pandas合并大型数据集

来自分类Dev

使用大型数据集加快Postgresql查询

来自分类Dev

使用dask加载大型压缩数据集

来自分类Dev

使用GraphDB卡住加载大型数据集

来自分类Dev

使用AngularJS加载大型数据集

来自分类Dev

使用大型数据集优化循环Python

来自分类Dev

使用ActiveJDBC加载大型数据集

来自分类Dev

使用Couchbase处理大型数据集

来自分类Dev

使用Pandas合并大型数据集

来自分类Dev

MNIST - 数据集准备

来自分类Dev

准备训练数据集

来自分类Dev

如何使用psql处理大型结果集?

来自分类Dev

MySQL大型数据集

来自分类Dev

更新大型数据集

来自分类Dev

合并大型数据集

来自分类Dev

管理大型数据集

来自分类Dev

如何使用MySQL .net连接器为大型数据集流结果集

来自分类Dev

如何对带有大型数据集的Python使用性别化包?