使用Weka在幾分鐘內建立決策樹

點選藍字

!

關注我們

對於非技術背景的人來說,機器學習可能會令人生畏。所有機器學習工作似乎都需要對Python有良好的瞭解。

那麼非程式設計師如何獲得編碼經驗呢?這不是小菜一碟!

這是個好訊息-有很多工具可以讓我們無需編寫程式碼即可執行機器學習任務。您可以在漂亮的圖形介面中輕鬆地從頭開始構建演算法,例如決策樹。那不是夢嗎?這些工具可幫助我們主要處理兩件事:

快速建立機器學習模型,並瞭解演算法的效能。以後可以對其進行修改和構建

這是向客戶/您的領導團隊展示您正在使用什麼的理想選擇

本文將向您展示如何在沒有任何程式設計知識的情況下使用Weka中的決策樹解決分類和迴歸問題!

但是,如果您熱衷於程式設計和機器學習,那麼我建議您參加以下精心策劃的課程:

資料科學用Python

應用機器學習

目錄

機器學習中的分類與迴歸

瞭解決策樹

在Weka中探索資料集

在Weka中使用決策樹進行分類

Weka中的決策樹引數

在Weka中視覺化決策樹

在Weka中使用決策樹進行迴歸

機器學習中的分類與迴歸

首先讓我快速總結一下機器學習中的分類和迴歸。在深入決策樹之前瞭解這些概念很重要。

一個分類 的問題是關於教你的機器學習模型如何將資料值歸類到許多類之一。它透過學習每種型別的班級的特徵來做到這一點。例如,為了預測影象是貓還是狗,模型會在訓練資料上學習貓和狗的特徵。

一個迴歸 問題是關於教你的機器學習模型如何預測連續量的未來價值。它通過了解過去受不同變數影響的數量模式來做到這一點。例如,試圖預測公司未來股價的模型就是一個迴歸問題。

您可以在我們的DataHack平臺上找到大量這兩個問題。

現在,讓我們學習解決兩個問題的演算法-決策樹!

瞭解決策樹

決策樹也稱為分類和迴歸樹。他們透過學習對導致決策的if / else問題層次結構的答案進行工作。這些問題形成了樹狀結構,因此也就形成了名稱。

例如,假設我們要預測一個人是否會點菜。我們可以為此視覺化以下決策樹:

使用Weka在幾分鐘內建立決策樹

樹中的每個節點代表一個從資料集中存在的要素派生的問題。根據這些問題拆分資料集,直到達到樹的最大深度。最後一個節點不問問題,但代表該值屬於哪個類。

決策樹中的最高節點稱為Root節點

最底層的節點稱為大號電爐節點

分為子節點的節點稱為父節點。子節點稱為子節點

如果您想詳細瞭解決策樹,建議您閱讀以下資源:

決策樹入門

基於樹的演算法:從頭開始的完整教程

什麼是維卡?為什麼要使用Weka進行機器學習?

” Weka是一款免費的開源軟體,具有一系列內建的機器學習演算法,您可以透過圖形使用者介面進行訪問!“

WEKA代表懷卡託知識分析環境,由紐西蘭懷卡託大學開發。

Weka具有多種內建功能,可用於實現從線性迴歸到神經網路的各種機器學習演算法。這使您只需單擊一下按鈕就可以在資料集上部署最複雜的演算法!不僅如此,Weka還支援訪問一些最常用的Python和R機器學習庫演算法!

使用Weka,您可以預處理資料,對資料分類,對資料進行聚類甚至視覺化資料!您可以對不同格式的資料檔案執行此操作。Weka甚至允許您向資料集中新增過濾器,透過該過濾器,您可以對資料進行規範化,標準化,在名義值和數字值之間交換特徵,而不能!

我可以繼續講一下Weka的奇蹟,但是在本文的範圍內,讓我們嘗試透過建立決策樹來實際探索Weka。現在繼續從其官方網站下載Weka !

使用Weka在幾分鐘內建立決策樹

在Weka中探索資料集

我將從UCI機器學習儲存庫中獲取乳腺癌資料集。我建議您在繼續之前閱讀有關該問題的資訊。

使用Weka在幾分鐘內建立決策樹

讓我們首先在Weka中載入資料集。為此,請按照以下步驟操作:

開啟Weka GUI

選擇“資源管理器”選項。

選擇“開啟檔案”,然後選擇您的資料集。

現在,您的Weka視窗應如下所示:

您可以在左側檢視資料集中的所有要素。Weka會自動為您的功能建立繪圖,在瀏覽功能時您會注意到。

如果單擊“全部視覺化”按鈕,甚至可以一起檢視所有圖。

