首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Patsy的dmatrices不能读我的公式

Patsy的dmatrices不能读我的公式
EN

Stack Overflow用户
提问于 2015-04-12 11:06:58
回答 1查看 682关注 0票数 1

我有一个函数LogReg,如下所示:(使用正当马克哈姆密码作为灵感)

代码语言:javascript
复制
def LogReg(self):
      formulA = "class ~"
      print self.frame #dataframe used
      print self.columnNames[:-1]
      for a in self.columnNames[:-1]:
         formulA += " {0} +".format(a)
      formula = formulA[:-2] #there is always a \n behind, we don't want that
      print "formula = " + formula
      Y,X = dmatrices(formula, self.frame, return_type="dataframe")
      Y = np.ravel(Y) #flatten Y to a 1D list
      model = LogisticRegression() #from sklearn.linear_model
      model = model.fit(X, Y)
      print model.score(X, Y)

取得的成果如下:

代码语言:javascript
复制
         a0 a1  a2  a3 class
picture1  1  2   3  67     1
picture2  6  7  45  61     3
picture3  8  7   6   5     2
picture4  1  2   4   3     0
['a0', 'a1', 'a2', 'a3']
formula = class ~ a0 + a1 + a2 + a3
Traceback (most recent call last):
  File "classification.py", line 80, in <module>
    c.LogReg()
  File "classification.py", line 61, in LogReg
    Y,X = dmatrices(formula, self.frame, return_type="dataframe")
  File "/<path>/python2.7/site-packages/patsy/highlevel.py", line 297, in dmatrices
    NA_action, return_type)
  File "/<path>/python2.7/site-packages/patsy/highlevel.py", line 152, in _do_highlevel_design
    NA_action)
  File "/<path>/python2.7/site-packages/patsy/highlevel.py", line 57, in _try_incr_builders
    NA_action)
  File "/<path>/python2.7/site-packages/patsy/build.py", line 660, in design_matrix_builders
    NA_action)
  File "/<path>/python2.7/site-packages/patsy/build.py", line 424, in _examine_factor_types
    value = factor.eval(factor_states[factor], data)
  File "/<path>/python2.7/site-packages/patsy/eval.py", line 485, in eval
    return self._eval(memorize_state["eval_code"], memorize_state, data)
  File "/<path>/python2.7/site-packages/patsy/eval.py", line 468, in _eval
    code, inner_namespace=inner_namespace)
  File "/<path>/python2.7/site-packages/patsy/compat.py", line 117, in call_and_wrap_exc
    return f(*args, **kwargs)
  File "/<path>/python2.7/site-packages/patsy/eval.py", line 125, in eval
    code = compile(expr, source_name, "eval", self.flags, False)
  File "<string>", line 1
    class
        ^
SyntaxError: unexpected EOF while parsing

我看不出这里出了什么问题,因为据我所知,字符串不包含EOF字符,Python代码似乎也没有错误。因此,问题是:它哪里出错了(最好是:,以及如何解决它)?

P.S.:所使用的软件都是04/09/2015可用的最新稳定软件包。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-12 11:11:49

那可真快啊。通过问这个问题,我突然在代码中有了颜色标记,通知我“class”是一个受保护的名称,不应该用作变量。奈诺没有给出这些颜色,让我失明。

吸取的教训:孩子们,不要把课堂当作变量。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29588717

复制
相关文章

相似问题

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