當前位置 : IT培訓網 > IT培訓 > 交流分享 > 哈佛學霸很牛逼 用python編程分析相親網站找女友很簡單

哈佛學霸很牛逼 用python編程分析相親網站找女友很簡單

時間:2019-10-09 11:41:30??來源:IT資訊網??作者:IT培訓網??已有:名學員訪問該課程
標簽(Tag):?? Python編程(21)
OkCupid是哈佛大學的數學系學生于2004年創立的約會網站,最初這個網站吸引人們注意力的是它基于計算方法的配對模式。會員會回答很多多項選擇問題,這些問題覆蓋面很廣,包括政治、宗教、親情、性、以及智能手機等。

只需五步!哈佛學霸教你用Python分析相親網站數據,在兩萬異性中找到真愛!

學編程的人不簡單,找女朋友也有自己的竅門和通道,如果你是學編程一族,特別是學python一族,那就用心看看這篇文章吧,看看如何用python找到心中真愛!

想脫單?那還不容易!

如果身在美國,就像其余四千萬單身男人一樣,注冊一下Match.com, J-Date和OkCupid等相親網站,坐等真愛上門不就可以了。

但是相信大多數人和McKinlay一樣,盡管向OkCupid算法推薦匹配的女性發送了許多曖昧私信,但絕大多數都石沉大海了。

轉折出現在2012年6月的一個早上,這個只進行過6次線下約會的男人正在電腦上編譯機器代碼,另一個窗口顯示著他孤零零的交友頭像,他突然頓悟:他一直在使用錯誤的方法尋找愛情。

為了不辜負自己在應用數學領域取得的成績,他決定,在OkCupid上爬取每一條相關信息,利用關鍵的K-Modes的改良貝爾實驗室算法找出數據規律,縮小范圍,然后一擊命中。

換句話說,這是一次數學家獨創的完美約會經驗貼,還不快來看看!

第一步:分析失敗原因,知己知彼

OkCupid是哈佛大學的數學系學生于2004年創立的約會網站,最初這個網站吸引人們注意力的是它基于計算方法的配對模式。會員會回答很多多項選擇問題,這些問題覆蓋面很廣,包括政治、宗教、親情、性、以及智能手機等。

哈佛學霸很牛逼 用python編程分析相親網站找女友很簡單_www.vkxqdk.live

數學家Chris McKinlay

通常,系統會從上千道問題的題庫里選出350道問題—— “以下哪種情形最有可能讓你去看電影?”或是“宗教/上帝在你的生活中有多重要?”

對于每一道問題,用戶會選擇一個答案,以說明自己伴侶的哪一個回答是他可以接受的,并通過給問題評分來表明問題對自己的重要性(5分制,從無關緊要到必須回答)。OkCupid的匹配引擎會利用這些數據來計算男女之間的合適程度。越接近100%,所謂數學意義上的靈魂伴侶就越匹配。

推薦閱讀:鄭州Python培訓課程哪家好_鄭州Python培訓機構在哪里多少錢

McKinlay從數學上分析了自己一直以來的失敗原因。

OkCupid的算法只會使用雙方都愿意回答的問題去計算,而McKinlay選擇的問題有些隨機,并不主流。當他查看與自己匹配的人時,匹配度超過90%的女人不到100個。要知道,洛杉磯有兩百萬女性(大約八萬女性在使用OkCupid)。如果把匹配度比作可見度,那McKinlay可以說就是個看不見的幽靈。

他意識到他應該去提高匹配的人數。如果McKinlay通過統計取樣確定哪些問題是他喜歡類型的女人愿意回答的,那么他便可以誠實地回答這些問題而忽略其他問題,以此來創建一個全新的用戶。利用這個辦法,他可以匹配到在洛杉磯的每一個可能與他配對的女人,而不會匹配到不合適的人。

哈佛學霸很牛逼 用python編程分析相親網站找女友很簡單_www.vkxqdk.live

第二步:借助Python,求助好友,瘋狂收集數據

Chris McKinlay利用Python腳本瀏覽了上百道OkCupid的問卷題目,然后把女性用戶分為七類,每一類都會貼上獨特的標簽,例如“多才多藝的”和“細心體貼的”等等。