現在讓我們訓練我們的分類模型!

在Weka中使用決策樹進行分類

在Weka中實施決策樹非常簡單。只需完成以下步驟:

點選頂部的“分類”標籤

點選“選擇”按鈕

從下拉列表中選擇“樹”,這將開啟所有樹演算法

最後,選擇“ RepTree”決策樹

“減少錯誤修剪樹是一種快速的決策樹學習器,它使用資訊增益作為劃分標準來構建決策/迴歸樹,並使用減少錯誤修剪演算法對其進行修剪。”

你可以閱讀關於這個錯誤減少修剪技術的研究論文。

使用Weka在幾分鐘內建立決策樹

“決策樹在所有可用變數上拆分節點,然後選擇拆分,從而生成最相似的子節點。”

資訊增益用於計算拆分時樣品的均質性。

您可以從“開始”按鈕上方的下拉選單中選擇目標功能。如果您不這樣做,則WEKA會自動選擇最後一個功能作為您的目標。

在“百分比分配的”指定用多少你的資料,你要保持訓練的分類。其餘資料將在測試階段用於計算模型的準確性。

使用“交叉驗證摺疊”,您可以從訓練資料集中建立多個樣本。如果決定建立N個摺疊,則該模型將迭代執行N次。每次保留其中一個摺疊以進行驗證,而其餘的N-1個摺疊用於訓練模型。將所有摺疊的結果取平均值,以得出交叉驗證的結果。

您使用的交叉驗證摺疊的數量越多,您的模型就會變得越好。這使得模型可以對隨機選擇的資料進行訓練,從而使其更健壯。

最後,按“開始”按鈕使分類器發揮其魔力!

我們的分類器的準確性為92.4%。Weka甚至會為您列印混淆矩陣,從而提供不同的指標。您可以在此處詳細研究混淆矩陣和其他指標。

Weka中的決策樹引數

決策樹有很多引數。我們可以對其進行調整以改善模型的整體效能。在這裡,決策樹的工作知識才真正發揮關鍵作用。

您可以透過單擊頂部的決策樹演算法來訪問這些引數:

讓我們簡要討論一下主要引數:

maxDepth –它確定決策樹的最大深度。預設情況下,它是-1,這意味著演算法將自動控制深度。但是您可以手動調整此值以獲得最佳資料結果

noPruning –修剪意味著自動削減不包含太多資訊的葉節點。這使決策樹變得簡單易懂

numFolds –指定的資料倍數將用於修剪決策樹。其餘的將用於制定規則

minNum –每個葉的最小例項數。如果未提及,則樹將繼續分裂,直到所有葉節點都只有一個與之關聯的類

您始終可以為這些引數嘗試不同的值,以在資料集上獲得最佳準確性。

在Weka中視覺化您的決策樹

Weka甚至允許您輕鬆視覺化基於資料集構建的決策樹:

轉到“結果列表”部分,然後右鍵單擊您訓練有素的演算法

選擇“視覺化樹”選項

您的決策樹如下所示:

解釋這些值可能有點嚇人,但是一旦掌握了它,實際上就很容易了。

連線節點的線上的值表示基於父節點要素中的值的分割標準

在葉節點中:

括號前的值表示分類值

第一個括號中的第一個值是該葉子中訓練集中的例項總數。第二個值是該葉子中錯誤分類的例項數

第二個括號中的第一個值是該葉子中修剪集的例項總數。第二個值是該葉子中錯誤分類的例項數

在Weka中使用決策樹進行迴歸

就像我之前說過的那樣,決策樹用途廣泛,可以用於分類以及迴歸問題。為此,我將使用Analytics Vidhya的DataHack平臺中的“ 預測投票數 ”問題。

在這裡,我們需要預測使用者在問答平臺上提出的問題的評分。

和往常一樣,我們將從載入資料檔案開始。但是這次,資料還為資料集中的每個使用者包含一個“ ID”列。這在預測中將無用。因此,我們將透過選擇列名稱下方的“刪除”選項來刪除此列:

我們可以像處理乳腺癌問題那樣對資料集進行預測。RepTree將自動檢測迴歸問題:

駭客馬拉松中提供的評估指標是RMSE得分。我們可以看到,該模型在沒有任何特徵工程的情況下,RMSE非常差。這是您介入的地方–繼續進行實驗並完善最終模型!

尾註

就像這樣,您無需進行任何程式設計就可以建立決策樹模型!這對於您掌握機器學習模型的工作將大有幫助。

版權宣告:本文源自 網路, 於,由 楠木軒 整理釋出,共 3105 字。

轉載請註明: 使用Weka在幾分鐘內建立決策樹 - 楠木軒