如果你想使用這兩個向量TD/IDF之間的傳統餘弦相似,那麼每個學期是在你的向量維度。也就是說,你需要形成兩個新的向量A'和B'並執行這兩者之間的相似性。
這些載體具有用於每個術語的尺寸,並且你有65項:
property 1: true and false
property 2: true and false
property 3: 0 through 50
property 4: 0 through 10
所以A「和B」將是長度65的載體和每個元素將是0或1:
A'(0) = 1 if A(0) = true, and 0 otherwise
A'(1) = 1 if A(0) = false, and 0 otherwise
etc.
很明顯,你可以看到,這是低效的。你實際上並不需要計算A'或B'來與td/idf使用餘弦相似度;你可以假裝你計算它們並在A和B上執行計算。注意長度(A')=長度(B')= sqrt(4),因爲A'和B'中只有4個。
儘管td/idf可能不是你最好的選擇,但如果你想在屬性3和屬性4之間考慮相似性。也就是說,對於td/idf,屬性3的值40與屬性3的值不同爲41並且不同於屬性3的值爲12.然而,41不被認爲比40更遠離「更遠」;他們都是不同的條款。
所以,如果你想要財產3,4納入的距離(1是真的接近2和50遠遠表格2),那麼你必須定義的距離度量。如果你想對屬性3和4的布爾值進行權衡,你還必須定義一個不同的距離度量。如果這些是你想要做的事情,忘記餘弦,只是想出一個價值。
下面是一個例子:
distance = abs(A.property1 - B.property1) * 5 +
abs(A.property2 - B.property2) * 5 +
abs(A.property3 - B.property3)/51 * 1 +
abs(A.property4 - B.property4)/10 * 2
然後相似性=(最大所有距離的) - 距離;
或者,如果你喜歡,相似度= 1 /距離。
你可以真正定義它,你喜歡什麼。如果你需要的相似度在0到1之間,那麼通過除以最大可能的距離來歸一化。
來源
2014-10-04 22:07:20
Ian
你好伊恩,非常感謝這樣的信息回覆。我知道上面描述的方法效率非常低,因爲我們將爲簡單整數值創建多維向量。我同意第二種建議的方法來計算距離度量和適當的權衡。我有一些關於它的問題:(a)在上述情況下,我們計算的曼哈頓距離是多少? (b)所以我如果明白這個權利,上面例子中的(5,5,1,2)是給出的屬性的權重(即屬性1 * 2的權重高於3和4?) – Rookie 2014-10-05 18:20:23
(c)屬性3和4的51和10,我們是否規範這些,以便它們的值在0和1之間,不知道這一步.............. – Rookie 2014-10-05 18:24:59
我可以使用最小最大規範化技術描述[這裏](http ://intelligencemining.blogspot.com/2009/07/data-preprocessing-normalization.html)對屬性3和4進行規範化處理,以便在0和1之間有一個值。然後將這些屬性乘以一些權重常量餘弦相似? – Rookie 2014-10-05 20:02:58