:::
顯示具有 Software/Weka 標籤的文章。 顯示所有文章

不用寫程式的機器學習工具 / No-Code Machine Learning Tools

不用寫程式的機器學習工具 / No-Code Machine Learning Tools

3-cover-No_Code_Machine_Learning_Tools2.png

哈囉,大家最近在吃什麼呢?這裡是研究把各種東西都打包到Docker的布丁。

談到人工智慧、機器學習,很多人都覺得應該要用程式語言來做。與此同時,也是有人致力於將複雜的東西簡化成容易使用的工具,這就是今天要介紹的「不用寫程式的機器學習工具」。這篇是我之前發佈在政大人工智慧與數位教育中心的AI專欄中的文章。現在隨著Blog「布丁布丁吃什麼?」恢復運作,我就來整理整理之前做過的事情吧。

(more...)

Weka簡介與實作:資料探勘的分群、異常偵測、關聯規則探勘、分類 / Practice Data Mining with Weka: Clustering, Outlier Detection, Associations and Classification

Weka簡介與實作:資料探勘的分群、異常偵測、關聯規則探勘、分類 / Practice Data Mining with Weka: Clustering, Outlier Detection, Associations and Classification

11-Weka_Practice_Data_Mining_with_Weka.png

啊囉哈~~這裡是整理投影片整理得超久的布丁。

今天要來談的Weka是知名的資料探勘自由軟體,它含括了資料探勘中的三大議題:分群(clustering)關聯規則探勘(association rule mining)以及分類(classification)。想要學習資料探勘的基本概念,並快速開始進入資料探勘實作的話,Weka是個不需要寫程式也可以輕鬆上手的好方法。

這一篇是我在2019年研習班中講授的課程投影片。這篇的做法改進了我之前製作的「巨量資料探勘與統計應用」課程內容,不僅更加掌握Weka的功能與參數,也直接採用ODS開放文件格式試算表作為練習資料的格式。如果你對資料探勘有興趣的話,不妨也試著一起玩玩看吧。

(more...)

用Weka找出最特別的文本:局部異數因素之異常偵測 / Mining the Special Text with Weka: Local Outlier Factors (LOF) for Anomaly Detection

布丁布丁吃布丁

用Weka找出最特別的文本:局部異數因素之異常偵測 / Mining the Special Text with Weka: Local Outlier Factors (LOF) for Anomaly Detection

﹒歧ˍ 瞞mss cesoy cuse謬 rosm ˍ棍 Openfie E Generate. Undo Edit... Savg Filter怎 4 Aas a.core.neighboursearch LinearNNSearch -A weka.core EuclideanDistance -R first-last™ -num-slots 1 Apply 1 e Ing-lof tokenizatig HR: K3 Type: Numeric SunTof welts: 30 ASSing: Distinct: 30 Unique: 30 100% 悠 【 l 人一了L ﹤ a 一u 一﹚川 巳【 No, Name OF v visualize All J as 2010 鼻Co QUE暴 2011 £人 2012 量0 2013體 ” / K 5下下z// Z 時 0000 ˍ下 4 1 1.12 125 e g ˍ

我們要如何在大量文本當中,快速找出談論內容與眾不同、別有見地的文本呢?字數長短可能會被灌水,從字詞內容著手,也許是個合理的開始。本篇將應用資料探勘中異常偵測(anomaly detection)常見的演算法:局部異數因素(Local Outlier Factor, LOF),在Weka中找出用詞最為與眾不同的文本。

(more...)

發掘文件中的主題:Weka分群應用於文本探勘 / Discover the Topic of Text Collection: Text Mining based on Weks's Clustering

發掘文件中的主題:Weka分群應用於文本探勘 / Discover the Topic of Text Collection: Text Mining based on Weks's Clustering

5-Weka_Discover_the_Topic_of_Text.png

在以文字撰寫的大量文件中發掘這些文件所共同描述的主題,這類型的技術稱之爲「主題塑模」(Topic Modeling),而資料探勘中的分群就是實作主題塑模的其中一種做法。本篇就來說明如何用開放原始碼資料探勘工具Weka中的層疊式K平均法分群演算法來找出文件中的主題。

(more...)

M5P:預測非線性連續資料的樹狀迴歸演算法 / M5P: Trees with Linear Models in Weka

布丁布丁吃布丁

