Статистика веб-сайтів знайомств


10

Мені цікаво, як онлайн-системи знайомств можуть використовувати дані опитування для визначення відповідності.

Припустимо, вони мають дані про результати минулих матчів (наприклад, 1 = щасливо одружений, 0 = немає 2-го побачення).

Далі, припустимо, у них було 2 переважні питання,

  • "Скільки вам подобаються заходи на свіжому повітрі? (1 = сильно не подобається, 5 = сильно подобається)"
  • "Наскільки ви оптимістично ставитесь до життя? (1 = сильно не любить, 5 = сильно подобається)"

Припустимо також, що для кожного питання щодо переваг у них є показник "Наскільки важливо, щоб ваш дружина ділився вашими уподобаннями (1 = не важливо, 3 = дуже важливо)"

Якщо у них є ці 4 питання для кожної пари та результат того, чи був матч успішним, що є базовою моделлю, яка використовувала б цю інформацію для прогнозування майбутніх матчів?


2
Я думав, що поєдинок успіху трапиться, коли дівчина симпатична або чоловік багатий. Все інше є другорядним.
user4951

4
Перевірте blog.okcupid.com - десь вони розповідають про основні моделі, що відповідають.
Felix S

Чи можете ви згадати, які саме речі ви хотіли б більше поглибити? Відповідь Майкла - досить твердий огляд.
День

Якщо ви читаєте патент (патент 6,735,568 - google.com/… ) для EHarmony, їх система використовує комбінацію принципового аналізу компонентів, факторного аналізу та використовує нейронну мережу. Як уже згадували інші, такі методи, як K-NN, CARTS та GLM, також добре працюватимуть.
Кріс Сімокат

@ChrisSimokat - WOW! Велике спасибі за дивовижне посилання. Це цікаво, хоча. Я ніколи не думав, що ти можеш "захищати авторські права" статистичними методами та алгоритмами.
d_a_c321

Відповіді:


4

Я колись спілкувався з кимось, хто працює на одному з веб-сайтів знайомств, який використовує статистичні методи (мабуть, швидше я б не сказав, хто). Це було досить цікаво - для початку вони використовували дуже прості речі, наприклад, найближчі сусіди з евклідовою або L_1 (міською блокою) відстані між профільними векторами, але була дискусія щодо того, чи відповідати двом людям, які були занадто схожими, було добре чи погано річ. Потім він сказав, що зараз вони зібрали багато даних (хто цікавився, хто, хто побачив кого, хто одружився і т. Д.), І вони використовують це для постійного перенавчання моделей. Робота в рамках інкрементальної пакетної бази, де вони періодично оновлюють свої моделі за допомогою пакетів даних, а потім перераховують ймовірності відповідності в базі даних. Досить цікаві речі, але я '


3

Ви попросили просту модель. Ось як би я почав з коду R:

 glm(match ~ outdoorDif*outdoorImport + optimistDif*optimistImport,
     family=binomial(link="logit"))

outdoorDif = різниця відповідей двох людей про те, наскільки вони насолоджуються видами на свіжому повітрі. outdoorImport = середнє значення двох відповідей щодо важливості відповідності щодо відповідей щодо задоволення від активного відпочинку на свіжому повітрі.

* Вказує на те, що попередні та наступні терміни взаємодіють і також включаються окремо.

Ви припускаєте, що дані матчу є двійковими з єдиними двома варіантами: "щасливо одружений" та "немає другого побачення", так що я припускав при виборі моделі logit. Це не здається реалістичним. Якщо у вас є більше двох можливих результатів, вам потрібно буде перейти на багаточленний або упорядкований логіт або якусь таку модель.

Якщо, як ви пропонуєте, у деяких людей є кілька спроб матчів, то, мабуть, це буде дуже важливою справою, щоб спробувати врахувати в моделі. Один із способів зробити це може мати окремі змінні, що вказують на # попередніх спроб збігів для кожної людини, а потім взаємодіяти між ними.


