欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:回歸 【機器學(xué)習(xí)】決策樹算法

Tiki奇趣購綜合2025-05-05480

柚子快報激活碼778899分享:回歸 【機器學(xué)習(xí)】決策樹算法

http://yzkb.51969.com/

目錄

算法引入?

基尼系數(shù):

決策樹算法概述

決策樹的關(guān)鍵概念

決策樹的構(gòu)建

代碼實現(xiàn)

1. 定義決策樹節(jié)點

2. 計算信息增益

3. 選擇最佳分割特征

4. 構(gòu)建決策樹

5. 決策樹預(yù)測

?決策樹的評估指標(biāo):

決策樹的優(yōu)缺點

優(yōu)點:

缺點:

決策樹的優(yōu)化

人工智能領(lǐng)域在當(dāng)今可謂炙手可熱,在人工智能與機器學(xué)習(xí)領(lǐng)域,決策樹是一種簡單直觀卻又功能強大的分類與回歸方法。它的思想是通過構(gòu)建一棵樹狀模型來進行決策或數(shù)據(jù)分類,其結(jié)構(gòu)主要是以二叉樹的形式為主。決策樹是一種常用的機器學(xué)習(xí)算法,用于分類和回歸任務(wù)。它通過學(xué)習(xí)簡單的決策規(guī)則推斷出目標(biāo)值。

算法引入?

小明大學(xué)畢業(yè)了,去了一家銀行當(dāng)行長,上班第一天就有了10人申請了貸款,剛剛?cè)胄械男∶髯屑毜卣砹丝蛻粜畔?。包括是否有工作,是否有房子,是否信譽良好,經(jīng)過了深思熟慮,小明對這10份申請給出了批復(fù)。小明想能不能讓AI根據(jù)自己所做出的規(guī)律進行自動批復(fù),這樣小明就大大減少了工作量,又可以上班摸魚了。申請人的信息如下:

申請人是否工作有無房子信譽結(jié)果1否否一般拒絕2否否良好拒絕3是是一般同意4是是很好同意5否是很好同意6否是一般拒絕7是否一般同意8否是很好同意9否否很好拒絕10是否良好同意

根據(jù)上面信息我們能不能推出某一個規(guī)律,使規(guī)律都滿足上面的結(jié)果,如果我們按照是否有工作分類,有工作的批準,沒工作的不批準,顯然不行,在第5個申請人沒有工作也批準了。那么我們按照有無房子分類?在第7、10個申請人沒有房子也通過了申請,那按照信譽?第9個申請人信譽很好也被拒絕了。那么我們?nèi)绾芜M行批準,這就是要我們的決策樹出馬了。

基尼系數(shù):

那么在建樹的時候,誰當(dāng)那個頭結(jié)點呢,這就要引出了我們的基尼系數(shù)的概念。

根據(jù)上面的公式我們可以計算出Gini=1-(5/10)^2-(5/10)^2=0.5。

Gini(工作,是)=1-(4/4)^2-0=0,Gini(工作,否)=1-(2/6)^2-(4/6)^2=0.44。

根據(jù)加權(quán)方式求和:Gini(工作)=4/10*(Gini(工作,是))+6/10*(Gini(工作,否))=0.27。

Gini(房子,是)=1-(4/5)^2-(1/5)^2=0.32,Gini(房子,否)=1-(2/5)^2-(3/5)^2=0.48。

根據(jù)加權(quán)方式求和:Gini(房子)=5/10*(Gini(房子,是))+5/10*(Gini(房子,否))=0.4。

Gini(信譽,一般)=1-(2/4)^2-(2/4)^2=0.5,Gini(信譽,良好)=1-(1/2)^2-(1/2)^2=0.5,Gini(信譽,很好)=1-(3/4)^2-(1/4)^2=0.375。

根據(jù)加權(quán)方式求和:Gini(信譽)=4/10*(Gini(信譽,一般))+2/10*(Gini(信譽,良好))+4/10*(Gini(信譽,很好))=0.45。

我們比較這三個數(shù)Gini(工作)=0.27、Gini(房子)=0.4、Gini(信譽)=0.45。我們發(fā)現(xiàn)這個三個數(shù)字中Gini(工作)=0.27最小,所以我們按照它來建立決策樹。

此時頭結(jié)點建立完成,然后我們在沒有工作的里面,有2個客戶是被批準的,4個客戶被拒絕了,那么我們在此基礎(chǔ)上繼續(xù)進行分類,繼續(xù)求解Gini(房子),Gini(信譽)。Gini(房子,是)=1-(2/2)^2- 0=0,Gini(房子,否)=1- 0 -(4/4)^2=0。根據(jù)加權(quán)方式求和:Gini(房子)=2/6*(Gini(房子,是))+4/6*(Gini(房子,否))=0。此時Gini(信譽)就不用算了,Gini(房子)已經(jīng)達到最小0了,下一個結(jié)點就放是否有房子,那么此時最終的決策樹就出來了。

先根據(jù)是否有工作進行判斷,如果有,那么直接進行批準,沒有的話,再進行判斷是否有房子,有房子的話直接批準,沒有房子的話直接拒絕,當(dāng)然,我們這個例子沒有涉及到信譽一項,如果在沒有房子的人里面還有被批準的,那么需要再加一個內(nèi)部節(jié)點信譽,再根據(jù)信譽的三個分類:一般、良好、很好,進行批復(fù)。這些判斷是建立在前一項的基礎(chǔ)之上的,只有進行了前一項的判斷才能進行下一項的判斷,進而給出批復(fù)。

決策樹算法概述

