我有一个excel文件,它有126行和5列数字,我必须使用这些数据和SVD方法来预测5-10行数据。我使用numpy在Python中成功地实现了SVD:
将numpy作为np导入 从numpy导入genfromtxt
my_data = genfromtxt('data.csv', delimiter=',')
U, s, V = np.linalg.svd(my_data)
print ("U:")
print (U)
print ("\nSigma:")
print (s)
print ("\nVT:")
print (V)
哪些输出:
^{pr2}$但我不知道如何使用这些数据来规避我的价值观。我使用这个链接http://datascientistinsights.com/2013/02/17/single-value-decomposition-a-golfers-tutotial/作为引用,但那是在R中。最后他们使用R来预测值,但在R中使用这个命令:
approxGolf_1 <- golfSVD$u[,1] %*% t(golfSVD$v[,1]) * golfSVD$d[1]
以下是指向整个R代码的IdeOne链接:http://ideone.com/Yj3y6j
我不太熟悉R,所以有人能告诉我Python中是否有类似于上面命令的函数,或者解释一下这个命令到底在做什么?在
谢谢。在
我将使用您链接的高尔夫球场示例数据来设置阶段:
这将为您提供原始的9行3列表格,其中包括3名球员的9个洞得分:
^{pr2}$现在,奇异值分解:
最重要的是要研究奇异值的向量
s
:结果表明,第一个值比其他值大得多,说明只有一个值的对应的Truncated SVD很好地代表了原始矩阵{}。要计算这个表示,需要将
U
的第1列乘以V
的第一行,再乘以第一个奇异值。这是R中最后引用的命令的作用。在Python中也是这样:这个产品的结果是:
关于向量因子}则编码玩家的力量。在
U[:,0]
和V[0,:]
:形象地说,U
可以看作是一个洞的难度的表示,而{相关问题 更多 >
编程相关推荐