Дякую за чудову відповідь .. Я дарую вам нагороду! :) Це здається хорошим підходом. Можливо, якби у вас було N питань, що входять до таких категорій, як M (наприклад, питання з легкої атлетики), ви можете збагатити модель, використовуючи середнє значення та відмінності в цій категорії, і додати її як додатковий термін. Це не ідеально, але це може бути простим способом зафіксувати взаємодію кількох корельованих змінних. Ще раз дякую, я буду рада почути будь-які інші думки, які не дали вашої відповіді;).
d_a_c321

Чи не слід спочатку нормалізувати відповіді? Якщо всі сподобалися на свіжому повітрі, то відповідь на свіжому повітрі повинна стати менш актуальною, оскільки це буде поганим прогнозком сумісності.
Sklivvz

@Skliwz, я не впевнений, як би ти нормалізував відповідь на багато варіантів (порядковий). Також пам’ятайте, що лінійні перетворення безперервних змінних прогнозів іноді бажані з причин, обговорених тут: stats.stackexchange.com/q/7112/3748 і тут: stats.stackexchange.com/q/19216/3748, але вони не змінять моделі прогнозів, що забороняють деякі незвичайні обчислювальні проблеми. Якщо всі подобаються на свіжому повітрі, відповідь на відкритому повітрі однаково менш відповідна, але я не думаю, що це справді проблема для моделі, як я її вказав. (Не те, що моя модель ідеальна)
Михайло Єпископ

1

Один простий підхід був би наступним.

Для двох питань переваг візьміть абсолютну різницю між двома відповідями респондента, даючи дві змінні, скажімо, z1 та z2, а не чотири.

Для важливих питань я можу створити бал, який поєднує в собі два відповіді. Якби відповіді були, скажімо, (1,1), я б дав 1, a (1,2) або (2,1) отримує 2, a (1,3) або (3,1) отримує a 3, a (2,3) або (3,2) отримує 4, а (3,3) отримує 5. Назвемо це "бал важливості". Альтернативою було б просто використовувати max (відповідь), давши 3 категорії замість 5, але я думаю, що версія 5 категорії краща.

Зараз я створив би десять змінних, x1 - x10 (для конкретності), всі зі значеннями за замовчуванням - нульовими. Для тих спостережень, які мають значення важливості для першого питання = 1, x1 = z1. Якщо оцінка важливості для другого питання також = 1, x2 = z2. Для тих спостережень з оцінкою важливості для першого питання = 2, x3 = z1 і якщо оцінка важливості для другого питання = 2, x4 = z2 тощо. Для кожного спостереження рівно один з x1, x3, x5, x7, x9! = 0, і аналогічно для x2, x4, x6, x8, x10.

Зробивши все це, я би провів логістичну регресію з бінарним результатом як цільовою змінною і x1 - x10 як регресорами.

Більш складні версії цього можуть створити більшу оцінку важливості, дозволяючи важливості чоловіка та жінки респондентам по-різному ставитися, наприклад, (1,2)! = A (2,1), де ми замовили відповіді за статтю.

Один недолік цієї моделі полягає в тому, що у вас можуть бути кілька спостережень за однією людиною, що означало б, що "помилки", слабко кажучи, не є незалежними у спостереженнях. Однак, маючи багато людей у ​​вибірці, я, мабуть, просто проігнорував би це для першого проходження або побудував зразок, де не було дублікатів.

Ще один недолік полягає в тому, що правдоподібно, що в міру збільшення значущості також збільшиться вплив заданої різниці між перевагами на p (провал), що означає залежність між коефіцієнтами (x1, x3, x5, x7, x9), а також між коефіцієнтами (x2, x4, x6, x8, x10). (Можливо, це не повне впорядкування, оскільки мені апріорі не зрозуміло, як бал (2,2) важливості стосується балу (1,3) важливості.) Однак ми цього не нав'язували в моделі. Я, мабуть, спочатку проігнорував це і побачив, чи здивований я результатам.

Перевагою цього підходу є те, що не передбачається припущення щодо функціональної форми взаємозв'язку між "важливістю" та різницею між відповідями на перевагу. Це суперечить попередньому коментарю щодо дефіциту, але я думаю, що відсутність функціональної форми, що нав'язується, скоріше вигідніше, ніж пов'язане з цим неврахування очікуваних зв'язків між коефіцієнтами.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.