diff --git a/src/python/14.SVD/svdRec.py b/src/python/14.SVD/svdRec.py index a85fe180..c051a7c4 100644 --- a/src/python/14.SVD/svdRec.py +++ b/src/python/14.SVD/svdRec.py @@ -37,6 +37,7 @@ def loadExData2(): def loadExData(): + """ # 推荐引擎示例矩阵 return[[4, 4, 0, 2, 2], [4, 0, 0, 3, 3], @@ -54,7 +55,7 @@ def loadExData(): [1, 1, 0, 2, 2], [0, 0, 0, 3, 3], [0, 0, 0, 1, 1]] - """ + # 相似度计算,假定inA和inB 都是列向量 @@ -211,18 +212,18 @@ def imgCompress(numSV=3, thresh=0.8): if __name__ == "__main__": - """ + # 对矩阵进行SVD分解(用python实现SVD) Data = loadExData() + print Data U, Sigma, VT = linalg.svd(Data) # 打印Sigma的结果,因为前3个数值比其他的值大了很多,为9.72140007e+00,5.29397912e+00,6.84226362e-01 # 后两个值比较小,每台机器输出结果可能有不同可以将这两个值去掉 - # print Sigma + print Sigma # 重构一个3x3的矩阵Sig3 - # Sig3 = mat([[Sigma[0], 0, 0], [0, Sigma[1], 0], [0, 0, Sigma[2]]]) - # print U[:, :3] * Sig3 * VT[:3, :] - """ + Sig3 = mat([[Sigma[0], 0, 0], [0, Sigma[1], 0], [0, 0, Sigma[2]]]) + print U[:, :3] * Sig3 * VT[:3, :] """ # 计算欧氏距离 @@ -241,6 +242,7 @@ if __name__ == "__main__": """ + """ # 计算相似度的方法 myMat = mat(loadExData2()) # print myMat @@ -249,7 +251,6 @@ if __name__ == "__main__": # 计算相似度的第二种方式 print recommend(myMat, 1, estMethod=svdEst, simMeas=pearsSim) - """ # 默认推荐(菜馆菜肴推荐示例) print recommend(myMat, 2) """ @@ -269,5 +270,3 @@ if __name__ == "__main__": # 压缩图片 # imgCompress(2) - -