iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
0

前一天我們介紹了監督式與非監督式學習,今天來介紹迴歸與分類問題。

Regression and Classification

講師接續上一堂課程的餐廳帳單例子來說明迴歸問題,我們來研究小費與帳單總金額之間的關係,假設我們要預測小費的金額,所以我們用不同特徵組合的數學函數來進行預測我們的目標值,一般在迴歸問題中,通常是使用均方誤差最小化預測的連續值與標籤的連續值之間的誤差,而在分類問題中,通常使用交叉熵最小化我們的預測類和標籤類之間的錯誤或錯誤分類。所以我們選擇使用總金額當作我們的標籤來查看預測結果,結果不是那麼的好,所以我們增加了性別的標籤來看說有沒有影響,而實際上做下來的結果是,帳單沒有因為性別的因素影響了小費的結果

Regression and Classification-1

這是講師在課程中舉出的一個例子,實際上自己在做機器學習的特徵工程時,要如何選擇資料當中的標籤,就要看你對於領域知識的了解,或著是可以使用當中的一種隨機森林方法來進行特徵選擇,選擇要的欄位以及樹的深度(n_estimators)、要迭代的次數(n_jobs),程式會自動找出適合的特徵選擇結果,以及每個特徵所得到的特徵重要性評分

feat_labels = ["item_1","item_2","item_3","item_4","item_5"]
forest = RandomForestClassifier(n_estimators=8, random_state=1, n_jobs=10)
forest.fit(X_train, y_train.astype('int'))

importances = forest.feature_importances_
indices = np.argsort(importances)[::-1]
for f in range(X_train.shape[1]):
     print("%2d) %-*s %f" % (f + 1, 30, feat_labels[indices[f]], importances[indices[f]]))
    
>>>
1) item_1		0.4
2) item_2		0.3
3) item_3		0.15
4) item_4		0.1125
5) item_5		0.0875

講師提到說做機器學習就是一個實驗,而迴歸或是分類問題都可以被認為是預測問題,跟非監督是學習剛好相反,再來要討論的是這些資料的來源從何而來?這些資料都是使用到結構化數據來做,我們可以進行分類:

  • 結構化數據指的是有嚴謹定義的行和列,就像關聯式資料庫(MySQL)的資料一樣,需要先定義欄位才能存放資料。
  • 半結構化數據指的是CSV、JSON格式或是XML標籤,同時具備欄位概念與欄位可拓展性。
  • 非結構化數據是未經整理過的資料,如文本、圖片、音檔、影片、PDF、網頁等等。

Regression and Classification-2

而一個常見的結構化數據來源是從資料倉儲當中取出來,資料倉儲有在前面的天數提到過(傳送門),這邊使用醫療資料集作為例子,假設我們想要預測寶寶什麼時候出生,可以在BigQuery中執行SQL語句來創建我們所需要的機器學習資料集。模型當中我們選擇母親的年齡,懷孕期間增加的體重,懷孕週數作為特徵標籤,而懷孕週數是一個連續的數字,是一個迴歸問題,所以從結構化數據中進行預測是非常普遍的,而這項資料集除了能預測懷孕週數,我們也能拿來預測嬰兒出生時的體重作為健康的指標,體重是連續的數字,所以也是迴歸問題,像這樣的例子很多,希望大家能夠熟悉迴歸問題和分類問題的例子。

Regression and Classification-3

今天先介紹到這,明天我們來介紹機器學習的模型與優化器。

參考資料與圖片來源


上一篇
[Day23] 認識監督式與非監督式學習
下一篇
[Day25] 認識常見的機器學習模型與優化器
系列文
透視Google Machine Learning的奧秘30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言