Apache Spark - 计算相关性
Apache Spark - calculate correlation
我正在尝试计算用户评分之间的相关性。我想出了一个简单的程序,现在试图了解皮尔逊相关的结果。
val user1 = Vectors.dense(10, 2, 3, 3)
val user2 = Vectors.dense(10, 3, 2, 2)
val user3 = Vectors.dense(1, 8, 9, 1)
val user4 = Vectors.dense(3, 9, 8, 2)
val user5 = Vectors.dense(1, 1, 1, 1)
val user6 = Vectors.dense(2, 2, 2, 2)
val users = spark.sparkContext.parallelize(Array(user1, user2, user3, user4, user5, user6))
val corr = Statistics.corr(users)
这是供参考的矩阵结果:
1.0 -0.30336465877348895 -0.33033040622002124 0.7679896586280794
-0.30336465877348895 1.0 0.9660056657223798 -0.21945076948288175
-0.33033040622002124 0.9660056657223798 1.0 -0.21945076948288175
0.7679896586280794 -0.21945076948288175 -0.21945076948288175 1.0
有人可以帮我解释这个矩阵吗?我很惊讶它包含 4 列和 4 行(我有六个用户作为输入)?
这里就不多解释了。正如你可以阅读 the API docs corr(X: RDD[Vector])
returns:
Pearson correlation matrix comparing columns in X.
所以四列表示 4*4 矩阵。
我正在尝试计算用户评分之间的相关性。我想出了一个简单的程序,现在试图了解皮尔逊相关的结果。
val user1 = Vectors.dense(10, 2, 3, 3)
val user2 = Vectors.dense(10, 3, 2, 2)
val user3 = Vectors.dense(1, 8, 9, 1)
val user4 = Vectors.dense(3, 9, 8, 2)
val user5 = Vectors.dense(1, 1, 1, 1)
val user6 = Vectors.dense(2, 2, 2, 2)
val users = spark.sparkContext.parallelize(Array(user1, user2, user3, user4, user5, user6))
val corr = Statistics.corr(users)
这是供参考的矩阵结果:
1.0 -0.30336465877348895 -0.33033040622002124 0.7679896586280794
-0.30336465877348895 1.0 0.9660056657223798 -0.21945076948288175
-0.33033040622002124 0.9660056657223798 1.0 -0.21945076948288175
0.7679896586280794 -0.21945076948288175 -0.21945076948288175 1.0
有人可以帮我解释这个矩阵吗?我很惊讶它包含 4 列和 4 行(我有六个用户作为输入)?
这里就不多解释了。正如你可以阅读 the API docs corr(X: RDD[Vector])
returns:
Pearson correlation matrix comparing columns in X.
所以四列表示 4*4 矩阵。