web-dev-qa-db-ja.com

類似度行列の平均と標準偏差を計算する方法は?

私はCSVファイルを使用しており、ドキュメント間の類似度を計算するコードを持っています。投稿 1 コードを提供し、データと出力の詳細を以下に示します。

Data.csvは次のようになります。

idx         messages
112  I have a car and it is blue
114  I have a bike and it is red
115  I don't have any car
117  I don't have any bike

出力は次のとおりです。

    id     112    114    115    117
    id                             
    112  100.0   78.0   51.0   50.0
    114   78.0  100.0   47.0   54.0
    115   51.0   47.0  100.0   83.0
    117   50.0   54.0   83.0  100.0

次に、同一性データ(100.0)を使用せずに、類似性マトリックスの下三角の平均と標準偏差を計算します(上と下の両方が類似しているため)。

私はパンダ組み込みの平均と標準を使用しようとしました:

df_std = df.std()
df_Mean = df.mean()

ただし、これは、アイデンティティや上三角など、出力内のすべてのデータを考慮します。

私が述べた方法で平均と標準偏差を計算できる方法があるかどうか知りたいのですが。

3
Bilgin

不要な値をすべてマスクしてnp.nan

df.values[np.triu_indices_from(df.values,0)]=np.nan
df.mean()
112    59.666667
114    50.500000
115    83.000000
117          NaN
dtype: float64
df.std()
112    15.885003
114     4.949747
115          NaN
117          NaN
dtype: float64

値をマスクした後

df
      112   114   115  117
112   NaN   NaN   NaN  NaN
114  78.0   NaN   NaN  NaN
115  51.0  47.0   NaN  NaN
117  50.0  54.0  83.0  NaN
1
YOBEN_S