M5P:預測非線性連續資料的樹狀迴歸演算法 / M5P: Trees with Linear Models in Weka

image

M5P樹狀迴歸演算法Weka內建的一種迴歸演算法。它可根據資料的分佈建立多種迴歸模型,依據輸入資料的不同來決定適用的迴歸模型。比起傳統的線性迴歸,M5P能夠準確預測非線性的資料,而且規則與迴歸模型容易解讀。相較於類神經網路支持向量機等黑箱演算法,白箱演算法的M5P更容易用於研究結果的解釋上。

(more...)

自動決定最佳化分群數量:X-means / Determin the Optimal Number of Clusters: X-means

自動決定最佳化分群數量:X-means / Determin the Optimal Number of Clusters: X-means

image

能夠自動決定分群數量的演算法,除了層疊K平均分群法之外,Weka裡面還有另一個分群法也能做到類似的目的,那就是X-means。X-means為每個分群結果計算貝氏資訊準則BIC Score,以此決定是否要將資料分成更多群。跟層疊K平均分群法一樣,它可以讓使用者選定分群數量的可能範圍。然而實際使用幾次後,我發現X-means的分群數量偏少,而且原理也不如層疊K平均分群法使用的Calinski-Harabasz指標(CH指標)容易解釋。因此比起X-means,我個人還是比較推薦使用層疊K平均分群法。本投影片的內容參考了X-means原論文[x-means] 1.x-means简介

(more...)

自動決定最佳化分群數量:層疊K平均分群法 / Determin the Optimal Number of Clusters: Cascade K-means

自動決定最佳化分群數量:層疊K平均分群法 / Determin the Optimal Number of Clusters: Cascade K-means

image

在資料探勘課程常教的K平均法雖然好用,但它最大的問題在於,到底該如何決定分群數量K呢?幸好我們還有其他的分群演算法可以選擇。Weka中另一個分群演算法層疊K平均分群法(Cascade K-means)採用建立大量不同分群數量的做法,評估每一次分群結果的Calinski-Harabasz指標(CH指標),找出組內距離最短、組間距離最長的最佳分群數量。我在資料聚類:分群分群與分類的整合應用:無監督分類器都有使用層疊K平均分群法來自動決定分群數量,這篇就讓我們在Weka中使用層疊K平均分群法來進行分群,並使用Weka分群結果分析器來試著解釋分群結果吧。

(more...)

行為順序預測:動態貝氏網路 / Behavior Prediction: Dynamic Bayesian Network

行為順序預測:動態貝氏網路 / Behavior Prediction: Dynamic Bayesian Network

image

這是巨量資料探勘與統計應用課程行為順序檢定:滯後序列分析分類與預測:貝氏網路的進階應用。滯後序列分析只能分析前後兩個行為之間的轉變,如果我們想要預測更多步之後的行為,那我們就需要藉助貝氏網路的預測和推理能力。我們可以決定要為幾步內的行為進行建模,如果是兩步之間的模型,稱之為「二時段貝氏網路」(Two-Timeslice Bayesian Network,2TBN)。而這篇文章將以「四時段貝氏網路」來為幼兒平行遊戲事件序列資料,建立能夠預測和解釋幼兒行為的貝氏網路模型。

(more...)

超簡單!文本機器分類入門 / Text Classification with Weka

超簡單!文本機器分類入門 / Text Classification with Weka

image

這篇「超簡單!文本機器分類入門」是我在2017年3月於政大圖檔所資料探勘課程中的演講內容,之後演化成後來我在巨量資料探勘與統計應用課程中「非結構化資料分析:文本分類」單元的內容。如果想要看比較完整的文本分類介紹,請看「非結構化資料分析:文本分類」這篇。不過想要看獨立的文本分類課程的話,那也可以從這篇開始看起喔。

(more...)

非結構化資料分析:文本分類 / Unstructured Text Analytics: Text Classification

非結構化資料分析:文本分類 / Unstructured Text Analytics: Text Classification

image

這是巨量資料探勘與統計應用課程的投影片「非結構化資料分析:文本分類」。本單元是屬於系列課程中的「資料預測級」中最後一個單元。處理資料類型是為非結構化的資料進行分類,也就是使用類別資料。這邊使用了Jieba斷詞來作文本語義分析,然後使用樸素貝氏多項式文本分類器(NaiveBayesMultinomialText)來為文本進行分類,最後還用特徵篩選(Select attributes)找出關鍵字。到底圖書館員分類編目的核心技能會不會被這篇所講的自動化文本分類機器所取代呢?看完這個單元你就可以知道結果了。本單元使用了二個我自製的工具來搭配Weka實作文本分類,單元內包含了四份實作學習單跟一份測驗,供同學邊看邊練習。這個單元包含了四個實作學習單跟一份測驗,供同學邊看邊練習。

