0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

大神教你怎么用Python抓取婚戀網(wǎng)用戶數(shù)據(jù),用決策樹(shù)生成自己擇偶觀

悟空智能科技 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-05-28 10:53 ? 次閱讀

最近在看《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》的時(shí)候萌生了一個(gè)想法,自己去網(wǎng)上爬一些數(shù)據(jù)按照書(shū)上的方法處理一下,不僅可以加深自己對(duì)書(shū)本的理解,順便還可以在github拉拉人氣。剛好在看決策樹(shù)這一章,書(shū)里面的理論和例子讓我覺(jué)得這個(gè)理論和選擇對(duì)象簡(jiǎn)直不能再貼切,看完長(zhǎng)相看學(xué)歷,看完學(xué)歷看收入。如果可以從婚戀網(wǎng)站上爬取女性的數(shù)據(jù)信息,手動(dòng)給她們打標(biāo)簽,并根據(jù)這些數(shù)據(jù)構(gòu)建決策樹(shù),不就可以找出自己的擇偶模式了嗎!github項(xiàng)目:huatian-funny,下面就詳細(xì)的闡釋一下。

數(shù)據(jù)爬取

之前在世紀(jì)佳緣上爬取過(guò)類似的數(shù)據(jù),總體的感覺(jué)是上面的用戶數(shù)據(jù)要么基本不填要么一看就很假,周圍的一些老司機(jī)建議可以在花田網(wǎng)上看下,數(shù)據(jù)質(zhì)量確實(shí)高很多,唯一的缺點(diǎn)就是上面的數(shù)據(jù)不給爬,搜索用戶的API需要登錄,而且只顯示三十多個(gè)用戶的信息。剛好我需要的數(shù)據(jù)也很少,就把搜索條件劃分的很細(xì),每次取到的數(shù)據(jù)很小,但最終匯集的數(shù)量還是相當(dāng)可觀的,最終獲取了位置在上海年齡22-27共計(jì)2000個(gè)左右的用戶數(shù)據(jù)。填寫(xiě)好spider.py中的用戶名和密碼,直接運(yùn)行這個(gè)文件就可以爬取數(shù)據(jù),因?yàn)閿?shù)據(jù)量不大,很快就可以運(yùn)行完畢,存儲(chǔ)在mongodb中的數(shù)據(jù)如下:

爬蟲(chóng)用到的工具是requests,流程上也很簡(jiǎn)單,先發(fā)送登陸請(qǐng)求獲取cookie,然后調(diào)用搜索API獲取數(shù)據(jù),拿到的數(shù)據(jù)是json格式,不需要任何轉(zhuǎn)換直接存儲(chǔ)mongodb,非常的方便,唯一想吐槽的就是花田搜索API接口竟然用的是POST方式,太沒(méi)有專業(yè)水準(zhǔn)了。稍微提一下如何用request獲取cookie,用Session構(gòu)建一個(gè)session對(duì)象,用這個(gè)對(duì)象發(fā)送登陸請(qǐng)求后,之后的請(qǐng)求都會(huì)自動(dòng)帶上登陸返回的cookie,使用起來(lái)非常的簡(jiǎn)單。

給用戶打標(biāo)簽

由于決策樹(shù)屬于監(jiān)督學(xué)習(xí),需要一個(gè)給定的標(biāo)簽,因此需要自己根據(jù)用戶的外貌、年齡、學(xué)歷等多個(gè)維度的判斷給出一個(gè)標(biāo)簽,最后生成的決策樹(shù)在一定程度上就可以反映自己的擇偶標(biāo)準(zhǔn)。針對(duì)女性的標(biāo)簽很簡(jiǎn)單粗暴,只有滿意和不滿意兩種,有興趣的同學(xué)可以按照真實(shí)的情況設(shè)置更多的標(biāo)簽,例如優(yōu)秀、一般、備胎、不合格等等。因?yàn)橥饷彩沁x擇對(duì)象過(guò)程中一個(gè)必不可少的要素,把相貌量化至關(guān)重要,因?yàn)闆](méi)有相關(guān)的工具根據(jù)頭像進(jìn)行評(píng)分,只能個(gè)人主觀進(jìn)行量化,采用了當(dāng)下非常流行的十分制。

為了增加打標(biāo)簽的效率,專門(mén)寫(xiě)了一個(gè)桌面窗口,運(yùn)行mark.py即可,運(yùn)行結(jié)果如下。(tkinter是一個(gè)坑,調(diào)代碼的時(shí)間夠我把整個(gè)數(shù)據(jù)集看好幾遍了,不過(guò)真的用起來(lái)的時(shí)候還是挺有意思的)

