sklearn字典学习中的错误计算

时间:2016-04-28 13:08:14

标签: python dictionary scikit-learn

我正在尝试重新计算字典学习的重建错误。

根据此处的公式重新计算此错误时,我得到的结果与sklearn输出的结果不同。

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.DictionaryLearning.html

根据我在sklearn的代码中可以理解的,它可能与transform_algorithm的选择有关,但我不明白到底是什么。

以下是说明问题的代码段。

https://gist.github.com/nicofarr/d277fb0c350849e0c3333767b8a1fb2b

当将alpha设置为0时,我的误差计算是正确的,所以我假设我正在以正确的方式计算残差。所以问题在于错误的第二个术语,它涉及alpha。

提前致谢

Nicofarr

1 个答案:

答案 0 :(得分:0)

Nico,根据您的代码,您使用与最小化的目标函数相同的公式计算误差,以找到最佳稀疏拟合,即“残差”+“alpha *惩罚”。添加惩罚以强制解决方案中的稀疏性,但不应将其用于计算错误。您正在寻找的错误由残差给出。您是否检查过代码和sklearn中的最佳参数(u和v)是否相同?