:::

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

3-cover-No_Code_Machine_Learning_Tools2.png

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

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


前言 / Introduction

The-elements-of-computational-thinking.png

圖1:運算思維 (圖片來源:Harimurti, et al.)

人工智慧與機器學習是一門專業的領域。要掌握人工智慧與機器學習,你除了需要有數學、邏輯、特定領域的專業知識外,通常還需要透過Python或R等各種程式語言來操作人工智慧與機器學習的不同技術。然而,我國在108年度將「運算思維」(Computational Thinking,見圖1)帶入科技領域課程的時候,教育部資訊及科技教育司司長郭伯臣強調「運算思維」的重點在於學會邏輯思考,而不只是讓學生複製程式並機器人動起來而已。「運算思維」強調的核心能力中,最重要的就是以「抽象化」(Abstraction)的角度來剖析問題、資料與解決方法。在人工智慧和機器學習相關資源蓬勃發展的今日,除了使用程式語言來分析資料之外,你也可以利用各種不用寫程式的機器學習工具,以抽象化的角度瞭解機器學習中常見的監督式學習和文本探勘的運作流程。

本篇挑選了五個各有特色的機器學習工具。包含了需要安裝在電腦上的桌面版工具,以及不必安裝、透過網頁即可上手的雲端工具。讓我們一起看看這些不用寫程式的機器學習工具能做到什麼事情吧。

一、桌面版的機器學習工具

1. 特殊模型探勘:Cortana

2022-0305-035907.png

圖2:Cortana LOGO (圖片來源:Cortana)

Cortana (圖2)是一個發掘資料中的區域模式(Local Patterns)。Cortana的特色是融合了一種泛用的子群組探勘(Subgroup Discovery)演算法,可以進行自由彈性的設定,從而實作多種不同的區域模式探勘(Local Pattern Discovery)。此工具可以處理多種資料類型,不論是輸入的特徵與目標特徵都可以為類別類型(Nominal)、數值類型(Numeric)、二元類型(Binary)。

2022-0305-035946.png

圖 3. Cortana 操作畫面 (圖片來源:CORTANA)

Cortana的獨門特色在於可以根據目標變項的資料類型與數量來使用多種不同的子群組探勘方法(如圖3)。一般子群組探勘演算法只能考慮一個目標變項,通常是類別類型、少數是數值類型,Cortana能夠同時處理多個目標變項,稱之為特殊模型探勘(Exceptional Model Mining)。目前特殊模型探勘主要用於社群分析領域,搭配社會網路分析技術來找出特殊規則。例如在描述導向社群偵測(Description-oriented Community Detection)的研究中,Atzmueller等人(2016; 2013)利用特殊模型探勘找出社群網站照片的地理位置和標註資訊之間的共同規則。Atzmueller 等人(2016)也以網路書籤共享資源系統為分析對象,找出了多種不同社群各自的共同規則。

2. 支援教學和研究:Weka

2022-0305-040011.png

圖 4. Weka LOGO (圖片來源:Weka)

Weka(圖4)是紐西蘭懷卡托大學機器學習實驗室(Machine Learning Group at the University of Waikato)發展的資料探勘工具,並以GUN授權發佈,是資料探勘領域中重要的自由軟體。Weka實作了許多發表於學術論文上的重要演算法。不僅適合作為學生學習資料探勘的好工具,也是進行演算法改良研究的平臺。2013年該實驗室推出了5週的線上教學課程MOOC「Data Mining with Weka」,有志學習資料探勘的同學可以試著進來上課看看。

2022-0305-040018.png

圖 5. Weka 操作畫面

Weka的另一個特色在於支援探索器(Explorer)、知識流(Knowledge Flow)、實驗器(Experimenter)以及指令模式(Simple Command)等不同的使用方式。探索器(Explorer)是Weka主要的圖形化操作界面(如圖5)。使用者可以利用選單選取和特定表單的形式,學習各種機器學習的操作。知識流則可以將Weka的各個元件組合成一連串的操作,並以管線(Pipeline)的形式呈現。透過管線的視覺化呈現,使用者可以明確看到資料的讀取、建模、測試與評估、以及最後的視覺化報表呈現。實驗器則可以用於安排大規模、長時間的大量建模任務。而最後的指令模式則可以配合Java程式來實作其他圖形化介面無法完成的功能。

