一个人会python能做什么_利用Python来预测一个人有没有女朋友!无所不能!
武林外傳里佟掌柜有一句話,春天已然到來,而屬于我的春天何時能夠到來呢,小安如此“優秀”,怎么就是沒有屬于自己的另一半呢,剛巧在瀏覽GitHub時碰到一個預測自己會不會有女朋友的項目,覺得很有意思,于是特地與大家分享,用漫畫的來講!
首先,數據集分為訓練集和測試集,訓練集一共有300個樣本,每個樣本包含四個屬性,分別為“金錢”,“長相”,“身材”,“性格”。每個樣本的每個屬性值都被歸一化為0到1中的值,代表著每個樣本在這一屬性上的得分高低。
最后的標簽是指是否有女朋友,0代表沒有,1就是代表著有,1代表有。我們要做的就是根據訓練集的數據來訓練出模型來判斷我們是否有女朋友,在進行訓練之前,我從練數據集中隨機選取了10個樣本作為我們的交叉驗證數據集,目的是用來測試我們模型的準確性。
機器學習的模型有很多種,我這次采用了邏輯回歸和決策樹進行分類決策,但是發現決策樹的準確率更好,那就重來講一下決策樹,并引入混淆矩陣來評判決策樹模型的好壞。
什么是決策樹算法呢?大家都買過西瓜吧,那么大家都是從幾個方面來判斷西瓜是否是純熟的呢?以小編個人經驗來說,我一般都是先看顏色,然后再看形狀,覺得顏色,形狀都不錯的,就拿起來再敲一敲,是不是清脆,一通操作下來,就能調到合適的西瓜了。其實上述的選西瓜過程就是一個決策樹決策的過程,如下圖所示:
我們用一個評價指標A來作為評價決策樹好壞的標準,還是以買西瓜為例子,比如小編特別愛吃西瓜,我就不管好壞,一口氣的買了50個西瓜,回家再慢慢的調,經過我的挑選之后,我認為里面有46個是好的西瓜,而只有四個是壞的西瓜,那我的評判準不準呢,經過我挨個西瓜的檢測發現,我認為46個好的西瓜里面,有4個是壞的,而我認為4個壞的里面,有1個是好的,結果我就生成了下面的表格:
上面的表格中,可以看出我將4個壞瓜錯誤的預測成好瓜,而將1個好瓜錯誤的預測成了壞瓜,而理想的情況下我應該全部預測正確,也就是上表的“1”和“4”應該為0,而“42”應該為43,而“3”應該為7。這就是評價指標A的作用,可以清晰地展示出我選瓜的水平如何。基礎的知識講完了,下面是實戰的階段,下圖是部分代碼的展示:
上述代碼中我們還是先加載數據,然后從數據集中隨機選擇10個樣本作為交叉驗證集,為了保證實驗的準確性,我們選取的交叉驗證集樣本同邏輯回歸中的樣本是相同的。由上圖可以看出,模型在交叉驗證集上的準確率為70%!
運行程序后,會輸出交叉驗證集的評價指標A,但是為了方便大家的理解,小編特地進行了改進,如下表所示:
上表顯示,模型預測正確的有7(3和4)個值,而我們交叉驗證集一共有10個數據,7/10 = 0.7,與我們的結果輸出吻合一致。
拿小編自己來做實驗,看看我們模型的效果,針對于金錢,長相,身材,性格四個屬性,上面我我們講到,我們要按照0到1來給自己打分,0代表最差,而1代表最好,所以小編對于自己的四項取值分別為0.2、0.6、0.6、0.6,最終模型預測的結果為0,
通過上述的講解,小編帶領大家通過數據科學來預測了一個人究竟有沒有女朋友,以及想要找到女朋友,迫切需要改變什么(對結果影響最大的因素)。
當然,受制于訓練數據集過小的影響,模型訓練出來的結果,每一次也會有變化,因此,如果能在大量的數據集上進行訓練的話,模型的魯棒性會更加的好,以上就是今天的分享,大家趕快動起手來學習吧。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的一个人会python能做什么_利用Python来预测一个人有没有女朋友!无所不能!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: x9此计算机上没有hasp_为什么我在别
- 下一篇: ssh中exit命令退出远程服务器_Li