0

私は期待値最大化(http://code.activestate.com/recipes/577735-expectation-maximization/)を行ってオンラインで見つけたレシピを手に入れようとしています。私は、次のようなエラーに遭遇:Numpy __array_prepare__エラー

Traceback (most recent call last): 
    File "./runem.py", line 7, in <module> 
    print expectation_maximization([[1,2,3,4,5],[2,3,4,5,6],[9,8,7,4,1]], 2) 
    File "/local/scratch-3/dk427/rp/em.py", line 83, in expectation_maximization 
    Px[o,c] = pnorm(t[o,:], params[c]['mu'], params[c]['sigma']) 
    File "/local/scratch-3/dk427/rp/em.py", line 18, in pnorm 
    xmt = np.matrix(x-m).transpose() 
TypeError: __array_prepare__ must return an ndarray or subclass thereof which is otherwise identical to its input 

いくつかのアルゴリズムの欠陥、または私はそれを間違った入力を与えているが、私は間違って何が起こっているのか見つけることができませんが存在する必要があります。私は、エラーが減算x-mによって引き起こされたが、x.dtype=int64m.dtype=float64が原因であることがわかった。これはうまくいくはずだ。

誰にもアイデアはありますか?

答えて

1

あなたは配列ではなくリストのリストを渡しているようです。あなたのような何かができる:

自分のコンピュータ上で平​​方根をとると、いくつかの点でいくつかの問題を持っているようだが、そのデータが何らかの理由でこのアルゴリズムのために良いではありませんので、私はそれがかもしれないと思う
ts = np.array([[1,2,3,4,5],[2,3,4,5,6],[9,8,7,4,1]]) 
expectation_maximization(ts, 2) 

(しかし、私はアルゴリズムが何をしようとしているのか分からないので、私は確かに言うことはできません)。