機器學習分為兩種最主要的模式,分別為監督式機器學習與非監督式機器學習,本篇文章會簡單介紹一下監督式機器學習以及常見的用法。
當你使用機器學習的過程中,需要有資料的「正確答案」,例如違約與否或是疾病檢查是陽性等等,大多數是需要人工標籤才能產生的資料,而學習的目的是透過這個正確答案來預測往後的數據,這個類型就是我們所稱的監督式機器學習。
常見的預測模型,例如大多數機器學習競賽都是監督式機器學習,其原因正如上方所提到的優點,容易評估模型的優劣,能夠較客觀的給出分數。
此外,自然語言處理(NLP)目前也是需要大量的已標籤語料庫,雖然有著非監督式機器學習的訓練方式,但主流還是以監督式為主。
一般會提及的模型幾乎都是監督式機器學習,例如決策樹、隨機森林、SVM,或是深度學習當中的物件辨識、神經網路等等,時下許多應用都是基於監督式機器學習。
我們延續上次使用的資料集,該資料集所預測的結果是數值,由官方文件所述是疾病級數(有任何關於資料的疑惑也可以參考官方文件,其他資料集也是練習時好用的工具!)。
我們先合併一份檔案方便觀察資料
total_data = pd.concat([dummies,pd.DataFrame(data.target,columns=["target"])],axis = 1)
total_data.head()
由於我們的目標是數值型變數,因此我們要選擇迴歸類型的模型,匯入決策樹的決策樹迴歸模型。
from sklearn.tree import DecisionTreeRegressor #匯入決策樹
DTR = DecisionTreeRegressor() # 將模型指派給DTR方便之後呼叫
DTR.fit(dummies,data.target) # 使用fit函數並放入(資料,答案)
接著我們就可以使用這個模型進行預測了
DTR.predict(total_data.iloc[0,:-1].values.reshape(1,-1)) # 預測第一筆資料
你應該會發現,預測的結果居然跟正確的答案一樣!?是模型很厲害嗎?其實是我們使用了訓練集當中的資料進行預測結果,這就像是你寫過一次的考卷,已經知道答案的情況下再寫一次,當然會給出十分接近甚至完全相同的答案!關於訓練、驗證、測試資料集的切分我們將在之後的章節介紹~