譯者| 張怡
審校| 梁策孫淑娟
IDO(insight -driven organization)指洞察力驅動(以資訊為導向)的組織。要成為一個IDO,首先需要資料以及操作和分析資料的工具;其次是具有適當經驗的資料分析師或資料科學家;最後還需要找到一種技術或方法,從而在整個公司實施洞察力驅動的決策過程。
機器學習是一種能發揮數據優勢的技術。 ML流程首先使用資料訓練預測模型,訓練成功之後來解決與資料相關的問題。其中,人工神經網路是最有效的技術,它的設計源自於我們目前對人類大腦運作方式的理解。考慮到人們目前擁有的龐大運算資源,它透過大量資料訓練可以產生令人難以置信的模型。
企業可以使用各種自助化軟體和腳本完成不同的任務,從而避免人為錯誤的情況。同樣,你也完全可以基於數據進行決策來避免當中的人為錯誤。
使用人工智慧或機器學習來處理資料的企業僅是少數。美國人口普查局(US Census Bureau)表示,截至2020年,只有不到10%的美國企業採用了機器學習(主要是大公司)。
採用ML的障礙包括:
#自動ML平台雖然有著很光明的未來,但其覆蓋面目前還相當有限,同時關於自動ML能否很快取代資料科學家的說法也有爭論。
如果想要在公司成功部署自助化機器學習,AutoML工具確實是至關重要的,但流程、方法和策略也必須重視。 AutoML平台只是工具,大多數ML專家認為這是不夠的。
任何ML程序都從資料開始。一般認為,資料準備是ML過程中最重要的環節,建模部分只是整個資料管道的一部分,同時透過AutoML工具簡化。完整的工作流程仍需要大量的工作來轉換資料並將其提供給模型。資料準備和資料轉換可謂工作中最耗時、最令人不愉快的部分。
此外,用於訓練ML模型的業務資料也會定期更新。因此,它要求企業建構能夠掌握複雜的工具和流程的複雜ETL管道,因此確保ML流程的連續和即時性也是一項具有挑戰性的任務。
假設現在我們已經建置了ML模型,然後需要部署。經典的部署方法將其視為應用層元件,如下圖所示:
它的輸入是數據,輸出是我們得到的預測。透過整合這些應用程式的API來使用ML模型的輸出。僅從開發者的角度來看,這一切似乎很容易,但在考慮流程時就不是那麼回事了。在一個龐大的組織中,與業務應用程式的任何整合和維護都相當麻煩。即使公司精通技術,任何程式碼變更請求都必須通過多層級部門的特定審查和測試流程。這會對靈活性產生負面影響,並增加整個工作流程的複雜性。
如果在測試各種概念和想法方面有足夠的靈活性,那麼基於ML的決策就會容易得多,因此人們會更喜歡具有自助服務功能的產品。
如我們上面所看到的,資料是ML流程的核心,現有的ML工具取得資料並傳回預測結果,而這些預測也是數據的形式。
現在問題來了:
讓我們分析上述問題及其面臨的挑戰,從而找到ML解決方案。
維護ML模型和資料庫之間的複雜資料整合和ETL管道,是ML流程面臨的最大挑戰之一。
SQL是極佳的資料操作工具,所以我們可以透過將ML模型引入資料層來解決這個問題。換句話說,ML模型將在資料庫中學習並傳回預測。
透過API將ML模型與業務應用程式整合是面臨的另一個挑戰。
業務應用程式和BI工具與資料庫緊密耦合。因此,如果AutoML工具成為資料庫的一部分,我們就可以使用標準SQL語法來預測。接下來,ML模型和業務應用程式之間不再需要API集成,因為模型駐留在資料庫中。
在資料庫中嵌入AutoML工具會帶來很多好處,例如:
這樣一來,上述相對複雜的整合圖表變更如下:
#它看起來更簡單,也讓ML過程更流暢高效。
找到解決方案的下一步是來實作它。
為此,我們使用了一個叫做AI Tables的結構。它以虛擬表的形式將機器學習引入資料平台。它可以像其他資料庫表一樣創建,然後向應用程式、BI工具和DB客戶端開放。我們透過簡單地查詢資料來進行預測。
AI Tables最初由MindsDB開發,可以作為開源或託管雲端服務使用。他們整合了傳統的SQL和NoSQL資料庫,如Kafka和Redis。
AI Tables的概念使我們能夠在資料庫中執行ML流程,這樣ML流程的所有步驟(即資料準備、模型訓練和預測)都可以通過資料庫進行。
首先,使用者要根據自己的需求建立一個AI Table,它類似於一個機器學習模型,包含了與來源表的列等價的特徵;然後透過AutoML引擎自助完成剩餘的建模任務。後文也將舉例說明。
一旦建立了AI Table,它不需要任何進一步的部署就可以使用了。要進行預測,只需要在AI Table上執行一個標準SQL查詢。
你可以逐一或分批地進行預測。 AI Tables可以處理許多複雜的機器學習任務,如多元時間序列、偵測異常等。
對於零售商來說,在適當的時間保證產品都有適當的庫存是一項複雜的任務。當需求成長時,供給隨之增加。基於這些數據和機器學習,我們可以預測給定的產品在給定的日期應該有多少庫存,從而為零售商帶來更多收益。
首先你需要追蹤以下訊息,建立一張AI Table:
如下圖所示:
##(1)訓練AI Tables要建立和訓練AI Tables,你首先要允許MindsDB存取資料。詳細說明可參考MindsDB文件( MindsDB documentation)。 AI Tables就像ML模型,需要使用歷史資料來訓練它們。 下面使用一個簡單的SQL指令,訓練一個AITable: #讓我們分析這個查詢:在資料庫中,我們經常需要處理涉及高基數的多元時間序列資料的任務。如果使用傳統的方法,需要相當大的力氣來建立這樣的ML模型。我們需要將資料分組,並根據給定的時間、日期或時間戳記資料欄位對其進行排序。
例如,我們預測五金行賣出的鐵鎚數量。那麼,數據按商店和產品分組,並對每個不同的商店和產品組合作出預測。這就為我們帶來了為每個組創建時間序列模型的問題。
這聽起來工程浩大,但MindsDB提供了使用GROUP BY語句建立單一ML模型,從而一次訓練多元時間序列資料的方法。讓我們看看僅使用一個SQL指令是如何完成的:
所建立的stock_forecaster預測器可以預測某個特定商店未來會銷售多少商品。資料按銷售日期排序,並按商店分組。所以我們可以為每家商店預測銷售金額。
透過使用下面的查詢將銷售資料表與預測器連接起來,JOIN操作將預測的數量添加到記錄中,因此我們可以一次性獲得許多記錄的批量預測。
如想了解更多關於在BI工具中分析和視覺化預測的知識,請查看這篇文章。
傳統方法將ML模型視為獨立的應用程序,需要維護到資料庫的ETL管道和到業務應用程式的API整合。 AutoML工具儘管使建模部分變得輕鬆且直接,但完整的ML工作流程也仍需要經驗豐富的專家管理。其實資料庫已經是資料準備的優選工具,因此將ML引入資料庫而非將資料引入ML中是更有意義的。由於AutoML工具駐留在資料庫中,來自MindsDB的AI Tables構造能夠為資料從業者提供自助AutoML並讓機器學習工作流程得以簡化。
原文連結:https://dzone.com/articles/self-service-machine-learning-with-intelligent-dat
張怡,51CTO社群編輯,中級工程師。主要研究人工智慧演算法實現以及場景應用,對機器學習演算法和自動控制演算法有所了解和掌握,並將持續關注國內外人工智慧技術的發展動態,特別是人工智慧技術在智慧網聯汽車、智慧家居等領域的具體實現及其應用。
以上是基於智慧型資料庫的自助式機器學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!