




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 WEKA 使用教程 目錄 1. 簡(jiǎn)介 2. 數(shù)據(jù)格式 3. 數(shù)據(jù)準(zhǔn)備 4. 關(guān)聯(lián)規(guī)那么購(gòu)物籃分析 5. 分類(lèi)與回歸 6. 聚類(lèi)分析 1.簡(jiǎn)介 WEKA 的全名是懷卡托智能分析環(huán)境 Waikato Environment for Knowledge Analysis ,它的源代 碼可通過(guò) :/ cs.waikato.ac.nz/ml/weka 得到。同時(shí) weka 也是新西蘭的一種鳥(niǎo)名,而 WEK A的主要開(kāi)發(fā)者來(lái)自新西蘭。 WEKA作為一個(gè)公開(kāi)的數(shù)據(jù)挖掘工作平臺(tái),集合了大量能承當(dāng)數(shù)據(jù)挖掘任務(wù)的機(jī)器學(xué)習(xí)算法,包括對(duì)數(shù)據(jù) 進(jìn)行預(yù)處理,分類(lèi),回歸、聚類(lèi)、關(guān)聯(lián)規(guī)那么以及在新的交互式界面上的可視化。
2、如果想自己實(shí)現(xiàn)數(shù)據(jù)挖掘算法的話(huà),可以看一看 weka的接口文檔。在 weka中集成自己的算法甚至借鑒 它的方法自己實(shí)現(xiàn)可視化工具并不是件很困難的事情。 2005年8月,在第11屆ACM SIGKDD國(guó)際會(huì)議上,懷卡托大學(xué)的 Weka小組榮獲了數(shù)據(jù)挖掘和知識(shí) 探索領(lǐng)域的最高效勞獎(jiǎng), Weka系統(tǒng)得到了廣泛的認(rèn)可,被譽(yù)為數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)歷史上的里程碑,是 現(xiàn)今最完備的數(shù)據(jù)挖掘工具之一已有 11年的開(kāi)展歷史。Weka的每月下載次數(shù)已超過(guò)萬(wàn)次。 -整理自 :/ china-pub /computers/common/info.asp2idH29304 2. 數(shù)據(jù)格式 Relation: weathe
3、r Mo. 1 .outlook Nominal .temperature Numeric 3.humidity Num 整 He 4 .wind/ Nominwl 5 plav Nominal 1 sunny 85.0 FALSE no 2 sunny 80.0 90.0 TRUE no 3 overcast 93.0 86.0 FALSE 忙 m 4 rainy yoTl 96.0 FALSE yes 5 rainy 6S,0 80.0 FALSE yes 6 rainy 65.0 70.0 TRUE no 7 vercast 65.0 TRUE yes 8 sunny 72.0 95.0
4、 FALSE no 9 sunny 69.0 70.0 FALSE yes 10 rainy 演 8 IO1 FALSE yes 11 sunny 7o TRUE yes 12 overcast 9QL0!TRUE yes 13 overcast 81.0 75.0 FALSE yes 14 rainy TTol 91 0 TRUE no 圖1新窗口翻開(kāi) 這里我們要介紹一下 WEKA中的術(shù)語(yǔ)。表格里的一個(gè)橫行稱(chēng)作一個(gè)實(shí)例( Instance ),相當(dāng)于統(tǒng)計(jì)學(xué)中的 一個(gè)樣本,或者數(shù)據(jù)庫(kù)中的一條記錄。豎行稱(chēng)作一個(gè)屬性( Attrbute ),相當(dāng)于統(tǒng)計(jì)學(xué)中的一個(gè)變量,或者 數(shù)據(jù)庫(kù)中的一個(gè)字段。這樣
5、一個(gè)表格,或者叫數(shù)據(jù)集,在 WEKA看來(lái),呈現(xiàn)了屬性之間的一種關(guān)系 (Rela 巧婦難為無(wú)米之炊。首先我們來(lái)看看 WEKA所用的數(shù)據(jù)應(yīng)是什么樣的格式 跟很多電子表格或數(shù)據(jù)分析軟件一樣, WEKA所處理的數(shù)據(jù)集是圖1那樣的一個(gè)二維的表格 tion)。圖1中一共有14個(gè)實(shí)例,5個(gè)屬性,關(guān)系名稱(chēng)為 weather。 WEKA存儲(chǔ)數(shù)據(jù)的格式是 ARFF (Attribute-Relation File Format )文件,這是一種 ASCII文本文件。 圖1所示的二維表格存儲(chǔ)在如下的 ARFF文件中。這也就是 WEKA自帶的“weather .arff 文件,在 WEK A安裝目錄的“ data子目
6、錄下可以找到。 Code: % ARFF file for the weather data with some numric features % relation weather attribute outlook sunny, overcast, rainy attribute temperature real attribute humidity real attribute windy TRUE, FALSE attribute play yes, no data % % 14 instances % sunny,85,85,FALSE,no sunny,80,90,TRUE,no
7、overcast,83,86,FALSE,yes rainy,70,96,FALSE,yes rainy,68,80,FALSE,yes rainy,65,70,TRUE,no overcast,64,65,TRUE,yes sunny,72,95,FALSE,no sunny,69,70,FALSE,yes rainy,75,80,FALSE,yes sunny,75,70,TRUE,yes overcast,72,90,TRUE,yes overcast,81,75,FALSE,yes rainy,71,91,TRUE,no 需要注意的是,在 Windows 記事本翻開(kāi)這個(gè)文件時(shí),可能會(huì)因
8、為回車(chē)符定義不一致而導(dǎo)致分行不正常。 推薦使用UltraEdit這樣的字符編輯軟件觀察 ARFF文件的內(nèi)容。 下面我們來(lái)對(duì)這個(gè)文件的內(nèi)容進(jìn)行說(shuō)明。 識(shí)別ARFF文件的重要依據(jù)是分行,因此不能在這種文件里隨意的斷行??招?或全是空格的行)將被忽 略。 以“開(kāi)始的行是注釋?zhuān)?WEKA將忽略這些行。如果你看到的 “weather .arff 件多了或少了些 “開(kāi)始 的行,是沒(méi)有影響的。 除去注釋后,整個(gè) ARFF文件可以分為兩個(gè)局部。第一局部給出了頭信息( Head information ),包括了 對(duì)關(guān)系的聲明和對(duì)屬性的聲明。第二局部給出了數(shù)據(jù)信息( Data information ),即數(shù)據(jù)
9、集中給出的數(shù)據(jù)。 從data標(biāo)記開(kāi)始,后面的就是數(shù)據(jù)信息了。 關(guān)系聲明 關(guān)系名稱(chēng)在ARFF文件的第一個(gè)有效行來(lái)定義,格式為 relation 是一個(gè)字符串。如果這個(gè)字符串包含空格,它必須加上引號(hào)(指英文標(biāo)點(diǎn)的單引號(hào)或 雙引號(hào))。 屬性聲明 屬性聲明用一列以 “attribute 開(kāi)頭的語(yǔ)句表示。數(shù)據(jù)集中的每一個(gè)屬性都有它對(duì)應(yīng)的 句,來(lái)定義它的屬性名稱(chēng)和數(shù)據(jù)類(lèi)型。 這些聲明語(yǔ)句的順序很重要。首先它說(shuō)明了該項(xiàng)屬性在數(shù)據(jù)局部的位置。例如, “humidity 是第三個(gè)被聲 明的屬性,這說(shuō)明數(shù)據(jù)局部那些被逗號(hào)分開(kāi)的列中,第三列數(shù)據(jù) 85 90 86 96 . 是相應(yīng)的“humidity 值。其次,最后
10、一個(gè)聲明的屬性被稱(chēng)作 class屬性,在分類(lèi)或回歸任務(wù)中,它是默認(rèn)的目標(biāo)變量。 屬性聲明的格式為 attribute 其中 是必須以字母開(kāi)頭的字符串。和關(guān)系名稱(chēng)一樣,如果這個(gè)字符串包含空格,它必 須加上引號(hào)。 WEKA 支持的 numeric - 分類(lèi)(nominal )型 字符串型 日期和時(shí)間型 和 將在下面說(shuō)明。還可以使用兩個(gè)類(lèi)型 “real,但是 WEKA 把它們都當(dāng)作 “numeric 看待。注意 “integer , real, numeric date string 這些關(guān)鍵字是區(qū)分大小寫(xiě)的,而 “relation aattribute和“date那么不區(qū)分。 數(shù)值屬性 數(shù)值型屬性
11、可以是整數(shù)或者實(shí)數(shù),但 WEKA把它們都當(dāng)作實(shí)數(shù)看待。 分類(lèi)屬性 分類(lèi)屬性 由 列 出一系 列可能 的類(lèi)別名稱(chēng)并放在花括號(hào)中: , , , . 。數(shù)據(jù)集中該屬性的值只能是 其中一種類(lèi)別。 例如如下的屬性聲明說(shuō)明 “outlook 屬性有三種類(lèi)別:“sunny, “ overcast 和“rainy:而數(shù)據(jù)集中每個(gè) 實(shí)例對(duì)應(yīng)的“outlook 值必是這三者之一。 attribute outlook sunny, overcast, rainy 如果類(lèi)別名稱(chēng)帶有空格,仍需要將之放入引號(hào)中 字符串屬性 字符串屬性中可以包含任意的文本。這種類(lèi)型的屬性在文本挖掘中非常有用。 例如: “attribute
12、 語(yǔ) 有四種,分別是 數(shù)值型 - string - date - 其中 “integer 和 ATTRIBUTE LCC string 日期和時(shí)間屬性 日期和時(shí)間屬性統(tǒng)一用 “date類(lèi)型表示,它的格式是 attribute date 其中 是這個(gè)屬性的名稱(chēng), 是一個(gè)字符串,來(lái)規(guī)定該怎樣解析和顯示日期或時(shí)間 的格式,默認(rèn)的字符串是 ISO-8601 所給的日期時(shí)間組合格式 yyyy-MM-dd THH:mm:ss 數(shù)據(jù)信息局部表達(dá)日期的字符串必須符合聲明中規(guī)定的格式要求下文有例子 。 數(shù)據(jù)信息 數(shù)據(jù)信息中data標(biāo)記獨(dú)占一行,剩下的是各個(gè)實(shí)例的數(shù)據(jù)。 每個(gè)實(shí)例占一行。實(shí)例的各屬性值用逗號(hào) “,
13、隔開(kāi)。如果某個(gè)屬性的值是缺失值 missing value ,用問(wèn)號(hào) “欲示,且這個(gè)問(wèn)號(hào)不能省略。例如: data sunny,85,85,FALSE,no ?,78,90,?,yes 字符串屬性和分類(lèi)屬性的值是區(qū)分大小寫(xiě)的。假設(shè)值中含有空格,必須被引號(hào)括起來(lái)。例如: relation LCCvsLCSH attribute LCC string attribute LCSH string data AG5, Encyclopedias and dictionaries.;Twentieth century. AS262, Science - Soviet Union - History. 日
14、期屬性的值必須與屬性聲明中給定的相一致。例如: RELATION Timestamps ATTRIBUTE timestamp DATE yyyy-MM-dd HH:mm:ss DATA 2001-04-03 12:12:12 2001-05-03 12:59:55 稀疏數(shù)據(jù) 有的時(shí)候數(shù)據(jù)集中含有大量的 0值比方購(gòu)物籃分析,這個(gè)時(shí)候用稀疏格式的數(shù)據(jù)存貯更加省空間。 稀疏格式是針對(duì)數(shù)據(jù)信息中某個(gè)實(shí)例的表示而言,不需要修改 ARFF文件的其它局部??慈缦碌臄?shù)據(jù): data 0, X, 0, Y , class A 0, 0, W , 0, class B 用稀疏格式表達(dá)的話(huà)就是 data (1 X
15、, 3 Y , 4 class A) (2 W , 4 class B) 每個(gè)實(shí)例用花括號(hào)括起來(lái)。實(shí)例中每一個(gè)非 。的屬性值用 表示。 是 屬性的序號(hào),從0開(kāi)始計(jì);是屬性值。屬性值之間仍用逗號(hào)隔開(kāi)。這里每個(gè)實(shí)例的數(shù)值必須按屬 性的順序來(lái)寫(xiě), 如 (1 X, 3 Y , 4 class A) ,不能寫(xiě)成(3 Y , 1 X, 4 class A) 。 注意在稀疏格式中沒(méi)有注明的屬性值不是缺失值, 而是0值。假設(shè)要表示缺失值必須顯式的用問(wèn)號(hào)表示出來(lái)。 Relational 型屬性 在WEKA 3.5版中增加了一種屬性類(lèi)型叫做 Relational ,有了這種類(lèi)型我們可以像關(guān)系型數(shù)據(jù)庫(kù)那樣處理 多個(gè)
16、維度了。但是這種類(lèi)型目前還不見(jiàn)廣泛應(yīng)用,暫不作介紹。 - 整 理 自 :/ cs.waikato.ac.nz/ml/weka/arff.html 和 :/ 3. 數(shù)據(jù)準(zhǔn)備 使用 WEKA作數(shù)據(jù)挖掘,面臨的第一個(gè)問(wèn)題往往是我們的數(shù)據(jù)不是 ARFF格式的。幸好,WEKA還提供 了對(duì)CSV文件的支持,而這種格式是被很多其他軟件所支持的。此外, WEKA還提供了通過(guò)JDBC訪問(wèn) 數(shù)據(jù)庫(kù)的功能。 在這一節(jié)里,我們先以 Excel和Matlab為例,說(shuō)明如何獲得 CSV文件。然后我們將知道 CSV文件如何 轉(zhuǎn)化成ARFF文件,畢竟后者才是 WEKA支持得最好的文件格式。 面對(duì)一個(gè)ARFF文件,我們?nèi)杂幸恍?/p>
17、預(yù) 處理要做,才能進(jìn)行挖掘任務(wù)。 .* - .csv 我們給出一個(gè) CSV文件的例子(bank-data.csv )。用UltraEdit翻開(kāi)它可以看到,這種格式也是一種逗 號(hào)分割數(shù)據(jù)的文本文件,儲(chǔ)存了一個(gè)二維表格。 Excel的XLS文件可以讓多個(gè)二維表格放到不同的工作表( Sheet )中,我們只能把每個(gè)工作表存成不同 的CSV文件。翻開(kāi)一個(gè)XLS文件并切換到需要轉(zhuǎn)換的工作表,另存為 CSV類(lèi)型,點(diǎn) 確定、是忽略提 示即可完成操作。 在Matlab中的二維表格是一個(gè)矩陣,我們通過(guò)這條命令把一個(gè)矩陣存成 CSV格式。 csvwrite(filename,matrixname) 需要注意的是,
18、Matllab 給出的CSV文件往往沒(méi)有屬性名(Excel給出的也有可能沒(méi)有)。而WEKA必須 從CSV文件的第一行讀取屬性名,否那么就會(huì)把第一行的各屬性值讀成變量名。 因此我們對(duì)于Matllab給出 的CSV文件需要用UltraEdit翻開(kāi),手工添加一行屬性名。注意屬性名的個(gè)數(shù)要跟數(shù)據(jù)屬性的個(gè)數(shù)一致, 仍用逗號(hào)隔開(kāi)。 .csv - .arff 將CSV轉(zhuǎn)換為ARFF最迅捷的方法是使用 WEKA所帶的命令行工具。 運(yùn)行WEKA的主程序,出現(xiàn) GUI后可以點(diǎn)擊下方按鈕進(jìn)入相應(yīng)的模塊。我們點(diǎn)擊進(jìn)入 “Simple CLI 模塊 提供的命令行功能。在新窗口的最下方(上方是不能寫(xiě)字的)輸入框?qū)懮?ja
19、va weka.core.converters.CSVLoader filename.csv filename.arff 即可完成轉(zhuǎn)換。 在WEKA 3.5中提供了一個(gè)“Arff Viewer 模塊,我們可以用它翻開(kāi)一個(gè) CSV文件將進(jìn)行瀏覽,然后另存 為ARFF文件。 進(jìn)入“Exploer 模塊,從上方的按鈕中翻開(kāi) CSV文件然后另存為ARFF文件亦可。 “Exploer 界面 我們應(yīng)該注意到, “Exploer 還提供了很多功能,實(shí)際上可以說(shuō)這是 WEKA使用最多的模塊?,F(xiàn)在我們先 來(lái)熟悉它的界面,然后利用它對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。 圖2新窗口翻開(kāi) 圖2顯示的是使用3.5版Exploer翻開(kāi)ba
20、nk-data.csv 的情況。我們根據(jù)不同的功能把這個(gè)界面分成 8個(gè)區(qū)域。 區(qū)域1的幾個(gè)選項(xiàng)卡是用來(lái)切換不同的挖掘任務(wù)面板。 這一節(jié)用到的只有 “Preprocess ,其他面板的功能 將在以后介紹。 區(qū)域2是一些常用按鈕。包括翻開(kāi)數(shù)據(jù),保存及編輯功能。我們?cè)谶@里把 bank-data.csv 另存為 bank-data.arff 。 在區(qū)域3中“Choose某個(gè)“Filter 可以實(shí)現(xiàn)篩選數(shù)據(jù)或者對(duì)數(shù)據(jù)進(jìn)行某種變換。數(shù)據(jù)預(yù)處理主要就利用 它來(lái)實(shí)現(xiàn)。 區(qū)域4展示了數(shù)據(jù)集的一些根本情況。 區(qū)域5中列出了數(shù)據(jù)集的所有屬性。勾選一些屬性并 “Remove就可以刪除它們,刪除后還可以利用區(qū)域 2的“
21、Und。按鈕找回。區(qū)域5上方的一排按鈕是用來(lái)實(shí)現(xiàn)快速勾選的。 在區(qū)域5中選中某個(gè)屬性,那么區(qū)域 6中有關(guān)于這個(gè)屬性的摘要。注意對(duì)于數(shù)值屬性和分類(lèi)屬性,摘要的方 式是不一樣的。圖中顯示的是對(duì)數(shù)值屬性 “income的摘要。 區(qū)域7是區(qū)域5中選中屬性的直方圖。假設(shè)數(shù)據(jù)集的最后一個(gè)屬性(我們說(shuō)過(guò)這是分類(lèi)或回歸任務(wù)的默認(rèn)目 標(biāo)變量)是分類(lèi)變量(這里的 “pep正好是),直方圖中的每個(gè)長(zhǎng)方形就會(huì)按照該變量的比例分成不同顏色 的段。要想換個(gè)分段的依據(jù),在區(qū)域 7上方的下拉框中選個(gè)不同的分類(lèi)屬性就可以了。下拉框里選上 “No Class 或者一個(gè)數(shù)值屬性會(huì)變成黑白的直方圖。 區(qū)域8是狀態(tài)欄,可以查看 Log
22、以判斷是否有錯(cuò)。右邊的 weka鳥(niǎo)在動(dòng)的話(huà)說(shuō)明 WEKA正在執(zhí)行挖掘任 務(wù)。右鍵點(diǎn)擊狀態(tài)欄還可以執(zhí)行 JAVA內(nèi)存的垃圾回收。 預(yù)處理 bank-data 數(shù)據(jù)各屬性的含義如下: 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 (YES/NO) chil
23、dren number of children (numeric) car does the customer own a car (YES/NO) save_acct does the customer have a saving account (YES/NO) current_acct does the customer have a current account (YES/NO) mortgage does the customer have a mortgage (YES/NO) pep did the customer buy a PEP (Personal Equity Pla
24、n) after the last mailing (YES/NO) 通常對(duì)于數(shù)據(jù)挖掘任務(wù)來(lái)說(shuō),ID這樣的信息是無(wú)用的,我們將之刪除。在區(qū)域 5勾選屬性“id;并點(diǎn)擊 “ Remove 。將新的數(shù)據(jù)集保存一次,并用 UltraEdit翻開(kāi)這個(gè)ARFF文件。我們發(fā)現(xiàn),在屬性聲明局部, WEKA已經(jīng)為每個(gè)屬性選好了適宜的類(lèi)型。 我們知道,有些算法,只能處理所有的屬性都是分類(lèi)型的情況。這時(shí)候我們就需要對(duì)數(shù)值型的屬性進(jìn)行離 散化。在這個(gè)數(shù)據(jù)集中有 3個(gè)變量是數(shù)值型的,分別是 age, income和children 。 其中“children 只有4個(gè)取值:0 , 1 , 2 , 3。這時(shí)我們?cè)?Ul
25、traEdit中直接修改ARFF文件,把 attribute children numeric 改為 attribute children 0,1,2,3 就可以了。 在“Explorer 中重新翻開(kāi)“bank-data.arff ,看看選中“children 屬性后,區(qū)域6那里顯示的“Type是不 是變成“Nominal 了 ? age和income的離散化我們需要借助 WEKA中名為Discretize的Filter來(lái)完成。在區(qū)域 2中點(diǎn) “Choose ;出現(xiàn)一棵 “Fter 樹(shù),逐級(jí)找至U weka.filters.unsupervised.attribute.Discretize ,
26、 點(diǎn)擊。 假設(shè)無(wú)法關(guān)閉這個(gè)樹(shù),在樹(shù)之外的地方點(diǎn)擊 Explorer 面板即可。 現(xiàn)在“Choose旁邊的文本框應(yīng)該顯示 “Discretize -B 10 -M -0.1 -R first- last 。 點(diǎn)擊這個(gè)文本框會(huì)彈 出新窗口以修改離散化的參數(shù)。 我們不打算對(duì)所有的屬性離散化,只是針對(duì)對(duì)第 1個(gè)和第4個(gè)屬性(見(jiàn)區(qū)域5屬性名左邊的數(shù)字),故把 attributeIndices 右邊改成“1,4。方案把這兩個(gè)屬性都分成 3段,于是把“ bins改成“ 3其它框里不用 更改,關(guān)于它們的意思可以點(diǎn) More查看。點(diǎn)OK回到Explorer ,可以看到age和income已經(jīng)被 離散化成分類(lèi)型的
27、屬性。假設(shè)想放棄離散化可以點(diǎn)區(qū)域 2的“UndO o 如果對(duì)(-inf- 34.333333 這樣晦澀的標(biāo)識(shí)不滿(mǎn),我們可以用 UltraEdit翻開(kāi)保存后的ARFF文件,把 所有的“/ 替換成“0_34。其它標(biāo)識(shí)做類(lèi)似地手動(dòng)替換。 經(jīng)過(guò)上述操作得到的數(shù)據(jù)集我們保存為 bank-data-final.arff 。 -整理自 ://classes/ect584/WEKA/preprocess.html 4. 關(guān)聯(lián)規(guī)那么(購(gòu)物籃分析) 注意:目前,WEKA的關(guān)聯(lián)規(guī)那么分析功能僅能用來(lái)作示范,不適合用來(lái)挖掘大型數(shù)據(jù)集 我們打算對(duì)前面的 bank-data數(shù)據(jù)作關(guān)聯(lián)規(guī)
28、那么的分析。用 Explorer 翻開(kāi)bank-data- final.arff 后, 切換到aAssociate 選項(xiàng)卡。默認(rèn)關(guān)聯(lián)規(guī)那么分析是用 Apriori算法,我們就用這個(gè)算法,但是點(diǎn) Choose 右邊的文本框修改默認(rèn)的參數(shù),彈出的窗口中點(diǎn) “More可以看到各參數(shù)的說(shuō)明。 背景知識(shí) 首先我們來(lái)溫習(xí)一下 Apriori的有關(guān)知識(shí)。對(duì)于一條關(guān)聯(lián)規(guī)那么 L-R,我們常用支持度(Support )和置信 度(Confidence )來(lái)衡量它的重要性。規(guī)那么的支持度是用來(lái)估計(jì)在一個(gè)購(gòu)物籃中同時(shí)觀察到 L和R的概 率P(L,R),而規(guī)那么的置信度是估計(jì)購(gòu)物欄中出現(xiàn)了 L時(shí)也出會(huì)現(xiàn)R的條件概率P
29、(R|L)。關(guān)聯(lián)規(guī)那么的目標(biāo) 一般是產(chǎn)生支持度和置信度都較高的規(guī)那么。 有幾個(gè)類(lèi)似的度量代替置信度來(lái)衡量規(guī)那么的關(guān)聯(lián)程度,它們分別是 Lift (提升度? ) : P(L,R)/(P(L)P(R) Lift=1 時(shí)表示L和R獨(dú)立。這個(gè)數(shù)越大,越說(shuō)明 L和R存在在一個(gè)購(gòu)物籃中不是偶然現(xiàn)象。 Leverage (不知道怎么翻譯):P(L,R)-P(L)P(R) 它和Lift的含義差不多。Leverage=0 時(shí)L和R獨(dú)立,Leverage 越大L和R的關(guān)系越密切。 Conviction (更不知道譯了): P(L)P(!R)/P(L,!R) (!R 表示 R 沒(méi)有發(fā)生) Conviction 也是
30、用來(lái)衡量L和R的獨(dú)立性。從它和lift的關(guān)系(對(duì)R取反,代入Lift公式后求倒數(shù))可 以看出,我們也希望這個(gè)值越大越好。 值得注意的是,用 Lift和Leverage 作標(biāo)準(zhǔn)時(shí),L和R是對(duì)稱(chēng)的,Confidence 和Conviction 那么不然。 參數(shù)設(shè)置 現(xiàn)在我們方案挖掘出支持度在 10%到100% 之間,并且lift值超過(guò)1.5且lift值排在前100位的那些關(guān) 聯(lián)規(guī)那么。我們把 TowerBoundMinSupport 和“upperBoundMinSupport 分別設(shè)為 0.1 和 1 , “metricType 設(shè)為lift , “ minMetric設(shè)為1.5 , “ num
31、Rules設(shè)為100。其他選項(xiàng)保持默認(rèn)即可。 “OK之 后在Explorer 中點(diǎn)擊Start 開(kāi)始運(yùn)行算法,在右邊窗口顯示數(shù)據(jù)集摘要和挖掘結(jié)果。 下面是挖掘出來(lái)的lift排前5的規(guī)那么 Best rules found: conf:(0.97) lev:(0.0 項(xiàng)45 conv:(15.72) 4. age=52_max save_act=YES 151 = income=43759_max current_act=YES 61 conf:(0.4) lev:(0.0 1 三45 conv:(1.49) 5. age=52_max save_act=YES 151 = income=437
32、59_max 76 conf:(0.5) lev:(0.09) 55 conv:(1.72) 對(duì)于挖掘出的每條規(guī)那么,WEKA列出了它們關(guān)聯(lián)程度的四項(xiàng)指標(biāo)。 命令行方式 我們也可以利用命令行來(lái)完成挖掘任務(wù),在 Simlpe CLI 模塊中輸入如下格式的命令: java weka.associations.Apriori options -t directory-pathbank-data-final.arff 即可完成Apriori算法。注意,-t 參數(shù)后的文件路徑中不能含有空格。 在前面我們使用的option為 -N 100 -T 1 -C 1.5 -D 0.05 -U 1.0 -M 0.1
33、 -S -1.0 命令行中使用這些參數(shù)得到的結(jié)果和前面利用 GUI 得到的一樣。 我們還可以加上 - I 參數(shù),得到不同項(xiàng)數(shù)的頻繁項(xiàng)集。我用的命令如下: java weka.associations.Apriori -N 100 -T 1 -C 1.5 -D 0.05 -U 1.0 -M 0.1 -S -1.0 -I -t d:wekabank-data-final.arff 挖掘結(jié)果在上方顯示,應(yīng)是這個(gè)文件的樣子。 -整理自 ://classes/ect584/WEKA/associate.html 5. 分類(lèi)與回歸 背景知識(shí) WEKA 把分類(lèi)(Class
34、ification) 和回歸(Regression) 都放在 “Classify選項(xiàng)卡中,這是有原因的。 在這兩個(gè)任務(wù)中,都有一個(gè)目標(biāo)屬性(輸出變量)。我們希望根據(jù)一個(gè)樣本(WEKA中稱(chēng)作實(shí)例)的一組特征 (輸入變量),對(duì)目標(biāo)進(jìn)行預(yù)測(cè)。為了實(shí)現(xiàn)這一目的,我們需要有一個(gè)訓(xùn)練數(shù)據(jù)集,這個(gè)數(shù)據(jù)集中每個(gè)實(shí)例 的輸入和輸出都是的。觀察訓(xùn)練集中的實(shí)例,可以建立起預(yù)測(cè)的模型。有了這個(gè)模型,我們就可以新 的輸出未知的實(shí)例進(jìn)行預(yù)測(cè)了。衡量模型的好壞就在于預(yù)測(cè)的準(zhǔn)確程度。 在WEKA中,待預(yù)測(cè)的目標(biāo)(輸出)被稱(chēng)作Class屬性,這應(yīng)該是來(lái)自分類(lèi)任務(wù)的 類(lèi)。一般的,假設(shè)Class 屬性是分類(lèi)型時(shí)我們的任務(wù)才叫分類(lèi),
35、 Class屬性是數(shù)值型時(shí)我們的任務(wù)叫回歸。 選擇算法 這一節(jié)中,我們使用 C4.5決策樹(shù)算法對(duì)bank-data 建立起分類(lèi)模型。 我們來(lái)看原來(lái)的 bank-data.csv 文件。TD屬性肯定是不需要的。由于 C4.5算法可以處理數(shù)值型的屬 性,我們不用像前面用關(guān)聯(lián)規(guī)那么那樣把每個(gè)變量都離散化成分類(lèi)型。盡管如此,我們還是把 “Children 屬 性轉(zhuǎn)換成分類(lèi)型的兩個(gè)值 “YES和“NO。另外,我們的訓(xùn)練集僅取原來(lái)數(shù)據(jù)集實(shí)例的一半;而從另外一半 中抽出假設(shè)干條作為待預(yù)測(cè)的實(shí)例,它們的 “pep屬性都設(shè)為缺失值。經(jīng)過(guò)了這些處理的訓(xùn)練集數(shù)據(jù)在 這里 下載;待預(yù)測(cè)集數(shù)據(jù)在這里下載。 我們用 Ex
36、plorer 翻開(kāi)訓(xùn)練集 bank.arff ,觀察一下它是不是按照前面的要求處理好了。切換到 “ Classify選項(xiàng)卡,點(diǎn)擊 “ Choose按鈕后可以看到很多分類(lèi)或者回歸的算法分門(mén)別類(lèi)的列在一個(gè)樹(shù)型框 里。3.5版的WEKA中,樹(shù)型框下方有一個(gè) “Filter.按鈕,點(diǎn)擊可以根據(jù)數(shù)據(jù)集的特性過(guò)濾掉不適宜的 算法。我們數(shù)據(jù)集的輸入屬性中有 “Binary型(即只有兩個(gè)類(lèi)的分類(lèi)型)和數(shù)值型的屬性,而 Class變量 1. age=52_max save_act=YES conf:(0.54) lev:(0.0 current_act=YES 45 conv:(1.85) 113 = inco
37、me=43759_max 2. income=43759_max conf:(0.76) lev:(0.0 80 = age=52_max d 45 conv:(3.25) save_act=YES current_act=YES 3. income=43759_max current_act=YES 63 = age=52_max save_act=YES 61 61 61 是“Binary 的;于是我們勾選 “Binary attributes a Numeric attributes 和“Binary class 。點(diǎn)“OK 后 回到樹(shù)形圖,可以發(fā)現(xiàn)一些算法名稱(chēng)變紅了,說(shuō)明它們不能用。選
38、擇 “trees 下的“J48,這就是我們需要 的C4.5算法,還好它沒(méi)有變紅。 點(diǎn)擊ChoosS右邊的文本框,彈出新窗口為該算法設(shè)置各種參數(shù)。點(diǎn) More查看參數(shù)說(shuō)明,點(diǎn) Capabilities是查看算法適用范圍。這里我們把參數(shù)保持默認(rèn)。 現(xiàn)在來(lái)看左中的 “Test Option 。我們沒(méi)有專(zhuān)門(mén)設(shè)置檢驗(yàn)數(shù)據(jù)集,為了保證生成的模型的準(zhǔn)確性而不至于出 現(xiàn)過(guò)擬合(overfitting )的現(xiàn)象,我們有必要采用 10折交叉驗(yàn)證(10-fold cross validation )來(lái)選擇和 評(píng)估模型。假設(shè)不明白交叉驗(yàn)證的含義可以 Google 一下。 建模結(jié)果 OK,選上Crossvalidati
39、on 并在Folds框填上10。點(diǎn)Start按鈕開(kāi)始讓算法生成決策樹(shù)模型。 很快, 用文本表示的一棵決策樹(shù),以及對(duì)這個(gè)決策樹(shù)的誤差分析等等結(jié)果出現(xiàn)在右邊的 Classifier output 中。 同時(shí)左下的“Results list出現(xiàn)了一個(gè)工程顯示剛剛的時(shí)間和算法名稱(chēng)。如果換一個(gè)模型或者換個(gè)參數(shù),重 新“Start 次,那么“Results list 義會(huì)多出一項(xiàng)。 我們看到“J48算法交叉驗(yàn)證的結(jié)果之一為 Correctly Classified Instances 206 68.6667 % 也就是說(shuō)這個(gè)模型的準(zhǔn)確度只有 69%左右。也許我們需要對(duì)原屬性進(jìn)行處理,或者修改算法的參數(shù)來(lái)提
40、高 準(zhǔn)確度。但這里我們不管它,繼續(xù)用這個(gè)模型。 右鍵點(diǎn)擊Results list 剛剛出現(xiàn)的那一項(xiàng),彈出菜單中選擇 Visualize tree ,新窗口里可以看到圖形模 式的決策樹(shù)。建議把這個(gè)新窗口最大化,然后點(diǎn)右鍵,選 “Fit to screen :可以把這個(gè)樹(shù)看清楚些??赐?后截圖或者關(guān)掉一 這里我們解釋一下 “Confusion Matrix 的含義。 =Confusion Matrix = a b - classified as 74 64 | a = YES 30 132 | b = NO 這個(gè)矩陣是說(shuō),原本“pep是“YES的實(shí)例,有74個(gè)被正確的預(yù)測(cè)為 “YES,有64個(gè)錯(cuò)誤
41、的預(yù)測(cè)成了 “NO; 原本“pep是“NO的實(shí)例,有 30個(gè)被錯(cuò)誤的預(yù)測(cè)為 “YES,有132個(gè)正確的預(yù)測(cè)成了 “NO。 74+64+30+132 = 300 是實(shí)例總數(shù),而(74+132)/300 = 0.68667 正好是正確分類(lèi)的實(shí)例所占比例。 這個(gè)矩陣對(duì)角線(xiàn)上的數(shù)字越大,說(shuō)明預(yù)測(cè)得越好。 模型應(yīng)用 現(xiàn)在我們要用生成的模型對(duì)那些待預(yù)測(cè)的數(shù)據(jù)集進(jìn)行預(yù)測(cè)了。注意待預(yù)測(cè)數(shù)據(jù)集和訓(xùn)練用數(shù)據(jù)集各個(gè)屬性 的設(shè)置必須是一致的。即使你沒(méi)有待預(yù)測(cè)數(shù)據(jù)集的 Class屬性的值,你也要添加這個(gè)屬性,可以將該屬性 在各實(shí)例上的值均設(shè)成缺失值。 在Test Opion中選擇Supplied test set,并且
42、Set成你要 應(yīng)用模型的數(shù) 據(jù)集,這里是 “banknew.arff 艾件。 現(xiàn)在,右鍵點(diǎn)擊 “Result list 中剛產(chǎn)生的那一項(xiàng),選擇 “Reevaluate model on current test set 。右 邊顯示結(jié)果的區(qū)域中會(huì)增加一些內(nèi)容,告訴你該模型應(yīng)用在這個(gè)數(shù)據(jù)集上表現(xiàn)將如何。如果你的 Class屬 性都是些缺失值,那這些內(nèi)容是無(wú)意義的,我們關(guān)注的是模型在新數(shù)據(jù)集上的預(yù)測(cè)值。 現(xiàn)在點(diǎn)擊右鍵菜單中的 a Visualize classifier errors ,將彈出一個(gè)新窗口顯示一些有關(guān)預(yù)測(cè)誤差的散點(diǎn)圖。 點(diǎn)擊這個(gè)新窗口中的 “Save按鈕,保存一個(gè) Arff文件。翻開(kāi)
43、這個(gè)文件可以看到在倒數(shù)第二個(gè)位置多了一 個(gè)屬性predictedpep ,這個(gè)屬性上的值就是模型對(duì)每個(gè)實(shí)例的預(yù)測(cè)值。 使用命令行推薦 雖然使用圖形界面查看結(jié)果和設(shè)置參數(shù)很方便,但是最直接最靈活的建模及應(yīng)用的方法仍是使用命令行。 翻開(kāi)“Simple CLI 模塊,像上面那樣使用 “J48算法的命令格式為: java weka.classifiers.trees.J48 -C 0.25 -M 2 -t directory-pathbank.arff -d directory-path bank.model 其中參數(shù)“-C 0.25 和-M2是和圖形界面中所設(shè)的一樣的。 -t 后面跟著的是訓(xùn)練數(shù)據(jù)集
44、的完整路徑 包 括目錄和文件名,-d 后面跟著的是保存模型的完整路徑。注意!這里我們可以把模型保存下來(lái)。 輸入上述命令后,所得到樹(shù)模型和誤差分析會(huì)在 “Simple CLI 上方顯示,可以復(fù)制下來(lái)保存在文本文件里。 誤差是把模型應(yīng)用到訓(xùn)練集上給出的。 把這個(gè)模型應(yīng)用到 bank-new.arff 所用命令的格式為: java weka.classifiers.trees.J48 -p 9 -l directory-pathbank.model -T directory-path bank-new.arff 其中-p 9說(shuō)的是模型中的待預(yù)測(cè)屬性的真實(shí)值存在第 9個(gè)也就是“pep屬性中,這里它們?nèi)?/p>
45、部未知 因此全部用缺失值代替。 -l 后面是模型的完整路徑。 -T后面是待預(yù)測(cè)數(shù)據(jù)集的完整路徑。 輸入上述命令后,在 Simple CLI 上方會(huì)有這樣一些結(jié)果: 0 YES 0.75 ? 1 NO 0.7272727272727273 ? 2 YES 0.95 ? 3 YES 0.8813559322033898 ? 4 NO 0.8421052631578947 ? . 這里的第一列就是我們提到過(guò)的 Tnstance_number,第二列就是剛剛的 predictedpep ,第四列那么是 banknew.arff 中原來(lái)的pep值這里都是探失值。第三列對(duì)預(yù)測(cè)結(jié)果的置信度confidenc
46、e 。 比方說(shuō)對(duì)于實(shí)例 0,我們有75%的把握說(shuō)它的“pep的值會(huì)是“YES,對(duì)實(shí)例4我們有84.2% 的把握說(shuō) 它的“pep值會(huì)是“NO。 我們看到,使用命令行至少有兩個(gè)好處。一個(gè)是可以把模型保存下來(lái),這樣有新的待預(yù)測(cè)數(shù)據(jù)出現(xiàn)時(shí),不 用每次重新建模,直接應(yīng)用保存好的模型即可。另一個(gè)是對(duì)預(yù)測(cè)結(jié)果給出了置信度,我們可以有選擇的采 納預(yù)測(cè)結(jié)果,例如,只考慮那些置信度在 85%以上的結(jié)果。 -整理自 ://classes/ect584/WEKA/classify.html 6. 聚類(lèi)分析 原理與實(shí)現(xiàn) 聚類(lèi)分析中的 類(lèi)cluster 和前面分類(lèi)的 類(lèi)class 是不同的,對(duì)cluster更加準(zhǔn)確的翻譯應(yīng)該是 簇 聚類(lèi)的任務(wù)是把所有的實(shí)例分配到假設(shè)干的簇,使得同一個(gè)簇的實(shí)例聚集在一個(gè)簇中心的周?chē)?,它們之間距 離的比擬近;而不同簇實(shí)例之間的距離比擬遠(yuǎn)。對(duì)于由數(shù)值型屬性刻畫(huà)的實(shí)例來(lái)說(shuō),這個(gè)距離通常指歐氏
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身器材用戶(hù)參與度提升策略實(shí)踐考核試卷
- 塑料鞋生產(chǎn)效率統(tǒng)計(jì)與分析考核試卷
- 數(shù)學(xué)空間想象力培養(yǎng)教具考核試卷
- 供應(yīng)鏈大數(shù)據(jù)分析在供應(yīng)鏈中的應(yīng)用案例解析考核試卷
- 北京車(chē)牌借用合同范本
- 蔬菜購(gòu)銷(xiāo)合同范本
- 藥店店員培訓(xùn)課件
- 冷庫(kù)設(shè)備銷(xiāo)售合同范本
- 靜脈輸液的基本操作流程
- 數(shù)據(jù)傳輸網(wǎng)絡(luò)安全合作協(xié)議之?dāng)?shù)據(jù)傳輸保護(hù)服務(wù)合同
- 口腔科放射防護(hù)制度
- 2024年公開(kāi)招聘事業(yè)單位工作人員報(bào)名登記表
- 微觀經(jīng)濟(jì)學(xué):緒論
- 2024年全國(guó)高考數(shù)學(xué)試題及解析答案(新課標(biāo)Ⅱ卷)
- 2024年中考語(yǔ)文滿(mǎn)分作文6篇(含題目)
- 2024年河南鄭州航空港經(jīng)濟(jì)綜合實(shí)驗(yàn)區(qū)招考高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 風(fēng)動(dòng)和電動(dòng)工具市場(chǎng)洞察報(bào)告
- 蘇教版一年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)教案(完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 10《傳統(tǒng)美德源遠(yuǎn)流長(zhǎng)》第2課時(shí)教學(xué)設(shè)計(jì)-2024-2025學(xué)年道德與法治五年級(jí)上冊(cè)統(tǒng)編版
- 小學(xué)奧數(shù)-經(jīng)濟(jì)問(wèn)題(二).教師版
- 2024統(tǒng)編版新教材道德與法治七年級(jí)全冊(cè)內(nèi)容解讀課件(深度)
評(píng)論
0/150
提交評(píng)論