




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數據挖掘工具-WEKA教程WEKA簡介.2數據集.11數據準備.24數據預處理36分類63聚類.184關聯規則225選擇屬性244數據可視化253知識流界面2752022/7/2211、WEKA簡介WEKA的全名是懷卡托智能分析環境(Waikato Environment for Knowledge Analysis)weka也是新西蘭的一種鳥名是新西蘭懷卡托大學WEKA小組用Java開發的機器學習/數據挖掘開源軟件。其源代碼獲取http:/www.cs.waikato.ac.nz/ml/weka/weka/weka-3-6-6jre.exe2005年8月,在第11屆ACM SIGKDD國際會
2、議上,懷卡托大學的WEKA小組榮獲了數據挖掘和知識探索領域的最高服務獎, WEKA系統得到了廣泛的認可,被譽為數據挖掘和機器學習歷史上的里程碑,是現今最完備的數據挖掘工具之一。 WEKA的每月下載次數已超過萬次。2022/7/222WEKA軟件主要特點它是集數據預處理、學習算法(分類、回歸、聚類、關聯分析)和評估方法等為一體的綜合性數據挖掘工具。具有交互式可視化界面。提供算法學習比較環境通過其接口,可實現自己的數據挖掘算法WEKA的界面2022/7/223探索環境命令行環境知識流環境算法試驗環境2022/7/224Explorer環境 2022/7/225把“Explorer”界面分成8個區域
3、區域1的幾個選項卡是用來切換不同的挖掘任務面板。Preprocess(數據預處理):選擇和修改要處理的數據。 Classify(分類):訓練和測試分類或回歸模型。 Cluster(聚類):從數據中聚類。 Associate(關聯分析):從數據中學習關聯規則。 Select Attributes(選擇屬性):選擇數據中最相關的屬性。 Visualize(可視化) :查看數據的二維散布圖。區域2是一些常用按鈕。包括打開、編輯、保存數據及數據轉換等功能。例如,我們可以把文件“bank-data.csv”另存為“bank-data.arff”。區域3中可以選擇(Choose)某個篩選器(Filter)
4、,以實現篩選數據或者對數據進行某種變換。數據預處理主要就利用它來實現。2022/7/226區域4展示了數據集的關系名、屬性數和實例數等基本情況。區域5中列出了數據集的所有屬性。勾選一些屬性并“Remove”就可以刪除它們,刪除后還可以利用區域2的“Undo”按鈕找回。區域5上方的一排按鈕是用來實現快速勾選的。區域6中顯示在區域5中選中的當前某個屬性的摘要。摘要包括屬性名(Name)、屬性類型(Type)、缺失值(Missing)數及比例、不同值(Distinct )數、唯一值(Unique)數及比例對于數值屬性和標稱屬性,摘要的方式是不一樣的。圖中顯示的是對數值屬性“income”的摘要。數值
5、屬性顯示最小值(Minimum)、最大值(Maximum) 、均值(Mean)和標準差(StdDev)標稱屬性顯示每個不同值的計數2022/7/227區域7是區域5中選中屬性的直方圖。若數據集的最后一個屬性(這是分類或回歸任務的默認目標變量)是類標變量(例如“pep” ),直方圖中的每個長方形就會按照該變量的比例分成不同顏色的段。要想換個分段的依據,在區域7上方的下拉框中選個不同的分類屬性就可以了。下拉框里選上“No Class”或者一個數值屬性會變成黑白的直方圖。2022/7/228區域8窗口的底部區域,包括狀態欄、log按鈕和Weka鳥。狀態欄(Status)顯示一些信息讓你知道正在做什么
6、。例如,如果 Explorer 正忙于裝載一個文件,狀態欄就會有通知。在狀態欄中的任意位置右擊鼠標將會出現一個小菜單。這個菜單給了你兩個選項: Memory Information-顯示WEKA可用的內存量。 Run garbage collector-強制運行Java垃圾回收器,搜索不再需要的內存空間并將之釋放,從而可為新任務分配更多的內存。Log按鈕可以查看以weka操作日志 。右邊的weka鳥在動的話,說明WEKA正在執行挖掘任務。2022/7/229KnowledgeFlow環境2022/7/22102、WEKA數據集WEKA所處理的數據集是一個.arff文件的二維表2022/7/22
7、11表格里的一個橫行稱作一個實例(Instance),相當于統計學中的一個樣本,或者數據庫中的一條記錄。豎行稱作一個屬性(Attribute),相當于統計學中的一個變量,或者數據庫中的一個字段。這樣一個表格,或者叫數據集,在WEKA看來,呈現了屬性之間的一種關系(Relation)。上圖中一共有14個實例,5個屬性,關系名稱為“weather”。WEKA存儲數據的格式是ARFF(Attribute-Relation File Format)文件,這是一種ASCII文本文件。上圖所示的二維表格存儲在如下的ARFF文件中。這也就是WEKA自帶的“weather.arff”文件,在WEKA安裝目錄的
8、“data”子目錄下可以找到。2022/7/2212relation weatherattribute outlook sunny, overcast, rainyattribute temperature realattribute humidity realattribute windy TRUE, FALSEattribute play yes, nodatasunny,85,85,FALSE,nosunny,80,90,TRUE,noovercast,83,86,FALSE,yesrainy,70,96,FALSE,yesrainy,68,80,FALSE,yesrainy,65,70
9、,TRUE,noovercast,64,65,TRUE,yessunny,72,95,FALSE,nosunny,69,70,FALSE,yesrainy,75,80,FALSE,yessunny,75,70,TRUE,yesovercast,72,90,TRUE,yesovercast,81,75,FALSE,yesrainy,71,91,TRUE,no2022/7/2213WEKA數據文件WEKA存儲數據的格式是ARFF(Attribute-Relation File Format)文件這是一種ASCII文本文件文件的擴展名為.arff可以用寫字板打開、編輯 ARFF文件文件中以“%”開始
10、的行是注釋,WEKA將忽略這些行。除去注釋后,整個ARFF文件可以分為兩個部分:第一部分給出了頭信息(Head information),包括了對關系的聲明和對屬性的聲明。第二部分給出了數據信息(Data information),即數據集中給出的數據。從“data”標記開始,后面的就是數據信息了。2022/7/22142022/7/2215關系聲明關系名稱在ARFF文件的第一個有效行來定義,格式為: relation 是一個字符串。如果這個字符串包含空格,它必須加上引號(指英文標點的單引號或雙引號)。 2022/7/2216屬性聲明屬性聲明用一列以“attribute”開頭的語句表示。數據集
11、中的每一個屬性都有對應的“attribute”語句,來定義它的屬性名稱和數據類型(datatype): attribute 其中必須以字母開頭的字符串。和關系名稱一樣,如果這個字符串包含空格,它必須加上引號。屬性聲明語句的順序很重要,它表明了該項屬性在數據部分的位置。例如,“humidity”是第三個被聲明的屬性,這說明數據部分那些被逗號分開的列中,第2列(從第0列開始)數據 85 90 86 96 . 是相應的“humidity”值。其次,最后一個聲明的屬性被稱作class屬性,在分類或回歸任務中,它是默認的目標變量。2022/7/2217數據類型WEKA支持四種數據類型numeric數值型
12、 標稱(nominal)型string字符串型date 日期和時間型還可以使用兩個類型“integer”和“real”,但是WEKA把它們都當作“numeric”看待。注意:“integer”,“real”,“numeric”,“date”,“string”這些關鍵字是區分大小寫的,而“relation”、“attribute ”和“data”則不區分。2022/7/2218數值型屬性數值型屬性可以是整數或者實數,但WEKA把它們都當作實數看待。例如: attribute temperature real 字符串屬性字符串屬性可以包含任意的文本。例如: attribute LCC string
13、2022/7/2219標稱屬性標稱屬性由列出一系列可能的類別名稱并放在花括號中:, , , . 。數據集中該屬性的值只能是其中一種類別。例如屬性聲明: attribute outlook sunny, overcast, rainy 說明“outlook”屬性有三種類別:“sunny”,“ overcast”和“rainy”。而數據集中每個實例對應的“outlook”值必是這三者之一。如果類別名稱帶有空格,仍需要將之放入引號中。2022/7/2220日期和時間屬性日期和時間屬性統一用“date”類型表示,它的格式是: attribute date 其中是一個字符串,來規定該怎樣解析和顯示日期或
14、時間的格式,默認的字符串是ISO-8601所給的日期時間組合格式: “yyyy-MM-dd HH:mm:ss” 數據信息部分表達日期的字符串必須符合聲明中規定的格式要求,例如: ATTRIBUTE timestamp DATE yyyy-MM-dd HH:mm:ss DATA 2011-05-03 12:59:552022/7/2221數據信息數據信息中“data”標記獨占一行,剩下的是各個實例的數據。每個實例占一行,實例的各屬性值用逗號“,”隔開。如果某個屬性的值是缺失值(missing value),用問號“?”表示,且這個問號不能省略。例如: data sunny,85,85,FALSE
15、,no ?,78,90,?,yes2022/7/2222稀疏數據有的時候數據集中含有大量的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列屬性值。2022/7/22233、數據準備數據獲取直接使用ARFF文件數據。 從CSV,C4.5,binary等
16、多種格式文件中導入。通過JDBC從SQL數據庫中讀取數據。從URL(Uniform Resource Locator)獲取網絡資源的數據。數據格式轉換ARFF格式是WEKA支持得最好的文件格式。使用WEKA作數據挖掘,面臨的第一個問題往往是數據不是ARFF格式的。WEKA還提供了對CSV文件的支持,而這種格式是被很多其他軟件(比如Excel)所支持。可以利用WEKA將CSV文件格式轉化成ARFF文件格式。2022/7/2224數據資源WEKA自帶的數據集C:Program FilesWeka-3-6data網絡數據資源 /ml/datasets.html2022/7/2225.XLS .CSV
17、 .ARFFExcel的XLS文件可以讓多個二維表格放到不同的工作表(Sheet)中,只能把每個工作表存成不同的CSV文件。打開一個XLS文件并切換到需要轉換的工作表,另存為CSV類型,點“確定”、“是”忽略提示即可完成操作。在WEKA中打開一個CSV類型文件,再另存為ARFF類型文件即可。2022/7/2226打開Excel的Iris.xls文件2022/7/22272022/7/2228將iris.xls另存為iris.csv文件2022/7/22292022/7/22302022/7/2231在weka的Explorer中打開Iris.csv文件2022/7/22322022/7/223
18、3將iris. csv另存為iris. arff 文件2022/7/22342022/7/22354、數據預處理 preprocess在WEKA中數據預處理工具稱作篩選器(filters)可以定義篩選器來以各種方式對數據進行變換。Filter 一欄用于對各種篩選器進行必要的設置。Choose 按鈕:點擊這個按鈕就可選擇 WEKA 中的某個篩選器。選定一個篩選器后,它的名字和選項會顯示在 Choose 按鈕旁邊的文本框中。2022/7/2236載入數據Explorer的預處理( preprocess )頁區域2的前4個按鈕用來把數據載入WEKA: Open file. 打開一個對話框,允許你瀏覽
19、本地文件系統上的數據文件。 Open URL. 請求一個存有數據的URL地址。 Open DB. 從數據庫中讀取數據 。 Generate. 從一些數據生成器(DataGenerators)中生成人造數據。 2022/7/2237去除無用屬性通常對于數據挖掘任務來說,像ID這樣的信息是無用的,可以將之刪除。在區域5勾選屬性“id”,并點擊“Remove”。將新的數據集保存,并重新打開。2022/7/2238數據離散化有些算法(如關聯分析),只能處理標稱型屬性,這時候就需要對數值型的屬性進行離散化。對取值有限的數值型屬性可通過修改.arff文件中該屬性數據類型實現離散化。例如,在某數據集中的 “
20、children”屬性只有4個數值型取值:0,1,2,3。我們直接修改ARFF文件,把 attribute children numeric 改為 attribute children 0,1,2,3 就可以了。在“Explorer”中重新打開“bank-data.arff”,看看選中“children”屬性后,區域6那里顯示的“Type” 變成“Nominal”了。2022/7/2239對取值較多的數值型屬性,離散化可借助WEKA中名為“Discretize”的Filter來完成。在區域2中點“Choose”,出現一棵“Filter樹”,逐級找到“weka.filters.unsupervi
21、sed.attribute.Discretize”,點擊。現在“Choose”旁邊的文本框應該顯示“Discretize -B 10 -M -0.1 -R first-last”。 點擊這個文本框會彈出新窗口以修改離散化的參數。2022/7/2240在weka的Explorer中打開Iris.arff文件2022/7/22412022/7/22422022/7/2243查看Iris數據集2022/7/22442022/7/2245查看Iris數據屬性分布圖,選擇屬性2022/7/22462022/7/22472022/7/2248通過觀察發現petallength最能區分各類2022/7/22
22、49將屬性petallength離散化2022/7/22502022/7/22512022/7/22522022/7/22532022/7/22542022/7/2255離散化成10段數據等頻離散化離散化成10段數據2022/7/22562022/7/22572022/7/22582022/7/22592022/7/2260查看離散化后的Iris數據集2022/7/22612022/7/22625、分類 ClassifyWEKA把分類(Classification)和回歸(Regression)都放在“Classify”選項卡中。在這兩個數據挖掘任務中,都有一個目標屬性(類別屬性,輸出變量)。
23、我們希望根據一個WEKA實例的一組特征屬性 (輸入變量),對目標屬性進行分類預測。為了實現這一目的,我們需要有一個訓練數據集,這個數據集中每個實例的輸入和輸出都是已知的。觀察訓練集中的實例,可以建立起預測的分類/回歸模型。有了這個模型,就可以對新的未知實例進行分類預測。衡量模型的好壞主要在于預測的準確程度。2022/7/2263WEKA中的典型分類算法Bayes: 貝葉斯分類器BayesNet: 貝葉斯信念網絡NaveBayes: 樸素貝葉斯網絡Functions: 人工神經網絡和支持向量機MultilayerPerceptron: 多層前饋人工神經網絡SMO: 支持向量機(采用順序最優化學習
24、方法)Lazy: 基于實例的分類器IB1: 1-最近鄰分類器IBk: k-最近鄰分類器2022/7/2264選擇分類算法Meta: 組合方法AdaBoostM1: AdaBoost M1方法Bagging: 袋裝方法Rules: 基于規則的分類器JRip: 直接方法Ripper算法Part: 間接方法從J48產生的決策樹抽取規則Trees: 決策樹分類器Id3: ID3決策樹學習算法(不支持連續屬性)J48: C4.5決策樹學習算法(第8版本)REPTree: 使用降低錯誤剪枝的決策樹學習算法RandomTree: 基于決策樹的組合方法2022/7/2265選擇分類算法2022/7/22662
25、022/7/2267選擇模型評估方法四種方法Using training set 使用訓練集評估Supplied test set 使用測試集評估Cross-validation 交叉驗證設置折數FoldsPercentage split 保持方法。使用一定比例的訓練實例作評估設置訓練實例的百分比2022/7/2268選擇模型評估方法2022/7/2269Output model. 輸出基于整個訓練集的分類模型,從而模型可以被查看,可視化等。該選項默認選中。Output per-class stats. 輸出每個class的準確度/反饋率(precision/recall)和正確/錯誤(tru
26、e/false)的統計量。該選項默認選中。Output evaluation measures. 輸出熵估計度量。該選項默認沒有選中。Output confusion matrix. 輸出分類器預測結果的混淆矩陣。該選項默認選中。Store predictions for visualization. 記錄分類器的預測結果使得它們能被可視化表示。Output predictions. 輸出測試數據的預測結果。注意在交叉驗證時,實例的編號不代表它在數據集中的位置。Cost-sensitive evaluation. 誤差將根據一個價值矩陣來估計。Set 按鈕用來指定價值矩陣。Random see
27、d for xval / % Split. 指定一個隨即種子,當出于評價的目的需要分割數據時,它用來隨機化數據。點擊More options 按鈕可以設置更多的測試選項:2022/7/2270文字結果分析單擊start按鈕,Classifier output窗口顯示的文字結果信息:Run information 運行信息Classifier model (full training set) 使用全部訓練數據構造的分類模型Summary 針對訓練/檢驗集的預測效果匯總。Detailed Accuracy By Class 對每個類的預測準確度的詳細描述。Confusion Matrix 混淆矩
28、陣,其中矩陣的行是實際的類,矩陣的列是預測得到的類,矩陣元素就是相應測試樣本的個數。2022/7/2271文字結果2022/7/2272主要指標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(b
29、ad/good) 正確肯定率FP Rate(bad/good) 錯誤肯定率Precision(bad/good) 精確率Recall(bad/good) 反饋率F-Measure(bad/good) F測量Time taken to build model 建模花費的時間 2022/7/2273輸出圖形結果鼠標右鍵2022/7/2274View in main window(查看主窗口)。在主窗口中查看輸出結果。View in separate window(查看不同的窗口)。打開一個獨立的新窗口來查看結果。Save result buffer(保存結果的緩沖區)。彈出對話框來保存輸出結果的文
30、本文件。Load model(下載模式)。從二進制文件中載入一個預訓練模式對象。Save model (保存模式)。將一個模式對象保存到二進制文件中,也就是保存在JAVA 的串行對象格式中。Re-evaluate model on current test set(對當前測試集進行重新評估)。通過已建立的模式,并利用Supplied test set(提供的測試集) 選項下的Set.按鈕來測試指定的數據集。2022/7/2275Visualize classifier errors(可視化分類器錯誤)。彈出一個可視化窗口來顯示分類器的結果圖。其中,正確分類的實例用叉表示,然而不正確分類的實例則
31、是以小正方形來表示的。Visualize tree(樹的可視化)。如果可能的話,則彈出一個圖形化的界面來描述分類器模型的結構(這只有一部分分類器才有的)。右鍵單擊空白區域彈出一個菜單,在面板中拖動鼠標并單擊,就可以看見每個節點對應的訓練實例。Visualize margin curve(邊際曲線的可視化)。產生一個散點圖來描述預測邊際的情況。邊際被定義為預測為真實值的概率和預測為真實值之外的其它某類的最高概率之差。例如加速算法通過增加訓練數據集的邊際來更好地完成測試數據集的任務。2022/7/2276Visualize threshold curve(閾曲線的可視化)。產生一個散點圖來描述預測
32、中的權衡問題,其中權衡是通過改變類之間閾值來獲取的。例如,缺省閾值為0.5,一個實例預測為positive的概率必須要大于0.5,因為0.5時實例正好預測為positive。而且圖表可以用來對精確率/反饋率權衡進行可視化,如ROC 曲線分析(正確的正比率和錯誤的正比率)和其它的曲線。Visualize cost curve(成本曲線的可視化)。產生一個散點圖,來確切描述期望成本,正如Drummond 和Holte 所描述的一樣。 2022/7/2277Visualize classifier errors. 可視化分類錯誤實際類與預測類的散布圖。其中正確分類的結果用叉表示,分錯的結果用方框表示
33、。2022/7/2278Visualize tree可視化樹2022/7/22792022/7/22802022/7/2281可視化邊際曲線 (Visualize margin curve)創建一個散點圖來顯示預測邊際值。四個變量Margin: 預測邊際值Instance_number: 檢驗實例的序號Current: 具有當前預測邊際值的實例個數Cumulative: 小于或等于預測邊際值的實例個數 (與Instance_number一致)2022/7/22822022/7/2283單擊8號檢驗實例,顯示該點的邊際值為0.5,有7個實例的邊際值小于0.5。2022/7/2284可視化閾值曲線
34、(基于類)閾值是將檢驗實例歸為當前類的最小概率,使用點的顏色表示閾值曲線上的每個點通過改變閾值的大小生成可以進行ROC分析X軸選假正率Y軸選真正率2022/7/22852022/7/22862022/7/2287ROC曲線ROC曲線(Receiver Operating Characteeristic Curve)是顯示Classification模型真正率和假正率之間折中的一種圖形化方法。假設樣本可分為正負兩類,解讀ROC圖的一些概念定義:真正(True Positive , TP),被模型預測為正的正樣本 假負(False Negative , FN)被模型預測為負的正樣本假正(False
35、 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 ) 是理想模型 一個好的分類模型應該盡可能靠近圖形的左上角。2022/7/2288IRIS分類示例 2022/7/2289在weka的Exp
36、lorer中打開Iris.arff文件2022/7/2290在weka的Explorer中打開Iris.arff文件2022/7/22912022/7/2292選擇分類(Classify)數據挖掘任務2022/7/2293選擇分類算法2022/7/2294選擇決策樹算法Trees-J482022/7/2295設置相關參數2022/7/22962022/7/22972022/7/2298選擇檢驗方法2022/7/22992022/7/221002022/7/221012022/7/221022022/7/221032022/7/22104執行分類算法,建立決策樹模型2022/7/22105查看算
37、法執行的輸出信息2022/7/221062022/7/22107查看決策樹分類模型2022/7/221082022/7/221092022/7/22110查看分類錯誤散點圖2022/7/221112022/7/22112選擇其他的分類算法2022/7/221132022/7/22114選擇貝葉斯分類算法bayes-Naive bayes2022/7/22115選擇檢驗方法2022/7/22116執行分類算法,建立貝葉斯模型2022/7/22117進行ROC分析2022/7/221182022/7/221192022/7/22120選擇其他的分類算法2022/7/22121選擇決策樹用戶自分類法
38、trees-UserClssifier2022/7/22122選擇檢驗方法2022/7/22123執行算法2022/7/221242022/7/22125數據散點圖2022/7/22126但擊鼠標,確定分類邊界2022/7/22127查看相應的分類樹 2022/7/22128預測指定屬性值 2022/7/22129選擇預測屬性2022/7/221302022/7/22131選擇算法2022/7/221322022/7/22133執行算法2022/7/22134觀察輸出信息2022/7/221352022/7/22136查看分類錯誤散點圖2022/7/221372022/7/22138點擊實例,
39、察看詳細信息2022/7/22139該實例petallength的實際值為5.1,預測值為5.892022/7/22140訓練BANK-DATA分類模型示例bank-data數據各屬性的含義如下: id: a unique identification number age: age of customer in years (numeric) sex: MALE / FEMALE region:inner_city/rural/suburban/town income: income of customer (numeric) married:is the customer married
40、(YES/NO) children: number of children (numeric) car: does the customer own a car (YES/NO) save_act: does the customer have a saving account (YES/NO) current_act:does the customer have a current account (YES/NO) mortgage: does the customer have a mortgage (YES/NO) pep (目標變量) : did the customer buy a
41、PEP (Personal Equity Plan,個人參股計劃) after the last mailing (YES/NO)2022/7/22141瀏覽bank-data. xls數據2022/7/22142數據準備將數據另存為.csv格式2022/7/221432022/7/22144數據準備在WEKA中打開bank-data. csv2022/7/221452022/7/221462022/7/221472022/7/22148數據準備在WEKA中瀏覽數據2022/7/221492022/7/22150數據準備將數據另存為.arff格式2022/7/22151在寫字板中瀏覽bank-
42、data.arff文件2022/7/221522022/7/22153數據預處理去除無用屬性 通常對于數據挖掘任務來說,ID這樣的信息是無用的,我們將之刪除。勾選屬性“id”,并點擊“Remove”。將新的數據集保存為“bank-data.arff”,重新打開。離散化在這個數據集中有3個變量是數值型的,分別是“age”,“income”和“children”。 其中“children”只有4個取值:0,1,2,3。這時我們直接修改ARFF文件,把 attribute children numeric 改為 attribute children 0,1,2,3 就可以了。 在“Explorer”
43、中重新打開“bank-data.arff”,看看選中“children”屬性后,顯示的“Type” 變成“Nominal”了。2022/7/22154數據預處理“age”和“income”的離散化可借助WEKA中名為“Discretize”的Filter來完成。點“Choose”,出現一棵“Filter樹”,逐級找到“weka.filters.unsupervised.attribute.Discretize”,點擊。現在“Choose”旁邊的文本框應該顯示“Discretize -B 10 -M -0.1 -R first-last”。 點擊這個文本框會彈出新窗口以修改離散化的參數。 我們不
44、打算對所有的屬性離散化,只是針對對第1個和第4個屬性(見屬性名左邊的數字),故把attributeIndices右邊改成“1,4”。計劃把這兩個屬性都分成3段,于是把“bins”改成“3”。其它框里不用更改。點“OK”回到“Explorer”,可以看到“age”和“income”已經被離散化成分類型的屬性。若想放棄離散化可以點“Undo”。經過上述操作得到的數據集我們保存為bank-data-final.arff。2022/7/22155數據預處理-去除無用屬性 2022/7/221562022/7/22157數據預處理children數據離散化2022/7/22158數據預處理childre
45、n數據離散化用寫字板打開bank-data.arff文件2022/7/221592022/7/22160在WEKA中重新打開bank-data.arff文件。2022/7/221612022/7/22162觀察 children屬性。2022/7/22163數據預處理離散化“age”和“income” 2022/7/22164數據預處理數據離散化2022/7/221652022/7/221662022/7/221672022/7/221682022/7/221692022/7/221702022/7/22171在寫字板中重新觀察bank-data.arff數據2022/7/22172訓練分類模
46、型2022/7/221732022/7/221742022/7/22175評估分類模型2022/7/22176選擇不同的分類算法或參數2022/7/221772022/7/22178選擇模型2022/7/221792022/7/221802022/7/221812022/7/221822022/7/221836、 聚類 cluster聚類分析是把對象分配給各個簇,使同簇中的對象相似,而不同簇間的對象相異。WEKA在“Explorer”界面的“Cluster”提供聚類分析工具選擇聚類算法2022/7/22184WEKA中的聚類算法2022/7/22185主要算法包括:SimpleKMeans 支
47、持分類屬性的K均值算法DBScan 支持分類屬性的基于密度的算法EM 基于混合模型的聚類算法FathestFirst K中心點算法OPTICS 基于密度的另一個算法Cobweb 概念聚類算法sIB 基于信息論的聚類算法,不支持分類屬性XMeans 能自動確定簇個數的擴展K均值算法,不支持分類屬性2022/7/22186參數設置SimpleKMeans重要參數N 簇個數DBScan重要參數E Eps半徑M MinPts, Eps半徑內點個數2022/7/22187SimpleKMeans重要參數2022/7/22188displayStdDevs:是否顯示數值屬性標準差和分類屬性個數distan
48、ceFunction:選擇比較實例的距離函數(默認: weka.core.EuclideanDistance)dontReplaceMissingValues:是否不使用均值/眾數(mean/mode)替換缺失值。maxIterations:最大迭代次數numClusters:聚類的簇數preserveInstancesOrder:是否預先排列實例的順序Seed:設定的隨機種子值2022/7/22189聚類模式Cluster Mode2022/7/22190使用訓練集 (Use training set) 報告訓練對象的聚類結果和分組結果使用附加的檢驗集 (Supplied test set)
49、 報告訓練對象的聚類結果和附加的檢驗對象的分組結果百分比劃分 (Percentage split) 報告全部對象的聚類結果、訓練對象的聚類結果,以及檢驗對象的分組結果監督評估 (Classes to clusters evaluation) 報告訓練對象的聚類結果和分組結果、類/簇混淆矩陣和錯誤分組信息2022/7/22191執行聚類算法點擊“Start”按鈕,執行聚類算法2022/7/22192觀察聚類結果觀察右邊“Clusterer output”給出的聚類結果。也可以在左下角“Result list”中這次產生的結果上點右鍵,“View in separate window”在新窗口中瀏
50、覽結果。2022/7/22193= Run information = %運行信息Scheme:weka. clusterers. SimpleKMeans -N 3 -A “weka. core. EuclideanDistance -R first-last” -I 500 -S 10% 算法的參數設置:-N 3 -A “weka. core. EuclideanDistance -R first-last” -I 500 -S 10;% 各參數依次表示:% -N 3 聚類簇數為3;% -A “weka. core. EuclideanDistance 中心距離為歐氏距離;% - I 50
51、0 -最多迭代次數為500;% -S 10 -隨機種子值為10。Relation: iris %數據集名稱Instances: 150 %數據集中的實例個數2022/7/22194Attributes: 5 %數據集中的屬性個數及屬性名稱 sepallength sepalwidth petallength petalwidthIgnored: %忽略的屬性 classTest mode:Classes to clusters evaluation on training data %測試模式= Model and evaluation on taining set = %基于訓練數據集的模型
52、與評價kMeans %使用kMeans算法=Number of iterations: 6 kMeans %迭代次數Winthin cluster sum of squared errors: 6.998114004826762 % SSE(誤差的平方和)Missing values globally replaced with mean/mode %用均值/眾數替代缺失值2022/7/22195Cluster centroids: %各個簇的質心 Cluster#Attribute Full Data 0 1 2 (150) (61) (60) (39)=sepallength 5.8433
53、 5.8885 5.006 6.8462sepalwidth 3.064 2.7377 3,418 3.0821petallength 3.7587 4,3967 1,464 5.7026petalwidth 1.1987 1.418 0.244 2.0795Time taken to build model (full training data) : 0.03 seconds %建模用的時間= Modal and evaluation on training set =Clustered Instances %各個簇中的實例個數及百分比。0 61 (41%)1 50 (33%)2 39 (
54、26%)2022/7/22196注意:采用有監督聚類(即已知建模數據集的類標號), 才會出現以下執行信息。Class attribute: class %類標號屬性名稱Classes to Clusters: %類簇混淆矩陣 0 1 2 - assigned to cluster 0 50 0 | Iris-setosa 47 0 3 | Iris-versicolor 14 0 36 | Iris-virginisaCluster 0 - Iris-versicolorCluster 1 - Iris-setosaCluster 2 另存為,在彈出的對話框中,文件名輸入“bank-data”
55、,保存類型選擇“CSV(逗號分隔)”,保存,我們便可得到“bank-data.csv”文件;然后,打開Weka的Exporler,點擊Open file按鈕,打開剛才得到的“bank-data.csv”文件;點擊“save”按鈕,在彈出的對話框中,文件名輸入“bank-data.arff”,文件類型選擇“Arff data files(*.arff)”,這樣得到的數據文件為“bank-data.arff”。 2022/7/22216K均值算法只能處理數值型的屬性,遇到分類型的屬性時要把它變為若干個取值0和1的屬性。WEKA將自動實施這個分類型到數值型的變換,而且WEKA會自動對數值型的數據作標
56、準化。因此,對于ARFF格式的原始數據“bank-data.arff”,我們所做的預處理只是刪去屬性“id”,修改屬性“children”為分類型。 修改過程如下:打開“bank-data.arff”,將attribute children numeric改成如下: 2022/7/22217使用WEKA聚類用“Explorer”打開包含600條實例“bank-data.arff”,并切換到“Cluster”。點擊“Choose”按鈕,選擇“SimpleKMeans” 。點擊旁邊的文本框,修改參數“numClusters”為6,說明我們希望把這600條實例聚成6類,即K=6。下面的“seed”參
57、數是要設置一個隨機種子,依此產生一個隨機數,用來得到K均值算法中第一次給出的K個簇中心的位置。我們暫時讓它就為10。選中“Cluster Mode”的“Use training set”點擊“Start”按鈕觀察右邊“Clusterer output”給出的聚類結果。 2022/7/222182022/7/222192022/7/222202022/7/22221結果分析 當前Within cluster sum of squared errors: 1604.7416693522332,調整“seed”參數,觀察Within cluster sum of squared errors(SSE
58、)變化。采納SSE最小的一個結果。“Cluster centroids:”之后列出了各個簇中心的位置。對于數值型的屬性,簇中心就是它的均值(Mean),如cluster0的數值型變量age的均值37.1299;分類型的就是它的眾數(Mode),如cluster0的分類型變量children的眾數為3,也就是說這個屬性上取值為眾數值3(有3個孩子)的實例最多。為了觀察可視化的聚類結果,在左下方“Result list”列出的結果上右擊,點“Visualize cluster assignments”。彈出的窗口給出了各實例的散點圖。最上方的兩個框是選擇橫坐標和縱坐標,第二行的”color”是散點
59、圖著色的依據,默認是根據不同的簇“Cluster”給實例標上不同的顏色。例如,橫坐標選擇Instance_number,縱坐標選擇income。2022/7/222222022/7/22223點擊“Save”,把聚類結果保存成bank_Cluster.arff文件。可以在寫字板中打開觀察聚類結果文件。在這個新的ARFF文件中,“instance_number”屬性表示某實例的編號,“Cluster”屬性表示聚類算法給出的該實例所在的簇。2022/7/222247、 關聯規則associationsWEKA關聯規則學習能夠發現屬性組之間的依賴關系:例如,milk, butter bread, e
60、ggs (置信度 0.9 and 支持數 2000)對于關聯規則L-R支持度(support) 同時觀察到前件和后件的概率 support = Pr(L,R)置信度(confidence) 出現前件時同時出現后件的概率 confidence = Pr(L,R)/Pr(L)2022/7/22225關聯規則挖掘的主要算法WEKA數據挖掘平臺上的關聯規則挖掘的主要算法有:Apriori-能夠得出滿足最小支持度和最小支持度的所有關聯規則。PredictiveApriori-將置信度和支持度合并為預測精度而成為單一度測量法,找出經過預測精度排序的關聯規則。Terius-根據確認度來尋找規則,它與Apri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 種子批發市場客戶關系維護與提升考核試卷
- 取暖初二語文作文
- 看花燈初三語文作文
- 發酵豆醬的抗氧化能力研究考核試卷
- 生態系統穩定性監測與預警考核試卷
- 水電工程案例分析與啟示考核試卷
- 煤炭批發市場供需平衡分析考核試卷
- 2-15邏輯函數的化簡-卡諾圖法4
- 山西農業大學《統計學B》2023-2024學年第二學期期末試卷
- 麗江文化旅游學院《數據描述與可視化》2023-2024學年第二學期期末試卷
- 【《新能源汽車行業融資模式探析:以蔚來汽車為例》11000字(論文)】
- 超聚變 FCIA 考試題庫
- 勞動實踐烹飪課程設計
- 第十七章 勾股定理 -利用勾股定理求最短路徑問題(教案)-2023-2024學年人教版數學八年級下冊
- 2024年社區工作者面試題庫與答案
- 銷售人員工資方案底薪+提成+獎金
- DB34∕T 3221-2018 火災高危單位消防安全評估規程
- 地震監測設備維護保養手冊
- 上海市市轄區(2024年-2025年小學四年級語文)統編版期中考試((上下)學期)試卷及答案
- 【部編版道德與法治六年級下冊】全冊測試卷(含答案)
- 專業勞務派遣服務行業發展方向及匹配能力建設研究報告
評論
0/150
提交評論