gini係數 決策樹 白話決策樹 評價

2021-10-12 20:16:27 字數 1609 閱讀 2893

首先輸入以下**。

from sklearn.datasets import load_winefrom sklearn.model_selection import train_test_splitfrom sklearn import treefrom six import stringioimport pydotplusfrom ipython.display import image data = load_wine()data_import = stringio()xtrain,xtest,ytrain,ytest = train_test_split(data.data,data.target,test_size = 0.2)clf = tree.decisiontreeclassifier(criterion = 'gini'                                  ,max_depth = 3                                  ,min_impurity_split = 0.01                                  ,splitter = 'best')clf = clf.fit(xtrain,ytrain)score = clf.score(xtest,ytest)feature_name = ['酒精','蘋果酸','灰','灰的鹼性','鎂','總酚','類黃酮','非黃烷類酚類'               ,'花青素','顏色強度','色調','od280/od315稀釋葡萄酒','脯氨酸']tree.export_graphviz(clf                     ,out_file = data_import                     ,feature_names= feature_name                     ,class_names= ['紅酒','白酒','黃酒']                     ,filled = true                     ,rounded= true                     )graph = pydotplus.graph_from_dot_data(data_import.getvalue().replace('helvetica','"microsoft yahei"'))image(graph.create_png())
我們能得到以下結果

上圖是決策樹的乙個結果

從上面的樹形圖來看,在葡萄酒資料的訓練集中,有 142 個資料,劃分為 3 個類別,數量分別是 50、54、38 個,對應的標籤分別是紅酒、白酒、黃酒,其中白酒的數量最多,所以最上面的根節點認為,類別為白酒的可能性最大,gini 係數為 0.66,它是利用下面的公式計算出來的:

1 - (50/142)^2 - (54/142)^2 - (38/142)^2

具體的公式可以看這篇文章。白話決策樹-概念及原理

當每個類別的數量越趨近於平均值,gini 係數就越大,也就越不確定。

我們再看左邊的分支。當脯氨酸<=755時候,有88個樣本,三個類別分別是2、51和35個。其中,白酒數量最多。gini係數為0.505,小於第一層的0.66,說明分類使得結果更加明確。

白話決策樹

有一天,小明無聊,對宿舍玩cs的舍友進行統計,結果剛記下四行,被舍友認為影響發揮,給踢到床下去了,讓我們看看可憐的小明的記錄 子彈數量 血 行為 機槍 多 少 戰鬥 機槍 少 多 逃跑 小刀 少 多 戰鬥 小刀 少 少 逃跑 為了對得起小明記錄的這四條記錄,我們對其進行決策樹分析,從資料中看 1.如...

決策樹和CART決策樹

首先簡單介紹下決策樹 說到決策樹肯定離不開資訊熵 什麼是資訊熵 不要被這名字唬住,其實很簡單 乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說 今天早上太陽公升起 資訊量是很少的,以至於沒有必要傳送。但另一條訊息說 今天早上日食 資訊量就很豐富。概率越大資訊量就越少,與...

決策樹(二)決策樹回歸

回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...