心智圖資源庫 資料探勘工具—WEKA
WEKA是集資料預處理、學習演算法(分類、迴歸、聚類、關聯分析)和評估方法等為一體的綜合性資料探勘工具。本心智圖介紹了WEKA的使用方法,希望對大家有幫助!
編輯於2023-07-07 16:09:18資料探勘工具—WEKA
WEKA簡介
WEKA的全名是懷卡托智慧分析環境(Waikato Environment for Knowledge Analysis)
WEKA也是紐西蘭的一種鳥名,是紐西蘭懷卡託大學WEKA小組用Java開發的機器學習/資料探勘開源軟體。
其原始碼獲取
http://www.cs.waikato.ac.nz/ml/weka/
http://prdownloads.sourceforge.net/weka/weka-3-6-6jre.exe
2005年8月,在第11屆ACM SIGKDD國際會議上,懷卡託大學的WEKA小組榮獲了資料探勘和知識探索領域的最高服務獎, WEKA系統得到了廣泛的認可,被譽為資料探勘和機器學習史上的里程碑,是現今最完整的資料探勘工具之一。 WEKA的每月下載次數已超過萬次。
主要特點
它是集資料預處理、學習演算法(分類、迴歸、聚類、關聯分析)和評估方法等為一體的綜合性資料探勘工具
具有互動式視覺化介面
提供演算法學習比較環境
透過其接口,可實現自己的資料探勘演算法
Explorer環境
區域1的幾個選項卡是用來切換不同的挖掘任務面板。
Preprocess(資料預處理):選擇和修改要處理的資料。
Classify(分類):訓練和測試分類或迴歸模型。
Cluster(聚類):從資料中聚類。
Associate(關聯分析):從資料中學習關聯規則。
Select Attributes(選擇屬性):選擇資料中最相關的屬性。
Visualize(視覺化) :檢視資料的二維散佈圖。
區域2是一些常用按鈕。包括開啟、編輯、儲存資料及資料轉換等功能。例如,我們可以把檔案「bank-data.csv」另存為「bank-data.arff」。
區域3中可以選擇(Choose)某個篩選器(Filter),以實現篩選資料或對資料進行某種變換。資料預處理主要就利用它來實現。
區域4展示了資料集的關係名、屬性數和實例數等基本情況。
區域5中列出了資料集的所有屬性。
勾選一些屬性並「Remove」就可以刪除它們,刪除後還可以利用區域2的「Undo」按鈕找回。
區域5上方的一排按鈕是用來實現快速勾選的。
區域6中顯示在區域5中選取的目前某個屬性的摘要。
摘要包括屬性名稱(Name)、屬性類型(Type)、缺失值(Missing)數及比例、不同值(Distinct )數、唯一值(Unique)數及比例
對於數值屬性和標稱屬性,摘要的方式是不一樣的。圖中顯示的是對數值屬性「income」的摘要。
數值屬性顯示最小值(Minimum)、最大值(Maximum) 、平均值(Mean)和標準差(StdDev)
標稱屬性顯示每個不同值的計數
區域7是區域5中選取屬性的直方圖。
若資料集的最後一個屬性(這是分類或迴歸任務的預設目標變數)是類別標變數(例如「pep」 ),直方圖中的每個長方形就會依照該變數的比例分成不同顏色的區段。
要換個分段的依據,在區域7上方的下拉方塊中選個不同的分類屬性就可以了。
下拉框選上「No Class」或是一個數值屬性會變成黑白的直方圖。
區域8視窗的底部區域,包括狀態列、log按鈕和Weka鳥。
狀態列(Status)顯示一些資訊讓你知道正在做什麼。例如,如果 Explorer 正忙於裝載一個文件,狀態列就會有通知。
在狀態列中的任意位置右鍵滑鼠將會出現一個小選單。這個選單給了你兩個選項:
Memory Information--顯示WEKA可用的記憶體量。
Run garbage collector--強制運行Java垃圾回收器,搜尋不再需要的記憶體空間並將之釋放,從而可為新任務分配更多的記憶體。
Log按鈕可以查看以weka操作日誌 。
右邊的weka鳥在動的話,表示WEKA正在執行挖掘任務。
KnowledgeFlow環境
WEKA資料集
WEKA所處理的資料集是一個.arff檔案的二維表
表格裡的橫行稱作一個實例(Instance),相當於統計學中的一個樣本,或資料庫中的一筆記錄。
垂直行稱作一個屬性(Attribute),相當於統計中的一個變量,或資料庫中的一個欄位。
這樣一個表格,或者叫資料集,在WEKA看來,呈現了屬性之間的一種關係(Relation)。
上圖中共有14個實例,5個屬性,關係名稱為「weather」。
WEKA儲存資料的格式是ARFF(Attribute-Relation File Format)文件,這是一種ASCII文字檔案。
上圖所示的二維表格儲存在如下的ARFF檔案中。這也就是WEKA自帶的「weather.arff」文件,在WEKA安裝目錄的「data」子目錄下可以找到。
WEKA儲存資料的格式是ARFF(Attribute-Relation File Format)文件
這是一種ASCII文字檔案( ASCII ((American Standard Code for Information Interchange): 美國資訊交換標準代碼 )
檔案的副檔名為.arff
可以用寫字板打開、編輯 ARFF文件
文件中以“%”開始的行是註釋,WEKA將忽略這些行。
除去註解後,整個ARFF檔案可以分為兩個部分:
第一部分給出了頭資訊(Head information),包括了對關係的聲明和對屬性的聲明。
第二部分給出了資料資訊(Data information),即資料集中給出的資料。從「@data」標記開始,後面的就是資料資訊了。
關係聲明
關係名稱在ARFF檔案的第一個有效行來定義,格式為:@relation <關係名稱>
<關係名>是一個字串。如果這個字串包含空格,它必須加上引號(指英文標點的單引號或雙引號)。
屬性聲明
屬性聲明以一列以「@attribute」開頭的語句表示。
資料集中的每一個屬性都有對應的「@attribute」語句,來定義它的屬性名稱和資料類型(datatype):@attribute <屬性名稱> <資料類型>
其中<屬性名>必須以字母開頭的字串。和關係名稱一樣,如果這個字串包含空格,它必須加上引號。
屬性宣告語句的順序很重要,它顯示了該項屬性在資料部分的位置。
例如,“humidity”是第三個被宣告的屬性,這說明資料部分那些被逗號分開的欄位中,第2列(從第0列開始)資料85 90 86 96 ... 是對應的“humidity”值。
其次,最後一個宣告的屬性被稱為class屬性,在分類或迴歸任務中,它是預設的目標變數。
資料類型
numeric 數值型
數值型屬性可以是整數或實數,但WEKA把它們都當作實數看待。例如:@attribute temperature real
<nominal-specification> 標稱(nominal)型
標稱屬性由<nominal-specification>列出一系列可能的類別名稱並放在花括號中:{<nominal-name1>, <nominal-name2>, <nominal-name3>, ...} 。
資料集中該屬性的值只能是其中一種類別。
例如屬性聲明:@attribute outlook {sunny, overcast, rainy}說明“outlook”屬性有三個類別:“sunny”,“ overcast”和“rainy”。而資料集中每個實例對應的「outlook」值必是這三者之一。
若類別名稱帶有空格,仍需將之放入引號中。
string 字串型
字串屬性可以包含任意的文字。例如:@attribute LCC string
date [<date-format>] 日期和時間型
日期和時間屬性統一以「date」類型表示,它的格式是: @attribute <屬性名稱> date [<date-format>]
其中<date-format>是一個字串,來規定該怎麼解析和顯示日期或時間的格式,預設的字串是ISO-8601所給的日期時間組合格式:「yyyy-MM-dd HH:mm: ss”
資料資訊部分錶達日期的字串必須符合聲明中規定的格式要求,例如:@ATTRIBUTE timestamp DATE "yyyy-MM-dd HH:mm:ss" @DATA "2011-05-03 12:59:55"
注意
也可以使用兩個類型“integer”和“real”,但WEKA把它們都當作“numeric”看待。
“integer”,“real”,“numeric”,“date”,“string”這些關鍵字是區分大小寫的,而“relation”、“attribute ”和“data”則不區分。
數據資訊
資料資訊中「@data」標記獨佔一行,剩下的是各個實例的資料。
每個實例佔一行,實例的各屬性值以逗號「,」隔開。
如果某個屬性的值是缺失值(missing value),用問號「?」表示,而這個問號不能省略。
稀疏數據
有的時候資料集中含有大量的0值,這時候用稀疏格式的資料儲存更加省空間。
稀疏格式是針對資料資訊中某個物件的表示而言,不需要修改ARFF檔案的其它部分。
例如資料:@data 0, X, 0, Y, "class A" 0, 0, W, 0, "class B"
用稀疏格式表達的話就是 @data {1 X, 3 Y, 4 "class A"} {2 W, 4 "class B"}
注意:ARFF資料集最左端的屬性列為第0列,因此,1 X表示X為第1列屬性值。
資料準備
數據獲取
直接使用ARFF檔案資料。
從CSV,C4.5,binary等多種格式檔案匯入。
透過JDBC從SQL資料庫讀取資料。
從URL(Uniform Resource Locator)取得網路資源的資料。
資料格式轉換
ARFF格式是WEKA支援得最好的檔案格式。
使用WEKA作資料探勘,面臨的第一個問題往往是資料不是ARFF格式的。
WEKA也提供了對CSV檔案的支持,而這種格式是被許多其他軟體(例如Excel)所支持。
可以利用WEKA將CSV檔案格式轉換成ARFF檔案格式。
數據資源
WEKA自帶的資料集 C:\Program Files\Weka-3-6\data
網路資料資源 http://archive.ics.uci.edu/ml/datasets.html
.XLS——> .CSV——> .ARFF
Excel的XLS檔案可以讓多個二維表格放到不同的工作表(Sheet)中,只能把每個工作表存成不同的CSV檔案。
開啟一個XLS檔案並切換到需要轉換的工作表,另存為CSV類型,點「確定」、「是」忽略提示即可完成操作。
在WEKA中開啟一個CSV類型文件,再另存為ARFF類型文件即可。
資料預處理preprocess
在WEKA中資料預處理工具稱作篩選器(filters)
可以定義篩選器來以各種方式對資料進行變換。
Filter 一欄用於對各種篩選器進行必要的設定。
Choose 按鈕:點選這個按鈕就可選擇 WEKA 中的某個篩選器。
選取一個篩選器後,它的名字和選項會顯示在 Choose 按鈕旁的文字方塊中。
載入數據
Explorer的預處理( preprocess )頁區域2的前4個按鈕用來把資料載入WEKA:
Open file.... 開啟一個對話框,讓你瀏覽本機檔案系統上的資料檔案。
Open URL.... 請求一個存有資料的URL位址。
Open DB.... 從資料庫讀取資料 。
Generate.... 從一些資料產生器(DataGenerators)中產生人造資料。
去除無用屬性
通常對於資料探勘任務來說,像ID這樣的資訊是無用的,可以將之刪除。
在區域5勾選屬性“id”,並點選“Remove”。 將新的資料集儲存,並重新開啟
數據離散化
有些演算法(如關聯分析),只能處理標稱型屬性,這時候就需要對數值型的屬性進行離散化。
對取值有限的數值型屬性可透過修改.arff檔案中該屬性資料類型實現離散化。
例如,在某資料集中的 「children」屬性只有4個數值型取值:0,1,2,3。
我們直接修改ARFF文件,把@attribute children numeric 改為@attribute children {0,1,2,3}就可以了
在“Explorer”中重新開啟“bank-data.arff”,看看選取“children”屬性後,區域6那裡顯示的“Type” 變成“Nominal”了。
對取值較多的數值型屬性,離散化可藉助WEKA中名為「Discretize」的Filter來完成。
在區域2中點“Choose”,出現一棵“Filter樹”,逐級找到“weka.filters.unsupervised.attribute.Discretize”,點擊。
現在「Choose」旁邊的文字方塊應該會顯示「Discretize -B 10 -M -0.1 -R first-last」。
點擊這個文字方塊會彈出新視窗以修改離散化的參數。
分類Classify
WEKA把分類(Classification)和迴歸(Regression)都放在「Classify」標籤中。
在這兩個資料探勘任務中,都有一個目標屬性(類別屬性,輸出變數)。
我們希望根據一個WEKA實例的一組特徵屬性 (輸入變數),對目標屬性進行分類預測。
為了實現這個目的,我們需要有一個訓練資料集,這個資料集中每個實例的輸入和輸出都是已知的。觀察訓練集中的實例,可以建立起預測的分類/迴歸模型。
有了這個模型,就可以對新的未知實例進行分類預測。
衡量模型的好壞主要在於預測的準確度。
WEKA中的典型分類演算法
Bayes: 貝葉斯分類器
BayesNet: 貝葉斯信念網絡
NaïveBayes: 樸素貝葉斯網絡
xMultilayerPerceptron: 多層前饋人工神經網絡
SMO: 支援向量機(採用順序最優化學習方法)
Lazy: 基於實例的分類器
IB1: 1-最近鄰分類器
IBk: k-最近鄰分類器
選擇分類演算法
Meta: 組合方法
AdaBoostM1: AdaBoost M1方法
Bagging: 袋裝方法
Rules: 基於規則的分類器
JRip: 直接方法-Ripper演算法
Part: 間接法-從J48產生的決策樹抽取規則
Trees: 決策樹分類器
Id3: ID3決策樹學習演算法(不支援連續屬性)
J48: C4.5決策樹學習演算法(第8版)
REPTree: 使用降低錯誤剪枝的決策樹學習演算法
RandomTree: 基於決策樹的組合方法
選擇模型評估方法(四種)
Using training set 使用訓練集評估
Supplied test set 使用測試集評估
Cross-validation 交叉驗證
設定折數Folds
Percentage split 保持方法。使用一定比例的訓練實例作評估
設定訓練實例的百分比
點選More options 按鈕可以設定更多的測試選項:
Output model. 輸出基於整個訓練集的分類模型,從而模型可以被查看,可視化等。該選項預設為選取。
Output per-class stats. 輸出每個class的準確度/回饋率(precision/recall)和正確/錯誤(true/false)的統計量。該選項預設為選取。
Output evaluation measures. 輸出熵估計度量。該選項預設沒有選取。
Output confusion matrix. 輸出分類器預測結果的混淆矩陣。該選項預設為選取。
Store predictions for visualization. 記錄分類器的預測結果使得它們能被視覺化表示。
Output predictions. 輸出測試資料的預測結果。注意在交叉驗證時,實例的編號不代表它在資料集中的位置。
Cost-sensitive evaluation. 誤差將根據一個價值矩陣來估計。 Set… 按鈕用來指定價值矩陣。
Random seed for xval / % Split. 指定一個隨即種子,當出於評價的目的需要分割資料時,它用來隨機化資料。
文字結果分析
點選start按鈕,Classifier output視窗顯示的文字結果資訊:
Run information 運作訊息
Classifier model (full training set) 使用全部訓練資料建構的分類模型
Summary 針對訓練/檢驗集的預測效果總結。
Detailed Accuracy By Class 對每個類別的預測準確度的詳細描述。
Confusion Matrix 混淆矩陣,其中矩陣的行是實際的類,矩陣的列是預測得到的類,矩陣元素就是對應測試樣本的數量。
主要指標
Correctly Classified Instances 正確分類率
Incorrectly Classified Instances 錯誤分類率
Kappa statistic Kappa 統計數據
Mean absolute error 平均絕對誤差
Root mean squared error 根均方差
Relative absolute error 相對絕對誤差
Root relative squared error 相對平方根誤差
TP Rate(bad/good) 正確肯定率
FP Rate(bad/good) 錯誤肯定率
Precision(bad/good) 精確率
Recall(bad/good) 回饋率
F-Measure(bad/good) F測量
Time taken to build model 建模所花費的時間
輸出圖形結果
View in main window(查看主視窗)。在主視窗中查看輸出結果。
View in separate window(查看不同的視窗)。打開一個獨立的新視窗來查看結果。
Save result buffer(保存結果的緩衝區)。彈出對話方塊來儲存輸出結果的文字檔案。
Load model(下載模式)。從二進位檔案中載入一個預訓練模式物件。
Save model (保存模式)。將一個模式物件儲存到二進位檔案中,也就是儲存在JAVA 的序列物件格式中。
Re-evaluate model on current test set(重新評估目前測試集)。透過已建立的模式,並利用Supplied test set(提供的測試集) 選項下的Set..按鈕來測試指定的資料集。
Visualize classifier errors(可視化分類器錯誤)。彈出一個視覺化視窗來顯示分類器的結果圖。其中,正確分類的實例以叉表示,然而不正確分類的實例則是以小正方形來表示的。
實際類別與預測類別的散佈圖。其中正確分類的結果以叉表示,分錯的結果以方格表示。
Visualize tree(樹的可視化)。如果可能的話,則彈出一個圖形化的介面來描述分類器模型的結構(這只有一部分分類器才有的)。右鍵單擊空白區域彈出一個選單,在面板中拖曳滑鼠並單擊,就可以看見每個節點對應的訓練實例。
Visualize margin curve(邊際曲線的可視化)。產生一個散佈圖來描述預測邊際的情況。邊際被定義為預測為真實值的機率和預測為真實值之外的其它某類的最高機率之差。例如加速演算法透過增加訓練資料集的邊際來更好地完成測試資料集的任務。
建立一個散佈圖來顯示預測邊際值。
四個變數
Margin: 預測邊際值
Instance_number: 檢定實例的序號
Current: 具有目前預測邊際值的實例個數
Cumulative: 小於或等於預測邊際值的實例個數 (與Instance_number一致)
點選8號檢定實例,顯示該點的邊際值為0.5,有7個實例的邊際值小於0.5。
Visualize threshold curve(閾曲線的可視化)。產生一個散點圖來描述預測中的權衡問題,其中權衡是透過改變類別之間閾值來獲得的。例如,預設閾值為0.5,一個實例預測為positive的機率必須大於0.5,因為0.5時實例剛好預測為positive。而且圖表可以用來對精確率/回饋率權衡進行視覺化,如ROC 曲線分析(正確的正比率和錯誤的正比率)和其它的曲線。
閾值是將檢定實例歸為當前類別的最小機率,使用點的顏色表示閾值
曲線上的每個點透過改變閾值的大小生成
可以進行ROC分析
X軸選假正率
Y軸選真正率
ROC曲線
ROC曲線(Receiver Operating Characteeristic Curve)是顯示Classification模型真正率和假正率之間折算的圖形化方法
假設樣本可分為正負兩類,解讀ROC圖的一些概念定義:
真正(True Positive , TP),被模型預測為正的正樣本
假負(False Negative , FN)被模型預測為負的正樣本
假正(False Positive , FP)被模型預測為正的負樣本
真負(True Negative , TN)被模型預測為負的負樣本
真正率(True Positive Rate , TPR)或靈敏度(sensitivity) TPR = TP /(TP FN) 正樣本預測結果數 / 正樣本實際數
假正率(False Positive Rate , FPR) FPR = FP /(FP TN) 被預測為正的負樣本結果數 /負樣本實際數
( TPR=1,FPR=0 ) 是理想模型
一個好的分類模型應該盡可能靠近圖形的左上角。
Visualize cost curve(成本曲線的視覺化)。產生一個散佈圖,來確切描述期望成本,正如Drummond 和Holte 所描述的一樣。
聚類Cluster
聚類分析是把物件分配給各個簇,使同簇中的物件相似,而不同簇間的物件相異。
WEKA在「Explorer」介面的「Cluster」提供聚類分析工具
主要演算法包括:
SimpleKMeans — 支援分類屬性的K均值演算法
displayStdDevs:是否顯示數值屬性標準差和分類屬性個數
distanceFunction:選擇比較實例的距離函數
(預設: weka.core.EuclideanDistance)
dontReplaceMissingValues:是否不使用平均值/眾數(mean/mode)來取代缺失值。
maxIterations:最大迭代次數
numClusters:聚類的簇數
preserveInstancesOrder:是否預先排列實例的順序
Seed:設定的隨機種子值
DBScan — 支援分類屬性的基於密度的演算法
EM — 基於混合模型的聚類演算法
FathestFirst — K中心點演算法
OPTICS — 基於密度的另一個演算法
Cobweb — 概念聚類演算法
sIB — 基於資訊理論的聚類演算法,不支援分類屬性
XMeans — 能自動確定簇個數的擴展K均值演算法,不支援分類屬性
聚類模式Cluster Mode
使用訓練集 (Use training set) — 報告訓練物件的聚類結果和分組結果
使用訓練集 (Use training set) — 報告訓練物件的聚類結果和分組結果
使用附加的檢定集 (Supplied test set) — 報告訓練物件的聚類結果和附加的檢定物件的分組結果
百分比劃分 (Percentage split) — 報告全部物件的聚類結果、訓練物件的聚類結果,以及檢定物件的分組結果
監督評估 (Classes to clusters evaluation) — 報告訓練對象的聚類結果和分組結果、類別/簇混淆矩陣和錯誤分組訊息
執行聚類演算法
點選「Start」按鈕,執行聚類演算法
觀察聚類結果
觀察右邊「Clusterer output」給出的聚類結果。也可以在左下角「Result list」中這次產生的結果上點右鍵,「View in separate window」在新視窗中瀏覽結果。
注意:採用有監督聚類(即已知建模資料集的類別標號), 才會出現上述執行資訊。
文字分析
SimpleKMeans
非監督模式:運行資訊、KMeans結果(迭代次數、SSE、簇中心)、檢驗物件的分組訊息
監督模式:運行資訊、KMeans結果(迭代次數、SSE、簇中心)、類別/簇混淆矩陣、錯誤分組的物件數量和比例
簇中心:對於數值屬性為平均值,對於分類屬性為眾數
DBScan
非監督模式:運行資訊、DBScan結果(迭代次數、各個訓練物件的分組資訊)、檢驗物件的分組訊息
監督模式:運行資訊、 DBScan結果(迭代次數、各個訓練物件的分組資訊)、類別/簇混淆矩陣、錯誤分組的物件數量和比例
圖形分析
必須將store clusters for visualization勾上
視覺化簇指派 (Visualize cluster assignments):2D散佈圖,能夠視覺化類別/簇混淆矩陣
重要的輸出訊息
「 Within cluster sum of squared errors 」評估聚類好壞的標準—SSE,即誤差的平方和。 SSE值越小說明聚類結果越好。
「Cluster centroids:」之後列出了各個簇中心的位置。對於數值型的屬性,簇中心就是它的平均值(Mean),分類型的就是它的眾數(Mode)。
「Clustered Instances」是各簇中實例的數目及百分比。
觀察可視化的聚類結果
在左下方「Result list」所列的結果上按右鍵,點選「Visualize cluster assignments」。
彈出的視窗給出了各實例的散佈圖。
最上方的兩個框是選擇橫座標和縱座標
第二行的”color」是散點圖著色的依據,預設是根據不同的簇「Cluster」給實例標上不同的顏色。
關聯規則
WEKA關聯規則學習能夠發現屬性組之間的依賴關係:
例如,milk, butter bread, eggs (置信度 0.9 and 支援數 2000)
對於關聯規則L->R
支持度(support)- 同時觀察到前件和後件的機率 support = Pr(L,R)
置信度(confidence)- 出現前件時同時出現後件的機率 confidence = Pr(L,R)/Pr(L)
關聯規則探勘的主要演算法
WEKA資料探勘平台上的關聯規則探勘的主要演算法有:
Apriori--能夠得出滿足最小支持度和最小支持度的所有關聯規則。
car:如果設為真,則會挖掘類別關聯規則而不是全域關聯規則。
classindex: 類別屬性索引。如果設定為-1,最後的屬性被當作類別屬性。
delta: 以此數值為迭代遞減單位。不斷減少支持度直至達到最小支持度或產生了滿足數量要求的規則。
lowerBoundMinSupport: 最小支援度下界。
metricType: 度量類型,設定對規則進行排序的度量依據。可以是:置信度(類別關聯規則只能用置信度挖掘),提升度(lift),平衡度(leverage),確信度(conviction)。
Weka中設定了幾個類似置信度(confidence)的量測來衡量規則的關聯程度,它們分別是:
Lift,提升度:置信度與後件支持度的比率 lift = Pr(L,R) / (Pr(L)Pr(R)) Lift=1時表示L和R獨立。這個數字越大(>1),越表示L和B存在於一個購物籃中不是偶然現象,有較強的關聯度。
Leverage,平衡度:在前件和後件統計獨立的假設下,被前件和後件同時涵蓋的超出期望值的那部分實例的比例。 leverage = Pr(L,R) - Pr(L)Pr(R) Leverage=0時L和R獨立,Leverage越大L和R的關係越密切。
Conviction,可信度:也用來衡量前件和後件的獨立性。 conviction = Pr(L)Pr(!R) / Pr(L,!R) (!R表示R沒有發生) 從它和lift的關係(對R取反,代入Lift公式後求倒數)可以看出,這個值越大, L和R越關聯。
minMtric :度量的最小值。
numRules: 要發現的規則數。
outputItemSets: 若設定為真,會在結果中輸出項集。
removeAllMissingCols: 移除全部為缺失值的欄位。
significanceLevel :重要程度。重要性測試(僅用於置信度)。
upperBoundMinSupport: 最小支持度上界。 從這個值開始迭代減小最小支持度。
verbose: 如果設定為真,演算法會以冗餘模式運作。
PredictiveApriori--將置信度和支持度合併為預測精度而成為單一度測量法,找出經過預測精度排序的關聯規則。
Terius--根據確認度來尋找規則,它與Apriori一樣尋找其結論中含有多重條件的規則,但不同的是這些條件相互間是‘或’,而不是‘與’的關係。
這三個演算法均不支援數值型數據。
事實上,絕大部分的關聯規則演算法均不支援數值型。所以必須將資料處理,將資料依區段劃分,進行離散化分箱處理。
關聯規則挖掘演算法運行信息
選擇屬性Select Attributes
屬性選擇是搜尋資料集中全部屬性的所有可能組合,找出預測效果最好的那一組屬性。
為實現這一目標,必須設定屬性評估器(evaluator)和搜尋策略。
評估器決定了怎樣給一組屬性安排一個表示它們好壞的值。
搜尋策略決定了要怎樣進行搜尋。
選項
Attribute Selection Mode 一欄有兩個選項。
Use full training set. 使用訓練資料的全體決定一組屬性的好壞。
Cross-validation. 一組屬性的好壞透過一個交叉驗證過程來決定。 Fold 和 Seed 分別給出了交叉驗證的折數和打亂資料時的隨機種子。
和 Classify 部分一樣,有一個下拉框來指定class屬性。
執行選擇
點選Start按鈕開始執行屬性選擇程序。它完成後,結果會輸出到結果區域中,同時結果清單中會增加一個條目。
在結果清單上按右鍵,會給出若干選項。其中前面三個(View in main window,View in separate window 和 Save result buffe)和分類面板中是一樣的。
也可以視覺化精簡過的資料集(Visualize reduced data)
能視覺化變換過的資料集(Visualize transformed data)
精簡過/變換過的資料能夠透過 Save reduced data... 或 Save transformed data... 選項來儲存。
數據視覺化Visualize
WEKA 的視覺化頁面可以對目前的關係作二維散點圖式的視覺化瀏覽。
散點圖矩陣
選擇了 Visualize 面板後,會為所有的屬性給予一個散佈圖矩陣,它們會根據所選的class 屬性來著色。
這裡可以改變每個二維散佈圖的大小,改變各點的大小,以及隨機地抖動(jitter)資料(使得被隱藏的點顯示出來)。
也可以改變用來著色的屬性,可以只選擇一組屬性的子集放在散點圖矩陣中,也可以取出資料的子樣本。
注意這些改變只有在點擊了Update 了按鈕之後才會生效。
選擇單獨的二維散點圖
在散佈圖矩陣的一個元素上點擊後,會彈出一個單獨的視窗對所選的散點圖進行視覺化。
數據點散佈在視窗的主要區域。上方是兩個下拉框選擇用來選擇打點的座標軸。左邊是用作 x 軸的屬性;右邊是用作 y 軸的屬性。
在 x 軸選擇器旁邊是一個下拉框用來選擇著色的方案。它可以根據所選的屬性給點著色。
在打點區域的下方,有圖例來說明每種顏色所代表的是什麼值。如果這些值是離散的,可以透過點擊它們彈出的新視窗來修改顏色。
打點區域的右邊有一些水平橫條。每一條代表著一個屬性,其中的點代表了屬性值的分佈。這些點隨機的在垂直方向散開,使得點的密集程度能被看出來。
在這些橫條上點選可以改變主圖所使用的座標軸。左鍵點選改變 x 軸的屬性;右鍵點選改變 y 軸的。橫條旁邊的「X」和「Y」代表了目前的軸用的那個屬性(「B」則表示 x 軸和 y 軸都是它)。
屬性橫條的上方是標示 Jitter 的遊標。它能隨機地使得散佈圖中各點的位置發生偏移,也就是抖動。把它拖曳到右邊可以增加抖動的幅度,這對辨識點的密集程度很有用。
如果不使用這樣的抖動,幾萬個點放在一起和單獨的一個點看起來會沒有差別。
在y軸選擇按鈕的下方是一個下拉按鈕,它決定選取資料點的方法。
可以透過以下四種方式選取資料點:
Select Instance. 點選各資料點會開啟一個視窗列出它的屬性值,如果點選處的點超過一個,則更多群組的屬性值也會列出來。
Rectangle. 透過拖曳建立一個矩形,選取其中的點。
Polygon. 創造一個形式自由的多邊形並選取其中的點。左鍵點選新增多邊形的頂點,右鍵點選完成頂點設定。起始點和最終點會自動連接起來因此多邊形總是閉合的。
Polyline. 可以創造一條折線把它兩邊的點區分開。左鍵新增折線頂點,右鍵結束設定。折線總是打開的(與閉合的多邊形相反)。
使用 Rectangle,Polygon 或 Polyline 選取了散佈圖的一個區域後,該區域會變成灰色。
這時點選 Submit按鈕會移除所有落在灰色區域之外的實例。
點擊Clear按鈕會清除所選區域而不對圖形產生任何影響。 如果所有的點都從圖表中移除,則 Submit 按鈕會變成 Reset 按鈕。這個按鈕能讓前面所做的移除都被取消,圖形回到所有點都在的初始狀態。
最後,點選Save按鈕可把目前所能看到的實例儲存到一個新的 ARFF 檔案中。
知識流程介面KnowledgeFlow
KnowledgeFlow 為Weka 提供了一個圖形化的「知識流」形式的介面。
使用者可以從一個工具列中選擇元件,把它們放置在面板上並按一定的順序連接起來,這樣組成一個「知識流」(KnowledgeFlow)來處理和分析資料。
例如 :“資料來源” -> “篩選” -> “分類” -> “評估”
Weka 分類器(classifier)、篩選器(Filter)、聚類器(clusterers)、載入器(loader)、保存器(saver),以及一些其他的功能可以在KnowledgeFlow 中使用。
可以儲存「知識流」佈局,並重新載入。
KnowledgeFlow 的可用元件
在KnowledgeFlow 視窗頂部有八個標籤:
DataSources--資料載入器
DataSinks--資料保存器
Filters--篩選器
Classifiers--分類器
Clusterers--聚類器
Associations—關聯器
Evaluation—評估器
TrainingSetMaker--使一個資料集成為訓練集
TestSetMaker--使一個資料集成為測試集
CrossValidationFoldMaker--把任意資料集,訓練集或測試集分割成若干折以供交叉驗證使用
TrainTestSplitMaker--把任意資料集,訓練集或測試集分割成一個訓練集和一個測試集
ClassAssigner --把某一列當作任意資料集,訓練集或測試集的class 屬性
ClassValuePicker--選擇某個類別作為「positive」的類別。這在為ROC形式的曲線產生資料時會有用
ClassifierPerformanceEvaluator --評估批次模式下訓練過或測試過的分類器的表現
IncrementalClassi¯erEvaluator--評估在增量模式中受過訓練的分類器的表現
ClustererPerformanceEvaluator--評估批次模式下訓練過或測試過的聚類器的表現
PredictionAppender--往測試集中新增分類器的預測值。對於離散的分類問題,可以新增預測的類別標誌或機率分佈
Visualization—視覺化
DataVisualizer--此元件可彈出一個面板,使得可以在一個單獨的較大的散佈圖中對資料進行視覺化
ScatterPlotMatrix--此元件可彈出一個面板,其中有一個由一些小的散點圖構成的矩陣(點擊各小散點圖會彈出一個大的散點圖)
AttributeSummarizer --此元件可彈出一個面板,其中有一個直方圖構成的矩陣,每個直方圖對應輸入資料裡的一個屬性
ModelPerformanceChart --此元件能彈出一個面板來對閾值曲線(例如ROC 曲線)進行視覺化
TextViewer--此元件用來顯示文字數據,可用來顯示資料集以及衡量分類表現的統計量等
GraphViewer --此元件能彈出一個面板來對基於樹的模型進行視覺化
StripChart --此元件能彈出一個面板,其中顯示滾動的資料散點圖(用來即時觀察增量分類器的表現)