person 相關系數


import  pandas as pd
import pprint
import numpy as np

users = ['user1','user2','user3','user4','user5',]
items = ['item A','item B','item C','item D','item E',]


datasets = [
[5,3,4,4,None],
[3,1,2,3,3],
[4,3,4,3,5],
[3,3,1,5,4],
[1,5,5,2,1]
]

df = pd.DataFrame(datasets,columns= items,index= users)

print(df)
print('用戶之間的兩兩相似度:')
#直接計算person(皮爾遜)相關系數
#默認是按列進行計算,因此如果計算用戶間的相似度,當前需要進行轉置

# DataFrame.corr(method='pearson', min_periods=1)
#
# 參數說明:
#
# method:可選值為{‘pearson’, ‘kendall’, ‘spearman’}
#
# pearson:Pearson相關系數來衡量兩個數據集合是否在一條線上面,即針對線性數據的相關系數計算,針對非線性 數據便會有誤差。
#
# kendall:用於反映分類變量相關性的指標,即針對無序序列的相關系數,非正太分布的數據
#
# spearman:非線性的,非正太分析的數據的相關系數
#
# min_periods:樣本最少的數據量
#
# 返回值:各類型之間的相關系數DataFrame表格。

user_similar = df.T.corr(method='pearson')
# user_similar = df.T
print(user_similar)


print('物品之間的兩兩相似度:')
item_similar = df.corr()
print(item_similar)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM