Опитвам се да заработя една рецепта, която намерих онлайн за максимизиране на очакванията (http://code.activestate.com/recipes/577735-expectation-maximization/). Срещам следната грешка:
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=int64
и m.dtype=float64
, което според мен трябва да работи.
Някой има ли идеи?