(more...)

貝氏網路的結果預測與原因推理:基於專家知識建構的網路結構 / Prediction and Inference with Bayesian Networks Model: Based on Expert Knowledge

貝氏網路的結果預測與原因推理:基於專家知識建構的網路結構 / Prediction and Inference with Bayesian Networks Model: Based on Expert Knowledge

image

前面我將貝氏網路的分類與預測投影片放到blog上,這一篇則是用圖文解說的方式來說明如何在Weka中使用貝氏網路。貝氏網路是一種機器學習預測的方法,其做法大概跟之前所介紹的用Weka分類模型來預測未知案例差不多。貝氏網路分類器本身的正確率通常不高,但是它能夠結合專家知識或領域知識(domain/prior knowledge)來建立預測模型,使得預測結果比較符合人類的思維。另一方面,貝氏網路也可以根據任何已知結果來推理發生的原因,讓我們更容易解釋最後結果。跟類神經網路、支持向量機難以解釋的黑箱演算法相比,貝氏網路這種白箱(white-box)演算法雖然正確率較差,但卻更容易用在任何研究中,協助我們推測研究結果、解釋造成原因。

(more...)

分群與分類的整合應用:無監督分類器 / Building an Unsupervised Classification: Integrating Cluster and Classification in Weka

布丁布丁吃布丁

分群與分類的整合應用:無監督分類器 / Building an Unsupervised Classification: Integrating Cluster and Classification in Weka

image

最近有讀者問到要怎麼在建立的分群結果之後,對後面新增的資料再依照前面的規則新增分群標籤。這就讓我想起來資料探勘課本裡面常常提到的一個機器學習議題:無監督式的監督學習 (Unsupervised Supervised Learning),或是成為不需訓練目標的分類法 (Classification wihtout labels),這篇就叫它作無監督分類器(Unsupervised Classification)。這個做法大多都是將分群結果作為分類的目標標籤,再以此建立分類模型。這種做法聽起來難度挺高的,不過實際在Weka中,我們只要動點巧思,不用寫任何程式,就可以實作這個高級分類技巧。這篇就來介紹一下如何實作無需監督的分類器吧。

(more...)

分類與預測:貝氏網路 / Classification and Prediction: BayesNet

分類與預測:貝氏網路 / Classification and Prediction: BayesNet

image

這是巨量資料探勘與統計應用課程的投影片「分類與預測:貝氏網路」。本單元是屬於系列課程中「資料預測級」的第一個單元,處理資料類型是從「類別」來預測「類別」類型的資料。貝式網路(BayesNet)是一種能夠表示變項間因果關係的機率模型,原理簡單、計算速度快,不僅可以用來預測結果,還能推理可能的原因。貝式網路是早期專家決策支持系統最常使用的模型,例如可以用來協助醫生找尋病因。本單元先用簡單「吸菸可能造成生病」的例子來說明貝式網路的運作方式,再來使用Weka來建立貝式網路結構、準備訓練集跟測試集、顯示貝式網路模型以及預測結果。本單元使用了四個我自製的工具來搭配Weka實作貝式網路預測,單元內包含了三個實作學習單跟一份測驗,供同學邊看邊練習。

(more...)

AI能夠告訴你未來?用Weka實作多變項時間序列預測 / Time Series Forecasting with Weka

布丁布丁吃布丁

AI能夠告訴你未來?用Weka實作多變項時間序列預測 / Time Series Forecasting with Weka

image

這是本學期我在政大圖檔所專題討論課程中介紹的內容,主題是「用Weka實作多變項時間序列預測」。傳統的時間序列分析(time series analysis)著重於以統計為主的ARIMA模型,分析過程著重於模型的選擇與判斷,一般僅以時間變項進行預測。Weka則是從資料探勘中迴歸(regression)的角度來實作時間序列預測(time series forecasting),使用的預測演算法可以是線性迴歸(Linear Regression)、類神經網路預測(MultilayerPerceptron)、或支持向量機迴歸(SMOreg),甚至可以加入疊加變項(overlay),就能實作多變項的時間序列預測。