決策樹通過樹狀圖的形式模擬決策過程,在每一個結(jié)點都會有分支(除了葉子結(jié)點),每個內(nèi)部節(jié)點都代表一個屬性上的判斷,如果為是則走一個分支,如果為否則走另外一個分支。每個分支代表判斷的結(jié)果,每個葉節(jié)點代表一種決策結(jié)果。

決策樹的關(guān)鍵概念

- 節(jié)點(Node):決策樹中的一個決策點。 - 根節(jié)點(Root):決策樹的起始點。 - 分支(Branch):從一個節(jié)點到另一個節(jié)點的連接。 - 葉節(jié)點(Leaf):沒有子節(jié)點的節(jié)點,是一棵樹最下面的結(jié)點。代表最終決策。 - 路徑(Path):從根節(jié)點到葉節(jié)點的一系列決策。

決策樹的構(gòu)建

構(gòu)建決策樹通常涉及以下步驟:

1. 選擇最佳屬性:使用某種度量(如信息增益、基尼不純度)選擇最佳屬性進行分割。2. 創(chuàng)建節(jié)點:為所選屬性的每個可能值創(chuàng)建一個分支。3. 分割數(shù)據(jù):根據(jù)屬性值將數(shù)據(jù)分割成不同的子集。4. 遞歸構(gòu)建:對每個子集遞歸地重復(fù)上述步驟,直到滿足停止條件(如所有數(shù)據(jù)屬于同一類別,或已達到樹的最大深度)。

代碼實現(xiàn)

1. 定義決策樹節(jié)點

class TreeNode:

def __init__(self, feature_index=None, threshold=None, left=None, right=None, *, value=None):

self.feature_index = feature_index # 特征索引

self.threshold = threshold # 閾值

self.left = left # 左子樹

self.right = right # 右子樹

self.value = value # 節(jié)點值(葉節(jié)點時的分類結(jié)果)

2. 計算信息增益

def information_gain(X, y, split_feature_index, threshold):

# 計算信息熵

def calculate_entropy(y):

# 實現(xiàn)信息熵的計算

pass

# 劃分數(shù)據(jù)集

left_indices = [i for i in range(len(X)) if X[i][split_feature_index] < threshold]

right_indices = [i for i in range(len(X)) if X[i][split_feature_index] >= threshold]

# 計算信息增益

total_entropy = calculate_entropy(y)

left_entropy = calculate_entropy([y[i] for i in left_indices])

right_entropy = calculate_entropy([y[i] for i in right_indices])

weight_left = len(left_indices) / len(X)

weight_right = len(right_indices) / len(X)

information_gain = total_entropy - (weight_left * left_entropy + weight_right * right_entropy)

return information_gain

3. 選擇最佳分割特征

def best_split(X, y):

best_feature = None

best_threshold = None

max_information_gain = -1

for feature_index in range(X.shape[1]):

for i in range(X.shape[0]):

threshold = X[i][feature_index]

gain = information_gain(X, y, feature_index, threshold)

if gain > max_information_gain:

best_feature = feature_index

best_threshold = threshold

max_information_gain = gain

return best_feature, best_threshold

4. 構(gòu)建決策樹

def build_tree(X, y, max_depth=None, current_depth=0):

if len(np.unique(y)) == 1 or current_depth == max_depth:

return TreeNode(value=np.argmax(np.unique(y)))

best_feature, best_threshold = best_split(X, y)

if best_feature is None:

return TreeNode(value=np.argmax(np.unique(y)))

left_indices = [i for i in range(len(X)) if X[i][best_feature] < best_threshold]

right_indices = [i for i in range(len(X)) if X[i][best_feature] >= best_threshold]

left_X = [X[i] for i in left_indices]

left_y = [y[i] for i in left_indices]

right_X = [X[i] for i in right_indices]

right_y = [y[i] for i in right_indices]

left_child = build_tree(left_X, left_y, max_depth, current_depth + 1)

right_child = build_tree(right_X, right_y, max_depth, current_depth + 1)

return TreeNode(feature_index=best_feature, threshold=best_threshold, left=left_child, right=right_child)

5. 決策樹預(yù)測

def predict(tree, x):

if tree.value is not None:

return tree.value

if x[tree.feature_index] < tree.threshold:

return predict(tree.left, x)

else:

return predict(tree.right, x)

?決策樹的評估指標(biāo):

準確率:正確分類的樣本數(shù)占總樣本數(shù)的比例。精確度:預(yù)測為正的樣本中實際為正的比例。召回率:實際為正的樣本中預(yù)測為正的比例。F1分數(shù):精確度和召回率的調(diào)和平均。

決策樹的優(yōu)缺點

優(yōu)點:

- 易于理解和解釋。 - 可以處理數(shù)值和類別數(shù)據(jù)。 - 不需要數(shù)據(jù)標(biāo)準化。 - 可以可視化。

缺點:

- 容易過擬合。 - 對于某些數(shù)據(jù)集,構(gòu)建的樹可能非常大。 - 對于缺失數(shù)據(jù)敏感。

決策樹的優(yōu)化

- 剪枝:通過減少樹的大小來減少過擬合。 - 集成方法:如隨機森林和梯度提升樹,可以提高模型的泛化能力。

下一篇文章更新決策樹算法ID3、C4.5、CART的介紹以及實現(xiàn)。執(zhí)筆至此,感觸彼多,全文將至,落筆為終,感謝各位的支持。

柚子快報激活碼778899分享:回歸 【機器學(xué)習(xí)】決策樹算法

http://yzkb.51969.com/

參考閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19559520.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