Коефіцієнт Танімото
Коефіцієнт Танімото (англ. coefficient Tanimoto) — описує ступінь подібності двох множин.
Застосування
ред.Коефіцієнт Танімото застосовується для:
- визначення рівня схожості двох множин об'єктів;
- виокремлення груп (кластерів) об'єктів з однаковими властивостями (наприклад, пошук людей з однаковими уподобаннями);
- визначення молекулярної схожості.
Обчислення
ред.Формула для обчислення коефіцієнта Танімото:[1]
:
- де Т(A,B) — коефіцієнт Танімото — коефіцієнт схожості множин А та В;
- — кількість елементів в множині A;
- — кількість елементів в множині B;
- — кількість спільних для множин A і B елементів.
T приймає значення від 0 до 1. Чим ближче значення Т до 1, тим більш схожі множини.
Представлення через перетин та об'єднання множин
ред.Коефіцієнт Танімото визначає рівень схожості множин через відношення перетину до об'єднання множин:
Векторне представлення
ред.Припустимо, у нас є N об'єктів. Оцінки, виставлені певним користувачем цим об'єктам, можуть бути представлені як вектор а у N-вимірному просторі об'єктів. Коефіцієнт Танімото використовується для порівняння вектора а з вектором b:
- де -скалярний добуток векторів a та b; та — довжини векторів а та b відповідно.
Реалізація на Python
ред.Визначення схожості двох списків (строк) з використанням мови програмування Python[2]:
# Inputs: two lists
# Output: the Tanimoto Coefficient
def tanimoto (list1, list2)
intersection = [common_item for common_item in list1 if common_item in list2]
return float(len(c))/(len(a) + len(b) — len(c))
Примітки
ред.- ↑ Коефіцієнт Танімото для визначення людей з однаковими уподобаннями [Архівовано 8 листопада 2012 у Wayback Machine.]
- ↑ Discussion of Similarity Metrics: Jaccard / Tanimoto Coefficient [Архівовано 20 вересня 2012 у Wayback Machine.]
Посилання
ред.- Онлайн калькулятор: Коефіцієнт Танімото [Архівовано 8 листопада 2012 у Wayback Machine.]
Джерела
ред.- Dogra, Shaillay K., “Script for computing Tanimoto coefficient” from QSARWorld resource for QSAR modeling. https://web.archive.org/web/20120505080621/http://www.qsarworld.com/virtual-workshop.php
- Segaran, Toby. Programming Collective Intelligence: Building Smart Web 2.0 Applications. Sebastopol, CA: O'Reilly Media, 2007.
- Romesburg, Charles. Cluster Analysis For Researchers. Morrisville, NC: Lulu.com, 2004.