即便作為一個數學家,McKinlay也是個不同尋常的人。他小時候在波士頓郊區長大,2001年他從Middlebury學院畢業并獲得漢語言學位。同年8月份,他在紐約世貿中心北塔91層的一家公司里找了一份兼職工作,工作內容是將中文翻譯成英文。五周后的一天,世貿大廈倒塌了。(那天,下午兩點前McKinlay都沒來公司。當第一架飛機于早上8點46分撞上大廈的時候,他正在睡覺。)

“自從那件事后,我問自己,我究竟想做什么”他說。他的一個在哥倫比亞大學的朋友招聘他進入了一個由麻省理工職業21點團隊衍生出的一個團隊,這之后的幾年里,他便往返于紐約和拉斯維加斯,他的工作是數牌,一年能掙六萬美金。

這段經歷點燃了他對應用數學的興趣,最終促使他在這個領域取得了碩士和博士學位。“他們能夠在很多不同的情景下使用數學知識,”他說,“他們會見到一些新的游戲,比如‘三張牌的牌九撲克’,然后回家寫點代碼,接著就能找到策略去打敗它。”

現在,他想用同樣的方式去尋找愛情。首先,他需要數據。就在他用旁邊的窗口進行論文寫作的時候,他建了12個假的OkCupid賬戶并寫好了Python腳本去管理這些賬戶。這個腳本會搜索他的目標群體(25到45歲的異性戀或雙性戀的女人),訪問她們的主頁,然后爬取她們賬戶上每一條有用的信息:種族、身高、是否吸煙、星座—— “這些我全都要”他說。

哈佛學霸很牛逼 用python編程分析相親網站找女友很簡單_www.vkxqdk.live

為了找到心儀的另一半,他還做了一些額外調查。OkCupid可以讓用戶看到其他人的回答,但只能看到那些他們自己已經回答過的問題。 于是McKinlay設置了自己的機器人程序,以簡單地隨機回答每個問題,他并沒有使用虛擬的個人資料吸引任何女性,因此答案并不重要,主要他要將這些女性的答案收集到了數據庫中。

McKinlay滿意地看著他程序一路狂奔。 然后,在收集了大約一千個檔案后,他遇到了第一個障礙。OkCupid有一個短平快的系統來防止這種數據收集,他的程序一個接一個地被禁。

因此他必須把自己的程序訓練的更像真人一些。

他求助他的神經科學家朋友Sam Torrisi,最近剛教過McKinlay音樂理論以換取高級數學課程。Torrisi也注冊了OkCupid,他同意在他的計算機上安裝間諜軟件來監控該網站的使用。根據手中的數據,McKinlay通過編程模擬Torrisi的點擊率和打字速度。他從家里帶來了第二臺電腦并將其插入數學系的寬帶線路,以便可以24小時不間斷運行。

三周后,他已經收集了來自全國各地20000名女性的600萬個問題和答案。

第三步:將20000名女性分為7類,找出最適合自己的

按照McKinlay的工作計劃,他需要從調查數據中找到一個規律,即需要根據相似性粗略地對女性進行分組。這個問題在他編寫一個名為K-Modes的改良貝爾實驗室算法時取得了進展。

K-Modes算法1998年首次用于分析患病的大豆作物。

他通過算法發現了一個自然的分割點,根據問題和答案,20,000名女性被分為成七個統計學組。 “我太高興了,”他說,“那是六月份令我最興奮的事情了。”

他重新設置條件來收集另一個樣本庫:在過去一個月內登錄OkCupid的來自洛杉磯和舊金山的5000名女性。通過K-Modes的另一次分組確認他們以類似的方式聚集并確保統計抽樣有效。

現在只需要決定哪個類群最適合他了,在抽查了每個類群的一些檔案后,發現一個類群太年輕,兩個太老,另一個太“基督”了。于是他徘徊在一個二十五歲左右的女性主導的類群中,工作類型比較獨立,像是音樂家和藝術家。這簡直是黃金單身群!

就像是大海撈針,他找到了他的針,也就在這個類群的某個地方,他找到了真愛。

一個相鄰的類群看起來也引起了McKinlay的注意:年齡稍微大一些,從事專業的創造性工作,如編輯和設計師。他決定將兩個類群都設定為自己的目標!于是設置了兩個配置文件,A、B組各優化一個。

