七夕節,我用Python寫了乙個婚介模型

2021-10-23 19:05:13 字數 4726 閱讀 3582

在中國的傳統節日裡,七夕可能是起源最神秘、內涵最深刻的乙個了。當然,這不是本文的重點,我們的核心問題是:在七夕這個特有紀念意義的日子,你真的想好了要向ta表白嗎?ta真的是你唯一正確的選擇嗎?這個婚介模型,也許對你有一些啟發。

我的婚介所生意興隆,無數想找到理想伴侶的單身人士都來光顧。根據顏值、人品、能力、財富等因素,我給每位客戶確定了乙個素質指數(quality index),簡寫為qidx。統計發現,qidx呈現均值8.0、標準差0.5正態分佈。

下面是1萬客戶的qidx統計分布圖,可以看出絕大多數單身人士的qidx位於7.0~9.0之間,評價較為負面的和非常優秀的,都屬於少數派。

一般情況下,我的客戶繳費1次,將獲得10次選擇機會。我向客戶推薦目標的策略基於「門當戶對」,總是選擇和客戶的qidx相適應的異性,具體說就是以客戶的qidx為均值,以0.1的方差,按照正態分佈隨機生成。

通常,客戶有兩種方式從我為他們推薦的目標中做出選擇。第一種是基於傳統的擇偶觀念,具體規則如下.

有10%的客戶會對當前的推薦目標一見鐘情,不在意雙方的qidx是否匹配

如果當前推薦目標的qidx比客戶高,但不超過0.2,客戶選擇當前推薦目標的概率,會隨剩餘選擇機會的減少而增加,大約從0.35公升至是0.8

如果當前推薦目標的qidx比客戶高0.2以上,客戶選擇當前推薦目標的概率,會隨剩餘選擇機會的減少而增加,大約從0.55公升至是1.0

如果當前推薦目標的qidx比客戶低,但不超過0.2,客戶選擇當前推薦目標的概率,會隨剩餘選擇機會的減少而增加,大約從0.25公升至0.7

如果當前推薦目標的qidx比客戶低0.2以上,客戶選擇當前目標的概率,會隨剩餘選擇機會的減少而增加,大約從0公升至0.18

第二種匹配方式則是基於「麥穗理論」,聽起來很高大上。這裡省略了關於麥穗理論的講解,感興趣的同學可以自行檢索。具體說,就是客戶在前4次的推薦中,不做出選擇,只記下其中的最高的qidx;從第5次開始,只要遇到大於或等於前4次最高qidx的推薦目標,就做出選擇。

下面,我分別用兩種匹配方式為1萬名顧客選擇配偶,結果會怎樣呢?

# -*- encoding: utf-8 -*-

import numpy as np

class

single

:def

__init__

(self, qidx, times)

: self.times = times # 婚介所提供的匹配次數

self.counter =

0# 當前匹配次數

self.qidx = qidx # 客戶的qidx

self.spouse =

none

# 匹配成功的配偶的qidx

self.histroy =

list()

# 基於麥穗理論的前times/e次的推薦物件的qidx

defmath_classical

(self, spouse)

: self.counter +=

1if np.random.random(

)<

0.1:

self.spouse = spouse

if spouse - self.qidx >=

0.2:

if np.random.random(

)<1-

0.05*(

10-self.counter)

: self.spouse = spouse

elif spouse - self.qidx >0:

if np.random.random(

)<

0.8-

0.05*(

10-self.counter)

: self.spouse = spouse

elif self.qidx - spouse >=

0.2:

if np.random.random(

)<

0.18

-0.02*(

10-self.counter)

: self.spouse = spouse

elif self.qidx - spouse >=0:

if np.random.random(

)<

0.7-

0.05*(

10-self.counter)

: self.spouse = spouse

defmatch_technical

(self, spouse)

: self.counter +=

1if self.counter < self.times/np.e:

elif spouse >=

max(self.histroy)

: self.spouse = spouse

defmain

(math_mode, total=

10000

, times=10)

:# 生成總數為total的客戶,其qidx有正態隨機函式生成

singles =

[single(np.random.normal(loc=

8.0, scale=

0.5)

, times)

for i in

range

(total)

]for p in singles:

for i in

range(10

):if p.counter <

10and

not p.spouse:

spouse = np.random.normal(loc=p.qidx, scale=

0.1)

getattr

(p, math_mode)

(spouse)

matched = np.array(

[(p.qidx, p.spouse)

for p in singles if p.spouse]

) diff = matched[:,

0]- matched[:,

1]print

('----------------------------------'

)print

('成功匹配%d人,成功率%0.2f%%'

%(matched.shape[0]

, matched.shape[0]

*100

/total)

)print

('客戶qidx均值%0.2f,配偶均值%0.2f'

%(np.

sum(matched[:,

0])/matched.shape[0]

, np.

sum(matched[:,

1])/matched.shape[0]

))print

('匹配方差%0.2f,匹配標準差%0.2f'

%(diff.var(

), diff.std())

)print()

if __name__ ==

'__main__'

:print

('基於傳統方式擇偶的統計結果'

) main(

'math_classical'

)print

('基於麥穗理論擇偶的統計結果'

) main(

'match_technical'

)

比較兩種方案的匹配成功率、匹配成功的客戶的平均qidx、匹配成功的客戶配偶的平均qidx、客戶和配偶的qidx的方差等,你會發現,這個結果真的有點意思。

基於傳統方式擇偶的統計結果--

----

----

----

----

----

----

----

----

成功匹配10000人,成功率100.00

%客戶qidx均值8.00,配偶均值8.02

匹配方差0.01,匹配標準差0.10

基於麥穗理論擇偶的統計結果--

----

----

----

----

----

----

----

----

成功匹配7138人,成功率71.38

%客戶qidx均值8.00,配偶均值8.11

匹配方差0.00,匹配標準差0.07

基於傳統方式的擇偶,成功率更高(100% vs 71.38%);

基於麥穗理論擇偶,配偶素質指數更高(8.11 vs 8.02);

基於麥穗理論擇偶,雙方qidx差的標準差更小(0.07 vs 0.10),這意味著雙方匹配更好。

七夕節 我無敵

天空碧藍這沒什麼 但是心空碧藍嗎?難說哦 清晨當太陽還在睡覺時就起床了,來到南京機場搭乘這碩大的翅膀準備去廣州,乙個我沒來過乙個我陌生的城市。當陽光灑在我的臉上時發現我也在9000公尺的高空,感覺不舒服 很難受。和夢境一樣呼來呼去的。中午時分我到了來到這個我不喜歡的城市。為什麼呢?因為我不喜歡咯!呵...

一輩子都忘不了的七夕節

七夕對於大多數中國人來說只是傳統的情人節,但是對我來說意義卻非同尋常!去年的七夕我把新娘子迎回家,今年的七夕我在夢寐以求的新公司上班正好一周,今年的七夕是乙個值得慶祝和總結工作的日子。去年七夕前夕,家裡一直燈火通明,我的父母和接親的人在屋裡聊天。我到自己的屋裡直接趴在床上就睡著了。在這樣的乙個日子裡...

快到七夕, 擼了乙個白噪音軟體

又是一年七夕,雖然已經對所謂的愛情無感,但還是擼了個小玩意送給自己 小夕是我認識的乙個女孩子,感覺她很害羞,給我感覺就是純天然無公害的妹子,雖然並沒有接觸過幾次,但是每次我舔著臉勾搭她的時候,她說話都特別溫柔,我知道這樣的女孩應該是很多男孩的青春,所以我並沒有過多的去打擾到她的生活,只要,我遠遠的看...