cda

全國校區

您的位置:首頁 > 精彩閱讀 > 從“脫單”這件小事看數據分析與機器學習(下)

從“脫單”這件小事看數據分析與機器學習(下)

2019-07-09

從“脫單”這件小事看數據分析與<wordsbank_match class='wbmatch' location='/map/jiqixuexi/' style='cursor:pointer;'>機器學習</wordsbank_match>(下)

Hello大家好,上回講到數據清洗工作已經完成,在建立模型之前,我想看看這些數據的大致情況,專業一點的說法叫做數據探索,就是對已有數據集的一個了解。最簡單的探索,看看最大值、最小值、方差、均值、中位數這些,當然,這主要是針對年齡這種數值型的數據,由于之前清洗數據的時候,已經對年齡的上下限做出來限制,所以最大值最小值都在預期之內,至于均值和中位數,可能很多人搞不太清這兩者的區別。 大多數人對均值比較熟悉,上學的時候用的也比較多,下邊我們可以舉個例子來區分探索一下,比如說有5個姑娘,年齡分別是24歲,24歲,28歲,29歲,30歲,那么她們的平均年齡是27歲,而年齡的中位數很明顯是28歲,兩者并不相同,畫一個分布圖的話,能明顯看出是一個右偏分布,如果擴展到數據量更大的數據集里,畫出分布是右偏分布,就能得出這樣一個結論,這樣一批妹子中間,年紀稍大一點的妹子占多數。如果我比較喜歡御姐型的妹子,我可能已經在偷著樂了,年紀稍大的妹子多一點,御姐就可能會多一點啊,哈哈哈……當然,這只是假設還有概率,還不能這么開心的笑! (你的好友靈魂畫手已上線)

從“脫單”這件小事看數據分析與<wordsbank_match class='wbmatch' location='/map/jiqixuexi/' style='cursor:pointer;'>機器學習</wordsbank_match>(下)
從“脫單”這件小事看數據分析與<wordsbank_match class='wbmatch' location='/map/jiqixuexi/' style='cursor:pointer;'>機器學習</wordsbank_match>(下)

好啦,清洗和簡單的探索做完了,下面該建立一個模型來做進一步的分析,挑選出哪些妹子才是和我比較搭的。這里稍稍有點糾結,是做個分類呢還是做個聚類呢?雖然這兩類模型從名字上看差不多,但是實際上差別可大著呢,分類模型是有監督的模型,提前已經知道了有幾類,每個類有哪些特征。而聚類一般是無監督模型,提前并不知道有幾類,需要根據每條數據的特征來尋找數據間的相似性,然后把相近的數據聚到一起,至于最后會形成幾類,那就要看最開始把類的個數設定成幾了,而且也不保證聚類的個數或者說最后的結果一定是對的。 比如說給妹子分類這件事,如果我事先設定要聚成兩類,那妹子們就會被分成兩類;如果我設定聚成四類,妹子們就會被分成四類;如果我再瘋狂一點,把妹子們聚成了十八類,那妹子們就會被分成十八類;至于這么分合理不合理,實踐之后才能知道了。

從“脫單”這件小事看數據分析與<wordsbank_match class='wbmatch' location='/map/jiqixuexi/' style='cursor:pointer;'>機器學習</wordsbank_match>(下)

我自己思考了一下,覺得做分類模型有點麻煩,要先提前確定妹子們的類型,我jio著,妹子肯定不能只是簡單粗暴的給分成御姐型和蘿莉型兩個類型,至于妹子究竟有多少個類型,恐怕還沒有人能給個準確答案;然后呢,還要提前找好特征,找特征也很麻煩,我真的不知道有哪些特征的妹子是屬于哪個類型的,最后再按照符合的特征給妹子分類,所以我選了一個懶一點的辦法,那就做個聚類好了,先簡單把妹子聚成四類。當然這樣也會有問題的,聚成四類后發現類別給聚少了咋辦?那就把需要再聚類的那部分數據集再做一次聚類,很輕松嘛!