2022-0305-040030.png

圖 6. Pentaho 軟體介面

此外,Weka也是商業智慧套裝軟體Pentaho (圖6)的機器學習核心元件。使用者可以利用Pentaho的OLAP技術匯聚來自多方的資料來源,並將資料交給Weka建模而產生報表。

3. 視覺化管線:KNIME

2022-0305-040047.png

圖 7. KNIME LOGO (圖片來源:KNIME)

KNIME(唸作「難」, 圖7)分析平臺(KNIME Analytics Platform)是一個開放原始碼的資料科學軟體。它整合了大量最新發展的資料科學與人工智慧技術,並轉化成一個又一個的方塊組件。使用KNIME讀取資料,你可已用於產生表格與圖表,或是基於預先建立好的模型來預測未知的數值。KNIME直觀、開放、而且程序整合各種最新發展的技術。KNIME致力促使每個人都可以理解資料、規劃資料科學工作流程、以及讓每個人共享可重複使用的組件。KNIME分析平臺是免費的桌面版軟體。除此之外,KNIME也有提供收費的KNIME伺服器版本,提供多人團隊協作使用。

2022-0305-040052.png

圖 8. KNIME 操作畫面

KNIME的運作方式涵蓋了整個資料探勘的流程(如圖8)。大致上可以分成前半段建立的蒐集與清理資料、建模與是集約化,以及後半段實務應用的佈署與管理、瞭解和最佳化。KNIME其中一個特點在於整合了大量的機器學習與人工智慧技術。在建立機器學習模型上,可以使用分類、迴歸、降維、分群、深度學習、基於樹的演算法、以及羅吉斯特迴歸(Logistic Regression)。而且可以搭配模型最佳化的技術,包括超參數最佳化、提升(Boosting)、袋裝(Bagging)、層疊(Stacking)、或是建立複雜的混合模型。為了確保模型的有效性,KNIME也提供了多種模型驗證的方法,包括正確率、R2、AUC與ROC,並可搭配交互驗證來確保模型的穩定性,避免過渡擬合。最後,KNIME也提供了解釋機器學習模型的方法,包括LIME、Shap與Shapley值,以及可互動的部分依賴圖和ICE圖。

二、雲端的機器學習工具

1. 專注數位人文:Voyant Tools

2022-0305-040111.png

圖 9. Voyant Tools LOGO (圖片來源:Voyant Tools)

Voyant Tools (圖9)是一個專門打造提供給文本閱讀和分析的網頁工具。它不僅是自由的開放原始碼軟體,也能夠支援數位人文的各種層級的分析。作為網頁工具,使用者在使用Voyant Tools的時候不僅不用安裝,甚至不需要註冊,打開即可在直觀且易用的界面上開始文本探勘的分析。您可以將自己的文本放入Voyant Tools中進行分析。它支援了各種文本格式,包括純文字、HTML、XML、PDF、RTF和MS Word。而且令人意外的是,Voyant Tools也能夠輸入中文文本,它會加入適當的斷詞處理後進行分析。

2022-0305-040117.png

圖 10. Voyant Tools 操作畫面

載入您想要分析的文本後,Voyant預設會提供以下五種分析工具 (如圖10):

  1. 文字雲(Cirrus):視覺化展現出文本中出現頻率較高的文字或詞彙。
  2. 閱讀器:顯示輸入文本的內容。顯示的文本內容會隨著目前分析的焦點而改變。
  3. 趨勢:展現特定關鍵詞在輸入文本中出現的分佈概況。
  4. 摘要:對於目前輸入的文本進行各種指標的統計。包括了文字數量、文字種類的數量、最長的文本最短的文本、最高和最低的詞彙密度、每個句子的平均文字數量、最常用的文字、顯著的頻率峰值和獨特的文字等等。
  5. 上下文:上下文或成為關鍵字所在情境(Keywords in Context)工具可顯示特定關鍵字在文本中出現的所在位置,以及其前後的文本,也就是上下文。它可以幫助使用者仔細觀察該關鍵字在不同情境下的使用方法。

除此之外,Voyant Tools內建了28種不同的工具來提供文本視覺化分析,並有大量文件供專業使用者進一步探索。

2. 雲端大數據商業方案:Cloud AutoML Vision

