我今天意识到,矢量中的同意矩阵符号(对于协方差矩阵中的多个部分元素导数)在优化。最小化过程中与scipy的cdist不兼容,因为它假设在进行函数调用时实际使用数字(足够公平)。
它首先遇到的问题是表达式无法转换为浮点数,因为它包含符号符号
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方法是欧几里德平方。
感谢。
答案 0 :(得分:1)
正如您所发现的,scipy.distance.cdist不处理任意对象。你需要自己实现欧几里德规范。
答案 1 :(得分:1)
你可以通过首先将它转换为显式矩阵对象,然后使用norm方法来获得SymPy矩阵表达式的范数。
{{1}}