課程
九年級人工智慧:Python 與機器學習
用 Python、NumPy 和 pandas 訓練並評估經典的機器學習模型。
按順序學完各課。學完後,你能用資料結構和可重複使用的函式寫 Python。你能做向量加法,計算機率,並求出平均數和標準差。你能用 NumPy 和 pandas 載入、清理表格並畫圖表。你能給資料擬合一條直線,訓練邏輯迴歸、決策樹和 k近鄰分類器,並用 k均值給資料分群。你能計算準確率、精確率和召回率,發現過擬合,把模型和簡單基準比較,並展示環境資料集上的預測。
這些課怎麼用
- 從標著做這個的課開始。標題下面那一行你自己會了,再往下。
- 先玩遊戲。再做測驗。10題裡對8題就通過。練習紙在紙上。答案在最下面。
- 每一課都接上一課。每次實驗都記下:改了什麼,發生了什麼,為什麼。
- 程式課用免費的線上記事本寫 Python。只用老師允許的 AI 工具。AI 幫你寫的程式要能講清楚。分享的資料集裡不要放個人資料。
每一課都有遊戲、測驗和練習紙。
0/36
Python 程式設計
- 1語法複習用變數、條件和迴圈寫 Python。
- 使用變數、型別和 f-strings。
- 寫出 if、for 和 while 程式區塊。
- 讀 traceback,並改掉錯誤。
- 2資料結構在清單、元組、集合和字典這些資料結構裡做選擇。
- 讓每種資料結構做它最合適的事。
- 寫清單推導式和字典推導式。
- 把結構巢狀起來,用來存放紀錄。
- 3函式和模組編寫並測試可重複使用的函式。
- 使用預設參數和關鍵字參數。
- 用 assert 寫測試。
- 從模組匯入你的函式。
- 4資料腳本寫一個腳本來清理文字檔。
- 一行一行地讀檔案。
- 改掉壞列,跳過空白列。
- 把清理後的資料寫進新檔案。
機器學習要用的數學
- 5向量做向量加法,並求出點與點的距離。
- 把一個資料點寫成向量。
- 把向量相加,並乘上一個數。
- 計算歐氏距離和點積。
- 6機率計算簡單機率和條件機率。
- 計算一個事件的機率。
- 根據表格計算條件機率。
- 用擲硬幣的模擬來核對答案。
- 7統計求出平均數、變異數和標準差。
- 用手算和程式各算一遍。
- 說明標準差告訴你什麼。
- 按分散程度比較兩個資料集。
- 8數學實驗畫出資料,並描述它的分散程度。
- 畫直方圖。
- 畫散佈圖。
- 描述中心、分散程度和離群值。
資料科學
- 9NumPy用 NumPy 對整個陣列做運算。
- 建立陣列,並改變形狀。
- 用向量化運算,不用迴圈。
- 用索引和切片取陣列裡的數。
- 10pandas用 pandas 載入、篩選並分組表格。
- 把 CSV 讀進 DataFrame。
- 篩選列,選取欄。
- 分組並彙總資料。
- 11清理資料清理資料裡的遺漏值和錯誤型別。
- 找出遺漏值。
- 填上或刪掉,並說明你為什麼這樣選。
- 改掉錯誤的型別和重複的列。
- 12視覺化做出能回答問題的圖表。
- 按問題選對圖表。
- 標上座標軸,並加上標題。
- 找出一張誤導人的圖表並改掉。
機器學習基礎
- 13什麼是機器學習說明模型怎樣從資料裡學會一個規律。
- 比較寫規則和從資料裡學習。
- 說明模型、參數和訓練是什麼。
- 說出機器學習的三個真實用途。
- 14監督式學習和非監督式學習分辨監督式學習任務和非監督式學習任務。
- 說出監督式學習要用標籤。
- 說出非監督式學習不用標籤也能找到結構。
- 把 10 個任務分到這兩組裡。
- 15機器學習流程列出從資料到可用模型的步驟。
- 把步驟排好序:問題、資料、特徵、訓練、評估、部署。
- 說出每一步可能出什麼錯。
- 說出這些步驟為什麼要重複。
- 16比較機器學習任務把問題對應到迴歸、分類或分群。
- 說出每種任務預測什麼。
- 把 10 個問題對應到一種任務。
- 把一個問題改寫成另一種任務。
迴歸
- 17線性迴歸給資料擬合一條直線。
- 說明斜率和截距。
- 用 scikit-learn 擬合一條直線。
- 把這條直線畫在資料上。
- 18特徵選擇特徵並做縮放。
- 使用不止一個特徵。
- 把特徵縮放到同一個範圍。
- 給類別特徵做編碼。
- 19誤差用均方誤差度量誤差。
- 計算殘差。
- 計算均方誤差和平均絕對誤差。
- 畫出殘差,找出規律。
- 20預測數值訓練迴歸模型,並預測新的數值。
- 用一部分資料來訓練。
- 預測剩下的部分。
- 用真實的單位報告誤差。
分類
- 21邏輯迴歸訓練一個邏輯迴歸分類器。
- 說明它怎樣把一個分數變成機率。
- 訓練它,並預測機率。
- 改動門檻,再做比較。
- 22決策樹訓練決策樹,並讀懂它的劃分。
- 訓練一棵樹。
- 畫出它的劃分,並讀懂。
- 限制樹的深度,並比較分數。
- 23k近鄰用 k近鄰分類,並選出 k。
- 說明 k近鄰怎樣投票。
- 試幾個不同的 k。
- 說明為什麼縮放對 k近鄰很重要。
- 24訓練分類器在同一個資料集上比較三個分類器。
- 在同一次劃分上訓練全部三個。
- 比較它們的分數。
- 選一個,並說明為什麼。
非監督式學習
- 25相似度度量兩個樣本有多相似。
- 使用歐氏距離。
- 使用餘弦相似度。
- 在資料集裡找出最相似的項。
- 26k均值用 k均值分群給資料分組。
- 用手算走一遍 k均值。
- 在 scikit-learn 裡執行它。
- 畫出各個分群。
- 27選擇 k用手肘法選出分群的個數。
- 用幾個不同的 k 執行 k均值。
- 畫出手肘曲線。
- 檢查這些分群是否說得通。
- 28給樣本分組給資料集做分群,並描述每一組。
- 給一個真實資料集做分群。
- 彙總每一個分群。
- 給每一個分群起名字。
模型評估
- 29劃分訓練集和測試集劃分訓練集和測試集,並說明為什麼。
- 用 train_test_split 來劃分。
- 用驗證集來調整。
- 使用交叉驗證。
- 30準確率、精確率和召回率計算準確率、精確率和召回率。
- 做出混淆矩陣。
- 用它算出每一項指標。
- 選出適合這個問題的指標。
- 31過擬合比較訓練分數和測試分數,發現過擬合。
- 訓練一個會過擬合的模型。
- 畫出訓練分數和測試分數。
- 減輕過擬合,再做比較。
- 32簡單基準把模型和簡單基準比較。
- 做一個簡單基準:它總是猜最常見的答案。
- 把你的模型和它比較。
- 說明什麼時候一個模型不值得用。
機器學習專案
- 33選一個資料集選一個開放的環境資料集和一個問題。
- 找一個開放的天氣或空氣品質資料集。
- 寫一個它能回答的問題。
- 選擇迴歸或分類。
- 34準備和探索清理資料,並畫出主要規律。
- 清理資料。
- 畫出三個規律的圖表。
- 選擇特徵。
- 35訓練和比較訓練兩個模型,並把它們和簡單基準比較。
- 訓練兩個模型。
- 把它們和簡單基準比較。
- 檢查有沒有過擬合。
- 36預測環境狀況展示結果、局限和下一步。
- 展示你的結果和圖表。
- 說明模型的局限。
- 提出下一步。