楠木軒

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

由 公冶爾藍 發佈於 科技

點擊藍字

!

關注我們

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

那麼非程序員如何獲得編碼經驗呢?這不是小菜一碟!

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

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

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

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

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

數據科學用Python

應用機器學習

目錄

機器學習中的分類與迴歸

瞭解決策樹

在Weka中探索數據集

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

Weka中的決策樹參數

在Weka中可視化決策樹

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

機器學習中的分類與迴歸

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

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

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

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

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

瞭解決策樹

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

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

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

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

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

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

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

決策樹入門

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

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

” Weka是一款免費的開源軟件,具有一系列內置的機器學習算法,您可以通過圖形用户界面進行訪問!“

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

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

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

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

在Weka中探索數據集

我將從UCI機器學習存儲庫中獲取乳腺癌數據集。我建議您在繼續之前閲讀有關該問題的信息。

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

打開Weka GUI

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

選擇“打開文件”,然後選擇您的數據集。

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

您可以在左側查看數據集中的所有要素。Weka會自動為您的功能創建繪圖,在瀏覽功能時您會注意到。

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

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

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

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

點擊頂部的“分類”標籤

點擊“選擇”按鈕

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

最後,選擇“ RepTree”決策樹

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

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

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

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

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

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

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

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

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

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

Weka中的決策樹參數

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

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

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

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

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

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

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

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

在Weka中可視化您的決策樹

Weka甚至允許您輕鬆可視化基於數據集構建的決策樹:

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

選擇“可視化樹”選項

您的決策樹如下所示:

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

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

在葉節點中:

括號前的值表示分類值

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

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

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

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

在這裏,我們需要預測用户在問答平台上提出的問題的評分。

和往常一樣,我們將從加載數據文件開始。但是這次,數據還為數據集中的每個用户包含一個“ ID”列。這在預測中將無用。因此,我們將通過選擇列名稱下方的“刪除”選項來刪除此列:

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

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

尾註

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