精品国产av一区二区三区,国产av一区二区三区,丰满少妇大乳高潮在线,9lporm自拍视频区九色

當(dāng)前位置:首頁 > 最新資訊 > 行業(yè)資訊

機(jī)器學(xué)習(xí)決策樹實(shí)戰(zhàn)演練

機(jī)器學(xué)習(xí)中的決策樹

現(xiàn)代機(jī)器學(xué)習(xí)算法正在改變我們的日常生活。例如,像BERT這樣的大型語言模型正在為谷歌搜索提供支持,GPT-3正在為許多高級(jí)語言應(yīng)用程序提供支持。

另一方面,今天構(gòu)建復(fù)雜的機(jī)器學(xué)習(xí)算法比以往任何時(shí)候都容易得多。然而,無論機(jī)器學(xué)習(xí)算法有多么復(fù)雜,都屬于把它們歸納為以下學(xué)習(xí)類別之一:

監(jiān)督學(xué)習(xí)

無監(jiān)督學(xué)習(xí)

半監(jiān)督學(xué)習(xí)

強(qiáng)化學(xué)習(xí)

其實(shí),決策樹算是最古老的有監(jiān)督的機(jī)器學(xué)習(xí)算法之一,可以解決廣泛的現(xiàn)實(shí)問題。研究表明,決策樹算法的最早發(fā)明可以追溯到1963年。

接下來,讓我們深入研究一下這個(gè)算法的細(xì)節(jié),看看為什么這類算法今天仍然廣為流行。

什么是決策樹?

決策樹算法是一種流行的有監(jiān)督機(jī)器學(xué)習(xí)算法,因?yàn)樗幚韽?fù)雜數(shù)據(jù)集的方法相對(duì)簡(jiǎn)單得多。決策樹的名字來源于它們與“樹”這種結(jié)構(gòu)的相似性;樹結(jié)構(gòu)包括以節(jié)點(diǎn)和邊緣形式存在的根、枝和葉等幾個(gè)組成部分。它們用于決策分析,很像一個(gè)基于if-else的決策流程圖,這些決策會(huì)產(chǎn)生所需的預(yù)測(cè)。決策樹能夠?qū)W習(xí)這些if-else決策規(guī)則,從而拆分?jǐn)?shù)據(jù)集,最后生成樹狀數(shù)據(jù)模型。

決策樹在分類問題的離散結(jié)果預(yù)測(cè)和回歸問題的連續(xù)數(shù)值結(jié)果預(yù)測(cè)中得到了應(yīng)用。多年來科學(xué)家們開發(fā)出了許多不同的算法,如CART、C4.5和ensemble算法,如隨機(jī)森林和梯度增強(qiáng)樹等。

剖析決策樹的各個(gè)組成部分

決策樹算法的目標(biāo)是預(yù)測(cè)輸入數(shù)據(jù)集的結(jié)果。樹的數(shù)據(jù)集共劃分為三種形式:屬性、屬性的值和要預(yù)測(cè)的種類。與任何監(jiān)督學(xué)習(xí)算法一樣,數(shù)據(jù)集被劃分為訓(xùn)練集和測(cè)試集兩種類型。其中,訓(xùn)練集定義了算法學(xué)習(xí)并應(yīng)用于測(cè)試集的決策規(guī)則。

在聚集介紹決策樹算法的步驟之前,讓我們先來了解一下決策樹的組成部分:

根節(jié)點(diǎn):它是決策樹頂部的起始節(jié)點(diǎn),包含所有屬性值。根節(jié)點(diǎn)根據(jù)算法學(xué)習(xí)到的決策規(guī)則分成決策節(jié)點(diǎn)。

分支:分支是對(duì)應(yīng)于屬性值的節(jié)點(diǎn)之間的連接器。在二進(jìn)制拆分中,分支表示真路徑和假路徑。

決策節(jié)點(diǎn)/內(nèi)部節(jié)點(diǎn):內(nèi)部節(jié)點(diǎn)是根節(jié)點(diǎn)和葉節(jié)點(diǎn)之間的決策節(jié)點(diǎn),對(duì)應(yīng)于決策規(guī)則及其答案路徑。節(jié)點(diǎn)表示問題,分支顯示基于這些問題的相關(guān)答案的路徑。

