在擼決策樹的時候總有這麼乙個問題一直重複在我腦海裡出現:我要擼出來的到底是乙個什麼東西?一堆資料,餵給它,它吃進去,自行向下生長,然後呢?也正因為這個問題的困擾,一直沒擼順決策樹,總覺得july大那篇blog缺了點什麼。這兩天連續翻了好幾本書,終於弄明白了這個玩意兒的作用(也就是我寫出來**的需求分析)。
決策樹的分支機理這裡掠過,因為提及的很多了,id3,c4.5,估計大家都懂,那麼決策樹拿來幹什麼?
很簡單,它是用於**的,舉個栗子:我手頭有一堆萌新的簡歷,然後我肯定要按某種順序挨個面他們吧,但人太多,我想針對性地面一些人。那麼很好,我把以往我收到的萌新的簡歷和面試結果扔進某種決策樹,它應當返回乙個樹結構,最終的節點的標誌在於錄取/未錄取(以下簡稱p/n),那麼我要做的就是把新的萌新們的簡歷再扔進這個樹結構,根據它原先的分支進行分類,然後挑出所有以p為標誌的萌新簡歷,挨個面試他們,完結。
用闡述性的語言來說,決策樹通過對給出的學習樣本進行學習,自行產生出乙個樹結構,每個葉節點都對應一簇資料,這一簇資料導向的結果是相同的;之後,將該樹結構抽離出來,對所需要進行分類並**結果的資料進行分類,並**其結果。這就是決策樹的活動過程。
需求分析:
0.學習樣本資料,樹依託於此建立。
1.乙個自行向下生長的樹(依賴於某種規則分支),並依託某些控制引數終止樹長成。
2.抽離出樹的分支原則。
3.對要進行分類的資料基於樹的分支原則進行分支,得出的葉與原樹的葉具有相同的返回值,即我們所需求的**值。
那麼為什麼說決策樹會overfitting(過度擬合資料)?因為它僅僅針對資料進行分類,分類必定有對應返回值,也即意味著,它只能處理它見過的東西,碰上沒見過的就不知道怎麼分類了,此外訓練資料若是不是正常的資料的話,也會非常的影響到資料的分類,因為整個決策樹的基石就是訓練資料,基石立歪了,樹也肯定長歪了。
此即鄙人淺見。
寫於乙個與沼躍魚大小姐欣賞滕斯泰特與倫敦愛樂的馬勒第五的夜晚。
機器學習之決策樹一
sklearn.tree.decisiontreeclassifier class sklearn.tree.decisiontreeclassifier criterion gini splitter best max depth none,min samples split 2,min samp...
決策樹演算法學習筆記(一)
夏農熵的計算 coding utf 8 frommathimportlog defcalcshannonent dataset numentries len dataset 統計資料集的數量 labelcounts 建立乙個資料字典 forfeatvecindataset currentlabel ...
機器學習中的那些樹 決策樹 一
從零基礎開始參加了幾場資料探勘方面的比賽,每次比賽都會學到不少東西,自從上次在elo的 kernel 中看見很多人都使用lightgbm xgboost,那之後我也開始用起了這些,但是卻從未花時間去了解過這是究竟是什麼,其內部工作原理是怎麼樣的,正好這段時間在參加df平台的消費者人群畫像 信用智慧型...