WEKA把分類(Classification)和迴歸(Regression)
1 簡介
WEKA把分類(Classification)和迴歸(Regression)都放在“Classify”選項卡中,我們希望根據一個樣本的一組特徵,對目標進行預測。為了實現這一目的, 我們需要有一個訓練資料集,這個資料集中每個例項的輸入和輸出都是已知的。觀察訓練集中的例項,可以建立起預測的模型。有了這個模型,我們就可以新的輸出未知的例項進行預測了,衡量模型的好壞就在於預測的準確程度。
在WEKA中,待預測的目標(輸出)被稱作Class屬性,這應該是來自分類任務的“類”。一般的,若Class屬性是分型別時我們的任務才叫分類,Class屬性是數值型時我們的任務叫回歸。
這裡介紹用C4.5決策樹演算法對資料建立起分類模型,C4.5演算法可以處理數值型的屬性。
首先選擇資料來源,然後切換到“Classify”選項卡,點選“Choose”按鈕後可以看到很多分類或者回歸的演算法分門別類在一個樹型框裡。 樹型框下方有一個“Filter...”按鈕,點選可以根據資料集的特性過濾掉不合適的演算法。選擇“trees”下的“J48”,這就是需要的C4.5演算法。
2 引數介紹:
binarySplits 是否使用二進位制分裂名詞性屬性;預設False
confidenceFactor 用於修剪的置信因子(小於該值導致修剪);預設0.25
debug 設定為true,則分類器可能在控制檯輸出另外的資訊;預設False
minNumObj 每個葉的最小例項數量;預設2
numFolds 決定用於reduced-error(減少-誤差)修剪的資料量;一折用於修剪,另外的用於建樹;預設3
reducedErrorPruning 是否使用減少-誤差修剪,而不是C4.5修剪;預設:False
saveInstanceData 是否為了展示儲存訓練資料;預設:False
seed 減少-誤差修剪時,用於隨機化資料的種子;預設:1
subtreeRaising 修剪樹的時候是否考慮子樹上升操作;預設:True
unpruned 修剪是否需要;預設:False
useLaplace 是否葉節點基於拉普拉斯平滑;預設:False
修剪的方式:存在C.4.5修剪,和減少-誤差修剪;reducedErrorPruning控制,預設是C.4.5修剪;
是否修剪:unpruned控制,預設是修剪;
如果沒有專門設定檢驗資料集,為了保證生成的模型的準確性而不至於出現過擬合(overfitting)的現象,有必要採用交叉驗證(一般選擇10-fold cross validation)來選擇和評估模型。
右鍵點選“Results list”中項,彈出選單中選擇“Visualize tree”,新視窗裡可以看到圖形模式的決策樹。建議把這個新視窗最大化,然後點右鍵,選“Fit to screen”,可以把這個樹看清楚些。
解釋一下“Confusion Matrix”的含義:
=== Confusion Matrix ===
a b <-- classified as
741 24 | a = YES
10 582 | b = NO
這個矩陣是說,原本“pep”是“YES”的例項,有741個被正確的預測為 “YES”,有24個錯誤的預測成了“NO”;原本“pep”是“NO”的例項,有10個被錯誤的預測為“YES”,有582個正確的預測成了“NO”。 741+24+10+582 = 1375是例項總數,而(741+582)/1375 = 0.96218正好是正確分類的例項所佔比例。
我們要用生成的模型對那些待預測的資料集進行預測了,注意待預測資料集和訓練用資料集各個屬性的設 置必須是一致的。WEKA中並沒有直接提供把模型應用到帶預測資料集上的方法,我們要採取間接的辦法。
在“Test Opion”中選擇“Supplied test set”,並且“Set”成要驗證的檔案,“Start”一次。
右鍵點選“Result list”中剛產生的那一項,選擇“Visualize classifier errors”。點“Save”按鈕,將結果儲存。這個ARFF檔案中就有我們需要的預測結果。在“Explorer”的“Preprocess”選項卡中開啟這個新檔案,可以看到多了兩個屬性 “Instance_number”和“predictedpep”。“Instance_number”是指一個例項在原檔案中的位置,“predictedpep”就是模型預測的結果。點“Edit”按鈕或者在“ArffViewer”模組中開啟可以查 看這個資料集的內容。
相關文章
- 三、邏輯迴歸logistic regression——分類問題邏輯迴歸
- 線性迴歸——lasso迴歸和嶺迴歸(ridge regression)
- 迴歸樹(Regression Tree)
- 通俗理解線性迴歸(Linear Regression)
- 4.邏輯迴歸(Logistic Regression)邏輯迴歸
- 分類模型——Logistics Regression模型
- Machine Learning (6) - Logistic Regression (Binary Classification)Mac
- Machine Learning (8) - Logistic Regression (Multiclass Classification)Mac
- 迴歸樹(Regression Trees)模型的優缺點模型
- 邏輯迴歸(Logistic Regression)原理及推導邏輯迴歸
- 分類演算法-邏輯迴歸與二分類演算法邏輯迴歸
- 線性迴歸(Linear Regression)演算法優缺點演算法
- 機器學習-----線性迴歸淺談(Linear Regression)機器學習
- COMP 330正則化邏輯迴歸分類邏輯迴歸
- 分類演算法(1)-LR邏輯迴歸演算法邏輯迴歸
- 【深度學習基礎-13】非線性迴歸 logistic regression深度學習
- 迴歸分析類別
- 整合學習(1)AdaBoost分別應用於分類和迴歸及其python實現Python
- 《應用迴歸及分類》學習筆記1筆記
- 大資料分析筆記 (4.1) - 線性迴歸分析(Linear Regression)大資料筆記
- Tensorflow-線性迴歸與手寫數字分類
- 【ML系列】簡單的二元分類——Logistic迴歸
- Machine Learning (7) - 關於 Logistic Regression (Binary Classification) 的小練習Mac
- Machine Learning (9) - 關於 Logistic Regression (Multiclass Classification) 的小練習Mac
- Machine Learning (6) - 關於 Logistic Regression (Multiclass Classification) 的小練習Mac
- 從零開始利用Python建立邏輯迴歸分類模型Python邏輯迴歸模型
- 對比線性迴歸、邏輯迴歸和SVM邏輯迴歸
- 資料探勘—邏輯迴歸分類—信用卡欺詐分析邏輯迴歸
- (二)神經網路入門之Logistic迴歸(分類問題)神經網路
- tf.keras實現邏輯迴歸和softmax多分類Keras邏輯迴歸
- 11 – 分類與歸檔
- php 無限分類遞迴 和 無限分類引入 的效能差距PHP遞迴
- 邏輯迴歸求解二分類問題以及SPSS的實現邏輯迴歸SPSS
- 【機器學習基礎】CART--分類迴歸樹完全解讀機器學習
- 吳恩達機器學習第一課 Supervised Machine Learning Regression and Classification吳恩達機器學習Mac
- Pytorch實戰-logistic 迴歸二元分類程式碼詳細註釋PyTorch
- 機器學習(三):理解邏輯迴歸及二分類、多分類程式碼實踐機器學習邏輯迴歸
- 機器學習(六):迴歸分析——鳶尾花多變數回歸、邏輯迴歸三分類只用numpy,sigmoid、實現RANSAC 線性擬合機器學習變數邏輯迴歸Sigmoid