# 作業二 : 開放資料 AI 分析 > 作者:黃柏豪 > 學號:D1249756 > Email: rick22630773@gmail.com > [name=alpha lucio] > [time=Wed, Oct 4, 2023 8:21 PM] ## 前言 此為逢甲大學大一計算機概論的課堂作業,使用 RapidMiner 作為分析工具。 這份文件是一個教學說明,讓大家可以跟著以下步驟去試驗我所做的 AI 分析。 ## 目錄 :::spoiler 點選即打開 [TOC] ::: --- ## 資料介紹 選用的資料為台中氣候站的監測資料,時間點為 2022 全年度,每筆資料的紀錄時間以天為單位。 :::info 臺中氣候站站點資料一覽: - 站碼:467490 - 中文站名:臺中 - 高度:84.04 - WGS84十分位經度座標:120.6841 - WGS84十分位緯度座標:24.1457 - 城市:臺中市 - 地址:北區精武路295號 - 區域名稱:中區 ::: ### 採計的資料類別 | 採計資料 | 英文縮寫 | 單位名稱 | | -------- | -------- | -------- | | 觀測時間 | ObsTime | 天(Day) | | 測站氣壓 | StnPres | 百帕(hPa)| | 海平面氣壓 | SeaPres | 百帕(hPa) | | 測站最高氣壓 | StnPresMax | 百帕(hPa) | | 測站最低氣壓 | StnPresMin | 百帕(hPa) | | 氣溫 | Temperature | 攝氏(℃) | | 最高氣溫 | T Max | 攝氏(℃) | | 最低氣溫 | T Min | 攝氏(℃) | | 露點溫度 | Td dew point | 攝氏(℃) | | 相對濕度 | RH | 百分比(%) | | 最小相對濕度 | RHMin | 百分比(%) | | 風速 | WS | 公尺 / 每秒 ( ㎧ ) | | 日照時數 | SunShine | 小時(hr) | | 日照率 | SunshineRate | 百分比(%) | | 總雲量 | Cloud Amount | 十分量(0~10) | | 地溫(離地0~100cm) | TxSoil | 攝氏(℃) | | 降雨量 | Precp | 毫米(mm) | ### 檔案出處 [CODIS 氣候資料服務系統](https://codis.cwb.gov.tw/StationData) [氣象資料的特徵與意義(官方說明文件)](https://codis.cwb.gov.tw/pdf_data/Readme.pdf?1696488894852) [文章使用的數據檔案(Excel CSV.),存於 Google 雲端](https://drive.google.com/file/d/19Q_CfEkbF-fi3fzXeR_s3vCUrwwki6Ep/view?usp=sharing) ## 分析目標 利用課堂所學的機器學習,來讓 AI 去預測未來會不會下雨 相當於製作一個的極簡易版本的下雨預報 ## 分析流程 ### 檔案下載與整理 1. 從 **CODIS 氣候資料服務系統**中找到臺中市的氣象站 ![](https://hackmd.io/_uploads/H1Cjhy3lp.png) 2. 找到**月報表逐日資料**,下載2022年12個月份的 CSV 檔案 ![](https://hackmd.io/_uploads/rkphhJneT.png) 3. 將全部的檔案合併成一份 4. 將非上述 [採計的資料類別](#採計的資料類別)、資料的英文名稱全部刪除,以免影響之後 RapidMiner 的檔案讀取 5. 尋找並以 0 取代所有包含 T 或 X 的欄位 ![](https://hackmd.io/_uploads/rJP0ighxT.png) 6. 在整份資料的最右邊的第2行打上 Excel 的判斷公式,資料欄位為降雨量數據的第一行,此欄資料名稱設為**是否降雨** $$=IF( 資料欄位>0, "Yes", "No" )$$ 7. 向下拉動自動填入的方格,完成判斷該日是否為下雨天的步驟 :::success 到此,我們已經完成檔案的下載與整理步驟了。 ::: ### RapidMiner 配置 1. 下載 RapidMiner ( 本文使用 10.2.0 win64 版本 ),登入帳號 3. 在左下角運算符搜尋框中搜尋 Naive Bayes,拖入流程視窗中 ![](https://hackmd.io/_uploads/HyvYC12ea.png) 5. 在右下角的幫助視窗中點選 Jump to Tutorial Process ![](https://hackmd.io/_uploads/r1dxJg2e6.png) 6. 點選 Apply Naive Bayes to the Iris Data Set ![](https://hackmd.io/_uploads/Sk2xkg2lT.png) 7. 刪除 Retrieve ![](https://hackmd.io/_uploads/rJKmyx2ga.png) 8. 在左下角運算符搜尋框中搜尋 Read CSV.,拖入流程視窗中 ![](https://hackmd.io/_uploads/r1MDkl2l6.png) 10. 點選 ReadCSV.,在右上角的參數中點選導入配置嚮導 ![](https://hackmd.io/_uploads/SJFOJl3gp.png) 11. 點選我們整理好的 Excel 檔案 ![](https://hackmd.io/_uploads/r1ctkx2lp.png) ![](https://hackmd.io/_uploads/SyIc1xhxa.png) 12. 設定列的格式,更改角色與排除列,完成導入資料的設定: - 觀測日期設為 ID ![](https://hackmd.io/_uploads/SkMayehla.png) - 是否降雨設為 Label ![](https://hackmd.io/_uploads/HJhRJengp.png) - 排除降雨量(避免影響) ![](https://hackmd.io/_uploads/SyFAyl2gT.png) 13. 按下左上角的在本地運行流程(快捷鍵 F11) :::success 到此,我們已經完成所有分析流程的步驟了 ::: --- ## 分析結果 以下是將 Split Data 設為 **0.5 : 0.5** 的結果截圖 ![](https://hackmd.io/_uploads/SyGNZxnxa.png) 以下是將 Split Data 設為 **0.6 : 0.4** 的結果截圖 ![](https://hackmd.io/_uploads/ryLtFx2eT.png) 以下是將 Split Data 設為 **0.7 : 0.3** 的結果截圖 ![](https://hackmd.io/_uploads/BJYKtx2xp.png) 以下是將 Split Data 設為 **0.8 : 0.2** 的結果截圖 ![](https://hackmd.io/_uploads/r1knFenxT.png) ## 結果解釋 在使用上述資料進行分析之後,機器能夠正確判讀是否下雨的準確度約在 76% ~ 82% 之間游移。 我認為這結果貼近於我們的正常生活,畢竟天氣時刻都在轉變,AI 能為我們提供過去到現今天氣的總整,但對於未來的不確定性,仍無法做到 100% 準確預測。 ## 常見問題 ### RapidMiner 視窗配置錯誤,希望重新回復到最初設定 在查看(View)中找到**恢復默認視圖**,即可重置視窗設定 ![](https://hackmd.io/_uploads/SJvIwy3xp.png) ### 我的中文呢? 中文設定跑掉 在設置(Settting)中找到**偏好**,即可找到語言設定 然後在語言設置裡選為 **zh**,將軟體重啟即可轉為中文介面 ![](https://hackmd.io/_uploads/rkyQG8aeT.png) <style> html, body, .ui-content { background-color: #333; color: #ddd; } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { color: #ddd; } .markdown-body h1, .markdown-body h2 { border-bottom-color: #ffffff69; } .markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #fff; } .markdown-body img { background-color: transparent; } .ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a { color: white; border-left: 2px solid white; } .expand-toggle:hover, .expand-toggle:focus, .back-to-top:hover, .back-to-top:focus, .go-to-bottom:hover, .go-to-bottom:focus { color: white; } .ui-toc-dropdown { background-color: #333; } .ui-toc-label.btn { background-color: #191919; color: white; } .ui-toc-dropdown .nav>li>a:focus, .ui-toc-dropdown .nav>li>a:hover { color: white; border-left: 1px solid white; } .markdown-body blockquote { color: #bcbcbc; } .markdown-body table tr { background-color: #5f5f5f; } .markdown-body table tr:nth-child(2n) { background-color: #4f4f4f; } .markdown-body code, .markdown-body tt { color: #eee; background-color: rgba(230, 230, 230, 0.36); } a, .open-files-container li.selected a { color: #5EB7E0; } </style>