建立手動相似度評估

如要計算兩個範例的相似度,您必須將這兩個範例的所有特徵資料合併為一個數值。

例如,假設鞋組資料集只有一個鞋款:鞋款。您可以藉由計算不同尺寸之間的差異,藉此量化兩部類似的鞋款。大小之間的數值差異越小,鞋子的相似度就越大。這種手工的相似度測量稱為「手動相似度測量」

如果您想要同時找出兩種尺寸和顏色的相似之處,該怎麼做?顏色是「類別資料」,較難與數字大小資料合併。隨著資料變得越來越複雜,建立手動相似度評估的難度會越來越困難。如果資料夠複雜,您將無法建立手動測量。改用監督式相似度評估時,受監督的機器學習模型會計算相似度。

我們稍後將保留受監督相似度測量值,並將重點放在這裡的手動評估方式。不過請注意,您在建立手動相似度評估時遇到困難,請切換至受監督的相似度測量結果。

為了瞭解手動相似度指標的運作原理,請觀看鞋類範例。假設模型有兩個功能:鞋碼和鞋類資料。 由於這兩種功能都是數字,因此您可以將多個特徵合併為單一數字,代表相似度。

  • 尺寸 (鞋):鞋類尺寸可能構成高斯分佈。請確認這一點。 接著將資料正規化。
  • 價格 (p):資料可能為 Poisson 分佈情形。確認。如果您擁有足夠的資料,請將資料轉換為分位數並調整為 \([0,1]\)。
  • 使用根平均值平方錯誤 (RMSE) 來合併資料。相似之處為 \(\sqrt{\frac{s^2+p^2}{2}}\)。

為了簡化範例,讓我們計算兩個大小為 8 和 11 且價格為 120 和 150 的鞋子的相似性。由於我們沒有足夠的資料可以瞭解分佈情形,因此只會在不正規化或使用分位數的情況下擴充資料。

動作方法
調整大小。 假設鞋子的大小上限為 20。將 8 和 11 除以最大值 20,即可取得 0.4 和 0.55。
調整價格。 將 120 和 150 除以最高價格 150,即可取得 0.8 和 1。
找出不同大小之間的差異。 \(0.55 - 0.4 = 0.15\)
找出價格差異。 \(1 - 0.8 = 0.2\)
找出 RMSE。 \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\)

直覺化後,當特徵資料變差時,測量的相似度應該會增加。而評估的相似程度則逐漸減少。按照 1 的值減去測量結果相似度。

\[\text{Similarity} = 1 - 0.17 = 0.83\]

一般來說,請按照「準備資料」一文中的說明準備數值資料,然後使用 Euclidean 距離合併資料。

如果您有類別資料,該怎麼辦?類別資料可以是:

  • 單值 (一體),例如汽車的顏色 (「白色」或「藍色」),但兩者只能擇一)
  • 多值 (多值),例如電影的類型 (可以是「作用」和「喜劇」或「動作」)

如果不一致的資料相符,相似度為 1,否則為 0。多值資料較難處理。例如,電影類型可能是一項挑戰。為瞭解決這個問題,我們假設電影是由一組固定的類型指派。使用常見值的比率計算相似性,即「JaCard 相似度

範例:

  • [“comedy””[action]] 和 [“comedy”,"action”] = 1
  • [“comedy””、action”] 和 [“action”] = 1⁄2
  • [「comedy」、「action」]和「“action”,「drama」] = 1⁄3
  • [“comedy””、action””和 [“non-lite””,biographical”] = 0

下表列舉瞭如何處理類別資料。

範例
郵遞區號 代表相鄰區域的郵遞區號看起來應該比較高。如要準確計算計算相似度所需的資訊,您可以將郵遞區號轉換為經緯度。針對一對郵遞區號,請分別計算緯度與經度之間的差異。然後加上差異,以取得單一數值。
顏色 假設你將顏色資料顯示為文字。將文字值轉換為數字 RGB 值。現在,您可以找出兩種顏色的紅色、綠色和藍色值的差異,再使用歐克立德距離將數值差化為數值。

一般來說,相似度測量值必須直接對應至實際相似度。如果指標沒有,則不會將必要的資訊編碼。上述範例會將郵遞區號轉換為緯度和經度,因為郵遞區號本身並未將必要的資訊編碼。

建立相似度評估結果前,請謹慎處理資料。雖然本頁的範例是以小型簡易資料集為基礎,但大部分的實際資料集遠大於其他情況。請記住,分位數是處理數字資料的絕佳選擇。