我正在嘗試對共現矩陣進行歸一化(我認為它被稱為?)我有以下來自 csv 檔案的資料樣本:
import pandas as pd
df = pd.DataFrame({'A':[1,1,1,0,1,1,1,1],
'B':[1,0,1,0,1,1,1,1],
'C':[0,1,0,1,1,0,1,1],
'D':[1,1,1,1,0,1,1,1],
'E':[0,1,1,1,1,1,1,0]})
...我已經使用以下方法來創建這個矩陣:(
uj5u.com熱心網友回復:
使用numpy:
import numpy as np
>>> coocc.divide(np.diag(coocc))
A B C D E
A 1.000000 1.000000 0.8 0.857143 0.833333
B 0.857143 1.000000 0.6 0.714286 0.666667
C 0.571429 0.500000 1.0 0.571429 0.666667
D 0.857143 0.833333 0.8 1.000000 0.833333
E 0.714286 0.666667 0.8 0.714286 1.000000
如果要強制上對角線值為零,可以執行以下操作:
>>> pd.DataFrame(np.tril(coocc.divide(np.diag(coocc))), columns=coocc.columns, index=coocc.index)
A B C D E
A 1.000000 0.000000 0.0 0.000000 0.0
B 0.857143 1.000000 0.0 0.000000 0.0
C 0.571429 0.500000 1.0 0.000000 0.0
D 0.857143 0.833333 0.8 1.000000 0.0
E 0.714286 0.666667 0.8 0.714286 1.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/347938.html
