【发布时间】:2022-11-20 07:58:12
【问题描述】:
我有 17k+ 行数据,我把每一行都变成了一个向量。
数据的前 5 行看起来像这样...... 5 rows of the data
第一列是 17k+ 不同的电影标题,另外两列是我创建的特征向量“AveRating”和“CountRating”
我想比较每部电影并列出相关性 > .70 的电影
这是我将每一行转换为向量后数据的样子——每一行都是不同的电影。
现在我需要确定每对电影之间的相关性是否 > .7
我不确定如何进行
# Merge the datasets by Title so I'll have 3 columns Title, AveRating and CountRating
Hw_2 = pd.read_csv('/Volumes/USDA HD/Final Semester Fall 2022/CYBI 6378/archive/HW3_2.csv', encoding='latin-1')
Hw_3 = pd.read_csv('/Volumes/USDA HD/Final Semester Fall 2022/CYBI 6378/archive/HW3_3.csv', encoding='latin-1')
MergedDF = pd.merge(Hw_2, Hw_3)
print(MergedDF.head(5))
# Vectorize each row leaving out column 1 "Title" by converting the dataset into an array
Hw3_array = MergedDF[["AveRating", "CountRating"]].to_numpy()
print(Hw3_array)
# THAN FIND THE CORRELATION AMONG ALL THE PAIRS OF VECTORS AND PRINT ALL CORRELATIONS > .70
【问题讨论】:
-
嘿,正如你所说,关联是在特征之间完成的,而不是在数据(电影)之间完成的。如果您正在构建推荐模型,我认为您最好使用距离。计算所有电影之间的距离,将它们按降序排序并选择前 N 部电影。
-
你想要的可能是最大互相关,你可以使用 correlate 函数。如果您只关心最大互相关,请查看 lag=0。当然,也许可以通过某种方式对其进行归一化,通过除以两个向量的自相关或两个向量的简单范数来减少。
标签: python arrays dataframe matrix correlation