見出し画像

【データ分析】2つのランキングの類似度を測る Part.2

先日、「2つのランキングの類似度を測る」という記事を書かせていただきました。

「リンゴ」「マンゴー」「バナナ」「イチゴ」「オレンジ」「ブドウ」のようなアイテム群から作られたランキング同士を比較して、どの2つのランキングが最も似ているのか、または最も似ていないのかを定量的に評価する手法をまとめた記事です。

しかし、ここでの比較は2つのランキングを構成する要素が全く同一であることが前提となっていました。

つまり、「リンゴ>マンゴー>バナナ」と「リンゴ>バナナ>マンゴー」の2つのランキングは比較できても、

「リンゴ>マンゴー>バナナ」と「イチゴ>バナナ>マンゴー」の2つのランキングは前回の記事で紹介した手法では比較できません。

好きな芸能人トップ10などのランキングを考えた際、ランキングに登場する人物が丸っきり被ることを期待するのは難しいでしょう。

こうした要素の異なるランキングがどの程度似ているか考えることはできないのでしょうか


要素の異なるランキングの類似度を測る方法

具体例で考えてみる

要素の異なるランキングがどの程度似ているか考えるためにはどうすれば良いのでしょうか。具体例を通して考えてみたいと思います。次の例1と例2はどちらも好きな果物を3つ挙げてもらった場合のランキングです。

例1:全ての要素が異なる2つのランキング

ランキングA:リンゴ>ミカン>メロン

ランキングB:梨>オレンジ>スイカ

例2:互いに1個を除いて要素が共通している2つのランキング

ランキングC:マンゴー>ブルーベリー>バナナ

ランキングD:ブルーベリー>パイナップル>マンゴー

ランキングAとB、ランキングCとDはどちらの組の方が似ているでしょうか。

実はランキングAとBは「バラ科」「ミカン科」「ウリ科」という括りで見ると科目の並びが全く同じになっています。ランキングを比較する目的によっては、ランキングAとBの方が似たランキングになっていると結論付けた方が良い場合があるかもしれません。

このように、ランキングの要素そのものでは異なっていても、適度に抽象化することで要素を揃えてランキングを比較できる場合もあります。この場合は、前回と同様に考えることでランキングの類似度を考えることが可能です。

しかし、素直に見ればランキングAとBは全く異なる種類の果物が3つ並んだランキングになっている一方、ランキングCとDは3つの果物の内「マンゴー」「ブルーベリー」の2つの果物は重複しており、直感としてはランキングCとDの組の方が似ているように思えますよね。

この直感は要素の重複に感じられるものであり、ランキングとしての順番を考慮したものではありません。つまり、順番に意味のあるランキング同士の比較ではなく、単なる集合同士の比較をしていることになります。

3つの測定方法

この「集合の類似度」を測定する代表的な手法は3つあるそうです。具体的に考えるため、ランキングXとランキングYを次のように仮定して、実際にAとBの距離を測定しながら紹介していきます。

ランキングX:マンゴー>メロン>バナナ>スイカ

ランキングY:スイカ>パイナップル>マンゴー>メロン

① Jaccard係数

Jaccard係数は、2つの集合に含まれている要素の内、共通している要素の割合を表します。完全に一致する時に1、共通する要素が無い時に0になります。

ランキングXとYの場合、「マンゴー」「メロン」「バナナ」「スイカ」「パイナップル」の5つの内、共通しているのは「メロン」「スイカ」の2つであるため、0.4と分かります。

$$
\cfrac{2}{5}=0.4
$$

② Dice係数

Dice係数は、Jaccard係数の分母を2つの集合の要素数の平均にしたものです。完全に一致する時に1、共通する要素が無い時に0になる点はJaccard係数と同様です。

先のJaccard係数は共通していない要素数が多ければ多いほど値が小さくなる値でした。本来、類似度は共通要素が多いほど高くなるべき数値であり、共通していない要素数の影響を強く受けることは理想的ではありません。

そのため、要素数の平均を分母とすることで共通していない要素数の影響を抑えようとしているのがDice係数の考え方です。

ランキングXとYの場合、2つの集合の要素数はどちらも4なので、平均しても4です。従って、0.5となります。

$$
\cfrac{2}{4}=0.5
$$

③ Simpson係数

Simpson係数は、Dice係数の分母を更に2つの集合の内、要素数が少ない方の集合の要素数としたものです。

つまり、2つの集合の内、要素数の少ない方の集合に対する共通要素の割合を表します。Simpson係数も、Jaccard係数、Dice係数と同様に完全に一致する時に1、共通する要素が無い時に0になりますが、Simpson係数の場合は加えて片方の集合がもう片方の部分集合の時にも1となります。

ランキングXとYの場合、2つの集合の要素数はどちらも4なので、Dice係数と同様0.5となります。

まとめ

本稿では、具体例を交えつつ要素の異なる2つのランキングの類似度を測る方法を検討してきました。

結果、類似度を測りたいランキングの要素が異なる場合、次の2つのアプローチが考えられることが分かりました。

・要素を適当に抽象化することで、要素の同じランキングとして考える
・ランキングとしての比較を諦め、集合としての類似度を考える

ただし、前者のアプローチを取ることができるケースは非常に限定的であるため、現実的には後者のアプローチを取ることがほとんどになると思われます。

この記事が参加している募集

数学がすき

この記事が気に入ったらサポートをしてみませんか?