葉節(jié)點(diǎn):葉節(jié)點(diǎn)是表示目標(biāo)預(yù)測(cè)的終端節(jié)點(diǎn)。這些節(jié)點(diǎn)不會(huì)進(jìn)一步分裂。

以下是決策樹及其上述組件的可視化表示,決策樹算法經(jīng)過以下步驟以達(dá)到所需的預(yù)測(cè):

算法從具有所有屬性值的根節(jié)點(diǎn)開始。

根節(jié)點(diǎn)根據(jù)算法從訓(xùn)練集中學(xué)習(xí)到的決策規(guī)則分成決策節(jié)點(diǎn)。

基于問題及其答案路徑,通過分支/邊緣傳遞內(nèi)部決策節(jié)點(diǎn)。

繼續(xù)前面的步驟,直到到達(dá)葉節(jié)點(diǎn)或使用了所有屬性。

為了在每個(gè)節(jié)點(diǎn)上選擇最佳屬性,將根據(jù)以下兩個(gè)屬性選擇度量之一進(jìn)行拆分:

??基尼系數(shù)??(Gini index)測(cè)量基尼不純度(Gini Impurity),以指示算法對(duì)隨機(jī)類別標(biāo)簽進(jìn)行錯(cuò)誤分類的可能性。

??信息增益??測(cè)量分割后熵的改善,以避免預(yù)測(cè)類的50/50分割。熵是給定數(shù)據(jù)樣本中不純度的數(shù)學(xué)度量。決策樹中的混沌狀態(tài)由接近50/50的劃分表示。

使用決策樹算法的花卉分類案例

在了解了上述基礎(chǔ)知識(shí)后,接下來讓我們著手實(shí)現(xiàn)一個(gè)應(yīng)用案例。在本文中,我們將使用Scikit學(xué)習(xí)庫在Python中實(shí)現(xiàn)決策樹分類模型。

關(guān)于數(shù)據(jù)集的簡(jiǎn)單說明

本教程的數(shù)據(jù)集是一個(gè)鳶尾花數(shù)據(jù)集。Scikit開源庫中已經(jīng)內(nèi)置了這個(gè)數(shù)據(jù)集,所以不需要開發(fā)人員再從外部加載它。該數(shù)據(jù)集共包括四個(gè)鳶尾屬性及相應(yīng)的屬性值,這些屬性將被輸入到模型中,以便預(yù)測(cè)三種類型的鳶尾花之一。

數(shù)據(jù)集中的屬性/特征:萼片長(zhǎng)度、萼片寬度、花瓣長(zhǎng)度、花瓣寬度。

數(shù)據(jù)集中的預(yù)測(cè)標(biāo)簽/花卉類型:Setosis、Versicolor、Virginica。

接下來,將給出決策樹分類器基于python語言實(shí)現(xiàn)的分步代碼說明。

導(dǎo)入庫

首先,通過下面的一段代碼導(dǎo)入執(zhí)行決策樹實(shí)現(xiàn)所需的庫。

import pandas as pdimport numpy as npfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.tree import DecisionTreeClassifier

加載鳶尾花(Iris)數(shù)據(jù)集

以下代碼展示了使用load_iris函數(shù)加載存儲(chǔ)到data_set變量中的sklearn.dataset庫中的鳶尾花數(shù)據(jù)集。接下來的兩行代碼將實(shí)現(xiàn)打印鳶尾花類型和特征信息。

data_set = load_iris()print('Iris plant classes to predict: ', data_set.target_names)print('Four features of iris plant: ', data_set.feature_names)

分離屬性和標(biāo)簽

下面的代碼行實(shí)現(xiàn)了將花的特性和類型信息分離開來,并將它們存儲(chǔ)在相應(yīng)的變量中。其中,shape[0]函數(shù)負(fù)責(zé)確定存儲(chǔ)在X_att變量中的屬性數(shù);數(shù)據(jù)集中的屬性值總數(shù)為150。

#提取花的特性和類型信息X_att = data_set.datay_label = data_set.targetprint('數(shù)據(jù)集中總的樣本數(shù):', X_att.shape[0])