本文除了放上我在專題演講的投影片之外,也將使用Weka進行時間序列預測的做法整理出來,供大家一步一步操作、學習。

(more...)

AI解籤不用1秒,廟公要失業了嗎?Weka的中文自動評分:預測詩籤的等第 / Automatic Chinese Text Scoring in Weka: Rating Fortune Slips

AI解籤不用1秒,廟公要失業了嗎?Weka的中文自動評分:預測詩籤的等第 / Automatic Chinese Text Scoring in Weka: Rating Fortune Slips

image

人工智慧要為非結構性的文本型資料評分,要評到精準是很難,但如果只是簡單地給個評分的話,其實是非常簡單的事情,不需要寫任何程式碼。繼我之前寫的「Weka試跑文本評分」,這次我一樣直接使用Weka來為「雷雨詩籤百首」中的籤文與等第建模,做到Weka看到「一舟行貨好招邀 積少成多自富饒 常把他人比自己 管須日後勝今朝」就知道是「上吉」。此外,還能透過特徵選取(select attributes)功能來篩選出影響等第的籤文關鍵字喔。

(more...)

資料聚類:分群 / Clustering

資料聚類:分群 / Clustering

image

這是巨量資料探勘與統計應用課程的投影片「資料聚類:分群」。本單元是屬於系列課程中的「資料敘述級」,處理資料類型主要是「連續」類型資料,不過其實Weka的K平均法也能處理「類別」資料就是了。

本單元的「分群技術」屬於「資料探勘」(data mining)領域的其中一個主題,而此技術是繼前面統計圖表、資料的中心與離度之上,可用於描述多維度、超大量複雜資料的有效方法。如果你拿到一份複雜的資料,不知道該怎麼解析它的時候,不妨先丟進分群跑看看資料會有什麼特徵吧。

我為了這個單元開發了「Weka分群結果分析器」,可以搭配Weka中K平均法分群一起使用。這個單元包含了四個實作學習單,供同學邊看邊練習。

(more...)

聚焦於你感興趣的關聯規則:Weka的HotSpot演算法 / Association Rule Mining with Specific Right-Hand-Side: HotSpot Algorithm in Weka

布丁布丁吃布丁

聚焦於你感興趣的關聯規則:Weka的HotSpot演算法 / Association Rule Mining with Specific Right-Hand-Side: HotSpot Algorithm in Weka

image

說到資料探勘(data mining),大部分的應用都是指購物籃分析(market basket analysis)中的關聯規則分析(association rule mining),也就是Apriori演算法。但傳統的Apriori有著許多限制:難以處理多維度資料、不能處理連續型的數值資料,最重要的是,研究者所感興趣的結果往往難以被探勘出來。後來我找到了另一種關聯規則分析演算法:HotSpot,它不僅可以解決上述Apriori所遭遇的問題,我還用AutoIT額外撰寫了資料整理的程式,使得HotSpot能夠呈現更多我們所關住的結果。

(more...)

Weka鳥的動圖 / Spin Animation of Weka Bird

布丁布丁吃布丁

Weka鳥的動圖 / Spin Animation of Weka Bird

image

繼上次我做了一個縮小版的Weka動圖之後,因應朋友想看高解析度動圖的需求,我又作了兩個Weka的GIF動圖。總覺得很有趣,擺上來做個記錄。

(more...)

以AutoIT實作Weka預測執行檔 / Making Predictions with Weka Executable File: an AutoIT Application

以AutoIT實作Weka預測執行檔 / Making Predictions with Weka Executable File: an AutoIT Application

image

繼前一篇使用指令列來操作Weka進行預測之後,這一篇就要用AutoIT來操作Weka進行預測,並以AutoIT將預測結果傳送給其他程式,例如傳送到Google表單中記錄預測結果。

(more...)

大家一起來預測吧!使用Weka指令列實作預測功能 / Making Predictions with Weka in Command Line

大家一起來預測吧!使用Weka指令列實作預測功能 / Making Predictions with Weka in Command Line

image

Weka除了用Explorer來預測未知之外,還能透過指令列直接操作,以便跟其他程式,像是AutoIT的Run()進行整合。這篇就是要示範如何使用指令列來操作Weka進行SMOLibSVM兩種分類器的預測。

(more...)