備注:因?yàn)閯傞_(kāi)始看的很多用戶只有頭像、年齡、身高、工資、學(xué)歷這五個(gè)信息,所以整個(gè)過(guò)程中只參考了這五個(gè)維度進(jìn)行評(píng)價(jià),下面的決策樹(shù)也是根據(jù)這五個(gè)維度進(jìn)行處理。

訓(xùn)練數(shù)據(jù)

決策樹(shù)

機(jī)器學(xué)習(xí)中,決策樹(shù)是一個(gè)預(yù)測(cè)模型,它代表的是對(duì)象屬性與對(duì)象值之間的一種映射關(guān)系。樹(shù)中每個(gè)節(jié)點(diǎn)表示某個(gè)對(duì)象,而每個(gè)分叉路徑則代表的某個(gè)可能的屬性值,而每個(gè)葉結(jié)點(diǎn)則對(duì)應(yīng)從根節(jié)點(diǎn)到該葉節(jié)點(diǎn)所經(jīng)歷的路徑所表示的對(duì)象的值。決策樹(shù)僅有單一輸出,若欲有復(fù)數(shù)輸出,可以建立獨(dú)立的決策樹(shù)以處理不同輸出。從數(shù)據(jù)產(chǎn)生決策樹(shù)的機(jī)器學(xué)習(xí)技術(shù)叫做決策樹(shù)學(xué)習(xí), 通俗點(diǎn)說(shuō)就是決策樹(shù),說(shuō)白了,這是一種依托于分類、訓(xùn)練上的預(yù)測(cè)樹(shù),根據(jù)已知預(yù)測(cè)、歸類未來(lái)。

理論方面我可以參考《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》第三章或者這篇博客,很淺顯易懂的解釋了具體的原理,我就不贅述了。

結(jié)果展示

代碼參考的是《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》,針對(duì)現(xiàn)實(shí)自己做了一些優(yōu)化調(diào)整,和原來(lái)的代碼不是完全相同,運(yùn)行train.py就可以顯示出結(jié)果,如下:

因?yàn)榫€很擠,調(diào)了很久只能拿到這個(gè)效果了。到這兒已經(jīng)很清晰明了的闡明了主題,我就是一個(gè)外貌黨,顏值高的pass,顏值低的忽略,不高不低的考慮的相當(dāng)糾結(jié)。有興趣的同學(xué)可以自己試一試。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131838
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84070

原文標(biāo)題:Python抓取婚戀網(wǎng)用戶數(shù)據(jù),用決策樹(shù)生成自己擇偶觀

