我有一个 126 行和 5 列充满数字的 excel 文件,我必须使用该数据和 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)
输出:
U:
[[-0.03339497 0.10018171 0.01013636 ..., -0.10076323 -0.09740801
-0.08901366]
[-0.02881809 0.0992715 -0.01239945 ..., -0.02920558 -0.04133748
-0.06100236]
[-0.02501102 0.10637736 -0.0528663 ..., -0.0885227 -0.05408083
-0.01678337]
...,
[-0.02418483 0.10993637 0.05200962 ..., 0.9734676 -0.01866914
-0.00870467]
[-0.02944344 0.10238372 0.02009676 ..., -0.01948701 0.98455034
-0.00975614]
[-0.03109401 0.0973963 -0.0279125 ..., -0.01072974 -0.0109425
0.98929811]]
Sigma:
[ 252943.48015512 74965.29844851 15170.76769244 4357.38062076
3934.63212778]
VT:
[[-0.16143572 -0.22105626 -0.93558846 -0.14545156 -0.16908786]
[ 0.5073101 0.40240734 -0.34460639 0.45443181 0.50541365]
[-0.11561044 0.87141558 -0.07426656 -0.26914744 -0.38641073]
[ 0.63320943 -0.09361249 0.00794671 -0.75788695 0.12580436]
[-0.54977724 0.14516905 -0.01849291 -0.35426346 0.74217676]]
但我不确定如何使用这些数据来预测我的价值观。我正在使用此链接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 中是否有与上述命令类似的函数,或者解释该命令到底在做什么?
谢谢。