今天我意识到,在optimize.minimize过程中,向量中的sympy的矩阵符号(对于协方差矩阵上的多个部分元素式导数)与scipy的cdist不兼容,因为它假设在进行函数调用时实际使用数字(公平足够)。
它首先遇到表达式不能转换为浮点数的问题,因为它包含sympy符号
TypeError: can't convert expression to a float
其次是很长的重复列表:
During handling of the above exception, another exception occurred:
SystemError: <built-in function hasattr> returned a result with an error set
是否有通过sympy的符号同时使用cdist和替代的内置方法,还是这里是实现可以处理符号的cdist的自定义实现的唯一选择?没关系,但是我使用的cdist方法是平方欧几里得。
谢谢。
最佳答案
如您所见,scipy.distance.cdist不处理任意对象。您需要自己实施欧几里得准则。