LinAlgError: Array must not contain infs or NaNs

    用python做谱聚类,开始的时候选择目标函数用Min cut方法,一切正常,聚类效果不错;然后用Nomarlized cut,聚类空手道网络的时候也一切正常,聚类自己计算的一个课程相似度网络的时候开始报错:。换用Min cut就没有问题,而Nomarlized cut相比Min cut只多了对划分平衡的考虑,所以问题肯定出在对拉普拉斯矩阵的转换上:。刚想到这里的时候,由于线代基础太薄弱了,只想到了肯定是矩阵元素有问题,比如元素缺失之类的,但打印了矩阵元素也没发现问题所在。后来经过学霸点拨,发现问题出在D上。相似度矩阵D里有负元素,做不了逆开方运算,故报错。

    由于在课程相似度网络里,课程之间有负相关,所以直接应用此相似度矩阵无法做Nomarlized cut。后来计算exp(x)代替原来的相似度,终于得到了基本正确的结果。

   

posted @ 2015-12-09 19:12  哩歪  阅读(2353)  评论(0编辑  收藏  举报