開始建模型

K-Means這個算法是聚類算法中最簡單的算法沒有之一,就用它了!這個算法的原理那是相當的簡單,例如我要把妹子分成四類,那就先選四個中心,專業術語叫質心,然后計算數據集中每個數據點到每個質心的距離,這個計算量是很大的,但是不用擔心,不用自己算,有計算機給算,它特別擅長這種計算,而且我這點數據量對計算機來說,都不夠給他它預熱的,瞬間就能出來結果。結果出來后,每個數據點都有了四個質心的距離數據,然后這些數據點會選擇距離自己最近的那個質心作為自己的質心,這樣就有了最原始的四個組,專業術語里也叫做簇!到這一步模型還沒有結束,因為我們找的這些中心不一定在剛剛聚成的簇的真正中心位置,這時候就需要再計算一下每個簇真正的質心在哪里了,算出來之后,四個初始的質心就轉移到了剛剛計算出來的質心位置,看到這里有沒有一點熟悉的感覺,是的,下一步又要計算每個數據點到新質心的距離了,然后再重新聚類,再計算更新的質心,這樣迭代下去,直到找到最優質心,聚類出最優的簇!

從“脫單”這件小事看數據分析與<wordsbank_match class='wbmatch' location='/map/jiqixuexi/' style='cursor:pointer;'>機器學習</wordsbank_match>(下)

這樣解釋這個原理,有點抽象,舉例子解釋一下,比如說我的數據里包含了100個妹子,既然我要聚成四類,就隨機在100個妹子中挑選了四個人作為質心,然后開始計算剩下的96個妹子中每個妹子與那四個質心妹子的相似性,就是前邊原理里提到的距離,96個妹子每個妹子都被計算了和四個質心妹子的距離,然后每個妹子和哪個質心妹子更相似,就把這個非質心妹子歸到和她最相似的質心妹子那一簇里,最初始的四個簇就分出來了,這時候新的問題出現了,發現最初確定的質心妹子并不是這一簇里最有代表性的妹子,其他妹子的特征更能代表這一整個簇,通過計算,更能代表這一簇的妹子成了新一輪的質心,質心變動了,每個非質心妹子與新質心妹子的相似度就需要重新計算,計算出四個新質心后,開始計算這一輪剩下的96個妹子與新質心妹子的相似度,然后重新聚類,進入新一輪迭代!這樣一個只有100條記錄的數據集,一直迭代到質心不再發生變化不需要很長的時間,如果數據集很大的話,要迭代到質心不再發生變化,可能需要特別長的時間,這時候就需要算法的參數出場來進行控制。

從“脫單”這件小事看數據分析與<wordsbank_match class='wbmatch' location='/map/jiqixuexi/' style='cursor:pointer;'>機器學習</wordsbank_match>(下)

不管怎么說,我成功的把妹子們分成了四類,有一類妹子是我理想的類型,然而網站給出的匹配度有高有低,那么應該是我的信息不符合一些妹子的要求。現在是到哪一步了?開始給妹子發消息嘛?當然不是!人靠衣裝馬靠鞍,沒見面之前得在依據事實的前提下包裝一下自己,讓自己的個人信息和妹子的要求相近那么一點點,要注意的是造假是不行的,那是欺騙,我這樣的社會主義好青年是不會做這樣的事情的。盡量滿足妹子的要求,實在滿足不了的也不能硬說自己滿足啊。

第四步 進入溝通

Ok,個人信息美化好之后,就可以給妹子們發信息啦,我是很希望有很多妹子能給我回復,然而,理想是豐滿的,現實是骨感的,雖然提前做了工作,回復我的妹子也沒有那么多,中間偶爾還有托的消息,可見我前邊數據清洗的時候并沒有能成功的清理出去所有的虛假信息。這種信息只能是由我人肉篩選了,還好這類信息不多。

