Я шукаю пари векторів, які мають хоча б L спільні риси.
Це лише внутрішній продукт бінарних функціональних векторів. Коли внутрішній виріб більший заL−1, у пари буде як мінімум Lспільні елементи. Це повинно бути порівняно швидким обчисленням - принаймні, швидшим, ніж евклідова відстань, що було б марно і повільно для цих даних. Оскільки ви заявляєте, що шукаєте пари, це по суті означає, що вам доведеться робити обчислення для порівняння кожного вектора.(N2)
Пошук точок, які є близько один до одного, справді є проблемою кластеризації. Але перший крок алгоритмів кластеризації, який я знайомий, - це обчислення парних відстаней або подібності. Я впевнений, що хтось розробив більш ефективні альтернативи. Суть про термінологію: наявність принаймні спільних сусідів виражається як подібність , а не відстань! Внутрішні продукти - це в цьому випадку ненормалізовані косинусні подібності.L
Це можна зробити більш простежуючим, виконавши лише обчислення внутрішнього продукту, коли сума векторного ознаки (що в даному випадку така ж, як норма) для спостереження більша за , оскільки неможливо для цього бінарного вектора ознак мати внутрішній продукт з іншим бінарним вектором ознак , який буде задовольняти мій критерій , коли ця сума менше , ніж . Очевидно, що обчислення цих сум є лише складною , тому я - дешевий спосіб зменшити масштабність внутрішнього кроку продукту.L−1LO(N)
Але класичним способом зменшити масштаб цієї проблеми є додаткова попередня фільтрація. Вас особливо цікавить, коли одна, дещо незвична функція приймає значення 1? Якщо так, виконайте обчислення лише для цих функціональних векторів.
Або, можливо, ви могли б отримати користь від переоформлення своєї проблеми. Наприклад, як відомо, відбір проб має приємні властивості; Інфекційна статистика розвивається на цій ідеї досить глибоко. Тому, можливо, неможливо проаналізувати весь набір даних, але цілком здійсненно вивчити невеликий зразок. Я не знаю, на яке питання ви намагаєтесь відповісти, але якщо ви ретельно спроектували свій експеримент, ви можете уникнути, лише подивившись на кілька тисяч спостережень, а для перевірки залишилось більше ніж достатньо даних.
Після деякої додаткової думки, у мене є сильна підозра , що дані ви працюєте, яке - то граф . Дуже правдоподібно, що складається з декількох з'єднаних компонентів, і в цьому випадку ви можете розкласти на набір графіків, із задоволеним побічним ефектом зменшення розмірності даних. Навіть якщо графік є лише двома з'єднаними компонентами приблизно однакового розміру, це означає, що ваше попарне порівняння має приблизно загальну вартість!GGGO(N2)14
Якщо графік симетричний, можуть бути корисні такі спостереження:
- Визначте Лаплаціана вашого графа як , де - діагональна матриця градусів (сума кожного векторного ознаки), а - матриця примикання (укладання векторів ознак у матрицю).P=D−ADA
- Часи числа відображається як власне є число компонент зв'язності . Декомпозиція графіка в його з'єднані компоненти та робота виключно з цими компонентами матиме побічний ефект зменшення розмірності ваших даних; обчислити вашу кількість інтересів буде простіше. Але обчислення ейгендекомпозиції буде коштувати дорого за мільйон вершин ...0PG
- (Після повної перестановки) являє собою блок - діагональна матриця лапласіанов з компонент зв'язності .PG
- P - позитивний напівдефініт. Це майже напевно якось корисно.
- Алгебраїчна зв'язність є значенням другого-найменше власне . Це говорить про те, наскільки добре пов'язаний є. Можливо, це відповість на деякі запитання, які вас цікавлять: вектори, які мають спільні риси. Теорія спектральних графів розвиває цю ідею ще детальніше.GPG
"Це проблема СНР?" Я не впевнений. В одному додатку функції описують поведінку, і ми хочемо пов’язати людей з подібною поведінкою. Це робить це проблемою СНР?
Якщо у вас є двосторонній графік, що пов'язує людей з поведінкою, ви можете вважати це як мережу приналежності , а люди як рядки, а поведінку - як стовпці. Якщо ви хочете , щоб з'єднати людей з людьми з допомогою поведінки , який вони мають у загальному, ви можете вирахувати . - це кількість спільних для людей поведінки. Очевидно, набір вершин, де відповідає на ваше запитання.BBBT=AAijAij≥L