手把手教你: 使用Oracle AutoML進行預測(實戰教程)

以下文章來源於甲骨文雲技術 ,作者甲骨文雲技術

昨天Oracle資料自治資料庫釋出了透過圖形介面進行AutoML(自動機器學習)的功能,這回真正做到不用學Python,零基礎進行分類預測與迴歸預測。今天我們就透過手把手教學的方式為大家介紹這項Oracle自治資料庫帶來的震撼功能。

1、建立Oracle自治資料倉庫

今天為大家介紹的是整合在Oracle ADW當中的自動機器學習技術,所以首先我們要建立ADW,您可以透過cloud。oracle。com註冊免費賬戶,獲得永久免費的ADW和ATP各一個,每個資料庫帶有20GB的永久免費儲存空間。

首先我們登入您的雲端賬戶,來到自治資料倉庫,透過點選下圖中紅色框所示按鈕,建立ADW。

建立ADW時,我們需要給出資料庫名稱,如下圖所示:

接下來設定登入資料庫時,admin使用者對應的口令,並且選擇軟體許可模式,一般情況下按照下圖所示選擇即可,除非您已經購買了Oracle資料庫企業版相關產品,否則請不要選擇左側的BYOL。

幾分鐘過後,我們就可以看到如下圖所示的建立成功介面,我們點選下圖中紅色框所示按鈕,進入ADW的控制檯。

2、建立機器學習使用者

ADW在建立之後,預設情況下我們接觸到的只有admin這個管理賬戶,如果我們想做機器學習的動作,我們需要建立普通的機器學習使用者。登入控制檯後,按照下圖中所示,建立使用者。

3、匯入資料

今天我們使用一份來自醫療科研機構的資料,透過訓練資料結合Oracle AutoML來建立和最佳化模型,從而對“中風”人群進行發病率的預測。關注我們的公眾號併發送“automl資料集”即可獲取實驗用的資料集。在今天的資料集當中,有兩個檔案:health_train。csv和health_test。csv,分別是訓練與測試用的資料集。

按照下圖所示,我們使用admin使用者登入SQL Developer Web。

然後使用下圖中紅框所示的資料匯入工具,匯入資料。

今天要匯入的資料是儲存在本地計算機的csv檔案,所以按照下圖所示選擇即可。

需要注意的是,預設情況下資料表將進入admin的schema下面。

看到下圖表示資料表匯入成功。

使用相同的方式,匯入另外一張資料表health_test到admin的schema。

因為一會兒我們操作剛匯入的兩張資料表是我們建立的機器學習使用者,所以現在要給這個機器學習使用者授予查詢表的許可權。

首先切換到SQL Developer Web,如下圖所示:

grant select any table to henry;

4、建立自動機器學習實驗環境

首先登入下圖所示的Oracle機器學習notebook。

需要注意的是,這裡使用的是我們剛剛建立機器學習使用者,而不是admin管理使用者。

登入之後,選擇下圖所示的AutoML,這是ADW中新加入的功能。

建立新的AutoML實驗環境,如下圖所示:

給出實驗環境名字,然後選擇資料表。

接下來選擇target欄位,在我們今天的例子當中,是否中風作為我們的要預測的結果,對於這種“是否”類的預測,我們選擇分類模型即可,如果是類似“價格”這樣的數值型預測,我們可以選擇迴歸模型。

在更多設定當中,我們可以設定模型的數量、執行的時間、所使用的服務級別以及具體模型等資訊。在這裡我選擇資料庫服務級別為“高階”,這樣可以更快完成模型的計算與最佳化。

在資料特徵部分,今天我們選擇了所有的欄位都參與計算,您可以根據具體情況對參與計算的欄位做增減,避免資料洩露的情況發生(關於資料洩露,我們在之前的機器學習內容中介紹過,您也可以在網路上進行詞條檢索以獲得更多資訊)。

接下來就可以進行自動機器學習了,來到螢幕右上角,啟動學習即可。

我們可以在速度與精度之間做出選擇。

在螢幕的右側,可以觀察當前模型訓練的進度。透過觀察我們可以發現,它會經歷模型選擇、自適應取樣、特徵選擇、模型最佳化等幾個過程。

根據資料量和資料庫服務級別的不同,計算時間也會有不同,當計算完成之後,會看到如下結果,可以看到各個模型的精度以及各個特徵對預測

5、建立Notebook進行預測

首先建立一個Notebook,點選左上角的選單按鈕進行建立。

接下來使用如下程式碼對health_test資料集中的資料進行預測,其中dt_5cfbee011b是我們在上一步得到的模型名稱,因為在上面的截圖中看到,各種模型的精度幾乎一樣,所以在本次實驗中,選擇哪個模型,對預測的結果影響不大。

透過下面程式碼,我們利用訓練好的模型對測試資料集進行預測,在測試資料集當中,每一條記錄都包含年齡、性別、BMI等資料,根據之前訓練好的模型來計算發生中風的可能性。

select PREDICTION_PROBABILITY(dt_5cfbee011b using GENDER,AGE,HYPERTENSION,HEART_DISEASE,EVER_MARRIED,WORK_TYPE,RESIDENCE_TYPE,AVG_GLUCOSE_LEVEL,BMI,SMOKING_STATUS) PROBABILITY,t。GENDER,t。AGE,t。HYPERTENSION,t。HEART_DISEASE,t。BMI,t。SMOKING_STATUSfrom admin。health_test t order by PROBABILITY desc;

因為是分類預測,所以可用PREDICTION獲得查詢結果(1或者0),也可以使用PREDICTION_PROBABILITY獲得預測可能性。在這個實驗中,使用可能性更適合這個預測場景。

透過上面的例子大家看到,在Oracle ADW當中透過機器學習進行預測,不需要去學習Python等程式語言,也不需要配置複雜的環境,只需要掌握簡單的SQL語法,人人都可以做資料分析與預測的工作。

大家可以將自己工作中的各種資料,比如Excel中的資料拿來做模型訓練,也許會有意想不到的收穫。

關注我們的公眾號,傳送“automl資料集”獲取今天實驗資料集,感謝您的關注,謝謝!

編輯:殷海英

相關文章