我通過跨所有列相似性具有帶有ID和數據整數數值從-5到5的列包括0比較多個數值列,以確定記錄相似
╔════╦══════╦══════╦══════╦══════╗
║ ID ║ COL1 ║ COL2 ║ COL3 ║ COL4 ║
╠════╬══════╬══════╬══════╬══════╣
║ A ║ -5 ║ -2 ║ 0 ║ -2 ║
║ B ║ 0 ║ 1 ║ -1 ║ 3 ║
║ C ║ 1 ║ -2 ║ -3 ║ 1 ║
║ D ║ -1 ║ -1 ║ 5 ║ 0 ║
║ E ║ 2 ║ -3 ║ 1 ║ -2 ║
║ F ║ -3 ║ 1 ║ -2 ║ -1 ║
║ G ║ -4 ║ -1 ║ -1 ║ -3 ║
╚════╩══════╩══════╩══════╩══════╝
欲組ID的。 例如上面的ID A和G類似,因爲它們在每列中的值非常相似。
╔════╦══════╦══════╦══════╦══════╗
║ ID ║ COL1 ║ COL2 ║ COL3 ║ COL4 ║
╠════╬══════╬══════╬══════╬══════╣
║ A ║ -5 ║ -2 ║ 0 ║ -2 ║
║ G ║ -4 ║ -1 ║ -1 ║ -3 ║
╚════╩══════╩══════╩══════╩══════╝
在另一方面A和B是不同的
╔════╦══════╦══════╦══════╦══════╗
║ ID ║ COL1 ║ COL2 ║ COL3 ║ COL4 ║
╠════╬══════╬══════╬══════╬══════╣
║ A ║ -5 ║ -2 ║ 0 ║ -2 ║
║ B ║ 0 ║ 1 ║ -1 ║ 3 ║
╚════╩══════╩══════╩══════╩══════╝
對於給定的ID對我正在考慮在每一列中計算的差值,然後將所述差異,以獲得相似性得分(較大數字不太相似)。在這個時候它是我擁有的最好主意,但我更樂於接受更準確或有效的方法。要做到這一點(使用列中的值之差的絕對值)
要小心,要使用距離的絕對值,否則一些差異可能會相互抵消,例如:((5-0)+(0-5))。根據你的定義,這兩者會有所不同,但一個天真的實現將標記它們是相同的。 – Sirko 2014-10-03 18:16:03
爲什麼不求和絕對差值:'score = ABS(5-0)+ ABS(0-5)+ ...' – Rimas 2014-10-03 18:33:03
這裏的麻煩是什麼決定了「相似」,如果每一個都是1是相似的? 2呢?如果4箇中的3個是相同的,並且其中一個關閉了2,那麼...因此,整個ROW和所有4列的比較......這裏有太多的模糊邏輯來定義「相似」 – xQbert 2014-10-03 19:08:25