Weka簡介與實作:資料探勘的分群、異常偵測、關聯規則探勘、分類 / Practice Data Mining with Weka: Clustering, Outlier Detection, Associations and Classification
啊囉哈~~這裡是整理投影片整理得超久的布丁。
今天要來談的Weka是知名的資料探勘自由軟體,它含括了資料探勘中的三大議題:分群(clustering)、關聯規則探勘(association rule mining)以及分類(classification)。想要學習資料探勘的基本概念,並快速開始進入資料探勘實作的話,Weka是個不需要寫程式也可以輕鬆上手的好方法。
這一篇是我在2019年研習班中講授的課程投影片。這篇的做法改進了我之前製作的「巨量資料探勘與統計應用」課程內容,不僅更加掌握Weka的功能與參數,也直接採用ODS開放文件格式試算表作為練習資料的格式。如果你對資料探勘有興趣的話,不妨也試著一起玩玩看吧。
課程架構 / Guideline
這門課程將資料探勘分成兩大類、三種分析,而各種分析有不同的技術可採用。這兩大類為:沒有預設答案的「非監督式學習」,對應的是「探索性分析」;有預設答案的「監督式學習」,對應的是「比較性分析」和「預設性分析」。
每種分析都有對應的資料探勘技術,這些技術都可以用Weka來實作。在探索性分析中,為了瞭解資料的狀況,我們可以採用的資料探勘技術為「分群」和「異常偵測」。在比較性分析中,我們想要瞭解不同類型的資料有何差異,可以使用的技術為「關聯規則探勘」。在預測性分析中,我們想要以歷史資料建立規則模型,用來預測未來的未知資料,可以採用的資料探勘技術為「分類」和「迴歸」。
跟傳統定義不同的是,我將關聯規則探勘作為一種比較性分析,並將它隸屬於監督式學習中。傳統關聯規則探勘大多作為非監督式學習,但探勘結果往往難以應用。相反的,在有預設答案的情況下去找出不同類型資料的差異,這種問題更適合採用關聯規則探勘來分析。所以我把它特別獨立出來,變成比較性分析來介紹。
本課程分成四個投影片來介紹。底下我會列出投影片、投影片大綱,以及該投影片使用到的實作教材和相關連結。
Chapter 1. 認識Weka / Introduction of Weka
- Open in new window
- Open in popup window
- Google投影片:1:認識Weka - Weka簡介與實作 - blog
- Power Point格式備份:GitHub、One Drive、Mega、Box、MediaFire、SlideShare
第一份投影片「認識Weka」介紹的內容包括:
- Part 1. 認識Weka
- Part 2. Weka的資料來源
- Part 3. 準備Weka:下載、安裝與設定
- Part 4. 認識Weka架構
這份投影片主要是給Weka做個簡介之外,還要帶大家安裝本課程會用到的Weka及其四個套件,以及LibreOffice Calc試算表。
相關檔案與連結 / Materials and reference
「Part 3. 準備Weka:下載、安裝與設定」會用到以下檔案:
(圖片來源:WekaMOOC)
- Weka軟體下載:支援Windows、Mac OS、Linux版本。Windows版本請下載includes Oracle's Java VM的檔案(請注意你的電腦是64 bit還是32 bit)。
- 如何在Weka中顯示中文:調整檔案編碼為UTF8
(圖片來源:ICONS101)
- LibreOffice 下載 :支援Windows、Mac OS、Linux版本。
- 本教學中主要使用的是LibreOffice Calc。更詳細的教學,也可以看看我之前寫過的「試算表應用實務 LibreOffice Calc」。
Chapter 2. 探索性與比較性分析:分群、異常偵測、關聯規則探勘 / Exploratory and comparison analytics: Clustering, outlier detection, associations
- Google投影片:2:探索性與比較性分析 - Weka簡介與實作 - blog
- Power Point投影片備份:GitHub、One Drive、Mega、Box、MediaFire、SlideShare
第二份投影片「探索性與比較性分析」介紹的內容包括:
- Part 5. 探索性分析:分群
- Part 6. 探索性分析:異常偵測
- Part 7. 比較性分析:關聯規則探勘
從這份投影片開始,我們就要開始實際操作Weka進行資料探勘的任務。我在介紹的時候會先講一下問題的情境,再來簡單地介紹資料探勘技術的演算法和原理,然後再實際操作Weka完成資料探勘的任務。
值得一提的是,我在這次教學中加入了「異常偵測」這個主題,採用技術為區域異數因素(Local Outlier Factor, LOF)。LOF分析可以在多維度資料中偵測異常值,是相當泛用的分析技術。雖然以往資料探勘教學中較少對異常偵測有所著墨,不過其實在實務資料分析中,用異常偵測找出資料的離異值是非常有意義的作法。有時候,刪除離異值可以確保模型收斂,它可以用於各種資料探勘的前處理;有時候,找出學生中最與眾不同的人,可以幫助我們深入進行個案研究。透過Weka的localOutlierFactor套件,可以讓我們很容易就能完成異常偵測的分析任務,誠心推薦給資料分析的各位。
相關檔案與連結 / Materials and reference
在「Part 5. 探索性分析:分群」中,我們將會用到以下檔案和連結:
在「Part 6. 探索性分析:異常偵測」中,我們將會用到以下檔案:
在「Part 7. 比較性分析:關聯規則探勘」中,我們將會用到以下檔案:
其實這三個部分用到的檔案stu-sch-1 - train.ods都是一樣的喔。
Chapter 3. 預測性分析:分類與迴歸 / Predictive analytics: Classification and regression
- Open in new window
- Open in popup window
- Google投影片:3:預測性分析 - Weka簡介與實作 - blog
- Power Point投影片備份:GitHub、One Drive、Mega、Box、MediaFire、SlideShare
第三份投影片「預測性分析」介紹的內容包括:
- Part 8. 預測性分析:分類
- Part 9. 預測性分析:迴歸
雖然看起來只有分類和迴歸兩個主題,不過投影片就有103張了呢。現在提到資料探勘、機器學習,大部分的焦點都落在這個「預測性分析」上。我們往往會希望用歷史股價變動來預測股票的漲跌,我們希望用學生表現的已知行為來預測期末表現,這些都是預測性分析所要處理的問題。而預測性分析中分類和迴歸這兩個技術的主要差別,在於分類要預測的是「類別」,例如「男」或「女」、「合格」或「不合格」;而迴歸則是預測連續數值,例如「分數成績」、「股價」。
由於Python的盛行,現在許多人都是從Python程式語言學習迴歸。但其實要做迴歸這種預測性分析並不用這麼麻煩,試算表搭配Weka就能做得出來囉。
相關檔案與連結 / Materials and reference
在「Part 8. 預測性分析:分類」中,我們會用到的教材有:
在「Part 9. 預測性分析:迴歸」中,我們會用到的教材有:
- stu-sch,gra-1 - train.ods (線上檢視)
- stu-sch,gra-2 - test.ods (線上檢視)
- stu-sch,gra-3 - unknown.ods (線上檢視)
- 此外,還有補充教材:如何判斷哪個屬性對成績影響最大?以SPSS實作解釋型多元迴歸
這兩組教材檔案名稱看起來很像,但資料內容並不一樣喔,請仔細查看檔案名稱,不要搞混了。
Chapter 4. 進階應用與結語 / Applications and wrap up
- Open in new window
- Open in popup window
- Google投影片:4:進階應用與結語 - Weka簡介與實作 - blog
- Power Point投影片備份:GitHub、One Drive、Mega、Box、MediaFire、SlideShare
第四份投影片「進階應用與結語」介紹的內容包括:
- Part 10. Weka的進階應用
- Part 11. 結語
介紹完Weka的基本應用,第四部分就帶大家看看Weka還可以做的其他分析。這邊大部分都是我寫過介紹的內容,包括圖片分類、文本分類、行為序列預測、時間序列預測等等。其實Weka的可能性,比課本上介紹的還要多很多呢。
課程到了最後,我們瞭解了很多資料探勘的分析技術。現在資料探勘中的預測性分析,大多被包裝成AI人工智慧,似乎已經廣為人知。有人對AI盲目推崇、認為大數據、巨量資料就是未來;有人對AI表示恐懼,認為AI將會搶走他們的工作。但就目前AI的進展來看,它終究只是一種分析歷史資料、然後將分析結果直接應用的一種分析技術。而這個技術要簡單也沒那麼難,這堂課的Weka就做得了。
因此,我希望藉由這堂課來培育大家的AI素養 (AI literacy)。那就是我們必須要對AI保持正確的認知態度,學習思考什麼時候可以用AI、什麼時候不能用AI。希望這堂課介紹的Weka能夠讓大家更容易駕馭AI,而不是讓AI停留在盲目崇拜或恐懼的層次。
相關連結 / Reference
在「Part 10. Weka的進階應用」中,我所提到的相關文章連結如下:
- 圖片分類:不深度學習也不用寫程式的圖片辨識:用Weka實作MNIST手寫數字辨識
- 文本探勘:超簡單!文本機器分類入門
- 行為預測:行為順序預測:動態貝氏網路
- 時間序列預測:用Weka實作多變項時間序列預測
- 指令列整合:使用Weka指令列實作預測功能
當然,其實還有更多相關文章都在我這個Blog:「布丁布丁吃什麼?」,歡迎有興趣的人進來挖寶囉。
結語 / In closing
這篇我在研習班講授的「Weka簡介與實作」終於整理完了。
雖然作為一位常常介紹Weka的人這樣講很奇怪,但被找去講這個主題時,我第一個反應是:「怎麽過了這麼多年了還在講Weka」。
Weka是以Java開發的應用程式,不僅系統介面不符合當代應用程式的設計,實際上它的操作也相當繁瑣。許多人抱持著「不用寫程式就可以做資料探勘耶!」的期待接觸Weka,不過實際上能不能掌握Weka,或著說,掌握資料分析,最終是要看使用者具不具備資料分析的思維。瞭解資料、知道自己要分析什麼的人,不論是Weka還是Python,他都能有足夠的熱情和動力掌握這些分析工具,並且更進一步的往他的分析目標邁進。
Weka的小小優點 / Strengths of Weka
話說回來,也許一些只用Python等程式語言的人可能對Weka這種圖形化使用者介面嗤之以鼻,不過我得說Weka在很多小地方其實做得很好。因為這些優點實在是太小了,如果對資料分析不熟悉的人可能看不懂這些詞彙的意義,所以底下這三個特色我是說給進階者看得:
第一個特色是缺漏值補齊,如果你沒有做特別的設定,Weka會自動採用眾數或中位數補齊缺漏值。而這件事情若用程式語言來做,其實相當費工。此外,若是在SPSS分析裡面,有缺漏值的資料大多時候都會直接被整個刪除捨棄不用。
Weka另一個貼心的特色是虛擬變項的轉換。面對只能接受連續數值類型資料的演算法,Weka會自動將類別變項轉換成虛擬變項,使用者仍然可以用自己最習慣的類別變項來填寫資料即可。這個例子最常發生在SPSS使用者身上,例如「迴歸分析使用虛擬變項的注意事項」這篇。SPSS分析幾乎都必須是以連續變項進行,包括類別資料的卡方檢定也是,所以很多SPSS使用者被迫要以數字為資料編碼,例如將「男性」編碼為1、「女性」編碼為2。如果用程式語言來開發,將類別編碼轉換成虛擬變項也是一件必須要執行的重要處理,略過這個步驟的話,大部分演算法都無法執行。不過在Weka裡面,他會默默的自動幫你處理好,非常偉大。
第三件特色是變項的正規化。許多資料探勘演算法都必須計算資料的相似度,特別是分群。對具有多維變項的資料計算相似度時,因為各個維度的資料單位不相同,它們的全距也都不相同。如果直接忽略單位,單以數值計算相似度時,全距較大的維度屬性會對相似度有極大的影響。為了克服這個問題,比較好的做法是要對各個維度進行正規化或標準化,去除單位,這樣是比較合理的做法。如果用程式語言來做,各個維度的正規化和標準化手續其實挺麻煩的。不過在Weka中,大多數演算法預設都會自動進行正規化或標準化。當然,你也可以開啟進階設定把它關掉就是了。
閒聊 / Talk
好啦,寫到這裡,這篇也差不多要告一個段落了。其實這篇應該要更早完成的,但是課程教完之後,我遭遇了電腦整個掛掉的窘境。要知道對一個各種工作都仰賴電腦的我來說,電腦壞掉這件事情對我造成相當大的打擊。然後在重灌電腦的期間,也花了點時間開發了一些小工具,詳情請看「工具開發閒聊:從AutoIT到Electron」這篇。
最近我比較有在寫blog,就是電腦逐漸上軌道的表現。「布丁布丁吃什麼?」blog的網站功能有許多壞掉的地方,最近也總算能夠把它修復了。有一臺好用的電腦,對我來說還是相當重要啊。
電腦修好後,總算能夠繼續我論文系統的研究了。前幾篇提到的Svelte就是我在研究中的產物,可惜人氣好像不太高的樣子。在這篇中我也提到我正在摸索FeathersJS,轉念採用另一個想法後,似乎更能掌握它了。我會繼續這樣子,一邊研究、一邊把它整理下來做記錄,努力完成我的論文吧。
那麼這次對Weka的教學就到這裡了。寫到最後,我有些問題想問問大家:
- 你用過Weka或其他的資料探勘工具嗎?
- 你用資料探勘或機器學習通常是在分析什麼樣的問題呢?
- 對於資料探勘的教學,你比較著重在什麼部分呢?理論、演算法、應用情境、實機操作、資料分析講解?
歡迎在下面的留言處跟我們分享你的想法。大家的意見是我繼續分享的動力喔!如果你覺得我這篇實用的話,請幫我在AddThis分享工具按讚、將這篇分享到Facebook等社群媒體吧!
感謝你的耐心閱讀,我是布丁,讓我們下一篇見。
作者已經移除這則留言。
回覆刪除嗨囉~ 布丁大師
回覆刪除看到你整理的這篇文真的對於學習Weka有非常大的幫助,
也能讓完全沒有基礎的人能很快的一探數據分析的奧妙與樂趣,
在這邊想請教您有關我在使用Weka功能的問題:
在知識流中我依照3-6版本的操作教案進行,但發現在3-8版出現錯誤無法正常跑出結果
我在猜測是不是有以下問題:
a.方式轉換語言編碼後造成知識流判讀錯誤?
b.版本問題導致部分功能無法使用
c.javaopt設置更動(之前為了提升Weka效能有將其改成-Xmx1024m)
不知道您是否有遇到類似的問題可以幫我解惑呢?
謝謝
To 阿牛,
刪除因為Weka操作的細節步驟很多,我這樣沒辦法得知你所謂的「出現錯誤無法正常跑出結果」是什麼意思。
可以的話請螢幕截圖,並上傳到imgur之類的圖庫,方便說明你的問題:
https://imgur.com/upload
如果你的問題是Weka的知識流(Knowledge Flow)的話
因為我實務經驗不多,可能很難回答你的問題喔
您好
回覆刪除請教:Chapter 3. 預測性分析slide,第20頁
表格的【規則】欄位是參考前一頁的【比賽舉行】或是自訂?
您好,
刪除https://docs.google.com/presentation/d/1wHkfobQmGOJ-C0h1TMcW1Kp4umNwiJ_ZHdgJIMYaPB8/edit#slide=id.g5e1089c260_3_394
是根據 p. 19的資料集而訂
我這個表格是參考其他書籍,但後來為了方便解釋,我修改了部分用詞
p. 20這張表沒有改到
現在已經做修正
https://docs.google.com/presentation/d/1wHkfobQmGOJ-C0h1TMcW1Kp4umNwiJ_ZHdgJIMYaPB8/edit#slide=id.g5e1089c260_3_394
投影片裡面講到了WekaODF 1.0.5的部分
回覆刪除這是我根據原本的WekaODF 1.0.4的程式碼改進了因為缺失值導致誤判資料類型的問題之後,重新打包的檔案
可以在以下網址下載 WekaODF1.0.5.zip:
https://github.com/pulipulichen/WekaODF/releases
不好意思,一直無法安裝WekaODF 1.0.5,會跳出
刪除java.lang.NullPointerException
at weka.core.WekaPackageLibIsolatingClassLoader.checkForNativeLibs(WekaPackageLibIsolatingClassLoader.java:220)
at weka.core.WekaPackageLibIsolatingClassLoader.init(WekaPackageLibIsolatingClassLoader.java:145)
at weka.core.WekaPackageLibIsolatingClassLoader.(WekaPackageLibIsolatingClassLoader.java:126)
at weka.core.WekaPackageClassLoaderManager.addPackageToClassLoader(WekaPackageClassLoaderManager.java:369)
at weka.core.WekaPackageManager.initializeAndLoadUnofficialPackage(WekaPackageManager.java:2372)
at weka.core.WekaPackageManager.installPackageFromArchive(WekaPackageManager.java:2359)
at weka.gui.PackageManager$UnofficialInstallTask.doInBackground(PackageManager.java:780)
at weka.gui.PackageManager$UnofficialInstallTask.doInBackground(PackageManager.java:724)
at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.desktop/javax.swing.SwingWorker.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
這些錯誤,我有試著更新JAVA了 但還是無法安裝套件
試著先裝Weka Package裡面的WekaODF 1.0.4看看?
刪除還有,請問您的作業系統版本是32位元還是64位元?安裝的Java版本是32位元還是64位元?使用Weka的版本是?
我安裝的版本是Weka3.8.4 作業系統是64位元 JAVA是1.8的X86
刪除資料探勘的新手 你好,
刪除先試著安裝Java Runtime Environment 64位元版本(x64),再跑看看?
https://www.java.com/zh_TW/download/
我已經有安裝Weka pakeage裡面的ODF 1.0.4還是無法安裝1.0.5,安裝都會出現錯誤,之後把原安裝的1.0.4刪掉,也用樓上的網址更新過java了,還是不行,有其他辦法解嗎?重新下載過weka兩次了
刪除我如果只用ODF 1.0.4,沒辦法跟著第二章的投影片,使用.ods檔案
刪除你好,
刪除如果使用Weka 3.8.1版的話,就可以先安裝WekaODF 1.0.4,再安裝我自製的WekaODF 1.0.5。
舊版的Weka 3.8.1可以從這裡找到連結下載:
https://blog.pulipuli.info/2017/06/weka-how-to-download-weka-and-install.html#postcataweka-how-to-download-weka-and-install.html0_anchor1
試試看吧
下載了Weka 3.8.1版的話,我變成Package manager的畫面不能打開,會是因為我的java版本太低嗎?我的java版本是1.8.0的,有推薦要安裝哪個java版本嗎?可以的話可以附網址嗎?我打開weka會出現
刪除[WekaPackageManager] Skipping package WekaODF because it is has been marked as do not load
[WekaPackageManager] problem parsing number of packages from server.
這兩行文字,可以知道我哪裡出了問題嗎?現在的weka版本是3.8.1
你好,
刪除我的Java版本是jre1.8.0_221
我在Weka 3.8.1上開啓Package manager的時候也是很慢,但總是會等到它開啓。
多等一會兒試試看吧
原來如此,感謝解答,我在試試看
刪除好的,希望順利。
刪除我遇到一樣的問題,先裝Weka Package裡面的WekaODF 1.0.4,再裝1.0.5 就過了
回覆刪除To Vic,
刪除感謝分享
有網友詢問,如果輸入資料有多重值的話怎麼辦,例如以下多選題:
回覆刪除「Q1. 請問您的興趣是(可複選):a. 運動 / b. 聽音樂 / c. 玩遊戲」
在處理這類型的資料時,要把該題的每個選項拆開來,變成布林類型
舉例來說,有人在第一題勾選了a跟b,沒勾選c
則轉換後變成
Q1a,Q1b,Q1c
true,true,false
請以這個形式來處理資料。
大大您好,有些問題想要請教:
回覆刪除想知道weka有沒有方法可以將我載入的資料用特定方法做分類,
例如:
1.假設excel檔的A行每一格是1-100的編號,每個編號數量不等(數千~數萬筆不等),我想擷取某一個數字的所有資料
2.假設excel檔的B行每一格分別代表著某一個行為,我想抓取在"登入"行為後到"登出"行為止這之間的資料
以上兩個例子個別有辦法做到嗎?怎麼做到?
爬過很多文章,沒有找到合適方法,詢問大大有沒有知道的方法,懇求大大解答。
你好,
刪除我會建議你把資料儲存成SQLite,然後用SQL語法處理上述問題。
https://www.dbsofts.com/articles/ms_excel_to_sqlite/
如果人生在世一定得學一種程式語言,那就會是SQL。
你好 布丁 請問一下 您在本節課程中 所提及的"資料探勘分成兩大類、三種分析,而各種分析有不同的技術可採用。這兩大類為:沒有預設答案的「非監督式學習」,對應的是「探索性分析」;有預設答案的「監督式學習」,對應的是「比較性分析」和「預設性分析」"以上內容分類的基礎是來自於自身的經驗,還是有分類的來源呢。 因為本身正在撰寫碩論,每篇國內外期刊所定義的方式雖都脈絡相似,但其中都有些許差異。
回覆刪除謝謝回應!!
To 張博威,
刪除如果在寫論文的話,你不應該看我的blog,請去參考有權威性資料來源。
如果不知道從哪裡看起的話,請從百科全書來看
https://www.springer.com/gp/book/9781489976857
Sammut, C., & Webb, G. I. (2017). Encyclopedia of machine learning and data mining. Retrieved from http://dx.doi.org/10.1007/978-1-4899-7687-1
如果再不知道從哪裡看起的話,可以去申請圖書館的參考諮詢服務,讓館員陪你一起找資料。
我的blog只能給你一些關鍵字,但不能當做權威的資料來源
請加油囉
非常感謝!很有用的資訊!
回覆刪除您好,
刪除感謝您的支持!
首先謝謝這麼清楚的資訊。另外請問,用您提供的資料可以分群,但換成自己的資料ADDCLUSTER被反白無法作用該如何解決?
回覆刪除您好,
刪除這樣問我沒辦法回答。
要先看您的資料是什麼資料類型才行。
加油。
您好,請問Chapter 3. 預測性分析:分類與迴歸 簡報第40頁,測試檔案可否直接使用原檔案(相同筆數一模一樣)代替?
回覆刪除您好,
刪除https://docs.google.com/presentation/d/1wHkfobQmGOJ-C0h1TMcW1Kp4umNwiJ_ZHdgJIMYaPB8/edit#slide=id.g5e1d40a66d_1_473
https://blogger.googleusercontent.com/img/a/AVvXsEi71Yxy8xqY1KRmv6WDhgcPUMPg2iW2HJcb8kAGcJ7d93dWlGyGPyUgC4nEDrPBzJQQKgMYIHEKi8MCGbgt3i4W_56EGD5xwXB8tIG9jT8WwGS95qpt2w4dTXiW70ilDjnNKl1ujkl_C4IZzQdoKW1lgaBiYSi7GaBmmE9RuQFdCZoiUrCmvUM
我想你應該在講這一頁。
https://docs.google.com/presentation/d/1wHkfobQmGOJ-C0h1TMcW1Kp4umNwiJ_ZHdgJIMYaPB8/edit#slide=id.g5e1d40a66d_1_413
https://blogger.googleusercontent.com/img/a/AVvXsEhAqgMDSkc7FosTZn6hH3jLOA0Yn-hl2YWR5mHgRl3XcyzoF_Pm0XUi8S1ST5cFrqT829wUm_GhDwnqcCSbcALnF0ZZsCRnpJBijWqcXfKs2EocUrAxoz5VMJH6GDcoKjkKm4qwtBBX1xf0LA488IFp7sZ7YuBW6TL_g39Cm8hnIBGOHvJ6PX8
不過測試集的設定實際上是在第33頁。
如果測試集跟訓練集一樣,那選擇「Use training set」即可。
----
如果你沒有測試集的話,正式做法都會建議使用「Cross-validation」(交互驗證)。
https://blog.pulipuli.info/2017/10/classification-and-prediction-bayesnet.html#postcataclassification-and-prediction-bayesnet.html0_anchor1
交互驗證的說明在這篇的投影片的第83頁起。
https://blogger.googleusercontent.com/img/a/AVvXsEiMY5_fGKzxqH6r8Ogr6P5UEZBZ7cxtWggGfx5IMri_oeV3YgAAHTNg0q5dV-7-9ZT1s2k1Q3-pDSdaayBpWPlEabGi1U5WNGT3SAtBVkodtxdpqTG6qzxNOMcd_Mgrv_zka2nTQ660NeD0HsLpfI4qM90kc4oQw6xvcOYfM2WH6_4jTrcn-0M
布丁大大您好~
回覆刪除請教一下,我是weka3.8.6版本,安裝WekaODF 1.0.4版本後,一直無法安裝WekaODF 1.0.5
也有先安裝Java Runtime Environment 64位元版本(x64)
不知道是哪邊出了問題
感謝您
1. 如果你是用我做的WekaODF,那我建議不要使用了,那個並不是尋正規管道開發的。
刪除2. 如果只是單純ODF的讀取問題,做法是要把檔案相容性改回1.2 Extended版本。
位置在Options > Load/Save > General > Default File Format and ODF Settings裡面:
https://blogger.googleusercontent.com/img/a/AVvXsEhFKQCtgqli0VErOg8KYLvQRLI7LVB8Qq30akW5t-tA_ZHVGayVTNORpT2GaY_pkU-jfuSaDnAhpSx1ueD9TdkeenT9GECWZdaIW44VDpQRktWQFbqm_-tKQwA-o923gdKSirYr2oU543eVKfpTeZ2rOqa3LWs-vFc3M_d0iwu1BDOoGQ3VfRU
剛剛有人反映不能留言,我來試試看。
回覆刪除用匿名留言看看。
刪除作者已經移除這則留言。
回覆刪除布丁大大您好~
回覆刪除想請問我放的測試或未知數據中有訓練數據沒有的新屬性(非預測欄位),他會顯示錯誤並停止運算,有辦法使他加入新屬性或是無視他嗎?
已經設定為32g且如果使用-L無法處理之後遇到其他未知值的問題
刪除您好,
刪除如果是nominal類型的話,訓練集產生的模型,必須要跟測試集使用的nominal相同。
https://blogger.googleusercontent.com/img/a/AVvXsEg_cB5fmTYfMr0mpBkOstG0-LHYUBMQmTrqAEN8amfPRR6ASXlXTRsluHlrPi8Q2sCCRu9tsYkI6D21PRDmJ5nmv81lls0BMLCVTv0As6kbn1tJydcv2apS8Jp2_nTNaFmBp-qVgDkdj-bgYuYDqVn-gkb7wjNSbi0Uy8J4kf0FVurHzkq5zkcS7A
請注意@ATTRIBUTE class後面的範圍宣告
@ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris-virginica}
Weka會將各種類型的資料轉換成arff格式之後再來計算。
你的訓練集跟測試集的arff中,ATTRIBUTE的設定應該不相同。
----
至於要怎麽處理這個問題。最基本的做法是把訓練集範圍之外的值改成缺失值「?」。
在Weka內是可以用filter來做到這件事情,但我會建議用其他的程式語言或手動修改,可能更容易得多。