第四步:真誠填寫相關問題,找出靈魂伴侶

他對這兩個類群進行了文本挖掘以了解她們感興趣的內容:教學是一個熱門話題,因此他撰寫了一篇強調了他作為數學教授工作的文章。

更重要的是回答問題,于是他挑選了兩個類群中最受歡迎的500個問題并決定誠實地填寫答案,他不想在計算機生成的謊言的基礎上建立未來的戀愛關系。但是他會使用一種稱為自適應提升的機器學習算法來得出最佳權重,從而讓計算機確定分配每個問題的重要性。

哈佛學霸很牛逼 用python編程分析相親網站找女友很簡單_www.vkxqdk.live

有了這個后他發表了兩個照片,一個是攀巖的照片,另一個是在音樂演出中彈吉他。

“無論未來的計劃如何,你現在對什么更感興趣?性還是愛?” 這個問題的答案很明顯是愛。但對于年輕的A群,他尊重計算機將問題評為“非常重要” 的結果。對于B群集,它則是“必須回答”的問題。

當回答完最后一個問題時,他按照匹配百分比對洛杉磯的女性進行了OkCupid搜索。從頭開始:第一頁匹配率全是99%女性。向下滾動......然后......向下滾動……,來自洛杉磯各地的一萬名女性迎面而來。

離被關注還差一步! OkCupid會員在有人查看他們的網頁時會收到通知,因此他寫了一個新程序來訪問查看他主頁的女性的主頁,并按年齡循環:周一有1000名41歲的女性,周二有1000名40歲的女性。兩周后,輪到了27歲的女性。女性會回訪他的個人資料,每天約400名左右。然后,私信開始滾滾而來。

“直到現在我還沒有遇到過如此匹配的人,而且我發現你的個人資料很有趣,”一位女士寫道,“對于一個擅長數字的粗獷男人......我覺得我想認識你。”

“嘿,你的個人資料很棒,我想認識你,”另一位寫道,“我認為我們有很多共同之處,也許不是數學,但肯定還有很多!”

“你真的會翻譯中文嗎?” 還有人問道,“我上了一些課,但學的并不好。”

至此,數學部分已經完成。接下來,他需要離開他的小隔間,進入實際演練階段,他要去真正的約會!

第五步:走出小隔間,來一場真正的約會

6月30日, McKinlay開著他的尼桑穿越城鎮來到加州大學洛杉磯分校的健身房,開始他的約會實踐。Sheila是一位來自“A類群”的年輕的網頁設計師。他們在Echo Park的一家咖啡館吃了午飯。 “太不可思議了,這簡直像一場學術活動一樣。”

與Sheila約會結束后,雙方都覺得不來電。第二天,McKinlay進行了第二次約會,一個來自 “B類群”的博客編輯。他們計劃在Echo Park Lake周圍散步,卻發現正在施工。女方一直在讀普魯斯特并對生活感到失望。 “這有點令人沮喪,”他說。

第三天的約會也來自“B類群”。他在韓國城的一家酒吧遇到Alison。 她是一名實習編劇,肩膀上還紋了斐波那契螺旋。McKinlay喝了很多韓國啤酒,第二天帶著痛苦的宿醉在他的小隔間醒來。他后來在OkCupid上私信她表示想繼續約會,但她沒回。

雖然他被拒絕了,但每天仍然收到20條消息。實踐約會顯然與計算機配置文件約會是完全不同的。他開始忽略一些主頁沒有內容的人的消息,只回應那些有幽默感或在首頁展示一些有趣的東西的人。以前他作為主動方,會交換三到五條消息來獲得一個約會日期。現在就只發一個回復。 “你看起來很酷。想見面么?”

20個約會之后,他總結了一些潛在的規律。在較年輕的群體中,女性大多數有兩個或更多的紋身,而且住在洛杉磯的東邊。另一組中,她們瘋狂的喜歡中型犬。

早期的約會他會經過精心策劃。但當工作越來越忙時,就開始在午餐或咖啡時間偶爾參加休閑聚會,而且經常一天之內約兩場。他制定了一套個人規則來完成“馬拉松愛情”搜索:不再約喝酒,如果不來電就趕快結束不要拖拉,不約音樂會或電影。 “約會中你們需要關注的是彼此而不是別的什么東西,不然效率會很低。”

