온라인 데이트 사이트 통계


10

온라인 데이트 시스템에서 설문 조사 데이터를 사용하여 일치 항목을 찾는 방법이 궁금합니다.

과거 경기 결과 데이터가 있다고 가정합니다 (예 : 1 = 행복한 결혼, 0 = 두 번째 날짜 없음).

다음으로, 그들이 두 가지 선호 질문을 가지고 있다고 가정 해 봅시다.

  • "야외 활동을 얼마나 즐기십니까? (1 = 강하게 싫어함, 5 = 강하게 좋아함)"
  • "인생에 대해 얼마나 낙관적입니까? (1 = 강하게 싫어함, 5 = 강하게 좋아함)"

또한 각 선호도 질문에 대해 "배우자가 귀하의 선호도를 공유하는 것이 얼마나 중요합니까? (1 = 중요하지 않음, 3 = 매우 중요 함)"이라는 표시가 있다고 가정하십시오.

각 쌍에 대해 4 가지 질문이 있고 경기가 성공했는지 여부에 대한 결과가있는 경우 해당 정보를 사용하여 향후 경기를 예측하는 기본 모델은 무엇입니까?


2
나는 여자가 예쁘거나 남자가 부자 일 때 성공 시합이 일어난다 고 생각했다. 다른 모든 것은 부차적입니다.
user4951

4
그들이 일치하는 기본 모델에 대해 이야기하는 곳에서 blog.okcupid.com을 확인하십시오 .
Felix S

더 깊이보고 싶은 말이 있습니까? 마이클의 대답은 꽤 확실한 개요입니다.
Dan

EHarmony에 대한 특허 (특허 6,735,568- google.com/… )를 읽으면 시스템에서 원리 성분 분석, 요인 분석 및 신경망을 조합하여 사용합니다. 다른 사람들이 K-NN, CARTS 및 GLM과 같은 방법을 언급했듯이 잘 작동합니다.
Chris Simokat

@ChrisSimokat-와우! 놀라운 링크에 감사드립니다. 그래도 흥미 롭습니다. 통계적 방법과 알고리즘을 "저작권"할 수 있다고 생각한 적이 없습니다.
d_a_c321

답변:


4

나는 한때 통계 기술을 사용하는 온라인 데이트 사이트 중 한 곳에서 일하는 사람과 이야기했습니다 (아마도 말하지 않았을 것입니다). 매우 흥미로 웠습니다. 프로파일 벡터 사이에서 유 클리 디언 또는 L_1 (시티 블록) 거리를 가진 가장 가까운 이웃과 같은 매우 간단한 것들을 사용하는 것으로 시작했지만, 너무 비슷한 두 사람을 일치시키는 것이 좋은지 나쁜지에 대한 논쟁이있었습니다. 의회. 그런 다음 이제는 많은 데이터 (누가, 누가 데이트했는지, 누가 결혼했는지 등에 관심이 있었음)를 수집하여 지속적으로 모델을 재교육하는 데 사용하고 있다고 말했습니다. 증분 배치 프레임 워크에서 작업하여 배치 데이터를 사용하여 모델을 주기적으로 업데이트 한 다음 데이터베이스에서 일치 확률을 다시 계산합니다. 꽤 흥미로운 것들이지만


3

간단한 모델을 요청했습니다. R 코드로 시작하는 방법은 다음과 같습니다.

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

outdoorDif = 야외 활동을 얼마나 즐기는 지에 대한 두 사람의 대답의 차이. outdoorImport = 야외 활동 즐기기에 대한 답변과 관련하여 경기의 중요성에 대한 두 답변의 평균입니다.

*는 앞의 용어와 다음 용어가 상호 작용하고 별도로 포함되어 있음을 나타냅니다.

일치 데이터는 "행복하게 결혼했다"와 "두 번째 날짜 없음"이라는 두 가지 옵션 만있는 이진법을 제안하므로 로짓 모델을 선택할 때 가정 한 것입니다. 현실적으로 보이지 않습니다. 가능한 결과가 두 개 이상인 경우 다항식 또는 정렬 된 로짓 또는 이와 같은 모델로 전환해야합니다.

제안한 바와 같이 일부 사람들이 여러 번 일치하는 일치 항목을 가지고 있다면 모델에서 설명하는 것이 매우 중요합니다. 이를 수행하는 한 가지 방법은 각 개인에 대해 이전에 시도한 일치 수를 나타내는 별도의 변수를 갖는 것입니다.


큰 답변 주셔서 감사합니다. 나는 당신에게 현상금을주고 있습니다! :) 그것은 좋은 접근법처럼 보입니다. 아마도 M과 같은 범주 (예 : 운동 문제)에 맞는 N 개의 질문이있는 경우 해당 범주 내에서 중요도와 차이의 평균을 사용하여 모형을 보강하고 추가 항으로 추가 할 수 있습니다. 완벽하지는 않지만 여러 상관 변수의 상호 작용을 캡처하는 간단한 방법 일 수 있습니다. 다시 한 번 감사드립니다. 귀하의 답변을 얻지 못한 다른 생각을 듣고 기쁩니다.).
d_a_c321

먼저 답변을 표준화하지 않아야합니까? 모든 사람들이 실외를 즐겼다면, 실외의 대답은 호환성에 대한 예측이 좋지 않기 때문에 관련성이 떨어질 것입니다.
Sklivvz

@ Skliwz, 객관식 (정상) 답변을 어떻게 정규화 할 것인지 잘 모르겠습니다. : 또한, 연속 예측 변수의 선형 변환을 이유로 때로는 바람직 여기에서 논의 된 것을 기억 stats.stackexchange.com/q/7112/3748 여기 : stats.stackexchange.com/q/19216/3748을 하지만 그들은 변경되지 않습니다 몇 가지 비정상적인 계산 문제가없는 모델 예측. 모든 사람들이 야외 활동을 즐기는 경우 야외 활동과 똑같이 실외 답변이 덜 관련이 있지만, 제가 지정한대로 모델에 실제로 문제가되지는 않습니다. (내 모델이 완벽하지는 않다)
Michael Bishop

1

간단한 방법 중 하나는 다음과 같습니다.

두 가지 우선 순위 질문의 경우 두 응답자의 응답간에 절대 차이를 취하여 4 개 대신 z1 및 z2와 같은 두 가지 변수를 제공합니다.

중요도 질문에 대해서는 두 답변을 모두 합한 점수를 만들 수 있습니다. 응답이 (1,1)이면 1, a (1,2) 또는 (2,1)은 2, a (1,3) 또는 (3,1)은 3, (2,3) 또는 (3,2)는 4를, (3,3)은 5를 얻습니다. "중요도 점수"라고하겠습니다. 다른 대안은 max (response)를 사용하여 5 대신 3 개의 범주를 제공하는 것이지만 5 범주 버전이 더 좋다고 생각합니다.

이제 기본값이 0 인 10 개의 변수 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) 중요도 점수와 어떤 관련이 있는지는 분명하지 않기 때문에 아마도 완전한 순서는 아닙니다.) 그러나 우리는 모델에이를 부과하지 않았습니다. 아마 처음에는 그것을 무시하고 결과에 놀랐는지 볼 것입니다.

이 접근법의 장점은 "중요도"와 선호도 응답의 차이 간의 관계의 기능적 형태에 대한 가정이 없다는 것입니다. 이것은 이전의 부족한 의견과 모순되지만, 부과되는 기능적 형태의 부재가 계수들 간의 예상 관계를 고려하지 않은 관련보다 더 유리하다고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.