使用 MinMaxScaler 的归一化邻接矩阵(在 pandas 中)

Normalize adjency matrix (in pandas) with MinMaxScaler

我有一个项目与项目的邻接矩阵 (dm);两个项目(例如,item0、item1)之间的值是指这些项目一起出现的次数。如何在 0 到 1 之间缩放 pandas 中的所有值?

from sklearn import preprocessing
scaler = preprocessing.MinMaxScaler()

但是,我不确定如何将缩放器应用于 pandas 数据框。

您可以使用 loc:

将生成的数组分配回数据框
df = pd.DataFrame(np.random.randint(1, 5, (5, 5)))

df
Out[277]: 
   0  1  2  3  4
0  2  3  2  3  1
1  2  3  4  4  2
2  2  3  4  3  2
3  1  1  2  1  4
4  4  2  2  3  1

df.loc[:,:] = scaler.fit_transform(df)

df
Out[279]: 
          0    1    2         3         4
0  0.333333  1.0  0.0  0.666667  0.000000
1  0.333333  1.0  1.0  1.000000  0.333333
2  0.333333  1.0  1.0  0.666667  0.333333
3  0.000000  0.0  0.0  0.000000  1.000000
4  1.000000  0.5  0.0  0.666667  0.000000

您可以对 (df - df.min()) / (df.max() - df.min()) 执行相同的操作。