文章出處:【微信號(hào):WUKOOAI,微信公眾號(hào):悟空智能科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于決策樹(shù),這些知識(shí)點(diǎn)不可錯(cuò)過(guò)

    用戶甲具備償還貸款能力。這整個(gè)判斷還貸能力的過(guò)程,就用到了決策樹(shù)的思想。02 決策樹(shù)算法——基尼不純度、熵基尼不純度,是指將來(lái)自集合中的某種結(jié)果隨機(jī)應(yīng)用在集合中,某一數(shù)據(jù)項(xiàng)的預(yù)期誤差率
    發(fā)表于 05-23 09:38

    分類與回歸方法之決策樹(shù)

    統(tǒng)計(jì)學(xué)習(xí)方法決策樹(shù)
    發(fā)表于 11-05 13:40

    機(jī)器學(xué)習(xí)的決策樹(shù)介紹

    機(jī)器學(xué)習(xí)——決策樹(shù)算法分析
    發(fā)表于 04-02 11:48

    ML之決策樹(shù)與隨機(jī)森林

    ML--決策樹(shù)與隨機(jī)森林
    發(fā)表于 07-08 12:31

    怎樣使用UNICO生成具有多個(gè)決策樹(shù)的UCF文件呢

    使用 UNICO(v9.10.0.0),生成具有多個(gè)決策樹(shù)的 UCF 文件的過(guò)程似乎是:1.加載所有決策樹(shù)的所有測(cè)試數(shù)據(jù),像對(duì)單個(gè)樹(shù)一樣標(biāo)記
    發(fā)表于 12-26 06:30

    決策樹(shù)生成資料

    量、峰峰值、過(guò)零(正和負(fù))、原始和過(guò)濾后的傳感器數(shù)據(jù)峰值檢測(cè)(正和負(fù))。如果在所選的特征中觀察到不同的模式,則可以使用決策樹(shù)進(jìn)行分類。考慮圖 1 中所示的加速度數(shù)據(jù)示例。
    發(fā)表于 09-08 06:50

    決策樹(shù)的介紹

    關(guān)于決策樹(shù)的介紹,是一些很基礎(chǔ)的介紹,不過(guò)是英文介紹。
    發(fā)表于 09-18 14:55 ?0次下載

    決策樹(shù)的構(gòu)建設(shè)計(jì)并用Graphviz實(shí)現(xiàn)決策樹(shù)的可視化

    種涉及到的算法進(jìn)行總結(jié)并附上自己相關(guān)的實(shí)現(xiàn)代碼。所有算法代碼以及用于相應(yīng)模型的訓(xùn)練的數(shù)據(jù)都會(huì)放到GitHub上。 本文中我將一步步通過(guò)MLiA的隱形眼鏡處方數(shù)集構(gòu)建決策樹(shù)并使用Graphviz將
    發(fā)表于 11-15 13:10 ?1.5w次閱讀
    <b class='flag-5'>決策樹(shù)</b>的構(gòu)建設(shè)計(jì)并用Graphviz實(shí)現(xiàn)<b class='flag-5'>決策樹(shù)</b>的可視化

    機(jī)器學(xué)習(xí):決策樹(shù)--python

    今天,我們介紹機(jī)器學(xué)習(xí)里比較常用的一種分類算法,決策樹(shù)決策樹(shù)是對(duì)人類認(rèn)知識(shí)別的一種模擬,給你一堆看似雜亂無(wú)章的數(shù)據(jù),如何用盡可能少的特征,對(duì)這些數(shù)據(jù)進(jìn)行有效的分類。
    發(fā)表于 11-16 01:50 ?1557次閱讀

    機(jī)器學(xué)習(xí)之決策樹(shù)生成詳解

    根據(jù)給定的數(shù)據(jù)集創(chuàng)建一個(gè)決策樹(shù)就是機(jī)器學(xué)習(xí)的課程,創(chuàng)建一個(gè)決策樹(shù)可能會(huì)花費(fèi)較多的時(shí)間,但是使用一個(gè)決策樹(shù)卻非常快。創(chuàng)建決策樹(shù)時(shí)最關(guān)鍵的問(wèn)題就
    發(fā)表于 08-27 14:38 ?1.9w次閱讀
    機(jī)器學(xué)習(xí)之<b class='flag-5'>決策樹(shù)</b><b class='flag-5'>生成</b>詳解

    決策樹(shù)的原理和決策樹(shù)構(gòu)建的準(zhǔn)備工作,機(jī)器學(xué)習(xí)決策樹(shù)的原理

    希望通過(guò)所給的訓(xùn)練數(shù)據(jù)學(xué)習(xí)一個(gè)貸款申請(qǐng)的決策樹(shù),用于對(duì)未來(lái)的貸款申請(qǐng)進(jìn)行分類,即當(dāng)新的客戶提出貸款申請(qǐng)時(shí),根據(jù)申請(qǐng)人的特征利用決策樹(shù)決定是否批準(zhǔn)貸款申請(qǐng)。
    的頭像 發(fā)表于 10-08 14:26 ?5861次閱讀

    決策樹(shù)的基本概念/學(xué)習(xí)步驟/算法/優(yōu)缺點(diǎn)

    本文將介紹決策樹(shù)的基本概念、決策樹(shù)學(xué)習(xí)的3個(gè)步驟、3種典型的決策樹(shù)算法、決策樹(shù)的10個(gè)優(yōu)缺點(diǎn)。
    發(fā)表于 01-27 10:03 ?2444次閱讀
    <b class='flag-5'>決策樹(shù)</b>的基本概念/學(xué)習(xí)步驟/算法/優(yōu)缺點(diǎn)

    什么是決策樹(shù)模型,決策樹(shù)模型的繪制方法

    決策樹(shù)是一種解決分類問(wèn)題的算法,本文將介紹什么是決策樹(shù)模型,常見(jiàn)的用途,以及如何使用“億圖圖示”軟件繪制決策樹(shù)模型。
    發(fā)表于 02-18 10:12 ?1.3w次閱讀
    什么是<b class='flag-5'>決策樹(shù)</b>模型,<b class='flag-5'>決策樹(shù)</b>模型的繪制方法

    決策樹(shù)的結(jié)構(gòu)/優(yōu)缺點(diǎn)/生成

    決策樹(shù)(DecisionTree)是機(jī)器學(xué)習(xí)中一種常見(jiàn)的算法,它的思想非常樸素,就像我們平時(shí)利用選擇做決策的過(guò)程。決策樹(shù)是一種基本的分類與回歸方法,當(dāng)被用于分類時(shí)叫做分類樹(shù),被用于回歸
    發(fā)表于 03-04 10:11 ?8147次閱讀

    數(shù)據(jù)決策樹(shù)

    認(rèn)為是if-then的集合,也可以認(rèn)為是定義在特征空間與類空間上的條件概率分布。 決策樹(shù)通常有三個(gè)步驟:特征選擇、決策樹(shù)生成、決策樹(shù)的修剪。
    的頭像 發(fā)表于 10-20 10:01 ?1099次閱讀