其實(shí),我們還可以創(chuàng)建一個(gè)可視化表格來展示數(shù)據(jù)集中的一部分屬性值,方法是將X_att變量中的值添加到panda庫中的DataFrame函數(shù)中即可。

data_view=pd.DataFrame({    'sepal length':X_att[:,0],    'sepal width':X_att[:,1],    'petal length':X_att[:,2],    'petal width':X_att[:,3],    'species':y_label})data_view.head()

拆分?jǐn)?shù)據(jù)集

以下代碼展示了使用train_test_split函數(shù)將數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集兩部分。其中,此函數(shù)中的random_state參數(shù)用于為函數(shù)提供隨機(jī)種子,以便在每次執(zhí)行時(shí)為給定數(shù)據(jù)集提供相同的結(jié)果;test_size表示測(cè)試集的大小;0.25表示拆分后測(cè)試數(shù)據(jù)占25%而訓(xùn)練數(shù)據(jù)占75%。

#數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集兩部分X_att_train, X_att_test, y_label_train, y_label_test = train_test_split(X_att, y_label, random_state = 42, test_size = 0.25)

應(yīng)用決策樹分類函數(shù)

下面的代碼通過使用DecisionTreeClassifier函數(shù)創(chuàng)建一個(gè)??分類模型??來實(shí)現(xiàn)一棵決策樹,分類標(biāo)準(zhǔn)設(shè)置為“entropy”方式。該標(biāo)準(zhǔn)能夠?qū)傩赃x擇度量設(shè)置為信息增益(Information gain)。然后,代碼將模型與我們的屬性和標(biāo)簽訓(xùn)練集相匹配。

#應(yīng)用決策樹分類器clf_dt = DecisionTreeClassifier(criterion = 'entropy')clf_dt.fit(X_att_train, y_label_train)

計(jì)算模型精度

下面的代碼負(fù)責(zé)計(jì)算并打印決策樹分類模型在訓(xùn)練集和測(cè)試集上的準(zhǔn)確性。為了計(jì)算準(zhǔn)確度分?jǐn)?shù),我們使用了predict函數(shù)。測(cè)試結(jié)果是:訓(xùn)練集和測(cè)試集的準(zhǔn)確率分別為100%和94.7%。

print('Training data accuracy: ', accuracy_score(y_true=y_label_train, y_pred=clf_dt.predict(X_att_train)))print('Test data accuracy: ', accuracy_score(y_true=y_label_test, y_pred=clf_dt.predict(X_att_test)))

真實(shí)世界中的決策樹應(yīng)用程序

當(dāng)今社會(huì),機(jī)器學(xué)習(xí)決策樹在許多行業(yè)的決策過程中都得到廣泛應(yīng)用。其中,決策樹的最常見應(yīng)用首先是在金融和營(yíng)銷部門,例如可用于如下一些子領(lǐng)域:

貸款批準(zhǔn)

支出管理

客戶流失預(yù)測(cè)

新產(chǎn)品的可行性分析,等等。

如何改進(jìn)決策樹?

作為本文決策樹主題討論的總結(jié),我們有充分的理由安全地假設(shè):決策樹的可解釋性仍然很受歡迎。決策樹之所以容易理解,是因?yàn)樗鼈兛梢员蝗祟愐钥梢暬绞秸宫F(xiàn)并便于解釋。因此,它們是解決機(jī)器學(xué)習(xí)問題的直觀方法,同時(shí)也能夠確保結(jié)果是可解釋的。機(jī)器學(xué)習(xí)中的可解釋性是我們過去討論過的一個(gè)小話題,它也與即將到來的人工智能倫理主題存在密切聯(lián)系。

與任何其他機(jī)器學(xué)習(xí)算法一樣,決策樹自然也可以加以改進(jìn),以避免過度擬合和出現(xiàn)過于偏向于優(yōu)勢(shì)預(yù)測(cè)類別。剪枝和ensembling技術(shù)是克服決策樹算法缺點(diǎn)方案最常采用的方法。決策樹盡管存在這些缺點(diǎn),但仍然是決策分析算法的基礎(chǔ),并將在機(jī)器學(xué)習(xí)領(lǐng)域始終保持重要位置。

猜你喜歡