經過從他的兩個檔案中同等挑選約會的一個月后,他發現他耗費了太多時間在紋身群中接觸東邊的女性。他刪除了他的A組簡介。他的效率雖然提高了,但結果是一樣的。隨著夏天即將結束,他已經有過超過55次約會,每日都盡職地在實驗筆記本上記錄。只有三個產生了第二次約會,只有一個進行了第三次。

大多數不成功的約會者都面臨著自尊問題。對于McKinlay來說其實更糟糕。他不得不檢查他的計算。

后來一個來自28歲的藝術家Christine Tien Wang發來了消息。McKinlay之前在加州大學洛杉磯分校附近搜索到她,6英尺高藍眼睛的人,正在那里修她的美術碩士學位。他們有91%的適合度。

他在校園的雕塑花園遇見了她。從那里他們走到一個大學壽司會場,他立刻感覺到了來電了!他們談論了書籍、藝術、音樂,當她承認她在給他發消息之前對她的個人資料做了一些小改動后,他給她講述了關于他黑進愛情網站的整個經過。

“我認為這樣做有點腹黑和憤世嫉俗,”她說,“但我喜歡。”

這是第一次約會,第二次緊隨其后,然后是第三次約會。兩周后,他們都暫停了他們的OkCupid帳戶。

我認為我所做的只是每個人在站點上所做事情的一種略微算法化,大規模且基于機器學習的版本。” McKinlay說。每個人都試圖創建一個最佳的配置文件,他只是有數據來設計一個。

這是他們第一次約會的一年后,McKinlay和Tien Wang在韋斯特伍德壽司吧臺和一位記者見面,他們的已經正式確定關系了。McKinlay獲得了博士學位,他正在教數學,目前正在攻讀音樂研究生學位。Tien Wang被卡塔爾錄取并獲得為期一年的藝術獎學金。她在加州和McKinlay見面。他們一直在Skype上保持聯系。

根據記者的要求,McKinlay帶來了他的實驗筆記本。 Tien Wang之前沒見過它。這是McKinlay緊密筆跡中的公式和方程式的頁面,以一個整齊排列的女性名單和約會清單結尾,其中含有一些簡短的注釋。Tien Wang掃讀了一遍,覺得一些亮點有點可笑。 她注意到,8月24日,他在同一天帶了兩個女人到同一個海灘。她說: “太可怕了。”

對Tien Wang來說,McKinlay的OkCupid黑客歷程是一個有趣的故事。但所有的數學和編碼只是他們故事的序幕。見面后,戀愛關系才真正被黑客入侵。 “人們比他們的個人資料要復雜得多,”她說,“所以我們遇到的方式有點膚淺,但我們之間發生的一切都不是膚淺的,它是通過彼此的努力培養出來的。”

“這不是說,我們匹配因此我們關系很好,” McKinlay表示贊同, “這只是一種將我們放在同一個空間的機制,我能夠使用OkCupid找人。”

Tien Wang對此有點慍怒:“你沒找到我,我找到了你。”她摸著他的手肘說道。McKinlay停下來思考,然后承認她是對的。

一周之后,Tien Wang又回到了卡塔爾,這對夫婦每天都會撥打一個Skype電話。當McKinlay拿出鉆石戒指并將其舉到網絡攝像頭前像她求婚時,Tien Wang說 “我愿意”。

他們結婚時間并不完全確定,McKinlay說需要進一步研究以確定最佳婚禮日。

編程無難事,只要會編程,在學習python的路上也許我們會遇到問題,一旦學會了python編程,未來的生活將會是美好的,綜上所述就不難看出,工作有,薪資高,還能找到女朋友,多好的待遇啊!

頂一下
(0)
0%
踩一下
(0)
0%

IT培訓0元試聽 每期開班座位有限.0元試聽搶座開始! IT培訓0元試聽

  • 姓名 : *
  • 電話 : *
  • QQ : *
  • 留言 :
  • 驗證碼 : 看不清?點擊更換請輸入正確的驗證碼

在線咨詢在線咨詢

溫馨提示 : 請保持手機暢通,咨詢老師為您
提供專屬一對一報名服務。

------分隔線----------------------------
------分隔線----------------------------

推薦內容

陕西11选5开奖结果