mirror of
https://github.com/apachecn/ailearning.git
synced 2026-02-11 22:35:35 +08:00
更新 14.SVD注释
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user