首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Patsy的API准备大型数据集?

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

Stack Overflow用户
提问于 2014-10-22 06:37:45
回答 1查看 653关注 0票数 3

我正在运行一个逻辑回归,当数据大于一个小样本时,我很难使用Patsy的API来准备数据。

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

代码语言:javascript
复制
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

因此,我在帕齐(氏)中搜索并找到了这个宝石:

代码语言:javascript
复制
patsy.incr_dbuilder(formula_like, data_iter_maker, eval_env=0)
    Construct a design matrix builder incrementally from a large data set.

然而,该方法的文档很少,源代码基本上没有注释。

我得出了这样的代码:

代码语言:javascript
复制
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行

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-16 06:06:19

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

代码语言:javascript
复制
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
  # ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26501609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档