終于,我發出的消息有了回音,新的問題又出現了,作為一個只有工作沒有生活的技術宅,我不知道能跟妹子聊點啥,尷尬!幸好不是面對面的聊,所以妹子那邊拋出一個話題,比如說什么微博熱搜知乎熱搜頭條抖音之類的,我都要一邊去找這些熱搜一邊和妹子聊天,感覺有點心累!然而,能難倒數據分析師的問題還真的不多,我直接寫了幾個爬蟲,每天爬一遍各大熱搜,和妹子聊天之前做好功課,至少不被動,有話題可以和妹子聊,感覺好了很多。

當然并不是所有妹子都聊熱搜,還有一些妹子聊人生聊工作聊價值觀,總之,這段時間是我本職工作之外各種知識急速擴展的階段,感覺自己又到了高考前的人生知識巔峰階段,上知天文下知地理中間還知各種政治新聞娛樂八卦,如果不做數據分析師,去做專業陪聊都毫無壓力,不管對方想聊啥,瞬間調出資料接住對方拋過來的梗。即使如此,也不是所有給我回復的妹子都能一直聊下去,有些價值觀是非觀之類的問題,還是要堅持自我的,聊不來也沒辦法,強行迎合別人最后也很難有盡如人意的結果。

從“脫單”這件小事看數據分析與<wordsbank_match class='wbmatch' location='/map/jiqixuexi/' style='cursor:pointer;'>機器學習</wordsbank_match>(下)

折騰了這么久,終于到了離開計算機去見面約會的階段了,已經記不起來自己有多久沒有約會過的人,心情既興奮又緊張,還有一點點的缺乏信心(好吧,我承認,其實心里老沒底了,方的不行)。不過,還是那句話,沒有什么是我不能分析的,這不過是從對群體的分析轉到了對個體分析的階段,沒什么特殊嘛!給自己打氣完畢,開始約會前的準備工作:根據線上聊天時妹子表現出的喜好,選一個她一直想去又因為各種原因而沒有去成的餐廳,帶上一個她可能會喜歡但是又不是很貴重的小禮物;準備一些她可能會感興趣的話題,避免到時候因為緊張不知道說點什么,尬聊太消耗感情了!然后還有就是我自己要好好收拾一下,去找村頭的Tony老師理一個精神的發型,準備一套清爽整潔不做作的衣服。提前幾分鐘到約定好的餐廳坐等!

我準備了這么多,整個過程也還算順利沒有什么尷尬的事情發生,不過可能我的真人版和妹子的真人版都有點不太符合雙方的預期,約會后聯系也就終止了!但是一次的失敗對我來說不算什么,想想我工作中算法模型跑不成功,調參調到懷疑人生的時候都沒有輕言放棄,這么一點點挫折算什么,繼續開始下一個,繼續迭代!

每次迭代都能學習到經驗教訓,經過一遍一遍的約會然后回去復盤,終于我找到了一個可以確定關系的妹子,和家里打電話的時候得到了母上大人的肯定,我心甚慰啊!而且,妹子和我是同行,都是數據分析師,只不過行業不一樣。后來關系穩定后的一次閑聊,我才知道,女朋友也是因為和我類似的原因,用數據分析的方法去分析各種交友類網站的數據,跑個算法來找目標,好吧,原來我也是別人數據集中的一個樣本來著!幸運的是,我們正好在彼此的數據集中,經過層層篩選,成為了對方那個對的人!從此以后,家不再只是租來的一間空屋子,有燈光,有溫暖,有個我喜歡的人和我一起討論數據分析討論各種算法模型!

從“脫單”這件小事看數據分析與<wordsbank_match class='wbmatch' location='/map/jiqixuexi/' style='cursor:pointer;'>機器學習</wordsbank_match>(下)

(完結 本故事純屬虛構,如有雷同,純屬巧合)

完 謝謝觀看

分享
收藏

OK
彩经网双色球免费预测