iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
1
Google Developers Machine Learning

Machine Learning with TensorFlow on Google Cloud Platform系列 第 10

鐵人賽Day10 - Launching into Machine Learning (4/4)

探索和創造ML資料集

主旨:了解資料的探索和分割

[GCP Lab實作-5]:探索和創造ML資料集

這個實作中,我們可以學到:

  • 使用 BigQuery 探索資料
  • 資料取樣和建立訓練、驗證、測試資料集
  • 建立一個基準(Benchmark)來評估ML模型的好壞

[Part 1]:探索資料,建立ML資料集、建立基準

  1. 如昨天的Lab(Part 1 & 2),在GCP中開啟Notebooks後,複製課程 Github repo 。

  2. 在左邊的資料夾結構,點進 training-data-analyst > courses > machine_learning > deepdive > 02_generalization ,然後打開檔案 create_datasets.ipynb

  3. 一打開後,便會看到這次lab的notebook,一開始當然是先把資料用BigQuery撈出來囉,這次的資料是紐約市的計程車費用。

  1. 接著就是開始探索資料,把旅程和車費的關係圖畫出來後,可以發現到有一些偏離很遠的點

  1. 把橋樑收費(tolls_amount)是0的資料拿掉不考慮看看。

  1. 使用 decribe() 方法,可以快速地看到每行的基本統計數字如平均值、標準差、最大最小值等等。

  1. 比較原始資料和拿到橋樑收費是0的資料的差異,可以看到後者的線性關係比較一致

https://ithelp.ithome.com.tw/upload/images/20190911/20120208dDBxprQZTR.png https://ithelp.ithome.com.tw/upload/images/20190911/20120208dhCRDdI6O4.png

  1. 由此可知,原始資料還是有很多地方需要清理,所以我們更進一步地對資料做前處理(Pre-process),根據下列規則,清理完資料後訓練資料如下圖示:
    • 紐約城市的經度和緯度約為-74和41,超過太多就不合理
    • 乘客數不可能是0個人
    • 把總額去掉改用車費和橋樑收費的加總當作新的車費總額,因為總額會包含小費,小費是因人而異的
    • 在司機將客人載到位前,是不會知道跑了多遠的,所以旅程距離(trip distance)不能當作訓練的一個輸入特徵,要將其拿掉
    • 丟棄掉時間戳,因為拿來當作雜湊函數的輸入以切分資料集了

https://ithelp.ithome.com.tw/upload/images/20190911/20120208LnTnWutpb0.png

  1. 最後就是建立基準值,供後續建構ML模型參考,這邊使用Haversine公式,可以將經度和緯度輸入後,算出一個距離,然後把平均車費總額除上平均距離作為一個基準(這裡沒有用到任何ML,只是簡單的數學概念)。

  1. 基準的RMSE如下,藉由這個方式,後續在建構ML模型的時候,依據模型當下得到的RMSE,就可以和基準值做比較,來看看模型是不是有比較好,而不會沒有東西參考。

特別值得一提的是,資料的探索與前處理其實是很花時間的,尤其當你不是該資料領域的專家或是有經驗的人士(Domain knowledge在這個階段就很重要),準備良好的資料對於後續訓練是有很大的幫助的。

到這邊就是進入ML子課程的一個段落囉!接下來就是建構模型與訓練的部分,也是大家常聽到的關鍵字:TensorFlow


今天介紹了探索和創造ML資料集,明天我們將開始第三個子課程Intro to TensorFlow


上一篇
鐵人賽Day9 - Launching into Machine Learning (3/4)
下一篇
鐵人賽Day11 - Intro to TensorFlow (1/6)
系列文
Machine Learning with TensorFlow on Google Cloud Platform30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言