2022-0305-040159.png

圖 11. Google Cloud AutoML Vision LOGO (圖片來源:Google Cloud)

Google的Cloud AutoML Vision(簡稱AutoML, 圖11)讓僅有部分機器學習知識的開發者能夠訓練高品質的模型,以滿足他們的需求。AutoML作為Google統一的機器學習平臺Vertex AI的一部分,它能夠自動地訓練視覺化(包括圖片和影像)、文字、以及結構化的資料。

2022-0305-040206.png

圖 12. Google Cloud AutoML Vision 圖片分類操作畫面

以圖片分類為例(如圖12),您可以輸入為整張圖片進行分類的資料集,或是以方框標示圖片中物件的資料集。接著便可以此資料集進行訓練、測試、和驗證機器學習的模型。在這種監督式學習的使用情境下,您所建立的模型可以識別圖片的模式和內容。以下是整個機器學習的標準工作流程:

1.收集資料:根據您想要達到的結果,決定訓練和測試模型所需的資料集。

2.準備您的資料:確保您的資料格式正確,並且附上了合適的分類標籤。

3.訓練:設置參數並進行模型的建置。

4.評估:檢視模型指標來評估模型的準確性,包括精確度、召回率與ROC。

5.部署和預測:為您建置的模型產生REST API接口,以提供其他應用整合取用。


結語 / Wrap up

本篇介紹了不用寫程式的機器學習工具,的確已經可以讓人用來處理許多日常會碰到的問題。但遇到更為複雜與專精的領域,或是面臨巨量資料的處理時,我們還是需要回到程式語言來處理更進階的問題。

不用寫程式的機器學習工具只是一個拋磚引玉的起點。透過這些工具,學生不僅是學到了將問題和資料進行抽象化的能力,也一併學習了人工智慧與機器學習在資料處理和演算法的抽象概念。有了這些抽象概念作為基礎,未來在面對Python或R等各種程式語言時,學生也能夠將一行又一行的程式語言轉換成人工智慧與機器學習運作流程的各個抽象概念,進而更容易利用程式語言掌握人工智慧與機器學習技術吧。


參考資料 / Reference

  • Bakos, G. (2013). KNIME Essentials: Perform accurate data analysis using the power of KNIME. Birmingham: Packt Publishing.
  • Deshpande, A., Kumar, M., & Chaudhari, V. (2020). Hands-on artificial intelligence on Google Cloud Platform: build intelligent applications powered by TensorFlow, Cloud AutoML, BigQuery, and Dialogflow. Retrieved from https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&db=nlabk&AN=2391880 
  • Duivesteijn, W., Feelders, A. J., & Knobbe, A. (2016). Exceptional Model Mining. Data Mining and Knowledge Discovery, 30(1), 47-98. doi:10.1007/s10618-015-0403-4
  • Sampsel, L. J. (2018). Voyant Tools. Music Reference Services Quarterly, 21(3), 153-157. doi:10.1080/10588167.2018.1496754
  • Witten, I. H., & Frank, E. (2009). Data Mining: Practical Machine Learning Tools and Techniques (2nd ed.). San Diego; Los Angeles: Elsevier Inc. Retrieved from http://public.eblib.com/choice/PublicFullRecord.aspx?p=234978 

那麼這次不用寫程式的機器學習工具的文章就到這裡了。寫到最後,我來做個問卷調查:

你喜歡那個不用寫程式的機器學習工具呢?

  • A. Cortana: 我只認士官長跟Cortana的CP。
  • B. Weka: 紐西蘭秧雞好可愛。
  • C. KNIME: 複雜但潛力無窮。
  • D. Voyant Tools: 簡單但就是好用。
  • E. Google AutoML Vision: 啟動Google超能力的關鍵是魔法小卡。
  • F. 其他:我都用其他工具。

歡迎在下面的留言處跟大家分享你的想法。你的意見都是我繼續分享的動力喔!

如果你覺得我這篇實用的話,請幫我在AddThis分享工具按讚,或是將這篇分享到Facebook等社群媒體吧!想在社群媒體追蹤我的話,歡迎到我的Facebook粉絲專頁「布丁布丁吃什麼?」按個讚喔!

不知道這篇文章有沒有讓你吃到什麼有趣的東西呢?我是布丁,期待下次見!