chore(i18n): sync translations with latest source changes (chunk 1/1, 21 changes)

update-translations
localizeflow[bot] 2 weeks ago
parent 7f4f201295
commit 3149cbe0c5

@ -30,8 +30,8 @@
"language_code": "zh-HK"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-03T17:41:16+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T11:23:43+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "zh-HK"
},
@ -90,8 +90,8 @@
"language_code": "zh-HK"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T09:15:04+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T11:24:48+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "zh-HK"
},
@ -186,8 +186,8 @@
"language_code": "zh-HK"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T09:31:03+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T11:25:10+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "zh-HK"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "zh-HK"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T11:19:32+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "zh-HK"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-03T18:12:26+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "zh-HK"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T11:19:37+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "zh-HK"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T09:30:18+00:00",
@ -540,8 +552,8 @@
"language_code": "zh-HK"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T07:43:17+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T11:23:37+00:00",
"source_file": "README.md",
"language_code": "zh-HK"
},

@ -1,16 +1,18 @@
# 探索負責任人工智能工具箱
# 探索負責任 AI 工具箱
## 說明
## 指示
在本課程中,你學習了負責任人工智能工具箱,這是一個「開源、社群驅動的項目,旨在幫助數據科學家分析和改進人工智能系統。」在這次作業中,請探索 RAI 工具箱的一個[筆記本](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb),並在報告或演示中分享你的發現。
在本課程中,您學習了負責任 AI 工具箱,即一個「開放原始碼、社群驅動的專案,幫助資料科學家分析和改進 AI 系統。」在此作業中,請探索 RAI 工具箱的其中一個[筆記本](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb),並在報告或簡報中報告您的發現。
## 評分標準
| 評分標準 | 優秀 | 合格 | 需要改進 |
| -------- | ----- | ----- | -------- |
| | 提交了一份討論 Fairlearn 系統、運行的筆記本以及運行結果結論的報告或 PowerPoint 演示文稿 | 提交了一份報告但未包含結論 | 未提交報告 |
| 標準 | 優異 | 適當 | 需要改進 |
| -------- | --------- | -------- | ----------------- |
| | 提出一篇論文或簡報,討論 Fairlearn 的系統、所執行的筆記本,以及從執行中得出的結論 | 提出一篇沒有結論的論文 | 未提出論文 |
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言的文件應被視為權威來源。對於重要信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。
本文件經由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保翻譯的準確性,但請注意,自動翻譯可能存在錯誤或不準確之處。原文件的母語版本應被視為權威來源。對於重要資訊,建議聘請專業人工翻譯。我們不對因使用此翻譯而引致的任何誤解或誤釋負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,125 +1,136 @@
# 使用 Scikit-learn 建立回歸模型:四種回歸方法
# 使用 Scikit-learn 建立回歸模型:回歸的四種方式
![線性回歸與多項式回歸資訊圖表](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> 資訊圖表由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 製作
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
## 初學者注意
> ### [本課程也提供 R 版本!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### 簡介
線性回歸用於我們想要預測**數值**(例如房價、溫度或銷售額)時。
它的原理是找到一條最能代表輸入特徵與輸出關係的直線。
到目前為止,你已經透過南瓜價格數據集的樣本數據了解了什麼是回歸,並使用 Matplotlib 進行了可視化。
在本課程中,我們著重於理解概念,之後將探索更進階的回歸技術。
![線性回歸與多項式回歸資訊圖](../../../../translated_images/zh-HK/linear-polynomial.5523c7cb6576ccab.webp)
> 資訊圖由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 製作
## [課前小測驗](https://ff-quizzes.netlify.app/en/ml/)
現在,你準備深入了解機器學習中的回歸。雖然可視化可以幫助你理解數據,但機器學習的真正力量來自於 _訓練模型_。模型基於歷史數據進行訓練,能夠自動捕捉數據之間的依賴關係,並幫助你預測模型未曾見過的新數據的結果。
> ### [本課程亦以 R 語言提供!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### 介紹
在本課程中你將深入了解兩種回歸方法_基本線性回歸_ 和 _多項式回歸_,以及這些技術背後的一些數學原理。這些模型將幫助我們根據不同的輸入數據預測南瓜的價格
到目前為止,你已經透過使用本課程中將持續使用的南瓜定價資料集,探索了回歸是什麼。你也使用 Matplotlib 將資料視覺化
[![機器學習初學者 - 理解線性回歸](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "機器學習初學者 - 理解線性回歸")
現在你已準備好更深入探討機器學習中的回歸。視覺化讓你了解資料的意義但機器學習的真正威力來自於_訓練模型_。模型會根據歷史資料自動捕捉資料的依賴關係並允許你對從未見過的新資料進行預測。
> 🎥 點擊上方圖片觀看線性回歸的簡短視頻概述
本課程將介紹兩種回歸模型_基本線性回歸_及_多項式回歸_以及部分支撐這些技術的數學原理。這些模型將幫助我們根據不同的輸入資料預測南瓜價格
> 在整個課程中,我們假設學生的數學知識有限,並努力使內容對來自其他領域的學生易於理解,因此請留意筆記、🧮 數學提示、圖表以及其他學習工具以幫助理解。
[![ML 新手指南 - 理解線性回歸](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML 新手指南 - 理解線性回歸")
### 前置條件
> 🎥 點擊上方圖片觀看線性回歸的短片介紹。
到目前為止,你應該已熟悉我們正在研究的南瓜數據的結構。你可以在本課程的 _notebook.ipynb_ 文件中找到預加載和預清理的數據。在文件中,南瓜的價格以每蒲式耳顯示在一個新的數據框中。請確保你能在 Visual Studio Code 的內核中運行這些筆記本
> 在整個課程中,我們假設學員的數學知識基礎不多,致力於讓不同背景的學生都能理解,因此會有筆記、🧮 計算輔助說明、圖示與其他教學工具,幫助理解
### 準備工作
### 先決條件
提醒一下,你正在加載這些數據以便提出問題:
到現在你應該已熟悉我們目前分析的南瓜資料結構。你可以在本課程附帶的_notebook.ipynb_ 檔案中找到已預載且預處理過的資料。此檔案中,每蒲式耳南瓜價格會顯示在一個新的資料框內。請確保你能在 Visual Studio Code 的 Kernel 中執行這些筆記本。
- 什麼時候是購買南瓜的最佳時機?
- 我可以預期一箱迷你南瓜的價格是多少?
- 我應該購買半蒲式耳籃子還是 1 1/9 蒲式耳的箱子?
### 準備
讓我們繼續深入挖掘這些數據
提醒你,我們讀取這些資料是為了提出問題。
在上一課中,你創建了一個 Pandas 數據框,並用原始數據集的一部分填充它,將價格標準化為每蒲式耳。然而,通過這樣做,你只能收集到大約 400 個數據點,而且僅限於秋季月份。
- 什麼時候是買南瓜的最好時機?
- 我可以預期迷你南瓜一箱的價格是多少?
- 我該買半蒲式耳籃裝還是一箱 1 1/9蒲式耳盒裝
我們繼續深入挖掘這些資料。
查看本課程附帶的筆記本中預加載的數據。數據已預加載,並繪製了一個初步的散點圖以顯示月份數據。也許通過進一步清理數據,我們可以更詳細地了解數據的性質。
在前一堂課中,你建立了一個 Pandas 資料框,並以部分原始資料填充,價格以蒲式耳標準化。不過,這樣只能取得約 400 筆資料,而且只包含秋季的數據。
看看本課程附帶筆記本中預先載入的資料。資料已預載,且初步散點圖顯示每個月的資料。也許藉由更深入清理,我們能對資料特性得到更細緻的了解。
## 線性回歸線
如你在第一課中所學,線性回歸的目標是能夠繪製一條線以:
如你在第一課學,線性回歸的目標是繪製一條線以:
- **顯示變量關係**。顯示變量之間的關係
- **進行預測**。準確預測新數據點在該線上的位置
- **顯示變數間關係**。展現變數之間的關聯性
- **做出預測**。準確預測新資料點在該線上的位置
通常使用 **最小二乘回歸** 來繪製這種類型的線。'最小二乘' 的意思是回歸線周圍的所有數據點的距離平方後相加。理想情況下,最終的總和應該盡可能小,因為我們希望誤差數量低,即 `最小二乘`
**最小平方法回歸**常用於繪製這類線。名詞「最小平方法」指的是我們試圖使模型的總誤差最小化的過程。對每筆資料,我們測量實際點與回歸線之間的垂直距離(稱為殘差)
我們這樣做是因為我們希望建模一條線,使其與所有數據點的累積距離最小。我們還會在相加之前對項進行平方,因為我們關心的是其大小而不是方向。
我們平方這些距離主要有兩個原因:
> **🧮 數學展示**
>
> 這條線,稱為 _最佳擬合線_,可以用 [一個方程](https://en.wikipedia.org/wiki/Simple_linear_regression) 表示:
1. **忽略方向,只看大小**:想要將 -5 與 +5 的誤差視為相同,平方會讓所有數值變正數。
2. **懲罰異常值**:平方使較大的誤差得到加重,促使回歸線更貼近那些遠離的點。
最後,我們將所有平方誤差加總,我們的目標是尋找一條令這個和最小(最低值)的直線,因此稱為「最小平方法」。
> **🧮 數學說明**
>
> 這條稱為_最佳擬合直線_的線可用[公式](https://en.wikipedia.org/wiki/Simple_linear_regression)表示:
>
> ```
> Y = a + bX
> ```
>
> `X` 是 '解釋變量'`Y` 是 '依賴變量'。線的斜率是 `b`,而 `a` 是 y 截距,指的是當 `X = 0``Y` 的值。
>
>![計算斜率](../../../../2-Regression/3-Linear/images/slope.png)
> `X` 是「解釋變數」,`Y` 是「依賴變數」。線的斜率為 `b``a` 是 y 截距,即當 `X=0``Y` 的值。
>
> 首先,計算斜率 `b`。資訊圖表由 [Jen Looper](https://twitter.com/jenlooper) 製作
>![計算斜率](../../../../translated_images/zh-HK/slope.f3c9d5910ddbfcf9.webp)
>
> 換句話說,參考我們南瓜數據的原始問題:"根據月份預測每蒲式耳南瓜的價格"`X` 代表價格,`Y` 代表銷售月份。
> 首先計算斜率 `b`。資訊圖由 [Jen Looper](https://twitter.com/jenlooper) 製作。
>
>![完成方程](../../../../2-Regression/3-Linear/images/calculation.png)
> 換句話說,對應我們南瓜資料的原始問題:「預測某月每蒲式耳的南瓜價格」,`X` 指的是價格,`Y` 是銷售月份。
>
> 計算 Y 的值。如果你支付大約 $4那一定是四月資訊圖表由 [Jen Looper](https://twitter.com/jenlooper) 製作
>![完成公式](../../../../translated_images/zh-HK/calculation.a209813050a1ddb1.webp)
>
> 計算這條線的數學必須展示線的斜率,這也取決於截距,即當 `X = 0``Y` 的位置。
> 計算 Y 值。如果你付約 4 美元,肯定是四月!資訊圖由 [Jen Looper](https://twitter.com/jenlooper) 製作。
>
> 你可以在 [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) 網站上觀察這些值的計算方法。也可以訪問 [這個最小二乘計算器](https://www.mathsisfun.com/data/least-squares-calculator.html) 來查看數值如何影響線。
> 該方程式需展示斜率,斜率也依賴截距,或說 `X=0``Y` 所在的位置。
>
> 你可以在 [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) 網站看到計算方法,也可造訪 [此最小平方法計算機](https://www.mathsisfun.com/data/least-squares-calculator.html) 觀察數值如何影響直線。
## 相關性
另一個需要理解的術語是 **相關係數**,即給定 X 和 Y 變量之間的相關性。使用散點圖,你可以快速可視化這個係數。數據點整齊排列成一條線的圖表具有高相關性,而數據點在 X 和 Y 之間隨意分佈的圖表則具有低相關性
另一個要理解的名詞是給定 X 和 Y 變數間的**相關係數**。透過散點圖,你可以快速看出相關係數的大小。若點畫出一條整齊的線,則相關性高;若散布在 X 與 Y 之間散亂,相關性則低
一個好的線性回歸模型應該使用最小二乘回歸方法,並且回歸線的相關係數應該接近 1而非 0
理想的線性回歸模型是那些用最小平方法計算時,相關係數接近 1遠大於 0且有回歸線的模型
運行本課程附帶的筆記本,查看月份與價格的散點圖。根據你的視覺解讀,南瓜銷售的月份與價格之間的數據是否具有高或低相關性?如果你使用更精細的度量(例如 *一年中的天數*,即自年初以來的天數),結果是否會有所改變
執行本課程附帶的筆記本,觀察「月份對價格」散點圖。依你觀察散點圖的判斷,南瓜銷售月份與價格之間的資料是否顯示高度或低度相關?使用更細緻測量(例如年月日中第幾天)代替「月份」會改變結果嗎
在下面的代碼中,我們假設已清理數據,並獲得了一個名為 `new_pumpkins` 的數據框,類似於以下內容
下面的程式碼假設我們已清理資料,並獲得一個名為 `new_pumpkins` 的資料框,如下
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> 清理數據的代碼可在 [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) 中找到。我們執行了與上一課相同的清理步驟,並使用以下表達式計算了 `DayOfYear`
> 清理資料的程式碼可參閱 [`notebook.ipynb`](notebook.ipynb) 檔案。我們已同前一課執行相同的清理步驟,並用以下表達式計算出 `DayOfYear` 欄位
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
現在你已經了解了線性回歸背後的數學原理,讓我們建立一個回歸模型,看看是否可以預測哪種南瓜包裝的價格最划算。想要為節日南瓜田購買南瓜的人可能需要這些信息,以便優化南瓜包裝的購買
了解線性回歸背後的數學原理後,我們來建立一個回歸模型,看看是否能預測哪種南瓜包裝能獲得最佳價格。假如有人想買南瓜做節慶南瓜園,這資訊有助於他們優化採購計畫
## 尋找相關性
[![機器學習初學者 - 尋找相關性:線性回歸的關鍵](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "機器學習初學者 - 尋找相關性:線性回歸的關鍵")
[![ML 新手指南 - 尋找相關性:線性回歸的關鍵](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML 新手指南 - 尋找相關性:線性回歸的關鍵")
> 🎥 點擊上方圖片觀看相關性的簡短視頻概述
> 🎥 點擊上方圖片觀看關於相關性的短片介紹
上一課中,你可能已經看到不同月份的平均價格如下所示
前一課你可能看過,不同月份的平均價格長這樣
<img alt="按月份的平均價格" src="../../../../translated_images/zh-HK/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="各月份平均價格" src="../../../../translated_images/zh-HK/barchart.a833ea9194346d76.webp" width="50%"/>
表明應該存在某種相關性,我們可以嘗試訓練線性回歸模型來預測 `Month``Price``DayOfYear``Price` 之間的關係。以下是顯示後者關係的散點圖:
暗示出可能存在某種相關性,我們可以嘗試訓練線性回歸模型,預測 `Month``Price` 之間,或 `DayOfYear``Price` 之間的關係。以下為後者的散點圖:
<img alt="價格與一年中的天數的散點圖" src="../../../../translated_images/zh-HK/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="價格 vs 年中天數 散點圖" src="../../../../translated_images/zh-HK/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
讓我們使用 `corr` 函數檢查是否存在相關性:
我們用 `corr` 函數看看是否存在相關性:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
起來相關性非常小,`Month` 為 -0.15`DayOfYear` 為 -0.17,但可能存在另一個重要的關係。看起來不同的南瓜品種對價格的影響更大。為了確認這一假設,讓我們使用不同的顏色繪製每個南瓜品種。通過向 `scatter` 繪圖函數傳遞 `ax` 參數,我們可以將所有點繪製在同一圖表上
來相關性很小,對`Month`是 -0.15,對 `DayOfMonth` 為 -0.17,但可能存在另一重要關係。不同南瓜品種對應於不同價格群組。為證實此假設,讓我們用不同顏色畫出不同南瓜類別。將 `ax` 參數傳給 `scatter` 函數,可將所有點畫於同一張圖
```python
ax=None
@ -129,42 +140,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="價格與一年中的天數的散點圖" src="../../../../translated_images/zh-HK/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="價格 vs 年中天數 散點圖(多色)" src="../../../../translated_images/zh-HK/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
我們的調查表明,品種對整體價格的影響比實際銷售日期更大。我們可以通過柱狀圖看到這一點
調查顯示品種對總價格的影響比實際銷售日期大,我們可以用條形圖觀察
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="價格與品種的柱狀圖" src="../../../../translated_images/zh-HK/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="價格 vs 品種條形圖" src="../../../../translated_images/zh-HK/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
讓我們暫時只關注一種南瓜品種,即 'pie type',看看日期對價格有什麼影響:
目前暫時聚焦於單一品種「派用型」,看看日期對價格有何影響:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="價格與一年中的天數的散點圖" src="../../../../translated_images/zh-HK/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="價格 vs 年中天數 散點圖" src="../../../../translated_images/zh-HK/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
如果我們現在使用 `corr` 函數計算 `Price``DayOfYear` 的相關性,我們會得到類似 `-0.27` 的結果——這意味著訓練一個預測模型是有意義的。
若用 `corr` 函數計算 `Price``DayOfYear` 的相關係數,約為 `-0.27`,這表示訓練預測模型是有意義的。
> 在訓練線性回歸模型之前,確保數據清理是很重要的。線性回歸對缺失值的處理效果不佳,因此有必要刪除所有空單元格:
> 訓練線性回歸模型前,務必確保資料已清理乾淨。線性回歸對遺漏值不適用,故應刪除所有空白單元格:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
另一種方法是用相應列的平均值填充這些空值
另一種作法是用對應欄位的平均值填補空白
## 簡單線性回歸
[![機器學習初學者 - 使用 Scikit-learn 進行線性和多項式回歸](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "機器學習初學者 - 使用 Scikit-learn 進行線性和多項式回歸")
[![ML 新手指南 - 使用 Scikit-learn 的線性與多項式回歸](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML 新手指南 - 使用 Scikit-learn 的線性與多項式回歸")
> 🎥 點擊上方圖片觀看線性和多項式回歸的簡短視頻概述
> 🎥 點擊上方圖片觀看線性與多項式回歸的短片介紹
為了訓練我們的線性回歸模型,我們將使用 **Scikit-learn** 庫。
要訓練線性回歸模型,我們將使用**Scikit-learn**函式庫。
```python
from sklearn.linear_model import LinearRegression
@ -172,31 +183,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
首先,我們將輸入值(特徵)和預期輸出(標籤)分離到不同的 numpy 陣列中:
我們先把輸入值(特徵)與預期輸出(標籤)分別存入不同的 numpy 陣列中:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> 注意,我們需要對輸入數據進行 `reshape`,以便線性回歸包能正確理解它。線性回歸需要一個 2D 陣列作為輸入,其中陣列的每一行對應於輸入特徵的向量。在我們的情況下,由於我們只有一個輸入——我們需要一個形狀為 N×1 的陣列,其中 N 是數據集的大小。
> 注意,我們必須對輸入資料進行 `reshape`,才能讓線性回歸函式庫正確認識它。線性回歸期望輸入為二維陣列,每一列為一組特徵向量。由於我們只有一個輸入特徵,需將陣列調整為 Nx1 的形狀N 是資料集大小。
接著,我們需要將數據分為訓練集和測試集,以便在訓練後驗證模型:
接著,我們需將資料切成訓練和測試集,以便於訓練後驗證模型:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
最後,訓練實際的線性回歸模型只需要兩行代碼。我們定義 `LinearRegression` 對象,並使用 `fit` 方法將其擬合到數據上:
最後,訓練線性回歸模型只需兩行程式碼。我們先定義 `LinearRegression` 物件,再用 `fit` 方法套用到資料上:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` 對象在 `fit` 後包含所有回歸係數,可以通過 `.coef_` 屬性訪問。在我們的情況下,只有一個係數,應該大約是 `-0.017`。這意味著價格似乎隨時間略有下降,但幅度不大,每天大約下降 2 美分。我們還可以使用 `lin_reg.intercept_` 訪問回歸線與 Y 軸的交點——在我們的情況下,大約是 `21`,表示年初的價格。
`fit` 後的 `LinearRegression` 物件包含所有回歸的係數,可以使用 `.coef_` 屬性訪問。在我們的例子中,只有一個係數,大約為 `-0.017`。這意味著價格隨時間略微下降,但不多,大約每天下降兩仙。我們也可以使用 `lin_reg.intercept_` 訪問回歸與 Y 軸的交點 — 在我們的例子中約為 `21`,表示年初的價格。
為了查看模型的準確性,我們可以在測試數據集上預測價格,然後測量預測值與期值的接近程度。這可以使用均方誤差MSE指標完成,均方誤差是所有預期值與預測值之間平方差的平均值
為了查看我們模型的準確度,我們可以在測試數據集上預測價格,然後測量預測值與期值的接近程度。這可以使用均方誤差MSE指標進行,該指標是所有期望與預測值平方差的平均
```python
pred = lin_reg.predict(X_test)
@ -204,36 +215,37 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
我們的錯誤似乎集中在兩個點上,約佔 17%。表現不太理想。另一個衡量模型質量的指標是 **決定係數**,可以通過以下方式獲得:
我們的誤差約為 2 點,約為 17%。不太好。另一個模型質量指標是**決定係數**,可以這樣獲取:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
如果值為 0表示模型未考慮輸入數據並充當*最差的線性預測器*,即僅僅是結果的平均值。值為 1 則表示我們可以完美地預測所有期望的輸出。在我們的情況下,決定係數約為 0.06,這相當低。
```
若值為 0表示模型沒考慮輸入資料充當*最差線性預測器*,即輸出結果的均值。值為 1 表示我們能完全準確地預測所有期望輸出。在我們的例子中,係數約為 0.06,較低。
我們還可以繪製測試數據與回歸線,以更好地了解回歸在我們的情況下是如何工作的
我們也可以繪製測試數據與回歸線一起,更好地看回歸在我們案例中的效果
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="線性回歸" src="../../../../translated_images/zh-HK/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/zh-HK/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## 多項式回歸
另一種線性回歸是多項式回歸。有時候,變量之間存在線性關係,例如南瓜的體積越大,價格越高;但有時候這些關係無法用平面或直線來表示。
另一種線性回歸類型是多項式回歸。雖然有時候變數間有線性關係——例如南瓜體積越大,價格越高——有時這些關係不能用平面或直線表示。
✅ 這裡有[一些更多例子](https://online.stat.psu.edu/stat501/lesson/9/9.8),展示了可以使用多項式回歸的數據。
✅ 這裡有[更多例子](https://online.stat.psu.edu/stat501/lesson/9/9.8)展示可能使用多項式回歸的數據
再看看日期與價格之間的關係。這個散點圖看起來是否一定要用直線來分析?價格是否可能波動?在這種情況下,你可以嘗試使用多項式回歸。
再看看日期和價格的關係。這個散點圖是否必須用直線分析?價格不可能會波動嗎?在這種情況下,你可以試試多項式回歸。
✅ 多項式是可能包含一個或多個變量和係數的數學表達式。
✅ 多項式是可能由一個或多個變數及係數組成的數學表達式
多項式回歸會創建一條曲線,以更好地擬合非線性數據。在我們的情況下,如果在輸入數據中加入平方的 `DayOfYear` 變量,我們應該能用一條拋物線來擬合數據,該拋物線在一年中的某個點會有一個最低值
多項式回歸會創建曲線,更好地擬合非線性資料。在我們的例子中,如果將平方的 `DayOfYear` 變數加入輸入資料,我們應該能用一條拋物線來擬合數據,該曲線在年底某點有最低點
Scikit-learn 提供了一個有用的 [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline),可以將不同的數據處理步驟結合在一起。**管道**是一系列的**估算器**。在我們的情況下,我們將創建一個管道,首先向模型添加多項式特徵,然後訓練回歸:
Scikit-learn 包含一個有用的[pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline),用來組合不同的數據處理步驟。**pipeline** 是一連串的 **estimators**。在我們的例子中,我們將創建一個 pipeline先加入多項式特徵,然後訓練回歸:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -242,62 +254,62 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
使用 `PolynomialFeatures(2)` 表示我們將包含輸入數據中的所有二次多項式。在我們的情況下,這僅意味著 `DayOfYear`<sup>2</sup>,但如果有兩個輸入變量 X 和 Y這將添加 X<sup>2</sup>、XY 和 Y<sup>2</sup>如果需要,我們也可以使用更高次的多項式。
使用 `PolynomialFeatures(2)` 表示我們會包含所有二次多項式。在我們的例子中,這只是 `DayOfYear`<sup>2</sup>,不過給定兩個變數 X 和 Y會加入 X<sup>2</sup>、XY 和 Y<sup>2</sup>當然也可以使用更高次多項式。
管道可以像原始的 `LinearRegression` 對象一樣使用,例如我們可以 `fit` 管道,然後使用 `predict` 獲得預測結果。以下是顯示測試數據和近似曲線的圖表
pipeline 可像原始的 `LinearRegression` 物件一樣使用,即可以 `fit` pipeline然後用 `predict` 取得預測結果。下面的圖顯示測試數據與擬合曲線
<img alt="多項式回歸" src="../../../../translated_images/zh-HK/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/zh-HK/poly-results.ee587348f0f1f60b.webp" width="50%" />
使用多項式回歸,我們可以獲得稍低的 MSE 和稍高的決定係數,但提升並不顯著。我們需要考慮其他特徵!
利用多項式回歸,我們可以得到稍低的 MSE 和較高的決定係數,但差距不大。我們還需考慮其他特徵!
> 你可以看到南瓜價格最低點大約出現在萬聖節附近。你如何解釋這一現象?
> 你可以看到南瓜價格的最低點出現在萬聖節前後。你怎麼解釋這現象?
🎃 恭喜!你剛剛創建了一個可以幫助預測南瓜派價格的模型。你可能可以對所有南瓜類型重複相同的過程,但這樣會很繁瑣。現在讓我們學習如何在模型中考慮南瓜品種!
🎃 恭喜!你剛剛創建了一個可以幫助預測派用南瓜價格的模型。你大概也可以用相同方法,對其他南瓜品種做預測,但那會很繁瑣。現在,我們來學習如何讓模型考慮南瓜品種!
## 類別特徵
在理想情況下,我們希望能夠使用同一模型來預測不同南瓜品種的價格。然而,`Variety` 列與 `Month` 等列有所不同,因為它包含非數值值。這類列被稱為**類別特徵**。
理想狀況下,我們希望用同一模型預測不同南瓜品種的價格。但 `Variety` 欄位有別於 `Month` 之類的欄位,因為它包含非數值。這類欄位稱為**類別特徵**。
[![初學者的機器學習 - 使用線性回歸進行類別特徵預測](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "初學者的機器學習 - 使用線性回歸進行類別特徵預測")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 點擊上方圖片觀看有關使用類別特徵的簡短視頻概述
> 🎥 點擊上圖觀看短視頻概述類別特徵的使用
以下是平均價格如何隨品種變化的圖表
以下展示價格與品種的平均關係
<img alt="按品種劃分的平均價格" src="../../../../translated_images/zh-HK/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/zh-HK/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
為了考慮品種,我們首先需要將其轉換為數值形式,或者**編碼**。有幾種方法可以做到
要考慮品種,我們首先需要將它轉為數字形式,或稱**編碼**。有幾種方法
* 簡單的**數值編碼**會建立一個不同品種的表,然後用表中的索引替換品種名稱。這對於線性回歸來說不是最好的方法,因為線性回歸會將索引的實際數值加到結果中,並乘以某個係數。在我們的情況下,索引號與價格之間的關係顯然是非線性的,即使我們確保索引按某種特定方式排序
* **獨熱編碼**會用 4 個不同的列替換 `Variety` 列,每個列代表一個品種。如果某行屬於某品種,該列會包含 `1`,否則為 `0`。這意味著線性回歸中會有四個係數,每個南瓜品種一個,負責該品種的“起始價格”(或“附加價格”)。
* 簡單的**數字編碼**會建立品種表,然後用該表索引替代品種名稱。但這不適合線性回歸,因為線性回歸會將編碼數值直接乘以某係數加入結果中,若索引與價格間明顯非線性,即使你特定排序索引,也不合適
* **獨熱編碼One-hot encoding**會把 `Variety` 欄位換成 4 個不同欄位,每個品種一欄。如果該行為該品種,該欄為 1否則為 0。這意味著線性回歸將有四個係數分別對應每種南瓜品種代表該品種的「起始價格」或更確切說是「額外價格」)。
以下代碼展示了如何對品種進行獨熱編碼:
下面程式碼展示如何使用獨熱編碼:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
使用獨熱編碼的品種作為輸入訓練線性回歸,我們要正確初始化 `X``y` 數據
要用獨熱編碼的品種作為輸入訓練線性回歸,只要正確初始化 `X``y`
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
其餘代碼與我們之前用於訓練線性回歸的代碼相同。如果你嘗試一下,你會發現均方誤差差不多,但我們的決定係數大幅提高(約 77%)。為了獲得更準確的預測,我們可以考慮更多的類別特徵,以及數值特徵,例如 `Month``DayOfYear`。要獲得一個大的特徵數組,我們可以使用 `join`
其餘程式碼與之前訓練線性回歸的相同。若你試試看,會發現均方誤差差不多,但決定係數大幅提高(約 77%)。想要更準確預測,可以考慮更多類別特徵,也加入數字特徵,如 `Month``DayOfYear`。要組合成一個大特徵陣列,可以使用 `join`
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -305,69 +317,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
```
這裡我們還考慮了 `City``Package` 類型,這使得 MSE 降至 2.8410%),決定係數提高到 0.94
這裡也考慮了 `City``Package` 類型,使 MSE 降至 2.8410%),決定係數達 0.94
## 整合所有內容
## 結合所有
為了創建最佳模型,我們可以使用上述示例中的綜合數據(獨熱編碼的類別特徵 + 數值特徵)以及多項式回歸。以下是完整代碼供你參考
要打造最佳模型,可以用上述例子中組合(獨熱編碼類別 + 數字)資料搭配多項式回歸。這是完整程式碼供你方便使用
```python
# set up training data
# 設置訓練數據
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# 進行訓練和測試劃分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# 設置並訓練流程
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# 預測測試數據結果
pred = pipeline.predict(X_test)
# calculate MSE and determination
# 計算均方誤差和決定係數
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
```
應該能讓我們的決定係數達到接近 97%MSE=2.23(約 8% 的預測誤差)。
將給我們最佳決定係數接近 97%MSE=2.23(約 8% 預測誤差)。
| 模型 | MSE | 決定係數 |
|-------|-----|---------------|
| `DayOfYear` 線性 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多項式 | 2.73 (17.0%) | 0.08 |
| `Variety` 線性 | 5.24 (19.7%) | 0.77 |
| 所有特徵線性 | 2.84 (10.5%) | 0.94 |
| 所有特徵多項式 | 2.23 (8.25%) | 0.97 |
| 模型 | MSE | 決定係數 |
|-------|-----|---------------|
| `DayOfYear` 線性 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多項式 | 2.73 (17.0%) | 0.08 |
| `Variety` 線性 | 5.24 (19.7%) | 0.77 |
| 所有特徵 線性 | 2.84 (10.5%) | 0.94 |
| 所有特徵 多項式 | 2.23 (8.25%) | 0.97 |
🏆 做得好!你在一節課中創建了四個回歸模型,並將模型質量提高到 97%。在回歸的最後一部分中,你將學習如何使用邏輯回歸來確定類別
🏆 幹得好你在一課中創建了四個回歸模型並將模型質量提升至97%。在回歸的最後一章,你將學習邏輯回歸來判斷分類
---
## 🚀挑戰
此筆記本中測試幾個不同的變量,看看相關性如何影響模型準確性
這個筆記本中測試幾個不同變數,看看相關性如何對模型準確度產生影響
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## 回顧與自學
本課中,我們學習了線性回歸。還有其他重要的回歸類型。閱讀有關逐步回歸、嶺回歸、套索回歸和彈性網回歸技術的資料。一門值得學習的課程是 [斯坦福統計學習課程](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
本課我們學習了線性回歸。還有其他重要的回歸類型。閱讀逐步回歸、嶺回歸、套索回歸和彈性網回歸技術。有個優秀課程可深入學習:[史丹佛統計學習課程](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## 作業
[建立模型](assignment.md)
[建立模型](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。
本文件為使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。文件的原文版本應被視為權威來源。對於重要資訊,建議使用專業人工翻譯。我們不會對因使用本翻譯所引起的任何誤解或曲解承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,44 +1,44 @@
# 美食分類器 2
# Cuisine classifiers 2
這第二部分的分類課程中,你將探索更多分類數據的方法。同時,你也會了解選擇不同分類器所帶來的影響。
第二課分類課程中,你將探索更多分類數值資料的方法。你也會了解選擇不同分類器的影響。
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
### 前置條件
### 先備知識
我們假設你已完成之前的課程,並在這個四課程文件夾的根目錄中的 `data` 資料夾內擁有一個名為 _cleaned_cuisines.csv_ 的清理過的數據集。
我們假設你已完成先前課程並已在此 4 課資料夾根目錄的 `data` 資料夾中,準備好一份名為 _cleaned_cuisines.csv_ 的清理後資料集。
### 準備工作
我們已經將清理過的數據集載入到你的 _notebook.ipynb_ 文件中,並將其分割為 X 和 y 數據框,準備進行模型構建
我們已在你的 _notebook.ipynb_ 檔案中載入清理後的資料集,並將其分割成 X 和 y 的資料框,準備進行模型建立流程
## 分類地圖
之前,你已經學習了使用 Microsoft 的速查表來分類數據的各種選項。Scikit-learn 提供了一個類似但更細緻的速查表,可以進一步幫助你縮小選擇範圍(分類器的另一個術語是估算器)
之前,你已透過 Microsoft 的流程圖學習如何分類資料。Scikit-learn 提供了一個類似但更加細緻的流程圖,能協助你縮小估計器(另一種稱呼為分類器)的選擇範圍
![Scikit-learn 的機器學習地圖](../../../../4-Classification/3-Classifiers-2/images/map.png)
> 提示[在線訪問此地圖](https://scikit-learn.org/stable/tutorial/machine_learning_map/)並點擊路徑以閱讀相關文檔
![ML Map from Scikit-learn](../../../../translated_images/zh-HK/map.e963a6a51349425a.webp)
> 提示: [線上造訪此地圖](https://scikit-learn.org/stable/tutorial/machine_learning_map/) 並沿路徑點擊以閱讀文件
### 計
### 計
一旦你對數據有了清晰的理解,這張地圖非常有幫助,因為你可以沿著它的路徑進行決策
當你清楚掌握資料時,這張地圖非常有用,你可以沿著路徑“走”到決定點
- 我們有超過 50 樣本
- 我們希望預測一個類別
- 我們有標籤數據
- 我們的樣本少於 100K
- 我們有超過 50 樣本
- 我們想要預測一個類別
- 我們有標記資料
- 樣本數少於 10 萬筆
- ✨ 我們可以選擇 Linear SVC
- 如果這不起作用,因為我們有數值數據
- 我們可以嘗試 ✨ KNeighbors Classifier
- 如果這不起作用,嘗試 ✨ SVC 和 ✨ Ensemble Classifiers
- 若不行,因為我們有數值資料
- 我們可以嘗試 ✨ KNeighbors 分類器
- 若還不行,再試 ✨ SVC 和 ✨ 集成分類器
這是一條非常有幫助的路徑
這是一條非常實用的路徑可循
## 練習 - 分割數據
## 練習 - 分割資料
按照這條路徑,我們應該先導入一些需要使用的庫。
沿著這條路徑,我們應先匯入一些庫。
1. 入所需的庫:
1. 入所需的庫:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@
import numpy as np
```
1. 分割你的訓練和測試數據
1. 分割你的訓練與測試資料
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## 線性 SVC 分類器
支持向量聚類SVC是支持向量機家族中的一員以下可以了解更多。在這種方法中你可以選擇一個「核函數」來決定如何聚類標籤。「C」參數指的是「正則化」它調節參數的影響。核函數可以是[多種選項](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)之一;在這裡,我們將其設置為「線性」,以確保我們使用線性 SVC。概率默認為「false」在這裡我們將其設置為「true」以獲取概率估算。我們將隨機狀態設置為「0」以打亂數據以獲取概率。
支持向量聚類 (SVC) 是支持向量機家族的子集(下方可查看更多關於 SVM 介紹。此方法中您可選擇「核函數」決定標籤如何聚類。「C」參數指的是「正則化」用來調節參數的影響力。核函數可從多種選擇中設定詳見[多種核函數](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC));這裡我們設為 'linear' 確保使用線性 SVC。機率預設為 'false',這裡設為 'true' 以獲得機率估計。random_state 設為 '0' 用來打亂資料以取得機率。
### 練習 - 用線性 SVC
### 練習 - 使用線性 SVC
首先創建一個分類器的陣列。隨著測試的進行,你將逐步添加到這個陣列中
首先建立一個分類器陣列,隨著測試會逐漸加入分類器
1. 從線性 SVC 開始:
1. 先從 Linear SVC 開始:
```python
C = 10
# Create different classifiers.
# 建立不同的分類器。
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. 使用線性 SVC 訓練你的模型並打印報告:
2. 使用 Linear SVC 訓練模型,並輸出報告:
```python
n_classifiers = len(classifiers)
@ -107,19 +107,19 @@
## K-Neighbors 分類器
K-Neighbors 是「鄰居」家族的機器學習方法的一部分,可以用於監督學習和非監督學習。在這種方法中,預定義了一些點,並在這些點周圍收集數據,以便可以為數據預測通用標籤
K-Neighbors 屬於「鄰居」系列的機器學習方法,可用於監督式與非監督式學習。此方法會建立預定數量的點,再根據這些點聚集資料,從而對資料做出一般化標籤預測
### 練習 - 用 K-Neighbors 分類器
### 練習 - 用 K-Neighbors 分類器
之前的分類器表現良好,並且與數據配合得很好,但也許我們可以獲得更好的準確性。嘗試使用 K-Neighbors 分類器。
前一個分類結果不錯並且與資料相符,但也許還能得到更佳準確度。試試 K-Neighbors 分類器。
1. 在分類器陣列中添加一行(在 Linear SVC 項目後添加逗號):
1. 在分類器陣列加入一行(在 Linear SVC 之後加逗號):
```python
'KNN classifier': KNeighborsClassifier(C),
```
結果稍差一些
結果稍微差一點
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,23 +136,23 @@ K-Neighbors 是「鄰居」家族的機器學習方法的一部分,可以用
weighted avg 0.76 0.74 0.74 1199
```
✅ 了解 [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
✅ 了解更多 [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## 支持向量分類器
支持向量分類器是[支持向量機](https://wikipedia.org/wiki/Support-vector_machine)家族的一部分用於分類和回歸任務。SVM 將「訓練樣本映射到空間中的點」,以最大化兩個類別之間的距離。隨後的數據被映射到這個空間中,以便預測它們的類別。
支持向量分類器屬於[支持向量機](https://wikipedia.org/wiki/Support-vector_machine)家族的機器學習方法用於分類和回歸任務。SVM 透過「將訓練範例映射到空間點」的方式,最大化兩類別之間的距離。後續資料映射到此空間,以便預測其類別。
### 練習 - 用支持向量分類器
### 練習 - 使用支持向量分類器
讓我們嘗試使用支持向量分類器來獲得更好的準確性
讓我們試著用支持向量分類器提升準確度
1. 在 K-Neighbors 項目後添加逗號,然後添加以下行:
1. 在 K-Neighbors 項目後加逗號,再加入此行:
```python
'SVC': SVC(),
```
結果相當不錯
結果相當
```output
Accuracy (train) for SVC: 83.2%
@ -169,11 +169,11 @@ K-Neighbors 是「鄰居」家族的機器學習方法的一部分,可以用
weighted avg 0.84 0.83 0.83 1199
```
✅ 了解 [支持向量](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ 了解更多 [支持向量](https://scikit-learn.org/stable/modules/svm.html#svm)
## 集成分類器
即使之前的測試結果相當不錯,我們還是沿著路徑走到最後。讓我們嘗試一些「集成分類器」,特別是隨機森林和 AdaBoost
即使前面測試結果相當不錯,讓我們一路沿著路徑嘗試集成分類器,特別是隨機森林和 AdaBoost
```python
'RFST': RandomForestClassifier(n_estimators=100),
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ 了解 [集成分類器](https://scikit-learn.org/stable/modules/ensemble.html)
✅ 了解更多 [集成分類器](https://scikit-learn.org/stable/modules/ensemble.html)
這種機器學習方法「結合了多個基估算器的預測」,以提高模型的質量。在我們的例子中,我們使用了隨機樹和 AdaBoost。
此機器學習方法「結合多個基礎估計器的預測」,以提升模型品質。範例中,我們使用了隨機森林與 AdaBoost。
- [隨機森林](https://scikit-learn.org/stable/modules/ensemble.html#forest)一種平均方法構建了一個隨機性注入的「決策樹森林」以避免過度擬合。n_estimators 參數設置為樹的數量。
- [隨機森林](https://scikit-learn.org/stable/modules/ensemble.html#forest) 是一種平均法建立多棵帶有隨機性的「決策樹」森林以避免過擬合。n_estimators 參數設定樹的數量。
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) 將分類器擬合到數據集,然後將該分類器的副本擬合到相同的數據集。它專注於錯誤分類項目的權重,並調整下一個分類器的擬合以進行修正。
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) 會先將分類器擬合到資料集,然後複製該分類器並再次擬合同一資料集。它會關注錯誤分類項的權重,並調整下一個分類器以糾正。
---
## 🚀挑戰
每種技術都有大量的參數可以調整。研究每種技術的默認參數,並思考調整這些參數對模型質量的影響
這些技術都有大量可調整的參數。請研究它們的預設參數,並思考參數微調會如何影響模型品質
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## 回顧與自學
這些課程中有很多術語,因此花點時間回顧[這份列表](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)中的有用術語
這些課程中有許多術語,花點時間複習[這份有用的術語列表](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)
## 作業
[參數調整](assignment.md)
[參數調整遊戲](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
此文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。
本文件乃透過人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議使用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# 建立分類模型\n"
]
},
{
"cell_type": "code",
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免責聲明** \n本文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言的文件應被視為權威來源。對於重要信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明** \n本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們力求準確,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議使用專業人工翻譯。我們對因使用本翻譯而引起的任何誤解或曲解概不負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-03T20:27:23+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "hk"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# 建立更多分類模型\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,8 +116,8 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
@ -146,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -261,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免責聲明** \n本文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言的文件應被視為權威來源。對於重要資訊,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明** \n本文件是使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯的。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議使用專業人工翻譯。對於因使用本翻譯而引起的任何誤解或誤釋,本公司概不負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-03T20:27:48+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "hk"
}
},
"nbformat": 4,

@ -10,159 +10,169 @@
### 🌐 多語言支援
#### 透過 GitHub Action 支援(自動化且持續更新)
#### 通過 GitHub Action 支援(自動化及一直保持最新)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[阿拉伯文](../ar/README.md) | [孟加拉文](../bn/README.md) | [保加利亞文](../bg/README.md) | [緬甸文 (Myanmar)](../my/README.md) | [中文 (簡體)](../zh-CN/README.md) | [中文 (繁體, 香港)](./README.md) | [中文 (繁體, 澳門)](../zh-MO/README.md) | [中文 (繁體, 台灣)](../zh-TW/README.md) | [克羅地亞文](../hr/README.md) | [捷克文](../cs/README.md) | [丹麥文](../da/README.md) | [荷蘭文](../nl/README.md) | [愛沙尼亞文](../et/README.md) | [芬蘭文](../fi/README.md) | [法文](../fr/README.md) | [德文](../de/README.md) | [希臘文](../el/README.md) | [希伯來文](../he/README.md) | [印地文](../hi/README.md) | [匈牙利文](../hu/README.md) | [印尼語](../id/README.md) | [義大利文](../it/README.md) | [日文](../ja/README.md) | [坎納達文](../kn/README.md) | [韓文](../ko/README.md) | [立陶宛文](../lt/README.md) | [馬來文](../ms/README.md) | [馬拉雅拉姆文](../ml/README.md) | [馬拉地文](../mr/README.md) | [尼泊爾文](../ne/README.md) | [奈及利亞皮欽語](../pcm/README.md) | [挪威文](../no/README.md) | [波斯文 (法爾西)](../fa/README.md) | [波蘭文](../pl/README.md) | [葡萄牙文 (巴西)](../pt-BR/README.md) | [葡萄牙文 (葡萄牙)](../pt-PT/README.md) | [旁遮普文 (古魯穆奇體)](../pa/README.md) | [羅馬尼亞文](../ro/README.md) | [俄文](../ru/README.md) | [塞爾維亞文 (西里爾字母)](../sr/README.md) | [斯洛伐克文](../sk/README.md) | [斯洛文尼亞文](../sl/README.md) | [西班牙文](../es/README.md) | [斯瓦希里文](../sw/README.md) | [瑞典文](../sv/README.md) | [塔加洛語 (菲律賓語)](../tl/README.md) | [泰米爾文](../ta/README.md) | [泰盧固文](../te/README.md) | [泰文](../th/README.md) | [土耳其文](../tr/README.md) | [烏克蘭文](../uk/README.md) | [烏爾都文](../ur/README.md) | [越南文](../vi/README.md)
[阿拉伯語](../ar/README.md) | [孟加拉語](../bn/README.md) | [保加利亞語](../bg/README.md) | [緬甸語](../my/README.md) | [中文(簡體)](../zh-CN/README.md) | [中文(繁體,香港)](./README.md) | [中文(繁體,澳門)](../zh-MO/README.md) | [中文(繁體,台灣)](../zh-TW/README.md) | [克羅地亞語](../hr/README.md) | [捷克語](../cs/README.md) | [丹麥語](../da/README.md) | [荷蘭語](../nl/README.md) | [愛沙尼亞語](../et/README.md) | [芬蘭語](../fi/README.md) | [法語](../fr/README.md) | [德語](../de/README.md) | [希臘語](../el/README.md) | [希伯來語](../he/README.md) | [印地語](../hi/README.md) | [匈牙利語](../hu/README.md) | [印尼語](../id/README.md) | [意大利語](../it/README.md) | [日語](../ja/README.md) | [卡納達語](../kn/README.md) | [韓語](../ko/README.md) | [立陶宛語](../lt/README.md) | [馬來語](../ms/README.md) | [馬拉雅拉姆語](../ml/README.md) | [馬拉地語](../mr/README.md) | [尼泊爾語](../ne/README.md) | [奈及利亞洋芋拼音](../pcm/README.md) | [挪威語](../no/README.md) | [波斯語(法爾斯語)](../fa/README.md) | [波蘭語](../pl/README.md) | [巴西葡萄牙語](../pt-BR/README.md) | [葡萄牙語(葡萄牙)](../pt-PT/README.md) | [旁遮普語Gurmukhi](../pa/README.md) | [羅馬尼亞語](../ro/README.md) | [俄語](../ru/README.md) | [塞爾維亞語(西里爾字母)](../sr/README.md) | [斯洛伐克語](../sk/README.md) | [斯洛維尼亞語](../sl/README.md) | [西班牙語](../es/README.md) | [斯瓦希里語](../sw/README.md) | [瑞典語](../sv/README.md) | [他加祿語(菲律賓語)](../tl/README.md) | [泰米爾語](../ta/README.md) | [泰盧固語](../te/README.md) | [泰語](../th/README.md) | [土耳其語](../tr/README.md) | [烏克蘭語](../uk/README.md) | [烏爾都語](../ur/README.md) | [越南語](../vi/README.md)
> **想要本地端複製?**
> 此儲存庫包括 50 多種語言的翻譯,會大幅增加下載大小。若欲不含翻譯直接下載,可使用稀疏檢出:
> **偏好本地複製?**
>
> 此存儲庫包含 50 多種語言翻譯,這會大幅增加下載容量。要不含翻譯地複製,請使用稀疏檢出:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> 如此你能以更快的下載速度獲得完成課程所需的所有內容。
>
> **CMDWindows:**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> 這樣可以讓你用更快的速度下載所有完成課程所需的內容。
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### 加入我們的社群
#### 加入我們的社
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
我們在 Discord 上持續舉辦 AI 系列學習活動,詳情與加入請見 [Learn with AI Series](https://aka.ms/learnwithai/discord),時間為 2025 年 9 月 18 日至 30 日。你將學到如何使用 GitHub Copilot 進行資料科學的秘訣與技巧。
我們正進行 Discord AI 學習系列2025 年 9 月 18 日至 30 日,了解更多並加入我們的 [Learn with AI Series](https://aka.ms/learnwithai/discord)。屆時你將獲得使用 GitHub Copilot 進行資料科學的提示和技巧。
![Learn with AI 系列](../../translated_images/zh-HK/3.9b58fd8d6c373c20.webp)
![AI 學習系列](../../translated_images/zh-HK/3.9b58fd8d6c373c20.webp)
# 初學者機器學習課程大綱
# 初學者機器學習課程
> 🌍 帶你環遊世界,以世界文化探索機器學習 🌍
> 🌍 一起環遊世界並透過世界文化探索機器學習 🌍
微軟的 Cloud Advocates 高興地推出一個為期 12 週、包含 26 節課的**機器學習**課程。在本課程中,你將學習被稱為**經典機器學習**的方法,主要使用 Scikit-learn 函式庫,避免使用深度學習(深度學習已收錄於我們的 [AI for Beginners 課程](https://aka.ms/ai4beginners))。你也可以搭配我們的['資料科學初學者課程'](https://aka.ms/ds4beginners)一起學習!
微軟的雲端倡導者們很高興提供一套為期 12 週、包含 26 課的課程,專注於**機器學習**。本課程將介紹有時稱為**經典機器學習**的技術,主要使用 Scikit-learn 函式庫,避免深度學習內容,後者在我們的 [初學者 AI 課程](https://aka.ms/ai4beginners) 中涵蓋。同時可搭配我們的 [初學者資料科學課程](https://aka.ms/ds4beginners) 一起學習!
與我們一同環遊世界,將這些經典技術運用於來自世界各地的資料。每堂課包含課前與課後測驗、書面指引、解答、作業等內容。我們採用專案導向的教學法,讓你在建構中學習,這是經驗證的學習效果
跟我們一起環遊世界,將這些經典技術應用於來自全球多個地區的資料。每課皆包含課前和課後小測驗、書面指導、解答、作業等。我們採用以專案為導向的教學法,讓你邊建構邊學習,是新技能長期掌握的經驗證方式
**✍️ 誠感謝作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 及 Amy Boyd
**✍️ 誠感謝作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 及 Amy Boyd
**🎨 謝謝插畫團隊** Tomomi Imura、Dasani Madipalli 與 Jen Looper
**🎨 同時感謝插畫師** Tomomi Imura、Dasani Madipalli 與 Jen Looper
**🙏 特別感謝 🙏 微軟學生大使作者、審閱人與內容貢獻者**,特別是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila Snigdha Agarwal
**🙏 特別感謝🙏 微軟學生大使團隊的作者、審閱者與內容貢獻者**,包括 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila Snigdha Agarwal
**🤩 額外感謝微軟學生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 為我們的 R 課程付出**
**🤩 額外感謝微軟學生大使 Eric Wanjau、Jasleen Sondhi 與 Vidushi Gupta 參與 R 課程製作**
# 開始使用
# 開始學習
依照下列步驟:
1. **分叉儲庫**:點擊頁右上角的「Fork」按鈕。
2. **克隆儲存庫** `git clone https://github.com/microsoft/ML-For-Beginners.git`
遵循以下步驟:
1. **分叉此存儲庫**:點擊頁右上角的「Fork」按鈕。
2. **複製存儲庫** `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [在我們的 Microsoft Learn 集合中找到本課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [在我們的 Microsoft Learn 合集中找到本課程的所有附加資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **需要協助?** 請參考我們的 [疑難排解指引](TROUBLESHOOTING.md),協助解決安裝、設置與執行課程的常見問題
> 🔧 **需要協助?** 請查看我們的 [疑難排解指南](TROUBLESHOOTING.md),了解安裝、設置及運行課程常見問題的解決方案
**[學生專區](https://aka.ms/student-page)**,使用此課程時,請將整個儲存庫分叉至自己的 GitHub 帳號,並自行或與組員一起完成練習:
- 從課前測驗開始。
- 閱讀課程內容,完成活動,於每個知識點處停下思考。
- 試著根據課程內容自行構建專案,而非直接執行解答程式碼;不過,每個以專案為導向的課程中,`/solution` 資料夾都有提供解答程式碼。
- 進行課後測驗。
- 完成挑戰題。
**[學生](https://aka.ms/student-page)** 適用方法:將整個存儲庫分叉到你的 GitHub 帳戶,在個人或小組內完成練習:
- 從課前小測開始。
- 閱讀課程內容並完成各項活動,遇到檢核點時暫停並反思。
- 嘗試透過理解課程自行創建專案,而非直接運行解答程式碼;不過解答程式碼會放在各面向專案課程的 `/solution` 資料夾內。
- 進行課後小測驗。
- 完成挑戰任務。
- 完成作業。
- 完成一組課程後,請訪問[討論板](https://github.com/microsoft/ML-For-Beginners/discussions),透過填寫適當的 PAT 評量表來「大聲學習」。PAT 指「進度評估工具Progress Assessment Tool是一份你填寫以促進學習的評量表。你也可以對他人的 PAT 回應,一同交流學習。
- 完成一組課程後,請訪問 [討論區](https://github.com/microsoft/ML-For-Beginners/discussions),透過填寫 PAT 標準並「大聲學習」。'PAT' 是進度評估工具,一種用來促進學習的標準表格,你也可以對其他人的 PAT 回應,讓大家一起進步
> 若想進一步學習,我們推薦以下[Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott)模組與學習路徑。
> 進階學習推薦追蹤這些 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組和學習路徑。
**教師專區**,我們[提供一些使用本課程的建議](for-teachers.md)。
**老師們**,我們提供了一些關於如何使用本課程的[建議](for-teachers.md)。
---
## 影片導覽
部分課程有短片教學。你可以在課程中嵌入觀看,或到 [Microsoft Developer YouTube 頻道上的 ML for Beginners 播放清單](https://aka.ms/ml-beginners-videos)觀看,點擊以下圖片即可
部分課程有短影片導覽。你可以在課程中內嵌觀看,或點擊下方圖片至 [Microsoft Developer YouTube 頻道的「初學者機器學習」播放清單](https://aka.ms/ml-beginners-videos)。
[![ML for beginners banner](../../translated_images/zh-HK/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## 團隊介紹
## 認識團隊
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
[![推廣影片](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif ** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) 製作
**Gif 製作:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 點擊上圖觀看專案與創建團隊成員的介紹影片!
> 🎥 點擊上方圖片觀看有關此專案及團隊成員的影片!
---
## 教學法
我們在設計本課程時採用了兩大教學原則:確保課程是動手做的**專案導向**,並設計了**頻繁的測驗**。此外,本課程具有統一的**主題**以保持一致性。
我們建構此課程時,採取了兩大教學原則:確保課程是以 **專案為基礎的實作**,以及包含 **頻繁的小測驗**。此外,也設計了共通的 **主題** 以保持內容一致性。
確保內容配合專案,讓學習更有趣且提升概念記憶。課前的低壓力測驗能幫助學生建立學習主題的動機,課後測驗則加強記憶。本課程設計為靈活且有趣,可整體或部分進行。專案從簡單開始,隨著 12 週學習週期逐步變得更複雜。課程還包含機器學習現實應用的附錄,可作為額外學分或討論基礎
透過讓內容與專案對齊,增加學生的參與度並加強概念記憶。課前的小測驗有助於設定學生學習目標,課後小測則促進知識鞏固。此課程彈性且有趣,可整套完成或分段學習。專案從簡單開始,逐漸在 12 週循環結束時達到複雜度。課程末端亦包含一段關於機器學習在現實世界中的應用說明,適合作為額外學分或討論主題
> 請參閱我們的[行為準則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯指南](TRANSLATIONS.md)與[故障排除](TROUBLESHOOTING.md)方針。我們歡迎您的建設性意見
> 請參閱我們的 [行為守則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯說明](TRANSLATIONS.md) 及 [疑難排解](TROUBLESHOOTING.md) 指南。我們歡迎您的建設性意見反饋
## 每堂課包含
## 每節課內容包含
- 選擇性筆記圖示
- 選擇性補充影片
- 可選擇的素描筆記
- 可選擇的補充影片
- 影片導覽(部分課程)
- [課前暖身測驗](https://ff-quizzes.netlify.app/en/ml/)
- [課前暖身測驗](https://ff-quizzes.netlify.app/en/ml/)
- 書面課程
- 專案課程中有逐步製作指引
- 專案課程的逐步建構指導
- 知識檢核
- 挑戰
- 補充閱讀
- 挑戰任務
- 補充閱讀資料
- 作業
- [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
> **關於語言**:這些課程主要使用 Python 語言,但有許多課程同時提供 R 語言版本。要完成 R 課程,請前往 `/solution` 資料夾,尋找有 .rmd 副檔名的課程。此為 **R Markdown** 檔案,簡單來說是一種將 `code chunks`R 或其他語言的程式碼塊)與 `YAML 標頭`(決定輸出格式如 PDF嵌入於 `Markdown 文件` 的格式。因此它是資料科學撰稿的極佳框架允許你結合程式碼、輸出結果和文字說明一起撰寫。R Markdown 文件可輸出成 PDF、HTML 或 Word 等格式。
> **關於小測的說明**:所有小測均包含在 [Quiz App folder](../../quiz-app) 中,共計 52 個小測,每個小測包含三個問題。它們會從課程中連結,但測驗應用程式可在本地運行;請按照 `quiz-app` 資料夾中的指示進行本地託管或部署到 Azure。
| 課程編號 | 主題 | 課程分組 | 學習目標 | 相關課程 | 作者 |
| :------: | :---------------------------------------------------------: | :------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------: |
| 01 | 機器學習入門 | [Introduction](1-Introduction/README.md) | 學習機器學習背後的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 了解這個領域的歷史背景 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 建立及應用機器學習模型時,學生應考慮的重要哲學公平議題 | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究者使用的建模技術 | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | 迴歸介紹 | [Regression](2-Regression/README.md) | 開始使用 Python 和 Scikit-learn 進行迴歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 為機器學習做視覺化及資料清理 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性及多項式迴歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯迴歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | 網頁應用 🔌 | [Web App](3-Web-App/README.md) | 建立一個可使用你訓練模型的網頁應用 | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | 分類介紹 | [Classification](4-Classification/README.md) | 資料清理、準備與視覺化;分類入門 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器介紹 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 更多分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 使用你的模型建立推薦系統網頁應用 | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | 分群介紹 | [Clustering](5-Clustering/README.md) | 資料清理、準備與視覺化;分群入門 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | 探索奈及利亞音樂喜好 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-Means 分群方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | 自然語言處理入門 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建立簡單機器人學習 NLP 基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | 常見 NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 透過了解處理語言結構時常見任務,深化你的 NLP 知識 | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 與簡·奧斯汀一起做翻譯及情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 使用旅館評論進行情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 使用旅館評論進行情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | 時間序列預測入門 | [Time series](7-TimeSeries/README.md) | 時間序列預測介紹 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 全球電力使用 ⚡️ - 使用 ARIMA 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 全球電力使用 ⚡️ - 用 SVR 做時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量回歸進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 強化學習入門 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q-Learning 進行強化學習介紹 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 幫彼得避狼!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| 後記 | 真實世界的機器學習情境與應用 | [ML in the Wild](9-Real-World/README.md) | 經典機器學習的有趣且具啟發性的真實世界應用 | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| 後記 | 使用 RAI 儀表板進行機器學習模型除錯 | [ML in the Wild](9-Real-World/README.md) | 使用負責任 AI 儀表板元件進行機器學習模型除錯 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [在我們的 Microsoft Learn 集合中找到此課程的所有附加資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
- [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
> **關於語言的說明**:這些課程主要以 Python 編寫,但也有許多課程提供 R 版本。若要完成 R 課程,請前往 `/solution` 資料夾並尋找 R 課程。這些課程包含 .rmd 副檔名,代表一個 **R Markdown** 檔案,簡單來說,它是將 `程式碼區塊`R 或其他語言)與 `YAML 標頭`(用以指示如何格式化輸出,例如 PDF嵌入於 `Markdown 文件` 中。基於此R Markdown 作為資料科學的典範編輯架構,可讓你於 Markdown 中同時撰寫程式碼、其輸出與你的想法。此外R Markdown 文件可以渲染為 PDF、HTML 或 Word 等輸出格式。
> **關於測驗的說明**:所有測驗皆收錄在 [Quiz App folder](../../quiz-app) 中,總計 52 組,每組包含三個問題。這些測驗會在課程內連結,但你也可以在本地執行測驗應用程式;請依照 `quiz-app` 資料夾中的說明,在本地端架設或部署至 Azure。
| 課程編號 | 主題 | 課程群組 | 學習目標 | 相關課程 | 作者 |
| :-------: | :------------------------------------------------------------------: | :--------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------: |
| 01 | 機器學習入門介紹 | [Introduction](1-Introduction/README.md) | 學習機器學習的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 了解此領域的歷史背景 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen 與 Amy |
| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 建立與應用機器學習模型時,應考慮的重要哲學公平性議題 | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究者用於建立機器學習模型的技術 | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris 與 Jen |
| 05 | 迴歸入門 | [Regression](2-Regression/README.md) | 開始使用 Python 與 Scikit-learn 建立迴歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 資料視覺化與清理,為機器學習做準備 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性及多項式迴歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen 與 Dmitry • Eric Wanjau |
| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯迴歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | 網頁應用 🔌 | [Web App](3-Web-App/README.md) | 建立一個網頁應用以使用你訓練好的模型 | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | 分類入門 | [Classification](4-Classification/README.md) | 數據清理、準備與視覺化;分類介紹 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen 與 Cassie • Eric Wanjau |
| 11 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器介紹 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen 與 Cassie • Eric Wanjau |
| 12 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 更多分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen 與 Cassie • Eric Wanjau |
| 13 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 使用你的模型建立推薦網頁應用 | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | 分群入門 | [Clustering](5-Clustering/README.md) | 數據清理、準備與視覺化;分群介紹 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | 探索奈及利亞音樂品味 🎧 | [Clustering](5-Clustering/README.md) | 探索 K 平均 (K-Means) 分群方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | 自然語言處理入門 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建置簡易聊天機器人學習自然語言處理基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | 常見的自然語言處理任務 ☕️ | [Natural language processing](6-NLP/README.md) | 透析常見 NLP 任務以深化對語言結構的理解 | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 利用 Jane Austen 文本進行情感分析與翻譯 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 用飯店評論進行情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 用飯店評論進行情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | 時間序列預測入門 | [Time series](7-TimeSeries/README.md) | 時間序列預測介紹 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 世界電力使用 ⚡️ - 使用 ARIMA 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 世界電力使用 ⚡️ - 使用 SVR 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量回歸器 (SVR) 進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 強化學習入門 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習基礎介紹Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 幫彼得避狼! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| 後記 | 現實世界中的機器學習場景與應用 | [ML in the Wild](9-Real-World/README.md) | 傳統機器學習在真實世界的有趣且啟發性的應用 | [Lesson](9-Real-World/1-Applications/README.md) | 團隊 |
| 後記 | 使用 RAI 儀表板進行機器學習模型偵錯 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 儀表板元件進行機器學習模型偵錯 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [在我們的 Microsoft Learn 集合中找到本課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## 離線存取
你可以使用 [Docsify](https://docsify.js.org/#/) 離線執行此文件。叉出此存放庫,在你的本機安裝 [Docsify](https://docsify.js.org/#/quickstart),然後在此存放庫根目錄中輸入 `docsify serve`。網站將在你的本地主機的 3000 端口服務:`localhost:3000`。
你可以使用 [Docsify](https://docsify.js.org/#/) 離線運行本文件。將此資料庫 fork 到本地機器,並安裝 [Docsify](https://docsify.js.org/#/quickstart),接著於此資料庫根目錄下執行 `docsify serve`。網站將會在本機端 3000 埠口提供服務:`localhost:3000`。
## PDF
可在此處找到帶有連結的課程 PDF[pdf](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)。
這裡可找到課程大綱的 PDF 並附帶連結 [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)。
## 🎒 其他課程
## 🎒 其他課程
我們的團隊還製作其他課程!查閱:
我們團隊還有其他課程!請參考:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -174,49 +184,54 @@
### Azure / Edge / MCP / Agents
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者 MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者 AI 代理](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### 生成式 AI 系列
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
[![初學者生成式 AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![生成式 AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![生成式 AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![生成式 AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### 核心學習
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者機器學習](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者數據科學](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者 AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者網絡安全](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![初學者網頁開發](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者物聯網](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者 XR 開發](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot 系列
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
[![為 AI 配對編程設計的 Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![為 C#/.NET 設計的 Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot 冒險](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## 尋求協助
如果您遇到困難或對建立 AI 應用程式有任何疑問,歡迎加入與其他學習者及經驗豐富的開發者一同討論 MCP。這是一個支持性的社群,歡迎提出問題並自由分享知識。
如果你在建立 AI 應用程式時遇到困難或有任何疑問,歡迎加入學習者和資深開發者的討論,一同參與 MCP 社群。這是一個支持性的社群,歡迎提出問題並自由分享知識。
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
如果您在開發過程中有產品回饋或發現錯誤,請造訪:
如果你在開發過程中有產品反饋或遇到錯誤,請造訪:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## 額外學習貼士
- 每堂課後復習筆記本,加深理解。
- 練習自行實作算法。
- 利用所學概念探索真實世界數據集。
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件經由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力追求準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原文文件應被視為權威來源。如涉及重要資訊,建議尋求專業人工翻譯。我們對使用本翻譯所引起的任何誤解或曲解概不負責。
**免責聲明**
本文件由人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議採用專業人工翻譯。本公司對因使用此翻譯而引致的任何誤解或誤讀概不負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "zh-MO"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-08-29T21:24:09+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T11:21:02+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "zh-MO"
},
@ -90,8 +90,8 @@
"language_code": "zh-MO"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-06T09:05:38+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T11:21:57+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "zh-MO"
},
@ -186,8 +186,8 @@
"language_code": "zh-MO"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-06T09:17:21+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T11:22:16+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "zh-MO"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "zh-MO"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T11:19:23+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "zh-MO"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-08-29T21:50:48+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "zh-MO"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T11:19:28+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "zh-MO"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-06T09:16:55+00:00",
@ -540,8 +552,8 @@
"language_code": "zh-MO"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T07:41:29+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T11:20:57+00:00",
"source_file": "README.md",
"language_code": "zh-MO"
},

@ -1,16 +1,18 @@
# 探索負責任人工智慧工具箱
# 探索負責任的 AI 工具箱
## 說明
## 指示
在本課程中,您學習了負責任人工智慧工具箱,這是一個「開源、社群驅動的專案,旨在幫助資料科學家分析和改進人工智慧系統。」在這次作業中,請探索 RAI 工具箱的一個[筆記本](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb),並在報告或簡報中分享您的發現。
在本課程中,您已了解負責任的 AI 工具箱,一個「由社區主導的開源專案,協助數據科學家分析和改進 AI 系統。」本次作業請探索 RAI Toolbox 其中一個[筆記本](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb),並以論文或簡報形式報告您的發現。
## 評分標準
| 評分標準 | 卓越 | 合格 | 需要改進 |
| -------- | ----- | ----- | -------- |
| | 提交一份報告或簡報,討論 Fairlearn 的系統、執行的筆記本,以及從執行中得出的結論 | 提交一份報告,但未包含結論 | 未提交報告 |
| 標準 | 優異 | 足夠 | 需要改進 |
| -------- | --------- | -------- | ----------------- |
| | 提交一份論文或簡報,討論 Fairlearn 的系統、所執行的筆記本以及執行後得出的結論 | 提交一份未包含結論的論文 | 未提交論文 |
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。
本文件係透過 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤譯負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,125 +1,136 @@
# 使用 Scikit-learn 建立回歸模型:四種回歸方法
# 使用 Scikit-learn 建立回歸模型:回歸的四種方法
![線性回歸與多項式回歸資訊圖表](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> 資訊圖表由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 製作
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
## 初學者筆記
> ### [本課程也提供 R 版本!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### 簡介
線性回歸用於當我們想要預測一個**數值**(例如,房價、溫度或銷售額)時。
它通過尋找一條最好地代表輸入特徵與輸出之間關係的直線來工作。
到目前為止,您已經透過南瓜價格數據集的樣本數據了解了什麼是回歸分析,並使用 Matplotlib 進行了可視化。
在這堂課中,我們專注於理解概念,然後再探索更高級的回歸技術。
![線性與多項式回歸資訊圖](../../../../translated_images/zh-MO/linear-polynomial.5523c7cb6576ccab.webp)
> 資訊圖由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 製作
## [課前小測驗](https://ff-quizzes.netlify.app/en/ml/)
現在,您準備深入了解機器學習中的回歸分析。雖然可視化可以幫助您理解數據,但機器學習的真正力量來自於 _訓練模型_。模型基於歷史數據進行訓練,能夠自動捕捉數據之間的依賴關係,並幫助您預測模型未曾見過的新數據的結果。
> ### [這堂課另有 R 語言版本!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### 介紹
在本課程中您將學習更多關於兩種回歸方法_基本線性回歸_ 和 _多項式回歸_,以及這些技術背後的一些數學原理。這些模型將幫助我們根據不同的輸入數據預測南瓜的價格
迄今為止,你已經透過我們將在此課程中使用的南瓜價格資料集瞭解了什麼是回歸。你也使用 Matplotlib 做了視覺化
[![初學者的機器學習 - 理解線性回歸](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "初學者的機器學習 - 理解線性回歸")
現在你已準備好深入了解機器學習中的回歸。雖然視覺化讓你能理解資料但機器學習的真正威力來自於_訓練模型_。模型在歷史資料上訓練以自動捕捉資料依賴關係並能預測新資料的結果這些新資料是模型之前未見過的。
> 🎥 點擊上方圖片觀看線性回歸的簡短視頻概述
在這個課程中你將學習兩種類型的回歸_基礎線性回歸_和_多項式回歸_以及這些技術背後的一些數學。這些模型將允許我們根據不同的輸入資料來預測南瓜價格
> 在整個課程中,我們假設學生的數學知識有限,並努力使內容對來自其他領域的學生更易理解,因此請留意筆記、🧮 數學提示、圖表以及其他學習工具以幫助理解。
[![機器學習初學者 - 了解線性回歸](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "機器學習初學者 - 了解線性回歸")
### 先決條件
> 🎥 點擊上述圖片觀看線性回歸的短片概述。
到目前為止,您應該已熟悉我們正在分析的南瓜數據的結構。您可以在本課程的 _notebook.ipynb_ 文件中找到預加載和預清理的數據。在該文件中,南瓜的價格以每蒲式耳的形式顯示在新的數據框中。請確保您可以在 Visual Studio Code 的內核中運行這些筆記本。
> 在整個課程中,我們假設數學知識最低限度,並力求讓來自其他領域的學生易於理解,因此請留意筆記、🧮 提示、圖示及其他學習工具以輔助理解。
### 先備知識
你現在應該熟悉我們正在檢視的南瓜資料結構。課程中的 _notebook.ipynb_ 檔案已預先載入且清理過該資料。該檔案中,南瓜的價格以每蒲式耳計算並展示在新的資料框中。確保你能在 Visual Studio Code 的 kernel 中執行這些 notebook。
### 準備工作
提醒一下,您正在加載這些數據以便提出問題。
提醒你,載入資料是為了提出問題。
- 什麼時間買南瓜最好?
- 一箱迷你南瓜的價格大概要多少?
- 我該以半蒲式耳的籃子買還是用 1 1/9 蒲式耳的箱子買?
讓我們繼續深挖這些資料。
在上一堂課中,你建立了一個 Pandas 資料框,並填入來自原始資料集的一部分數據,統一以蒲式耳為單位計價。這樣做,只能取得約 400 筆資料,且只針對秋季幾個月。
- 什麼時候是購買南瓜的最佳時機?
- 我可以預期一箱迷你南瓜的價格是多少?
- 我應該選擇半蒲式耳籃子還是 1 1/9 蒲式耳箱來購買?
請看看這堂課隨附 notebook 中預先載入的資料。我們載入資料後,繪製了月份的初始散點圖。或許透過更多清理,我們能更細緻地了解資料的特性。
讓我們繼續深入挖掘這些數據。
## 一條線性回歸線
在上一課中,您創建了一個 Pandas 數據框,並用原始數據集的一部分填充它,將價格標準化為每蒲式耳。然而,通過這樣做,您只能收集到大約 400 個數據點,而且僅限於秋季月份。
如你在第一課中所學,線性回歸的目標是能夠繪製一條線:
查看本課程附帶的筆記本中預加載的數據。數據已預加載,並繪製了初始散點圖以顯示月份數據。也許通過進一步清理數據,我們可以更詳細地了解數據的性質。
- **顯示變數關係**。展示變數間的關係
- **做出預測**。準確預測新數據點相對於該線會落在哪裡
## 線性回歸線
典型的**最小平方法回歸Least-Squares Regression**會畫出這類線。"最小平方法"一詞指的是最小化模型中總誤差的過程。對每個數據點,我們測量該點和回歸線之間的垂直距離(稱為殘差)。
正如您在第一課中所學,線性回歸的目標是能夠繪製一條線以
我們平方這些距離有兩個主要原因
- **顯示變數關係**。展示變數之間的關係
- **進行預測**。準確預測新數據點在該線上的位置
1. **大小超過方向**:我們要將錯誤 -5 和 +5 同等看待,平方可以令所有值變為正數。
通常使用 **最小平方回歸** 來繪製這種類型的線。'最小平方' 的意思是回歸線周圍的所有數據點的距離平方後相加。理想情況下,最終的總和應該盡可能小,因為我們希望誤差數量低,也就是 `最小平方`
2. **懲罰異常值**:平方會給較大誤差更高的權重,迫使回歸線更貼近遠離的點
我們這樣做是因為我們希望建模一條距離所有數據點累積距離最小的線。我們在相加之前對項進行平方,因為我們關注的是其大小而不是方向
接著,我們將所有平方後的值相加。目標是找到使該和最小的那條具體直線,這也是「最小平方法」的名稱由來
> **🧮 數學展示**
> **🧮 給我看數學!**
>
> 這條線,稱為 _最佳擬合線_,可以用 [一個方程](https://en.wikipedia.org/wiki/Simple_linear_regression) 表示:
> 這條稱為_最佳擬合線_的線可用[方程式](https://en.wikipedia.org/wiki/Simple_linear_regression)表示:
>
> ```
> Y = a + bX
> ```
>
> `X` 是 '解釋變數'`Y` 是 '依賴變數'。線的斜率是 `b`,而 `a` 是 y 截距,指的是當 `X = 0``Y` 的值。
> `X`是「解釋變數」,`Y`是「應變數」。線的斜率為`b``a`是 y 截距,指的是當`X=0`時,`Y`的值。
>
>![計算斜率](../../../../2-Regression/3-Linear/images/slope.png)
>![計算斜率](../../../../translated_images/zh-MO/slope.f3c9d5910ddbfcf9.webp)
>
> 首先計算斜率 `b`。資訊圖由 [Jen Looper](https://twitter.com/jenlooper) 製作
> 首先計算斜率 `b`。資訊圖由 [Jen Looper](https://twitter.com/jenlooper) 製作
>
> 換句話說,參考我們南瓜數據的原始問題:"根據月份預測每蒲式耳南瓜的價格"`X` 代表價格,`Y` 代表銷售月份。
> 換句話說,並回到我們南瓜資料的原始問題:「預測每蒲式耳南瓜價格與月份的關係」`X` 代表價格,`Y` 代表銷售月份。
>
>![完成方程](../../../../2-Regression/3-Linear/images/calculation.png)
>![完成方程式](../../../../translated_images/zh-MO/calculation.a209813050a1ddb1.webp)
>
> 計算 Y 的值。如果您支付大約 $4那一定是四月資訊圖表由 [Jen Looper](https://twitter.com/jenlooper) 製作
> 計算 Y 的值。如果你付約 4 美元,那一定是 4 月!資訊圖由 [Jen Looper](https://twitter.com/jenlooper) 製作
>
> 計算這條線的數學必須展示線的斜率,這也取決於截距,即當 `X = 0``Y`位置。
> 計算該線的數學方法必須展現線的斜率,同時受截距影響,即`X=0`時的`Y`位置。
>
> 您可以在 [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) 網站上觀察這些值的計算方法。也可以訪問 [最小平方計算器](https://www.mathsisfun.com/data/least-squares-calculator.html) 看數值如何影響線。
> 你可以參考 [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) 網站來觀察這些計算方法。也可訪問[此最小平方法計算器](https://www.mathsisfun.com/data/least-squares-calculator.html)來看數值如何影響線。
## 相關性
另一個需要理解的術語是 **相關係數**,即給定 X 和 Y 變數之間的相關性。使用散點圖,您可以快速可視化該係數。數據點整齊排列成一條線的圖表具有高相關性,而數據點在 X 和 Y 之間隨意分佈的圖表則具有低相關性
還有一個必須了解的詞是給定 X 和 Y 變數間的**相關係數**。利用散點圖,你可以快速視覺化此係數。點散佈成很整齊一條線的圖有高相關,但點散佈在 X 和 Y 間各處的圖則低相關
一個好的線性回歸模型應該是使用最小平方回歸方法和回歸線,並且具有高(接近 1 而非 0的相關係數
良好線性回歸模型會有高(靠近 1 而非 0的相關係數使用最小平方回歸法畫出回歸線
運行本課程附帶的筆記本,查看月份與價格的散點圖。根據您的視覺解讀,南瓜銷售的月份與價格之間的數據是否具有高或低相關性?如果您使用更精細的測量方式(例如 *一年中的天數*,即自年初以來的天數),結果是否會有所改變
執行本課程附帶的 notebook查看「月份對價格」的散點圖。根據你對散點圖的視覺判斷南瓜銷售中「月份對價格」的數據似乎是高相關還是低相關換用更細微的度量比如 *一年的第幾天*(即從年初開始算的天數)情況會改變嗎
在下面的代碼中,我們假設已清理數據,並獲得了一個名為 `new_pumpkins` 的數據框,類似於以下內容
以下程式碼中,我們假設已經清理過資料,得到名為 `new_pumpkins` 的資料框,類似如下
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
ID | 月份 | 一年中的第幾天 | 品種 | 城市 | 包裝 | 最低價 | 最高價 | 價格
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
70 | 9 | 267 | 派型 | BALTIMORE | 1 1/9 蒲式耳紙箱 | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | 派型 | BALTIMORE | 1 1/9 蒲式耳紙箱 | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | 派型 | BALTIMORE | 1 1/9 蒲式耳紙箱 | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | 派型 | BALTIMORE | 1 1/9 蒲式耳紙箱 | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | 派型 | BALTIMORE | 1 1/9 蒲式耳紙箱 | 15.0 | 15.0 | 13.636364
> 清理數據的代碼可在 [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) 中找到。我們執行了與上一課相同的清理步驟,並使用以下表達式計算了 `DayOfYear`
> 清理資料的程式碼可在 [`notebook.ipynb`](notebook.ipynb) 中看到。我們已經執行與先前課程相同的清理步驟,並透過以下表達式計算了 `DayOfYear`
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
現在您已了解線性回歸背後的數學原理,讓我們建立一個回歸模型,看看是否可以預測哪種南瓜包裝的價格最划算。想要為節日南瓜園購買南瓜的人可能需要這些信息來優化南瓜包裝的購買
現在你已了解線性回歸背後的數學,讓我們建立回歸模型,看看是否能預測哪種南瓜包裝的價格最優惠。想要開設假日南瓜園的人可能會需要這個資訊,來優化他們南瓜包裝的採購
## 尋找相關性
[![初學者的機器學習 - 尋找相關性:線性回歸的關鍵](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "初學者的機器學習 - 尋找相關性:線性回歸的關鍵")
[![機器學習初學者 - 尋找相關性:線性回歸的關鍵](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "機器學習初學者 - 尋找相關性:線性回歸的關鍵")
> 🎥 點擊上方圖片觀看相關性的簡短視頻概述。
> 🎥 點擊圖片觀看相關性的短片概述。
從上一課中,您可能已經看到不同月份的平均價格如下所示
從上一堂課,你可能已看到不同月份的平均價格大致如下
<img alt="按月份的平均價格" src="../../../../translated_images/zh-MO/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="各月平均價格" src="../../../../translated_images/zh-MO/barchart.a833ea9194346d76.webp" width="50%"/>
這表明應該存在某種相關性,我們可以嘗試訓練線性回歸模型來預測 `Month``Price``DayOfYear``Price` 之間的關係。以下是顯示後者關係的散點圖
這表明應該存在某些相關性,我們可以嘗試訓練線性回歸模型來預測`月份`與`價格`之間的關聯,或者`一年中的第幾天`與`價格`的關係。以下散點圖顯示後者的關係
<img alt="價格與一年中天數的散點圖" src="../../../../translated_images/zh-MO/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="價格與一年中天數的散點圖" src="../../../../translated_images/zh-MO/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
讓我們使用 `corr` 函數檢查是否存在相關性:
我們用 `corr` 函數來看是否存在相關性:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
看起來相關性很小,`Month` 為 -0.15`DayOfYear` 為 -0.17,但可能存在另一個重要的關係。看起來不同的南瓜品種對價格的影響更大。為了確認這一假設,讓我們用不同的顏色繪製每個南瓜品種。通過向 `scatter` 繪圖函數傳遞 `ax` 參數,我們可以將所有點繪製在同一圖上:
看起來`月份` 計算的相關性約為 -0.15`DayOfMonth` 大約是 -0.17,但另有可能存在另一個重要關係。價格似乎依南瓜品種分成不同群集。要確認此假設,我們用不同顏色繪製每個南瓜品種。透過傳遞 `ax` 參數給 `scatter` 繪圖函數,我們可以將所有點畫在同一張圖上:
```python
ax=None
@ -129,42 +140,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="價格與一年中天數的散點圖" src="../../../../translated_images/zh-MO/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="價格與一年中天數的散點圖(按品種著色)" src="../../../../translated_images/zh-MO/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
我們的調查表明,品種對整體價格的影響比實際銷售日期更大。我們可以通過柱狀圖看到這一點
調查結果顯示品種對整體價格比實際銷售日期影響較大。我們用長條圖也可觀察到
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="價格與品種的柱狀圖" src="../../../../translated_images/zh-MO/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="不同品種價格長條圖" src="../../../../translated_images/zh-MO/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
讓我們暫時只關注一種南瓜品種——'pie type',看看日期對價格的影響:
暫時只聚焦單一品種——「派型」,看看日期對價格的影響:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="價格與一年中天數的散點圖" src="../../../../translated_images/zh-MO/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="價格與一年中天數的散點圖" src="../../../../translated_images/zh-MO/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
如果我們現在使用 `corr` 函數計算 `Price``DayOfYear` 之間的相關性,我們會得到類似 `-0.27` 的結果——這意味著訓練一個預測模型是有意義的。
現在如果用 `corr` 函數計算 `價格``DayOfYear` 的相關性,大約會是 `-0.27`——這意味著訓練預測模型是合理的。
> 在訓練線性回歸模型之前,確保數據清理是很重要的。線性回歸對缺失值的處理效果不佳,因此清理掉所有空單元格是有意義的
> 在訓練線性回歸模型前,重要的是確保資料是乾淨的。線性回歸不適用於存在缺值的情況,因此刪除所有空白欄位是合理做法
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
另一種方法是用相應列的平均值填充這些空值
另一種方法是將空值以該欄的平均值填補
## 簡單線性回歸
[![初學者的機器學習 - 使用 Scikit-learn 進行線性和多項式回歸](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "初學者的機器學習 - 使用 Scikit-learn 進行線性和多項式回歸")
[![機器學習初學者 - 使用 Scikit-learn 的線性與多項式回歸](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "機器學習初學者 - 使用 Scikit-learn 的線性與多項式回歸")
> 🎥 點擊上方圖片觀看線性和多項式回歸的簡短視頻概述
> 🎥 點擊上面圖片觀看線性與多項式回歸短片介紹
為了訓練我們的線性回歸模型,我們將使用 **Scikit-learn** 庫。
為了訓練線性回歸模型,我們將使用 **Scikit-learn** 函式庫。
```python
from sklearn.linear_model import LinearRegression
@ -172,31 +183,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
首先,我們將輸入值(特徵)和預期輸出(標籤)分離到不同的 numpy 陣列中
我們先將輸入數值(特徵)與期望輸出(標籤)分別放入不同的 numpy 陣列
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> 請注意,我們需要對輸入數據進行 `reshape`,以便線性回歸包正確理解它。線性回歸需要一個 2D 陣列作為輸入,其中陣列的每一行對應於輸入特徵的向量。在我們的情況下,由於我們只有一個輸入——我們需要一個形狀為 N×1 的陣列,其中 N 是數據集的大小。
> 注意,我們必須將輸入資料做 `reshape`,讓線性回歸套件正確理解它。線性回歸預期輸入是一個二維陣列,每行對應一組輸入特徵的向量。由於我們只有一個輸入,因此需要的是形狀為 N×1 的陣列,其中 N 是資料集大小。
接著,我們需要將數據分為訓練集和測試集,以便在訓練後驗證模型:
接著,我們需要將資料拆分成訓練集及測試集,以便訓練後驗證模型:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
最後,訓練實際的線性回歸模型只需要兩行代碼。我們定義 `LinearRegression` 對象,並使用 `fit` 方法將其擬合到數據中
最後,訓練真正的線性回歸模型只需要兩行程式。先定義 `LinearRegression` 物件,然後利用 `fit` 方法將它擬合至資料
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` 對象在 `fit` 後包含所有回歸係數,可以通過 `.coef_` 屬性訪問。在我們的情況下,只有一個係數,應該大約是 `-0.017`。這意味著價格似乎隨時間略有下降,但幅度不大,每天大約下降 2 美分。我們還可以通過 `lin_reg.intercept_` 訪問回歸線與 Y 軸的交點——在我們的情況下,大約是 `21`,表示年初的價格。
`fit` 後的 `LinearRegression` 物件包含所有回歸係數,可以使用 `.coef_` 屬性存取。在我們的例子中,只有一個係數,大約是 `-0.017`。這代表價格似乎隨時間略為下降但幅度不大大約每天降2仙。我們也可以使用 `lin_reg.intercept_` 取得回歸與 Y 軸的交點,這在我們的例子中大約是 `21`,表示年初的價格。
為了查看模型的準確性我們可以在測試數據集上預測價格然後測量預測值與預期值的接近程度。這可以通過均方誤差MSE指標來完成MSE 是所有預期值與預測值之間平方差的平均值。
為了檢查模型的準確度我們可以在測試資料集上預測價格然後測量預測結果與期望值的接近程度。這可以使用均方誤差MSE指標完成即期望值與預測值之間所有平方差的平均值。
```python
pred = lin_reg.predict(X_test)
@ -204,36 +215,37 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
我們的錯誤似乎集中在兩個點上,大約是 17%。表現不太理想。另一個衡量模型品質的指標是 **決定係數**,可以通過以下方式獲得:
我們的誤差似乎約為 2 點,約 17%。不算太好。模型品質的另一個指標是**決定係數**,可以這樣取得:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
如果值為 0表示模型未考慮輸入數據並且表現為*最差的線性預測器*,即僅僅是結果的平均值。值為 1 則表示我們可以完美地預測所有期望的輸出。在我們的情況下,決定係數約為 0.06,這相當低。
```
若值為 0表示模型完全不考慮輸入資料並且充當*最差線性預測器*,即預測為結果的平均值。值為 1 表示我們能完全完美地預測所有期望輸出。在我們的例子中,決定係數約為 0.06相當低。
我們還可以繪製測試數據與回歸線的圖表,以更好地了解回歸在我們的案例中的表現:
我們也可以將測試資料與回歸線同時繪圖,更直觀地看回歸的表現:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="線性回歸" src="../../../../translated_images/zh-MO/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/zh-MO/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## 多項式回歸
另一種線性回歸是多項式回歸。有時候,變量之間存在線性關係,例如南瓜的體積越大,價格越高;但有時候這些關係無法用平面或直線來表示
另一種線性回歸是多項式回歸。有時,變數間存在線性關係—體積較大的南瓜價格較高—但有時這些關係無法用平面或直線描述
✅ 這裡有一些[更多例子](https://online.stat.psu.edu/stat501/lesson/9/9.8),展示了可以使用多項式回歸的數據。
✅ 這裡有 [更多範例](https://online.stat.psu.edu/stat501/lesson/9/9.8) 適合用多項式回歸的資料
再看看日期與價格之間的關係。這個散點圖看起來是否一定要用直線來分析?價格難道不會波動嗎?在這種情況下,你可以嘗試使用多項式回歸。
再看看日期與價格的關係。這散點圖似乎一定要用直線分析嗎?價格不會波動嗎?在這種情況下,可以嘗試多項式回歸。
✅ 多項式是可能包含一個或多個變量和係數的數學表達式。
✅ 多項式是包含一個或多個變量與係數的數學表達式
多項式回歸會創建一條曲線,以更好地擬合非線性數據。在我們的案例中,如果我們在輸入數據中加入平方的 `DayOfYear` 變量,我們應該能用一條拋物線來擬合數據,該拋物線在一年中的某個點會有一個最低值。
多項式回歸會建立曲線以更好擬合非線性資料。在我們的例子中,若將平方的 `DayOfYear` 變項加入輸入資料,我們應能用拋物線擬合資料,曲線會在年內某一點有極小值。
Scikit-learn 提供了一個方便的 [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline)可以將不同的數據處理步驟結合在一起。**Pipeline** 是一個由**估算器**組成的鏈。在我們的案例中,我們將創建一個 pipeline首先向模型添加多項式特徵然後訓練回歸:
Scikit-learn 包含便利的 [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline)用來串接資料處理步驟。**pipeline** 是一連串的**估計器**。在我們例子中,我們將建立一條 pipeline先加入多項式特徵訓練回歸:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -242,62 +254,62 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
使用 `PolynomialFeatures(2)` 表示我們將包含所有二次多項式特徵。在我們的案例中,這僅意味著 `DayOfYear`<sup>2</sup>,但如果有兩個輸入變量 X 和 Y這將添加 X<sup>2</sup>、XY 和 Y<sup>2</sup>。如果需要,我們也可以使用更高次的多項式。
使用 `PolynomialFeatures(2)` 意味著我們將包含輸入資料的所有二階多項式。在我們這裡,只有 `DayOfYear`<sup>2</sup>,但若輸入有兩變量 X 及 Y則會加上 X<sup>2</sup>、XY 及 Y<sup>2</sup>。當然,我們也可以使用更高階的多項式。
Pipeline 的使用方式與原始的 `LinearRegression` 對象相同,例如我們可以 `fit` pipeline然後使用 `predict` 獲得預測結果。以下是顯示測試數據和近似曲線的圖表
Pipeline 可以像原本的 `LinearRegression` 物件一樣使用,例如我們可以 `fit` pipeline再用 `predict` 取得預測結果。下圖顯示測試資料與擬合曲線
<img alt="多項式回歸" src="../../../../translated_images/zh-MO/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/zh-MO/poly-results.ee587348f0f1f60b.webp" width="50%" />
使用多項式回歸,我們可以獲得稍低的 MSE 和稍高的決定係數,但提升並不顯著。我們需要考慮其他特徵!
使用多項式回歸,我們可以獲得略低的 MSE 與較高的決定係數,但差異不大。我們還需要考慮其他特徵!
> 你可以看到南瓜價格的最低點大約出現在萬聖節附近。你能解釋這個現象嗎
> 你可以看到最低的南瓜價格似乎出現在萬聖節前後。你怎麼解釋這現象
🎃 恭喜!你剛剛創建了一個可以幫助預測南瓜派價格的模型。你可能可以對所有南瓜類型重複相同的過程,但這樣會很繁瑣。接下來,我們將學習如何在模型中考慮南瓜品種
🎃 恭喜,剛剛你建立了一個能幫助預測派南瓜價格的模型。或許你可以對其他所有南瓜類型重複此程序,但那會很繁瑣。現在讓我們了解如何將南瓜品種納入模型
## 類別特徵
在理想情況下,我們希望能夠使用同一個模型來預測不同南瓜品種的價格。然而,`Variety` 列與 `Month` 等列有所不同,因為它包含非數值型的值。這類列被稱為**類別型**。
在理想狀況下,我們希望使用同一模型預測不同南瓜品種的價格。不過,`Variety` 欄與 `Month` 等欄不同,因它包含非數字值。這類欄稱為**類別特徵**。
[![初學者的機器學習 - 使用線性回歸進行類別特徵預測](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "初學者的機器學習 - 使用線性回歸進行類別特徵預測")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 點擊上方圖片觀看有關使用類別特徵的簡短視頻概述
> 🎥 點擊上圖觀看使用類別特徵的短片介紹
以下是品種與平均價格的關係:
這裡展示了平均價格與品種的關係:
<img alt="按品種劃分的平均價格" src="../../../../translated_images/zh-MO/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/zh-MO/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
為了考慮品種,我們首先需要將其轉換為數值形式,或者**編碼**。有幾種方法可以做到
要考慮品種,我們首先需要將它轉成數值型態,或稱**編碼**。我們可以用幾種方式做到這點
* 簡單的**數值編碼**會建立一個不同品種的表,然後用表中的索引替換品種名稱。這對線性回歸來說不是最好的方法,因為線性回歸會將索引的實際數值加到結果中,並乘以某個係數。在我們的案例中,索引號與價格之間的關係顯然是非線性的,即使我們確保索引按某種特定方式排序。
* **獨熱編碼**會用 4 個不同的列替換 `Variety` 列,每個列對應一個品種。如果某行屬於某品種,該列的值為 `1`,否則為 `0`。這意味著線性回歸中會有四個係數,每個南瓜品種都有一個,負責該品種的“起始價格”(或“附加價格”)。
* 簡單的**數字編碼**會建立一個品種清單,然後以該清單中索引取代品種名稱。這對線性回歸不太適合,因為線性回歸會使用索引的數值,乘以某係數加入結果之中。在我們的例子,索引與價格的關係明顯非線性,即使我們保證索引有特定排序。
* **一熱編碼**會將 `Variety` 欄拆成四個欄,每個品種一欄。每欄對應列若屬於該品種則為 `1`,否則為 `0`。這代表線性回歸會有四個係數,分別對應四個南瓜品種的「起始價格」(或更準確說是「額外價格」)。
以下代碼展示了如何對品種進行獨熱編碼:
以下程式碼示範如何對品種進行一熱編碼:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
使用獨熱編碼的品種作為輸入訓練線性回歸,我們只需要正確初始化 `X``y` 數據:
用一熱編碼品種作為輸入訓練線性回歸,只要正確初始化 `X``y`:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
其餘代碼與我們之前用於訓練線性回歸的代碼相同。如果你嘗試一下,你會發現均方誤差差不多,但我們的決定係數大幅提高(約 77%)。為了獲得更準確的預測,我們可以考慮更多的類別特徵,以及數值特徵,例如 `Month``DayOfYear`。要獲得一個大的特徵數組,我們可以使用 `join`
其餘程式碼與之前用來訓練線性回歸的相同。實驗結果會顯示均方誤差約相當,但決定係數大幅提升(約 77%)。若想更精確預測,可加入更多類別特徵,或數值特徵,如 `Month``DayOfYear`。可以用 `join` 合併成一個特徵陣列
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -305,69 +317,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
```
這裡我們還考慮了 `City``Package` 類型,這使得 MSE 降至 2.8410%),決定係數提高到 0.94
這裡我們還考慮了 `City``Package` 類型,使 MSE 降為 2.8410%),決定係數升至 0.94
## 整合所有內容
## 綜合應用
為了創建最佳模型,我們可以使用上述示例中的結合數據(獨熱編碼的類別特徵 + 數值特徵)以及多項式回歸。以下是完整代碼供你參考
為了打造最佳模型,我們可以使用上述範例中合併的(類別一熱編碼 + 數值)資料,搭配多項式回歸。以下為完整程式碼方便使用
```python
# set up training data
# 設置訓練數據
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# 進行訓練-測試拆分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# 設置並訓練流程
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# 預測測試數據結果
pred = pipeline.predict(X_test)
# calculate MSE and determination
# 計算均方誤差及決定係數
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
```
這應該能讓我們的決定係數達到接近 97%MSE=2.23(約 8% 的預測誤差)。
預期將得到近 97% 的最佳決定係數,以及 MSE=2.23約8%預測誤差)。
| 模型 | MSE | 決定係數 |
|-------|-----|---------------|
| `DayOfYear` 線性 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多項式 | 2.73 (17.0%) | 0.08 |
| `Variety` 線性 | 5.24 (19.7%) | 0.77 |
| 所有特徵線性 | 2.84 (10.5%) | 0.94 |
| 所有特徵多項式 | 2.23 (8.25%) | 0.97 |
| 模型 | MSE | 決定係數 |
|-------|-----|---------|
| `DayOfYear` 線性 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多項式 | 2.73 (17.0%) | 0.08 |
| `Variety` 線性 | 5.24 (19.7%) | 0.77 |
| 所有特徵 線性 | 2.84 (10.5%) | 0.94 |
| 所有特徵 多項式 | 2.23 (8.25%) | 0.97 |
🏆 做得好!你在一節課中創建了四個回歸模型,並將模型品質提升到 97%。在回歸的最後一部分中,你將學習如何使用邏輯回歸來確定類別
🏆 做得好!你在一課中建立了四個回歸模型,將模型品質提升至 97%。回歸章節最後會介紹用於分類的邏輯回歸
---
## 🚀挑戰
此筆記本中測試幾個不同的變量,看看相關性如何影響模型準確性
這個筆記本中測試不同變數,以觀察相關程度如何影響模型準確度
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## 回顧與自學
## 複習與自學
在本課中,我們學習了線性回歸。還有其他重要的回歸類型。閱讀有關逐步回歸、嶺回歸、套索回歸和彈性網技術的資料。一門很好的課程是 [斯坦福統計學習課程](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)。
本課介紹線性回歸。還有其他重要的回歸類型請閱讀逐步回歸、Ridge、Lasso 與 Elasticnet 技術。推薦的深入課程是 [史丹佛統計學習課程](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)。
## 作業
[立模型](assignment.md)
[構模型](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。
本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原文文件以其母語版本為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤釋負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,44 +1,44 @@
# 美食分類器 2
# Cuisine classifiers 2
這第二堂分類課中,您將探索更多分類數據的方法,並了解選擇不同分類器的影響。
第二堂分類課中,您將探索更多對數值數據進行分類的方法。您亦會了解選擇不同分類器的影響。
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
### 前置條件
### 先決條件
我們假設您已完成前面的課程,並在這個四堂課的資料夾根目錄中的 `data` 資料夾內擁有一個名為 _cleaned_cuisines.csv_ 的清理後數據集。
假設您已完成之前的課程並在本4堂課資料夾根目錄的 `data` 資料夾中有一個名為 _cleaned_cuisines.csv_ 的已清理數據集。
### 準備工作
我們已將您的 _notebook.ipynb_ 文件載入清理後的數據集,並將其分為 X 和 y 數據框,準備進行模型構建
我們已載入您的 _notebook.ipynb_ 檔案,並將清理後的數據集劃分為 X 和 y 資料框,準備進行模型建構
## 分類地圖
## 一張分類地圖
之前,您已學習如何使用 Microsoft 的速查表來分類數據。Scikit-learn 提供了一個類似但更細緻的速查表,可以進一步幫助您縮小估算器(分類器的另一個術語)的選擇範圍
之前,您學習了使用 Microsoft 的速查表對數據進行分類的各種選項。Scikit-learn 提供了類似但更細緻的速查表,能進一步協助您篩選估算器(另一種稱呼分類器)
![Scikit-learn 的機器學習地圖](../../../../4-Classification/3-Classifiers-2/images/map.png)
> 提示:[在線查看此地圖](https://scikit-learn.org/stable/tutorial/machine_learning_map/),並點擊路徑以閱讀相關文檔
![ML Map from Scikit-learn](../../../../translated_images/zh-MO/map.e963a6a51349425a.webp)
> 提示:[線上瀏覽此地圖](https://scikit-learn.org/stable/tutorial/machine_learning_map/) 並沿著路徑點擊以閱讀文件
### 計劃
當您對數據有清晰的理解時,這張地圖非常有幫助,因為您可以沿著它的路徑進行決策
一旦您對數據有清晰的理解,這張地圖非常有用,因為您可沿著路徑作出決定
- 我們有超過 50 個樣本
- 我們想預測一個類別
- 我們有超過50個樣本
- 我們想預測一個類別
- 我們有標籤數據
- 我們的樣本少於 10
- 我們的樣本少於10萬
- ✨ 我們可以選擇 Linear SVC
- 如果不起作用,因為我們有數值數據
- 我們可以嘗試 ✨ KNeighbors Classifier
- 如果這也不起作用,嘗試 ✨ SVC 和 ✨ Ensemble Classifiers
- 如果不起作用,因為我們有數值數據
- 我們可以嘗試 ✨ KNeighbors 分類器
- 如果那也不行,試試 ✨ SVC 和 ✨ 集成分類器
這是一條非常有幫助的路徑。
這是一條非常實用的路徑。
## 練習 - 分割數據
按照這條路徑,我們應該從導入一些需要的庫開始
沿著這條路徑開始,我們應該先導入一些所需的庫
1. 導入所需的庫:
1. 導入必要的庫:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@
import numpy as np
```
2. 分割您的訓練和測試數據:
1. 分割訓練及測試數據:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Linear SVC 分類器
## 線性 SVC 分類器
支持向量聚類SVC是支持向量機SVM家族中的一員。通過這種方法您可以選擇一個「核函數」來決定如何聚類標籤。「C」參數指的是「正則化」用於調節參數的影響。核函數可以是[多種選項](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)之一在這裡我們將其設置為「linear」以確保使用線性 SVC。預設情況下概率為「false」在這裡我們將其設置為「true」以獲取概率估計。我們將隨機狀態設置為「0」以便打亂數據以獲取概率。
支持向量分類SVC是支持向量機器SVM機器學習技術家族的一員稍後會進一步了解。此方法允許選擇「核函數」來決定如何聚類標籤。「C」參數指的是「正則化」用來調節參數的影響力。核函數可從[多個選項中選擇](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)這裡我們設為「linear」以使用線性 SVC。預設的 probability 為 false此處設為 true 以收集概率估計。我們將 random_state 設為 0 以便對數據進行隨機打亂獲得概率。
### 練習 - 應用線性 SVC
從創建分類器數組開始。隨著測試的進行,您將逐步向該數組添加內容
開始創建一個分類器陣列。隨著測試進行,逐步將更多分類器加入此陣列
1. 從 Linear SVC 開始:
```python
C = 10
# Create different classifiers.
# 建立不同的分類器。
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. 使用 Linear SVC 訓練模型並打印報告:
2. 使用 Linear SVC 訓練模型並打印報告:
```python
n_classifiers = len(classifiers)
@ -107,19 +107,19 @@
## K-Neighbors 分類器
K-Neighbors 屬於「鄰居」家族的機器學習方法,可用於監督學習和非監督學習。在這種方法中,預定義了一些點,並在這些點周圍收集數據,以便為數據預測通用標籤
K-Neighbors 是「鄰居」機器學習方法的成員,可用於監督式及非監督學習。此方法先創建指定數量的點,然後將數據聚集於這些點周圍,從而可以對數據做出泛化標籤的預測
### 練習 - 應用 K-Neighbors 分類器
之前的分類器表現不錯,與數據配合良好,但也許我們可以獲得更好的準確性。嘗試使用 K-Neighbors 分類器。
之前的分類器表現良好且與數據配合度高,但或許我們能獲得更好的準確率。試試 K-Neighbors 分類器。
1. 在分類器數組中添加一行(在 Linear SVC 項目後添加逗號):
1. 在分類器陣列中加一行(在 Linear SVC 項目後加逗號):
```python
'KNN classifier': KNeighborsClassifier(C),
```
結果稍一些:
結果稍差一些:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,23 +136,23 @@ K-Neighbors 屬於「鄰居」家族的機器學習方法,可用於監督學
weighted avg 0.76 0.74 0.74 1199
```
了解更多 [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
學習更多關於 [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## 支持向量分類器
支持向量分類器屬於 [支持向量機](https://wikipedia.org/wiki/Support-vector_machine) 家族的機器學習方法用於分類和回歸任務。SVM 將訓練樣本映射到空間中的點,以最大化兩個類別之間的距離。隨後的數據被映射到這個空間中,以便預測其類別。
支持向量分類器是[支持向量機](https://wikipedia.org/wiki/Support-vector_machine)機器學習方法家族中的一員用於分類和回歸任務。SVM「將訓練樣本映射到空間中的點」使兩類別間距最大化。後續資料會被映射到這個空間以預測其類別。
### 練習 - 應用支持向量分類器
讓我們嘗試使用支持向量分類器來獲得更好的準確性
讓我們試試利用支持向量分類器取得稍好的準確率
1. 在 K-Neighbors 項目後添加逗號,然後添加以下行:
1. 在 K-Neighbors 項目後添加逗號,然後加入此行:
```python
'SVC': SVC(),
```
結果相當不錯
結果相當優異
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ K-Neighbors 屬於「鄰居」家族的機器學習方法,可用於監督學
weighted avg 0.84 0.83 0.83 1199
```
了解更多 [支持向量](https://scikit-learn.org/stable/modules/svm.html#svm)
學習更多關於 [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## 集成分類器
即使之前的測試結果已經相當不錯,我們還是沿著路徑走到最後,嘗試一些「集成分類器」,特別是隨機森林和 AdaBoost
讓我們沿路徑走到最後,儘管前面的測試已經相當好。我們試試「集成分類器」,具體為隨機森林和 AdaBoost
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
結果非常好,特別是隨機森林:
結果非常好,尤其是隨機森林:
```output
Accuracy (train) for RFST: 84.5%
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
了解更多 [集成分類器](https://scikit-learn.org/stable/modules/ensemble.html)
學習更多關於 [集成分類器](https://scikit-learn.org/stable/modules/ensemble.html)
這種機器學習方法「結合了多個基估算器的預測」,以提高模型的質量。在我們的例子中,我們使用了隨機森林和 AdaBoost。
這種機器學習方法「結合多個基學估算器的預測」,以提升模型品質。在本例中,我們使用隨機樹和 AdaBoost。
- [隨機森林](https://scikit-learn.org/stable/modules/ensemble.html#forest)一種平均方法構建了一個隨機性注入的「決策樹森林」以避免過擬合。n_estimators 參數設置為樹的數量。
- [隨機森林](https://scikit-learn.org/stable/modules/ensemble.html#forest) 是一種平均方法建立一個包含隨機元素的「決策樹森林」以避免過擬合。n_estimators 參數設定為樹的數量。
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) 將分類器擬合到數據集,然後將該分類器的副本擬合到相同數據集。它專注於錯誤分類項的權重,並調整下一個分類器的擬合以進行修正
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) 先擬合一個分類器到數據集,然後對同一數據集多次擬合該分類器複製本,著重於錯誤分類項的權重,調整下一個分類器的擬合以修正錯誤
---
## 🚀 挑戰
## 🚀挑戰
這些技術中的每一種都有大量參數可以調整。研究每種技術的默認參數,並思考調整這些參數對模型質量的影響。
每種技術都有大量參數可以調整。研究各自的預設參數,並思考調整這些參數對模型品質會有什麼影響。
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## 回顧與自學
## 複習與自學
這些課程中有很多術語,花點時間回顧[這份列表](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)中的有用術語
這些課程用到許多術語,花點時間複習[這個詞彙清單](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)
## 作業
[參數調整](assignment.md)
[參數遊戲](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。
本文件使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言版本的文件應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤譯承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# 建立分類模型\n"
]
},
{
"cell_type": "code",
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免責聲明** \n本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明** \n本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於追求準確,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件以其母語版本為唯一權威資料。對於重要資訊,建議採用專業人工翻譯。我們對因使用本翻譯而引起的任何誤解或錯譯概不負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-08-29T23:47:24+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "mo"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# 建立更多分類模型\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,8 +116,8 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
@ -146,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -261,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免責聲明** \n本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明** \n本文件係使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於確保準確性,請注意自動化翻譯可能存在錯誤或不準確之處。原始語言版本文件應被視為權威來源。對於重要資訊,建議尋求專業人類翻譯。我們對因使用此翻譯而引起的任何誤解或曲解概不負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-08-29T23:47:44+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "mo"
}
},
"nbformat": 4,

@ -10,76 +10,85 @@
### 🌐 多語言支援
#### 透過 GitHub Action 支援(自動及隨時更新)
#### 透過 GitHub Action 支援(自動化且始終保持最新)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](./README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
[阿拉伯語](../ar/README.md) | [孟加拉語](../bn/README.md) | [保加利亞語](../bg/README.md) | [緬甸語 (Myanmar)](../my/README.md) | [中文 (簡體)](../zh-CN/README.md) | [中文 (繁體,香港)](../zh-HK/README.md) | [中文 (繁體,澳門)](./README.md) | [中文 (繁體,臺灣)](../zh-TW/README.md) | [克羅地亞語](../hr/README.md) | [捷克語](../cs/README.md) | [丹麥語](../da/README.md) | [荷蘭語](../nl/README.md) | [愛沙尼亞語](../et/README.md) | [芬蘭語](../fi/README.md) | [法語](../fr/README.md) | [德語](../de/README.md) | [希臘語](../el/README.md) | [希伯來語](../he/README.md) | [印地語](../hi/README.md) | [匈牙利語](../hu/README.md) | [印尼語](../id/README.md) | [義大利語](../it/README.md) | [日語](../ja/README.md) | [坎納達語](../kn/README.md) | [韓語](../ko/README.md) | [立陶宛語](../lt/README.md) | [馬來語](../ms/README.md) | [馬拉雅拉姆語](../ml/README.md) | [馬拉地語](../mr/README.md) | [尼泊爾語](../ne/README.md) | [奈及利亞皮欽語](../pcm/README.md) | [挪威語](../no/README.md) | [波斯語 (法爾西語)](../fa/README.md) | [波蘭語](../pl/README.md) | [葡萄牙語 (巴西)](../pt-BR/README.md) | [葡萄牙語 (葡萄牙)](../pt-PT/README.md) | [旁遮普語 (Gurmukhi)](../pa/README.md) | [羅馬尼亞語](../ro/README.md) | [俄羅斯語](../ru/README.md) | [塞爾維亞語 (西里爾字母)](../sr/README.md) | [斯洛伐克語](../sk/README.md) | [斯洛維尼亞語](../sl/README.md) | [西班牙語](../es/README.md) | [斯瓦希里語](../sw/README.md) | [瑞典語](../sv/README.md) | [他加祿語 (菲律賓語)](../tl/README.md) | [泰米爾語](../ta/README.md) | [泰盧固語](../te/README.md) | [泰語](../th/README.md) | [土耳其語](../tr/README.md) | [烏克蘭語](../uk/README.md) | [烏爾都語](../ur/README.md) | [越南語](../vi/README.md)
> **想本地 Clone**
> 此儲存庫包括50多種語言翻譯顯著增加下載大小。想不包含翻譯地 Clone 請使用 sparse checkout:
> **想要本地複製?**
>
> 此儲存庫包含 50 多種語言翻譯,會大幅增加下載大小。若想不帶翻譯內容複製,請使用稀疏檢出:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> 如此將快速下載,且包含完成課程所需所有內容。
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> 這樣可以更快速下載,且包含完成課程所需的一切。
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### 加入我們的社群
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
我們在 Discord 舉辦的 AI 學習系列正在進行中,更多資訊及加入請見 [Learn with AI Series](https://aka.ms/learnwithai/discord),時間為 2025 年 9 月 18 至 30 日。你將學到如何使用 GitHub Copilot 進行資料科學操作的小竅門。
我們正在舉辦 Discord 的 AI 學習系列活動,請於 2025 年 9 月 18 日至 30 日前往 [Learn with AI Series](https://aka.ms/learnwithai/discord) 瞭解更多並加入。我們將分享使用 GitHub Copilot 進行資料科學的技巧與方法
![Learn with AI series](../../translated_images/zh-MO/3.9b58fd8d6c373c20.webp)
# 初學者的機器學習課程
# 機器學習初學者課程綱
> 🌍 透過世界各地文化環遊機器學習的旅程 🌍
> 🌍 透過世界文化的視角,帶你環遊世界探索機器學習 🌍
微軟的 Cloud Advocates 很高興推出為期 12 週、共 26 課的 **機器學習** 課程大綱。在此課程中,你將學習所謂的 **經典機器學習**,主要使用 Scikit-learn 函式庫,並避開深度學習,其內容收錄於我們的 [AI for Beginners 課程](https://aka.ms/ai4beginners)。另外,也可搭配我們的 [『資料科學初學者』課程](https://aka.ms/ds4beginners)。
微軟的雲端擁護者很高興提供一套為期 12 週、共 26 課的完整課程,主題為 **機器學習**。本課程聚焦於所謂的 **經典機器學習**,主要使用 Scikit-learn 函式庫,避開深度學習部分(相關內容可見於我們的[初學者 AI 課程](https://aka.ms/ai4beginners))。也建議和我們的[初學者資料科學課程](https://aka.ms/ds4beginners) 搭配學習!
跟我們一起環遊世界,使用這些經典技術應用於多元世界資料。每課包含課前與課後測驗、書面指示、解答、作業等。透過專案導向的教學法,讓你一邊建置專案,一邊學習,是學習技能的有效方法。
跟我們一起周遊世界,將這些經典技術應用於各地的資料。每課包含課前與課後測驗、書面教學指引、解答、作業與更多。採用專案導向教學法,讓你邊學邊做,是幫助新技能扎根的有效方法。
**✍️ 衷心感謝我們的作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 以及 Amy Boyd
**✍️ 衷心感謝我們的作者** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu 與 Amy Boyd
**🎨 亦感謝我們的插畫師** Tomomi Imura、Dasani Madipalli 和 Jen Looper
**🎨 以及感謝我們的插畫師** Tomomi Imura, Dasani Madipalli 與 Jen Looper
**🙏 特別感謝🙏微軟學生大使作者、審稿人及內容貢獻者**,尤其是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 和 Snigdha Agarwal
**🙏 特別感謝 🙏 微軟學生大使的作者、審閱者與內容貢獻者**,尤其是 Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila 與 Snigdha Agarwal
**🤩 額外感謝微軟學生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 為我們的 R 語言課程付出努力**
**🤩 額外感謝微軟學生大使 Eric Wanjau, Jasleen Sondhi 與 Vidushi Gupta 對我們的 R 課程貢獻**
# 開始使用
請依照以下步驟操作:
1. **Fork 此儲存庫**點擊本頁右上角的「Fork」按鈕。
2. **Clone 儲存庫** `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [課程的所有額外資源可於我們的 Microsoft Learn 收藏頁找到](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
請依序操作:
1. **分叉此儲存庫Fork**點擊本頁右上角的「Fork」按鈕。
2. **複製儲存庫Clone**`git clone https://github.com/microsoft/ML-For-Beginners.git`
> 🔧 **需要幫助?** 查看我們的 [疑難排解指南](TROUBLESHOOTING.md) ,找到安裝、設定及執行課程常見問題的解決方案。
> [本課程的所有附加資源請見我們的 Microsoft Learn 集合](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **需要幫助?** 請查閱我們的[Troubleshooting Guide](TROUBLESHOOTING.md),解決常見的安裝、設定及執行問題。
**[學生們](https://aka.ms/student-page)**,使用此課程前請先 Fork 整個 repo 至你的 GitHub 帳號,並自行或組隊完成練習:
**[學生](https://aka.ms/student-page)**,請將此課程的整個儲存庫 Fork 到你的 GitHub 帳號,並自行或團體完成練習:
- 從課前小測驗開始
- 閱讀教材並完成課程活動,於每個知識點停下思考。
- 盡量理解課程內容並嘗試自己完成專案,而非直接執行解答碼;但解答碼已提供於專案課程中每個 `/solution` 資料夾中
- 進行課後小測驗。
- 完成挑戰任務
- 完成作業。
- 完成一組課程後,請造訪 [討論區](https://github.com/microsoft/ML-For-Beginners/discussions) 並以適用的 PAT進度評估工具問卷表達你的學習過程。我們也歡迎你對他人的 PAT 反饋,和大家一同學習
- 先做課前熱身測驗
- 閱讀課程教材並完成練習,並在每個知識點停下來思考。
- 盡量透過理解課程內容來建立專案,而非直接運行解答程式碼;不過解答可在每個專案課的 `/solution` 資料夾找到
- 做完課後測驗。
- 完成挑戰。
- 完成指定作業。
- 完成每組課程後,歡迎前往[討論區](https://github.com/microsoft/ML-For-Beginners/discussions)藉由填寫對應的 PAT 評分表「大聲學習」。PAT進度評估工具是用來提升學習的評分表。你也可以對其他人的 PAT 做出回應,共同進步
> 若想深入學習,我們推薦跟隨這些 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組及學習路徑。
> 若要進一步學習,我們建議跟隨這些[Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott)模組及學習路徑。
**教師們**,我們已提供一些[建議內容](for-teachers.md),助你使用此課程。
**教師**,我們已[提供一些建議](for-teachers.md) 關於如何使用此課程。
---
## 影導覽
## 影導覽
部分課程備有精簡影音示範。你可在課程內文中觀看,或至 [Microsoft Developer YouTube 頻道上的 ML for Beginners 播放清單](https://aka.ms/ml-beginners-videos) ,點擊下方圖片觀賞
部分課程附有短片教學。你可在課程中內嵌觀看,或者前往[微軟開發者 YouTube 頻道的 ML 入門播放清單](https://aka.ms/ml-beginners-videos)點擊下面的圖片瀏覽
[![ML for beginners banner](../../translated_images/zh-MO/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -89,80 +98,80 @@
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif 來自** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**GIF 製作:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 點擊上方圖片觀看專案與團隊成員介紹影片!
> 🎥 點擊上方圖片觀看有關本專案及其創作者的影片!
---
## 教學理念
建立此課程時,本團隊選擇了兩個教學理念:確保課程是動手做的 **專案導向**,並且包含 **頻繁的小測驗**。此外,課程具有一致的 **主題**,使結構緊密連結
設計本課程時,我們選擇了兩項教學原則:確保全程是動手操作的 **專案導向**,並且包含 **頻繁測驗**。另外,課程設計有共同的 **主題** 以增加連貫性
透過專案來調整內容,讓過程更吸引學習者,且加強概念吸收。課前低壓小測驗專注於設定學習意向,課後小測驗則進一步強化記憶。此課程設計靈活且有趣,既可整體參與,也可部分學習。專案規模由淺入深,至 12 週結束時逐步趨於複雜。此外,課程後章提供機器學習的實務應用介紹,可作為額外學分或討論素材
透過內容與專案的緊密結合,學習過程更能吸引學生注意力,且有助於鞏固概念。課前的低壓力測驗讓學生訂立學習目標,課後的再度測驗則支持加深記憶。課程有彈性且趣味十足,可完整學習或擷取部分主題。專案自簡入深,於 12 週循環末達到複雜度高峰。最後也有針對機器學習在現實世界應用的補充內容,可用作加分題或討論基礎
> 查看我們的 [行為準則](CODE_OF_CONDUCT.md)、[貢獻指引](CONTRIBUTING.md)、[翻譯指南](TRANSLATIONS.md) 與 [故障排解](TROUBLESHOOTING.md)。我們歡迎你提供建設性回饋!
> 請參考我們的[行為守則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯指南](TRANSLATIONS.md) 以及 [故障排除](TROUBLESHOOTING.md) 文件。我們十分歡迎您建設性的反饋!
## 每堂課包含
- 選擇性手繪筆記
- 選擇性補充影片
- 影音導覽(部分課程提供
- [課前熱身測](https://ff-quizzes.netlify.app/en/ml/)
- 文字課程
- 專案課程流程指引
- 影片導覽(部分課程
- [課前熱身](https://ff-quizzes.netlify.app/en/ml/)
- 書面課程內容
- 專案課程附分步驟指引
- 知識檢核
- 挑戰任務
- 挑戰
- 補充閱讀資料
- 作業
- [課後小測](https://ff-quizzes.netlify.app/en/ml/)
- [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
> **關於語言的說明**:這些課程主要以 Python 撰寫,但也有許多課程提供 R 版本。要完成 R 課程,請前往 `/solution` 資料夾,尋找 R 課程。它們包含 .rmd 副檔名,代表一個 **R Markdown** 檔案,可簡單定義為在 `Markdown 文件` 中嵌入 `程式碼區塊`R 或其他語言)及 `YAML 標頭` (用於指導如何格式化輸出,如 PDF。因此它成為資料科學的典範編寫框架允許你結合程式碼、其輸出及你的想法並用 Markdown 記錄。此外R Markdown 文件可渲染輸出格式如 PDF、HTML 或 Word。
> **關於語言說明**:這些課程主要使用 Python 撰寫,但許多課程亦提供 R 語言版本。要完成 R 語言課程,請到 `/solution` 資料夾找尋帶有 .rmd 格式的 R 課程檔案。此格式是 **R Markdown** 文件,可視為同時包含 R 或其他語言 `程式碼區塊``YAML 標頭`(用以指示如何產生如 PDF 格式輸出)的 Markdown 檔案。R Markdown 是資料科學的理想創作框架,結合了程式碼、執行結果與書寫筆記功能,且可以匯出為 PDF、HTML 或 Word 等格式。
> **關於測驗的說明**:所有測驗都包含在[Quiz App folder](../../quiz-app)中共有52個測驗每個測驗包含三個問題。它們在課程中有連結但測驗應用程式可以在本地運行請參照`quiz-app`資料夾中的說明以在本地託管或部署至Azure。
> **關於測驗的說明**:所有測驗都包含在 [Quiz App 資料夾](../../quiz-app) 中,共有 52 個測驗,每個包含三個問題。測驗由課程內連結,可本地執行測驗應用程式;請依照 `quiz-app` 資料夾中的說明,在本地架設或部署至 Azure。
| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author |
| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | 機器學習簡介 | [Introduction](1-Introduction/README.md) | 學習機器學習的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 了解此領域背後的歷史 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 學生在建立和應用機器學習模型時應考慮的重要公平性哲學議題有哪些? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究者使用哪些技術來建立機器學習模型? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | 回歸入門 | [Regression](2-Regression/README.md) | 使用Python和Scikit-learn開始回歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 視覺化和清理數據以準備機器學習 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性和多項式回歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯回歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | 網頁應用 🔌 | [Web App](3-Web-App/README.md) | 建立一個網頁應用來使用你訓練好的模型 | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | 分類簡介 | [Classification](4-Classification/README.md) | 清理、準備及視覺化你的數據;分類入門 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | 美味亞洲和印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器入門 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | 美味亞洲和印度料理 🍜 | [Classification](4-Classification/README.md) | 更多分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | 美味亞洲和印度料理 🍜 | [Classification](4-Classification/README.md) | 利用你的模型建立推薦系統網頁應用 | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | 分群入門 | [Clustering](5-Clustering/README.md) | 清理、準備及視覺化你的數據;分群介紹 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | 探索尼日利亞音樂喜好 🎧 | [Clustering](5-Clustering/README.md) | 探索K-均值分群方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | 自然語言處理簡介 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建立一個簡易機器人了解自然語言處理的基本知識 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | 常見NLP任務 ☕️ | [Natural language processing](6-NLP/README.md) | 透過理解處理語言結構時常用的任務加深你的自然語言處理知識 | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 使用珍.奧斯汀進行情感分析與翻譯 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 以飯店評論進行情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 以飯店評論進行情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | 時序預測入門 | [Time series](7-TimeSeries/README.md) | 時序預測入門 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 世界電力使用 ⚡️ - 以ARIMA進行時序預測 | [Time series](7-TimeSeries/README.md) | 使用ARIMA進行時序預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 世界電力使用 ⚡️ - 以SVR進行時序預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量回歸進行時序預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 強化學習入門 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習及Q學習入門 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 幫彼得避開狼! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| 後記 | 現實世界機器學習場景與應用 | [ML in the Wild](9-Real-World/README.md) | 傳統機器學習有趣且具啟發性的現實應用 | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| 後記 | 使用RAI面板進行機器學習模型除錯 | [ML in the Wild](9-Real-World/README.md) | 使用負責任AI面板元件進行機器學習模型除錯 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [在我們的Microsoft Learn收藏中找到本課程所有附加資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
| 01 | 機器學習簡介 | [Introduction](1-Introduction/README.md) | 學習機器學習的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 了解該領域的歷史背景 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 探討學生在建立及應用 ML 模型時應考慮的重要哲學性公平議題 | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究人員用來建立 ML 模型的技術 | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | 迴歸簡介 | [Regression](2-Regression/README.md) | 使用 Python 和 Scikit-learn 入門迴歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 可視化與清理資料,以備 ML 使用 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性與多項式迴歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯斯迴歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | 網頁應用 🔌 | [Web App](3-Web-App/README.md) | 建置可使用你的訓練模型的網頁應用 | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | 分類簡介 | [Classification](4-Classification/README.md) | 清理、準備及視覺化資料;分類介紹 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器介紹 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 更多分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 使用你的模型建立推薦網頁應用 | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | 分群簡介 | [Clustering](5-Clustering/README.md) | 清理、準備及視覺化資料;分群介紹 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | 探索尼日利亞音樂喜好 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-Means 分群方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | 自然語言處理簡介 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建立簡單機器人學習 NLP 基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | 常見NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 深化 NLP 知識,理解處理語言結構時需執行的常見任務 | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 使用 Jane Austen 進行情感分析與翻譯 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 利用旅館評論進行情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 利用旅館評論進行情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | 時間序列預測簡介 | [Time series](7-TimeSeries/README.md) | 時間序列預測介紹 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 世界電力使用 ⚡️ - 使用 ARIMA 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 世界電力使用 ⚡️ - 使用 SVR 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支援向量回歸器進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 強化學習簡介 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q-Learning 進行強化學習簡介 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 幫助彼得躲避狼!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | 實際機器學習場景與應用 | [ML in the Wild](9-Real-World/README.md) | 經典機器學習有趣且富啟發性的實際應用 | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| Postscript | 使用 RAI 儀表板進行機器學習模型除錯 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 儀表板組件進行機器學習模型除錯 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [在我們的 Microsoft Learn 集合中找到此課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## 離線存取
你可以使用[Docsify](https://docsify.js.org/#/)離線執行本文件。請fork此repo在你的本地機器上[安裝Docsify](https://docsify.js.org/#/quickstart)然後在此repo的根目錄輸入 `docsify serve`。網站將在本機端口3000服務`localhost:3000`。
你可以使用 [Docsify](https://docsify.js.org/#/) 離線執行此文件。分支此儲存庫,在你的本機安裝 [Docsify](https://docsify.js.org/#/quickstart),然後在此儲存庫根目錄輸入 `docsify serve`。網站將會在本地主機的 3000 埠執行`localhost:3000`。
## PDF檔
## PDF
找到帶連結的課程PDF [這裡](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)。
在[此處](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)找到課程大綱的帶連結 PDF
## 🎒 其他課程
我們團隊還出品其他課程!請看看:
我們團隊還製作其他課程!快來看看:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -179,44 +188,49 @@
---
### 專案生成人工智能系列
[![初學者的生成式 AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![生成式 AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![生成式 AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![生成式 AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### 生成式 AI 系列
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### 核心學習
[![機器學習初學者](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![資料科學初學者](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![人工智能初學者](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![網絡安全初學者](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![網頁開發初學者](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![物聯網初學者](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR 開發初學者](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot 系列
[![AI 配對編程的 Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![C#/.NET 的 Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot 冒險](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## 尋求幫助
如果你遇到困難或對構建 AI 應用程式有任何疑問,歡迎加入學習者和經驗豐富的開發者一起討論 MCP。這是一個支持性的社群歡迎提問並自由分享知識。
如果你遇到困難或對建構 AI 應用程式有任何疑問,歡迎加入一同學習的夥伴與經驗豐富的開發者討論 MCP。這是一個支持性的社群歡迎提問並自由分享知識。
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
如果你在建構過程中有產品反饋或發現錯誤,請訪問
如果你有產品反饋或在建構過程中遇到錯誤,請造訪
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## 進階學習提示
- 每堂課後複習筆記本,以加深理解。
- 練習自行實作演算法。
- 利用學到的概念探索實際數據集。
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件是使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯的。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原文件的母語版本應視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用此翻譯而產生的任何誤解或誤譯承擔責任。
此文件由人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 所翻譯。儘管我們致力於準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用此翻譯而引起的任何誤解或錯誤解讀承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "zh-TW"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-03T17:41:22+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T11:26:22+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "zh-TW"
},
@ -90,8 +90,8 @@
"language_code": "zh-TW"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T09:40:48+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T11:27:12+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "zh-TW"
},
@ -186,8 +186,8 @@
"language_code": "zh-TW"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T09:57:22+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T11:27:29+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "zh-TW"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "zh-TW"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T11:19:41+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "zh-TW"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-03T18:12:29+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "zh-TW"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T11:19:46+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "zh-TW"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T09:56:54+00:00",
@ -540,8 +552,8 @@
"language_code": "zh-TW"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T07:45:05+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T11:26:17+00:00",
"source_file": "README.md",
"language_code": "zh-TW"
},

@ -1,16 +1,18 @@
# 探索負責任人工智慧工具箱
# 探索負責任的 AI 工具箱
## 說明
## 指示
在本課程中,您學習了負責任人工智慧工具箱,一個「開源、社群驅動的專案,旨在幫助資料科學家分析和改進人工智慧系統」。在這次作業中,請探索 RAI 工具箱的其中一個[筆記本](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb),並在報告或簡報中分享您的發現。
在本課程中,您學習了負責任的 AI 工具箱,一個「開源且社群驅動的專案,旨在幫助資料科學家分析並改進 AI 系統」。這次作業請您探索 RAI Toolbox 的一個[筆記本](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb),並在報告或簡報中呈現您的發現。
## 評分標準
| 評分標準 | 卓越 | 合格 | 需要改進 |
| 標準 | 優秀 | 足夠 | 需改進 |
| -------- | --------- | -------- | ----------------- |
| | 提交一份報告或簡報,討論 Fairlearn 的系統、執行的筆記本,以及從中得出的結論 | 提交一份報告但未包含結論 | 未提交報告 |
| | 提交一份討論 Fairlearn 系統、所執行筆記本及運行結果結論的報告或簡報 | 提交一份沒有結論的報告 | 未提交報告 |
---
**免責聲明**
本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意自動翻譯結果可能包含錯誤或不準確之處。原始語言文件應視為權威來源。對於重要資訊,建議聘請專業人工翻譯。我們不對使用本翻譯所產生的任何誤解或誤釋負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,85 +1,97 @@
# 使用 Scikit-learn 建立回歸模型:四種回歸方法
# 使用 Scikit-learn 建立迴歸模型:四種迴歸方式
![線性回歸與多項式回歸資訊圖表](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
## 初學者筆記
線性迴歸用於當我們想預測一個**數值**(例如房價、溫度或銷售額)時。
它透過找到一條最佳代表輸入特徵與輸出之間關係的直線來運作。
在本課程中,我們專注於理解基本概念,然後再探討更進階的迴歸技術。
![線性與多項式迴歸資訊圖](../../../../translated_images/zh-TW/linear-polynomial.5523c7cb6576ccab.webp)
> 資訊圖表由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 製作
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
> ### [本課程也有 R 語言版本!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### 簡介
> ### [本課程有 R 版本!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### 介紹
迄今為止,你已經探索了什麼是迴歸,並使用本課程將持續使用的南瓜定價資料集的範例數據。你也用 Matplotlib 進行了視覺化。
現在你準備更深入了解機器學習的迴歸。雖然視覺化能幫助你理解資料,機器學習真正的強大之處在於訓練模型。模型在歷史數據上訓練,能自動捕捉數據的依賴關係,並讓你能對新數據(模型未見過的)進行預測。
到目前為止,你已經使用我們將在本課程中持續使用的南瓜價格數據集,探索了回歸的概念,並使用 Matplotlib 對其進行了可視化。
本課程你將了解兩種迴歸類型_基本線性迴歸_和_多項式迴歸_以及這些技術背後的一些數學原理。這些模型將讓我們根據不同輸入數據預測南瓜價格
現在你已經準備好更深入地了解機器學習中的回歸。雖然可視化可以幫助你理解數據但機器學習的真正力量來自於_訓練模型_。模型基於歷史數據進行訓練自動捕捉數據之間的依賴關係並能夠對模型未見過的新數據進行預測。
[![機器學習初學者-理解線性迴歸](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "機器學習初學者-理解線性迴歸")
在本課程中你將學習兩種類型的回歸_基本線性回歸_和_多項式回歸_以及這些技術背後的一些數學原理。這些模型將幫助我們根據不同的輸入數據預測南瓜的價格
> 🎥 點擊上圖觀看線性迴歸的短片介紹
[![機器學習初學者 - 理解線性回歸](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "機器學習初學者 - 理解線性回歸")
> 整個課程假設數學知識最低限度,並試圖讓來自其他領域的學生也能理解,所以請留意筆記、🧮 註解、圖解及其他學習工具,幫助理解。
> 🎥 點擊上方圖片觀看關於線性回歸的簡短視頻概述。
### 先備知識
> 在整個課程中,我們假設學生對數學的了解有限,並努力使其對來自其他領域的學生更易於理解,因此請留意筆記、🧮 註解、圖表和其他學習工具來幫助理解
你應該已熟悉我們正在檢視的南瓜資料結構。它已預先載入且清理完畢於本課程的 _notebook.ipynb_ 檔案中。在該檔中,南瓜價格以每蒲式耳計算,並顯示於新的資料框中。請確保你可以在 Visual Studio Code 的執行核心中執行這些筆記本
### 前置要求
### 準備
到目前為止你應該已經熟悉我們正在研究的南瓜數據的結構。你可以在本課程的_notebook.ipynb_文件中找到預加載和預清理的數據。在該文件中南瓜價格以每蒲式耳的價格顯示在一個新的數據框中。請確保你能在 Visual Studio Code 的內核中運行這些筆記本
提醒一下,你載入這些資料是為了對它提出問題
### 準備工作
- 什麼時候是買南瓜的最佳時機?
- 我期望一箱小型南瓜的價格是多少?
- 我應該買半蒲式耳的籃子還是一箱 1又1/9蒲式耳的包裝
讓我們繼續挖掘這些數據。
提醒一下,你正在加載這些數據以便對其進行提問。
在上一課中,你建立了 Pandas 資料框並填入原始數據集的一部分,透過蒲式耳將價格標準化。不過這樣你只能取得大約 400 筆資料,且僅限秋季月份
- 什麼時候是購買南瓜的最佳時機?
- 一箱迷你南瓜的價格大約是多少?
- 我應該購買半蒲式耳籃子還是 1 1/9 蒲式耳的箱子?
讓我們繼續深入挖掘這些數據。
看看本課程附帶筆記本中預先載入的數據。數據已被載入並繪製了初始的散點圖,展示月份資料。也許我們可以透過更進一步清理,得到關於資料性質的更多細節。
在上一課中,你創建了一個 Pandas 數據框,並用原始數據集的一部分填充它,將價格標準化為每蒲式耳。然而,通過這樣做,你只能收集到大約 400 個數據點,並且僅限於秋季月份。
## 線性迴歸線
查看本課程附帶的筆記本中預加載的數據。數據已經預加載,並繪製了一個初步的散點圖來顯示月份數據。也許通過進一步清理數據,我們可以更詳細地了解數據的性質。
如同在第 1 課中所學,線性迴歸的目標是繪製一條線來:
## 線性回歸線
- **顯示變數關係**。顯示變數之間的關係
- **進行預測**。準確預測新數據點在該線上的位置。
正如你在第一課中學到的,線性回歸的目標是能夠繪製一條線來:
「最小平方法迴歸」通常用來畫這類線。最小平方法指的是在模型中最小化總誤差的過程。對每個數據點,我們測量實際點與迴歸線之間的垂直距離(稱為殘差)。
- **顯示變量關係**。顯示變量之間的關係
- **進行預測**。準確預測新數據點相對於該線的位置
我們將距離平方有兩個主要原因:
通常使用**最小二乘回歸**來繪製這種類型的線。'最小二乘'這個術語意味著圍繞回歸線的所有數據點的平方和被加總。理想情況下,最終的總和應該盡可能小,因為我們希望誤差數量(即`最小二乘`)越低越好
1. **避免正負抵銷:** 我們希望將 -5 的誤差視同 +5平方使所有值變成正值
我們這樣做是因為我們希望建模出一條與所有數據點的累積距離最小的線。我們還會在加總之前對項進行平方,因為我們關心的是其大小而不是方向
2. **懲罰離群值:** 平方會給大誤差更大權重,迫使線條更貼近遠離的點
> **🧮 顯示數學公式**
接著我們會把所有平方值加總起來。目標是找到特定的線,使最終總和達到最小值(可能的最小值),因此稱作「最小平方法」。
> **🧮 答案告訴我數學**
>
> 這條線稱為_最佳擬合線_可以用[一個方程](https://en.wikipedia.org/wiki/Simple_linear_regression)表示:
> 這條線稱為 _最佳擬合線_,可用[方程](https://en.wikipedia.org/wiki/Simple_linear_regression) 表示:
>
> ```
> Y = a + bX
> ```
>
> `X`'解釋變量'`Y` 是'因變量'。線的斜率是 `b`,而 `a` 是 y 截距,表示當 `X = 0``Y` 的值。
> `X`「解釋變數」;`Y` 是「應變數」。線的斜率為 `b``a` 是 y 截距,表示當 `X = 0` 時,`Y` 的值。
>
>![計算斜率](../../../../2-Regression/3-Linear/images/slope.png)
>![計算斜率](../../../../translated_images/zh-TW/slope.f3c9d5910ddbfcf9.webp)
>
> 首先計算斜率 `b`。資訊圖表由 [Jen Looper](https://twitter.com/jenlooper) 製作
> 首先計算斜率 `b`。資訊圖表由 [Jen Looper](https://twitter.com/jenlooper) 製作
>
> 換句話說,參考我們的南瓜數據的原始問題:"根據月份預測每蒲式耳南瓜的價格"`X` 代表價格,`Y` 代表銷售月份。
> 換句話說,將我們南瓜數據的原始問題「按月份預測南瓜每蒲式耳價格」`X` 代表價格,`Y` 代表銷售月份。
>
>![完成方程](../../../../2-Regression/3-Linear/images/calculation.png)
>![完成公式](../../../../translated_images/zh-TW/calculation.a209813050a1ddb1.webp)
>
> 計算 Y 的值。如果你支付大約 $4那一定是四月!資訊圖表由 [Jen Looper](https://twitter.com/jenlooper) 製作
> 計算 Y 的值。如果你付大約 4 美元,一定是 4 月!資訊圖表由 [Jen Looper](https://twitter.com/jenlooper) 製作
>
> 計算這條線的數學公式必須展示線的斜率,這也取決於截距,即當 `X = 0``Y` 的位置
> 計算該線的數學必須顯示斜率,斜率也取決於截距,表示 `X = 0``Y` 在哪裡
>
> 你可以在 [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) 網站上觀察這些值的計算方法。還可以訪問[這個最小二乘計算器](https://www.mathsisfun.com/data/least-squares-calculator.html)來觀察數值如何影響這條線
> 你可以在 [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) 網站觀察計算方法。也可造訪 [此最小平方計算器](https://www.mathsisfun.com/data/least-squares-calculator.html),觀察數值如何影響線段
## 相關
## 相關係數
另一個需要理解的術語是給定 X 和 Y 變量之間的**相關係數**。使用散點圖,你可以快速可視化這個係數。數據點整齊排列成一條線的圖表具有高相關性,而數據點在 X 和 Y 之間隨意分佈的圖表則具有低相關性
還有一個要理解的名詞是給定 X 和 Y 變數間的**相關係數**。透過散點圖可以快速將其視覺化。若散點排成一條整齊的線,相關性高;若散點亂散在 X 與 Y 間,相關性低
一個好的線性回歸模型應該是一個使用最小二乘回歸方法並具有高相關係數(接近 1 而非 0的模型
好的線性迴歸模型,應該是透過最小平方法計算出迴歸線,且其相關係數數值偏高(靠近 1而非 0
運行本課程附帶的筆記本,查看月份與價格的散點圖。根據你對散點圖的視覺解讀,月份與南瓜銷售價格之間的數據相關性是高還是低?如果你使用更細緻的測量方式(例如*一年中的天數*,即自年初以來的天數),這種情況會改變嗎?
執行本課程附帶的筆記本,查看「月份對價格」的散點圖。根據你對散點圖的視覺判斷,南瓜銷售的月份與價格關聯性高還是低?若改用更細緻的度量,像是「一年中的第幾天」(例如從年初算起的天數),這個關係會改變嗎?
在下面的代碼中,我們假設我們已經清理了數據,並獲得了一個名為 `new_pumpkins` 的數據框,類似於以下內容
在下面的程式碼中,我們假設已清理資料,並獲得一個名為 `new_pumpkins` 的資料框,類似如下
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
@ -89,36 +101,36 @@ ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Pri
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> 清理數據的代碼可在 [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) 中找到。我們執行了與上一課相同的清理步驟,並使用以下表達式計算了 `DayOfYear`
> 用於清理資料的程式碼可參考 [`notebook.ipynb`](notebook.ipynb)。我們執行了與前一課相同的清理步驟,並使用以下運算式計算了 `DayOfYear` 欄位
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
現在你已經了解了線性回歸背後的數學原理,讓我們創建一個回歸模型,看看我們是否能預測哪種南瓜包裝的價格最划算。一位為節日南瓜園購買南瓜的人可能希望獲得這些信息,以便優化南瓜包裝的採購
既然你已了解線性迴歸背後的數學,讓我們建立一個迴歸模型,看看是否能預測哪種南瓜包裝會有最佳南瓜價格。購買南瓜作為節慶南瓜園的你,可能想利用這些資訊來最佳化購買策略
## 尋找相關性
[![機器學習初學者 - 尋找相關性:線性回歸的關鍵](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "機器學習初學者 - 尋找相關性:線性回歸的關鍵")
[![機器學習初學者-尋找相關性:線性迴歸的關鍵](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "機器學習初學者-尋找相關性:線性迴歸的關鍵")
> 🎥 點擊上方圖片觀看關於相關性的簡短視頻概述
> 🎥 點擊上圖觀看相關性的短片介紹
從上一課你可能已看到,不同月份的平均價格如下所示
從上一課你可能已看到,不同月份的平均價格如下:
<img alt="按月份的平均價格" src="../../../../translated_images/zh-TW/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="每月平均價格" src="../../../../translated_images/zh-TW/barchart.a833ea9194346d76.webp" width="50%"/>
這表明應該存在某種相關性,我們可以嘗試訓練線性回歸模型來預測 `Month``Price` 之間的關係,或者 `DayOfYear``Price` 之間的關係。以下是顯示後者關係的散點圖:
這表示應該存在某種相關性,我們可以試著訓練線性迴歸模型,預測 `Month``Price` 之間,或 `DayOfYear``Price` 之間的關係。下圖展示了後者的散佈圖:
<img alt="價格與一年中的天數的散點圖" src="../../../../translated_images/zh-TW/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="價格 vs. 一年中的日子散點圖" src="../../../../translated_images/zh-TW/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
讓我們使用 `corr` 函數檢查是否存在相關性
讓我們使用 `corr` 函數看看是否存在相關
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
看起來相關性很小,`Month` 的相關性為 -0.15`DayOfYear` 的相關性為 -0.17,但可能還有其他重要的關係。看起來不同的南瓜品種對價格的影響更大。為了確認這一假設,讓我們用不同的顏色繪製每種南瓜的類別。通過將 `ax` 參數傳遞給 `scatter` 繪圖函數,我們可以將所有點繪製在同一圖表上
看起來,按月份的相關性約為 -0.15,按「一年中第幾天」的相關性約為 -0.17,但可能還存在其他重要關係。看起來不同南瓜品種對價格形成了不同的群集。為了驗證這點,我們用不同顏色標示每個南瓜種類,並透過傳遞 `ax` 參數給 `scatter` 繪圖函式,將所有點繪在同一張圖中
```python
ax=None
@ -128,42 +140,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="價格與一年中的天數的散點圖(按顏色區分)" src="../../../../translated_images/zh-TW/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="價格 vs. 一年中日子散點圖(顏色區分)" src="../../../../translated_images/zh-TW/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
我們的調查表明,品種對整體價格的影響比實際銷售日期更大。我們可以通過條形圖看到這一點
調查顯示,南瓜的品種對價格的影響比實際銷售日期更大。我們可用直條圖視覺化
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="價格與品種的條形圖" src="../../../../translated_images/zh-TW/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="價格 vs. 品種直條圖" src="../../../../translated_images/zh-TW/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
讓我們暫時只關注一種南瓜品種——'pie type',看看日期對價格有什麼影響:
現在先專注於其中一種南瓜品種「派型」,看看日期對價格有什麼影響:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="價格與一年中的天數的散點圖(僅限 pie type" src="../../../../translated_images/zh-TW/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="價格 vs. 一年中日子散點圖" src="../../../../translated_images/zh-TW/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
如果我們現在使用 `corr` 函數計算 `Price``DayOfYear` 之間的相關性,我們會得到大約 `-0.27`——這意味著訓練一個預測模型是有意義的。
接著用 `corr` 函數計算 `Price``DayOfYear` 的相關係數,可能會得到約 `-0.27`,這代表訓練預測模型是有意義的。
> 在訓練線性回歸模型之前,確保數據乾淨是很重要的。線性回歸對缺失值的處理效果不好,因此清除所有空單元格是有意義的
> 在訓練線性迴歸模型前,務必確保數據清理乾淨。線性迴歸對缺失值不敏感,因此最好去除所有空值
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
另一種方法是用對應列的平均值填充這些空值。
另一種選擇是以該欄位的平均值填補空值。
## 簡單線性
## 簡單線性
[![機器學習初學者 - 使用 Scikit-learn 的線性和多項式回歸](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "機器學習初學者 - 使用 Scikit-learn 的線性和多項式回歸")
[![機器學習初學者-使用 Scikit-learn 的線性與多項式迴歸](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "機器學習初學者-使用 Scikit-learn 的線性與多項式迴歸")
> 🎥 點擊上方圖片觀看關於線性和多項式回歸的簡短視頻概述
> 🎥 點擊上圖觀看線性與多項式迴歸的短片介紹
為了訓練我們的線性回歸模型,我們將使用 **Scikit-learn**
我們將使用 **Scikit-learn** 框架來訓練線性迴歸模型
```python
from sklearn.linear_model import LinearRegression
@ -171,31 +183,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
我們首先將輸入值(特徵)和預期輸出(標籤)分離到單獨的 numpy 陣列中
我們先將輸入值(特徵)與預期輸出(標籤)分離成不同的 numpy 陣列
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> 請注意,我們必須對輸入數據執行 `reshape`,以便線性回歸包能正確理解它。線性回歸期望輸入為一個 2D 陣列,其中每行對應於輸入特徵的向量。在我們的例子中,由於我們只有一個輸入——我們需要一個形狀為 N×1 的陣列,其中 N 是數據集的大小。
> 請注意,我們對輸入資料執行 `reshape`,讓線性迴歸套件能正確理解。線性迴歸期望 2D 陣列作為輸入,陣列的每一列代表一組輸入特徵向量。我們這裡只有一個輸入,因此需要 N×1 形狀的陣列,其中 N 為資料集大小。
然後,我們需要將數據分為訓練集和測試集,以便在訓練後驗證我們的模型:
接著,我們將數據分割為訓練集與測試集,以便在訓練後驗證模型:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
最後,訓練實際的線性回歸模型只需要兩行代碼。我們定義 `LinearRegression` 對象,並使用 `fit` 方法將其擬合到我們的數據:
最後,訓練真正的線性迴歸模型只要兩行程式碼。我們定義一個 `LinearRegression` 物件,並用 `fit` 方法擬合數據:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` 對象在 `fit` 後包含所有回歸係數,可以通過 `.coef_` 屬性訪問。在我們的例子中,只有一個係數,應該大約是 `-0.017`。這意味著價格似乎隨時間略有下降,但幅度不大,每天大約下降 2 美分。我們還可以使用 `lin_reg.intercept_` 訪問回歸線與 Y 軸的交點——在我們的例子中,它大約是 `21`,表示年初的價格。
`LinearRegression` 物件在經過 `fit` 訓練後包含了回歸的所有係數,可以透過 `.coef_` 屬性存取。在我們的例子中,只有一個係數,應該大約是 `-0.017`。這代表價格隨時間似乎略微下降,但幅度不大,大約每天跌了兩分錢。我們也可以使用 `lin_reg.intercept_` 取得回歸與 Y 軸的交叉點,這在我們的例子中會是大約 `21`,顯示年初的價格。
為了檢查我們的模型有多準確我們可以在測試數據集上預測價格然後測量預測值與預期值的接近程度。這可以使用均方誤差MSE指標完成該指標是所有預期值與預測值之間平方差的平均值。
為了檢視模型的準確度我們可以在測試資料集上預測價格然後衡量預測值與期望值的接近程度。這可以用均方誤差MSE來衡量它是所有預期值與預測值差異平方的平均值。
```python
pred = lin_reg.predict(X_test)
@ -203,36 +215,37 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
我們的錯誤似乎集中在兩個點上,大約是 17%。表現不太理想。另一個衡量模型質量的指標是 **決定係數**,可以通過以下方式獲得:
我們的誤差大約是 2 點,約為 ~17%。表現並不佳。判斷模型品質的另一個指標是**決定係數**,可用以下方式取得:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
如果值為 0表示模型未考慮輸入數據並且充當*最差的線性預測器*,即僅僅是結果的平均值。值為 1 則表示我們可以完美地預測所有期望的輸出。在我們的情況下,決定係數約為 0.06,這相當低。
```
若該值為 0表示模型沒有考慮輸入資料等同於*最差的線性預測*,也就是輸出結果的平均值。值為 1 意味著我們可以完美地預測所有期望輸出。在我們的例子中,決定係數約為 0.06相當低。
我們還可以繪製測試數據與回歸線,以更好地了解回歸在我們的情況下是如何工作的
我們還可以將測試資料與回歸直線繪製在一起,更清楚地了解回歸情況
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="線性回歸" src="../../../../translated_images/zh-TW/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/zh-TW/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## 多項式回歸
另一種線性回歸是多項式回歸。有時變量之間存在線性關係,例如南瓜的體積越大,價格越高;但有時這些關係無法用平面或直線來表示。
另一種線性回歸是多項式回歸。有時變數之間為線性關係,例如體積越大的南瓜價格越高,但有時這種關係無法用一平面或直線來表示。
✅ 這裡有[一些更多的例](https://online.stat.psu.edu/stat501/lesson/9/9.8),展示了可以使用多項式回歸的數據。
✅ 這裡有[更多使用多項式回歸資料範例](https://online.stat.psu.edu/stat501/lesson/9/9.8)
再看看日期和價格之間的關係。這個散點圖看起來是否一定要用直線來分析?價格不會波動嗎?在這種情況下,你可以嘗試使用多項式回歸。
再看看日期和價格間的關係。這個散佈圖看起來一定適合用直線分析嗎?價格不是會波動嗎?這種情況下,可以嘗試多項式回歸。
✅ 多項式是可能包含一個或多個變量和係數的數學表達式。
✅ 多項式是可能包含一個或多個變數和係數的數學式
多項式回歸會創建一條曲線,以更好地擬合非線性數據。在我們的情況下,如果我們在輸入數據中加入平方的 `DayOfYear` 變量,我們應該能夠用一條拋物線來擬合數據,該拋物線在一年中的某個點會有一個最低值。
多項式回歸會做出曲線,以更適合非線性資料。在我們的例子中,若將平方的 `DayOfYear` 變數加入輸入資料,即可用拋物線去擬合資料,且該曲線會在一年中的某點出現最小值。
Scikit-learn 提供了一個有用的 [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline),可以將不同的數據處理步驟結合在一起。**管道**是一系列的**估算器**。在我們的情況下,我們將創建一個管道,首先向模型添加多項式特徵,然後訓練回歸
Scikit-learn 提供方便的[pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline)來串接資料處理的不同步驟。**pipeline** 是一連串的**估計器**。在我們的例子中,我們將建立一個先加入多項式特徵,然後訓練回歸的 pipeline
```python
from sklearn.preprocessing import PolynomialFeatures
@ -241,62 +254,62 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
使用 `PolynomialFeatures(2)` 表示我們將包含輸入數據中的所有二次多項式。在我們的情況下,這僅意味著 `DayOfYear`<sup>2</sup>,但如果有兩個輸入變量 X 和 Y這將添加 X<sup>2</sup>、XY 和 Y<sup>2</sup>。如果需要,我們也可以使用更高次的多項式。
使用 `PolynomialFeatures(2)` 表示會包含所有二次多項式。在我們這裡,只有 `DayOfYear`<sup>2</sup>,但若有兩個輸入變數 X 和 Y則會加入 X<sup>2</sup>、XY 和 Y<sup>2</sup>。如果想,也可使用更高次數多項式。
管道可以像原始的 `LinearRegression` 對象一樣使用,例如我們可以 `fit` 管道,然後使用 `predict` 獲得預測結果。以下是顯示測試數據和近似曲線的圖表
Pipeline 使用方法和原本的 `LinearRegression` 物件一樣,我們可以 `fit` pipeline然後用 `predict` 得到預測結果。下圖是測試資料和擬合曲線
<img alt="多項式回歸" src="../../../../translated_images/zh-TW/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/zh-TW/poly-results.ee587348f0f1f60b.webp" width="50%" />
使用多項式回歸,我們可以獲得稍低的 MSE 和稍高的決定係數,但提升並不顯著。我們需要考慮其他特徵!
使用多項式回歸,我們可獲得略低的 MSE 和略高的決定係數,但差異不大。還需考慮其他特徵!
> 你可以看到南瓜價格的最低點大約出現在萬聖節附近。你如何解釋這一現象?
> 你可以看到最低的南瓜價格大約出現在萬聖節前後。你怎麼解釋這個現象?
🎃 恭喜!你剛剛創建了一個可以幫助預測派南瓜價格的模型。你可能可以對所有南瓜品種重複相同的過程,但這樣會很繁瑣。現在讓我們學習如何在模型中考慮南瓜品種
🎃 恭喜你,剛剛建立了一個能幫助預測派用南瓜價格的模型。你或許可以對所有南瓜種類重複這個流程,但那會很繁瑣。現在我們來學習如何讓模型納入南瓜品種差異
## 類別特徵
在理想情況下,我們希望能夠使用同一模型來預測不同南瓜品種的價格。然而,`Variety` 列與 `Month` 等列有所不同,因為它包含非數值值。這類列被稱為**類別型**。
理想狀況下,我們希望使用同一個模型預測不同南瓜品種的價格。然而,`Variety` 欄位不同於 `Month` 等欄位,因為它包含非數值資料。這類欄位稱為**類別特徵**。
[![初學者的機器學習 - 使用線性回歸進行類別特徵預測](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "初學者的機器學習 - 使用線性回歸進行類別特徵預測")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 點擊上方圖片觀看有關使用類別特徵的簡短視頻概述
> 🎥 點擊上方圖片,觀看使用類別特徵的簡短影片介紹
以下是品種與平均價格的關係
這裡展示不同品種的平均價格差異
<img alt="按品種劃分的平均價格" src="../../../../translated_images/zh-TW/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/zh-TW/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
為了考慮品種,我們首先需要將其轉換為數值形式,或者**編碼**。有幾種方法可以做到
要考慮品種,我們首先需要將它轉換成數值形式,或稱**編碼**。有幾種方法
* 簡單的**數值編碼**會建立一個不同品種的表,然後用該表中的索引替換品種名稱。這對於線性回歸來說不是最好的方法,因為線性回歸會將索引的實際數值考慮進去,並通過某些係數將其添加到結果中。在我們的情況下,索引號與價格之間的關係顯然是非線性的,即使我們確保索引按某種特定方式排序
* **獨熱編碼**會用 4 個不同的列替換 `Variety` 列,每個品種對應一列。如果某行屬於某品種,該列的值為 `1`,否則為 `0`。這意味著線性回歸中會有四個係數,每個南瓜品種一個,負責該品種的“起始價格”(或者更準確地說是“附加價格”)。
* 簡單的**數字編碼**會建立品種列表,然後用該列表的索引取代品種名稱。但對線性回歸而言,這不是好方法,因為線性回歸直接使用編號數值並乘以係數,然而索引與價格間的關係很明顯非線性,即使索引是有序的
* **One-hot 編碼**會將 `Variety` 欄位拆成四個欄位,每個欄位對應一品種。每一列中對應品種的欄位為 `1`,其餘為 `0`。這樣線性回歸會有四個係數,分別代表各品種的「基礎價格」(或可視為「額外價格」)。
以下代碼展示了如何對品種進行獨熱編碼
下面程式碼顯示如何以 one-hot 編碼品種
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
要使用獨熱編碼的品種作為輸入訓練線性回歸,我們只需要正確初始化 `X``y` 數據
若要使用 one-hot 編碼的品種作為輸入訓練線性回歸,只要正確初始化 `X``y`
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
餘代碼與我們上面用於訓練線性回歸的代碼相同。如果你嘗試一下,你會發現均方誤差大致相同,但我們的決定係數大幅提高(約 77%)。為了獲得更準確的預測,我們可以考慮更多的類別特徵,以及數值特徵,例如 `Month``DayOfYear`。要獲得一個大的特徵數組,我們可以使用 `join`
他程式碼與之前訓練線性回歸相同。若你嘗試執行,會看到均方誤差差不多,但決定係數大幅提升(約 77%)。想得到更準確的預測,可以加入更多類別特徵以及數值特徵,如 `Month``DayOfYear`。要獲得一個完整的特徵陣列,可以使用 `join`
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -304,69 +317,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
```
在這裡,我們還考慮了 `City``Package` 類型,這使得 MSE 降至 2.8410%),決定係數提高到 0.94
這裡也納入了 `City``Package` 類型,得到 MSE 2.8410%)和決定係數 0.94
## 整合所有內容
## 綜合應用
了構建最佳模型,我們可以使用上述示例中的綜合數據(獨熱編碼的類別特徵 + 數值特徵)以及多項式回歸。以下是完整代碼供你參考
得到最佳模型我們可將上例中合併的one-hot 編碼類別 + 數值)資料,搭配多項式回歸。以下是完整程式碼以方便使用
```python
# set up training data
# 設置訓練資料
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# 進行訓練和測試資料分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# 設置並訓練流程
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# 預測測試資料結果
pred = pipeline.predict(X_test)
# calculate MSE and determination
# 計算均方誤差和判定係數
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
```
應該能讓我們的決定係數達到接近 97%MSE=2.23(約 8% 的預測誤差)。
樣應該可達到最高決定係數接近 97%MSE=2.23(約 8% 預測誤差)。
| 模型 | MSE | 決定係數 |
|-------|-----|---------------|
| `DayOfYear` 線性 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多項式 | 2.73 (17.0%) | 0.08 |
| `Variety` 線性 | 5.24 (19.7%) | 0.77 |
| 所有特徵線性 | 2.84 (10.5%) | 0.94 |
| 所有特徵多項式 | 2.23 (8.25%) | 0.97 |
| 模型 | MSE | 決定係數 |
|-------|-----|-----------|
| `DayOfYear` 線性 | 2.77 (17.2%) | 0.07 |
| `DayOfYear` 多項式 | 2.73 (17.0%) | 0.08 |
| `Variety` 線性 | 5.24 (19.7%) | 0.77 |
| 全特徵 線性 | 2.84 (10.5%) | 0.94 |
| 全特徵 多項式 | 2.23 (8.25%) | 0.97 |
🏆 做得好!你在一節課中創建了四個回歸模型,並將模型質量提高到 97%。在回歸的最後一部分中,你將學習如何使用邏輯回歸來確定類別。
🏆 做得好!你在一堂課中建立了四個回歸模型,並將模型品質提升到 97%。在最後一節「回歸型」中,你將學習用邏輯回歸判斷類別。
---
## 🚀 挑戰
## 🚀挑戰
在此筆記本中測試幾個不同的變量,看看相關性如何影響模型的準確性。
在本筆記本中測試多個不同變數,觀察其相關性與模型準確度的對應關係。
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## 回顧與自學
## 複習與自學
在本課中,我們學習了線性回歸。還有其他重要的回歸類型。閱讀有關逐步回歸、嶺回歸、套索回歸和彈性網回歸技術的資料。一門很好的課程是 [斯坦福統計學習課程](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
本課程介紹線性回歸。還有許多重要的回歸型態。可閱讀邁進式回歸、嶺回歸、套索回歸與彈性網路技巧。深入了解建議學習[史丹佛統計學習課程](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## 作業
[建模型](assignment.md)
[立一個模型](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。
本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們力求準確,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件之母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤譯負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,44 +1,44 @@
# 美食分類器 2
# Cuisine classifiers 2
在這第二堂分類課中,您將探索更多分類數據的方法。同時,您還將學習選擇不同分類器所帶來的影響。
在這第二堂分類課程中,您將探索更多分類數值資料的方法。您也將了解選擇不同分類器可能帶來的影響。
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
### 前置條件
### 先備條件
我們假設您已完成之前的課程,並在這個四堂課的資料夾根目錄中的 `data` 資料夾內擁有一個名為 _cleaned_cuisines.csv_ 的清理後數據集
我們假設您已完成前面的課程,並在您的 `data` 資料夾中擁有一個清理過的資料集,檔名為 _cleaned_cuisines.csv_位於此 4 課程資料夾的根目錄
### 準備工作
### 準備
我們已將清理後的數據集載入到您的 _notebook.ipynb_ 文件中,並將其分為 X 和 y 數據框,準備進行模型構建
我們已經將您的 _notebook.ipynb_ 檔案載入清理過的資料集,並將其分割成 X 和 y 兩個資料框,準備進行模型建立流程
## 分類地圖
之前,您已學習如何使用 Microsoft 的速查表來分類數據。Scikit-learn 提供了一個類似但更細緻的速查表,可以進一步幫助您縮小估算器(分類器的另一個術語)的選擇範圍:
先前,您已學習過使用 Microsoft 的作弊表來分類資料的各種選項。Scikit-learn 提供了類似但更細緻的作弊表,可協助您進一步縮小估計器(分類器)的選擇範圍:
![Scikit-learn 的機器學習地圖](../../../../4-Classification/3-Classifiers-2/images/map.png)
> 提示[在線查看此地圖](https://scikit-learn.org/stable/tutorial/machine_learning_map/),並點擊路徑以閱讀相關文檔
![ML Map from Scikit-learn](../../../../translated_images/zh-TW/map.e963a6a51349425a.webp)
> 提示: [線上檢視此地圖](https://scikit-learn.org/stable/tutorial/machine_learning_map/) 並點擊路徑以閱讀文件
### 計
### 計
當您對數據有清晰的理解時,這張地圖非常有幫助,因為您可以沿著它的路徑做出決策:
此地圖在您對資料有明確理解後非常有幫助,您可以「沿著路徑走」以做決策:
- 我們有超過 50 樣本
- 我們希望預測一個類別
- 我們有標籤數據
- 我們的樣本少於 10 萬
- ✨ 我們可以選擇 Linear SVC
- 如果這不起作用,因為我們有數值數據
- 我們可以嘗試 ✨ KNeighbors Classifier
- 如果這也不起作用,嘗試 ✨ SVC 和 ✨ Ensemble Classifiers
- 我們有超過 50 樣本
- 我們預測一個類別
- 我們有標記資料
- 我們小於 10 萬筆樣本
- ✨ 可以選擇 Linear SVC
- 若此方法無效,因為我們有數值資料
- 可以嘗試 ✨ KNeighbors Classifier
- 若此方法無效,嘗試 ✨ SVC 和 ✨ Ensemble Classifiers
這是一條非常有幫助的路徑。
## 練習 - 分割數據
## 練習 - 分割資料
按照這條路徑,我們應該從導入一些需要的庫開始
依照這路徑,我們應先匯入要用的函式庫
1. 導入所需的庫:
1. 匯入所需函式庫:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@
import numpy as np
```
1. 分割您的訓練數據和測試數據
1. 分割您的訓練與測試資料
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## 線性 SVC 分類器
## Linear SVC 分類器
支持向量聚類SVC是支持向量機SVM技術家族中的一員以下將進一步了解這些技術。在這種方法中您可以選擇一個「核函數」來決定如何聚類標籤。「C」參數指的是「正則化」它調節參數的影響。核函數可以是[多種選項](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)之一;在這裡,我們將其設置為「線性」,以確保使用線性 SVC。預設情況下概率為「false」在這裡我們將其設置為「true」以獲取概率估計。我們將隨機狀態設置為「0」以隨機打亂數據以獲取概率。
支持向量分群 (SVC) 是支持向量機器系列機器學習技術的子集合(以下可了解更多)。此方法中,您可以選擇一個「核函數」來決定如何分群標籤。'C' 參數指的是「正則化」,控制參數的影響力。核函數可為[多種選項](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)之一;這裡我們設定為 'linear' 以使用線性 SVC。預設 probability 為 'false',這裡我們設定為 'true' 以收集概率估計。我們設定 random state 為 '0' 以洗牌資料取得概率。
### 練習 - 用線性 SVC
### 練習 - 使用線性 SVC
從創建分類器數組開始。隨著我們的測試,您將逐步向此數組添加內容
先建立一個分類器陣列。在測試的過程中您將漸進增加該陣列
1. 從線性 SVC 開始:
1. 先從 Linear SVC 開始:
```python
C = 10
# Create different classifiers.
# 建立不同的分類器。
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. 使用線性 SVC 訓練您的模型並打印報告:
2. 使用 Linear SVC 訓練模型並輸出報告:
```python
n_classifiers = len(classifiers)
@ -105,21 +105,21 @@
weighted avg 0.79 0.79 0.79 1199
```
## K-Neighbors 分類器
## K 最近鄰分類器
K-Neighbors 屬於「鄰居」家族的機器學習方法,可用於監督式和非監督式學習。在這種方法中,創建了一個預定義數量的點,並圍繞這些點收集數據,以便為數據預測通用標籤。
K-Neighbors 是「鄰居」系列機器學習方法的子集合,可用於監督式與非監督式學習。此方法預先建立了一定數量的點,並將資料聚集於這些點附近,以便為資料預測一般化的標籤。
### 練習 - 應用 K-Neighbors 分類器
### 練習 - 使用 K 最近鄰分類器
之前的分類器表現不錯,並且與數據相容,但也許我們可以獲得更好的準確性。嘗試使用 K-Neighbors 分類器。
前一個分類器效果很好並且適合資料,但也許我們能得到更佳的準確率。試試 K-Neighbors 分類器。
1. 在分類器數組中添加一行(在 Linear SVC 項目後添加逗號):
1. 在您的分類器陣列中新增一行(在 Linear SVC 項目後加逗號):
```python
'KNN classifier': KNeighborsClassifier(C),
```
結果稍微差了一些
結果稍微差一點
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,17 +136,17 @@ K-Neighbors 屬於「鄰居」家族的機器學習方法,可用於監督式
weighted avg 0.76 0.74 0.74 1199
```
✅ 了解更多 [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
✅ 了解 [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## 支持向量分類器
支持向量分類器屬於[支持向量機](https://wikipedia.org/wiki/Support-vector_machine)家族的機器學習方法用於分類和回歸任務。SVM 將訓練樣本映射到空間中的點,以最大化兩個類別之間的距離。隨後的數據被映射到這個空間中,以預測其類別。
支持向量分類器屬於[支持向量機](https://wikipedia.org/wiki/Support-vector_machine)系列機器學習方法適用於分類和回歸任務。SVM「將訓練範例映射到空間中的點」以最大化兩個類別之距離。隨後的資料被映射到此空間中以便預測它們的類別。
### 練習 - 用支持向量分類器
### 練習 - 使用支持向量分類器
讓我們嘗試使用支持向量分類器來獲得更好的準確性
讓我們嘗試使用支持向量分類器尋求更好的準確率
1. 在 K-Neighbors 項目後添加逗號,然後添加以下行:
1. 在 K-Neighbors 項目後加逗號,然後新增這行:
```python
'SVC': SVC(),
@ -169,18 +169,18 @@ K-Neighbors 屬於「鄰居」家族的機器學習方法,可用於監督式
weighted avg 0.84 0.83 0.83 1199
```
✅ 了解更多 [支持向量](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ 了解 [支持向量](https://scikit-learn.org/stable/modules/svm.html#svm)
## 集成分類器
即使之前的測試結果已經相當不錯,我們還是沿著路徑走到最後,嘗試一些「集成分類器」,特別是隨機森林和 AdaBoost
讓我們走到最終路徑,雖然先前測試已經很好。我們來嘗試「集成分類器」,特別是隨機森林和 AdaBoost
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
結果非常好,特別是隨機森林:
結果非常好,尤其是隨機森林:
```output
Accuracy (train) for RFST: 84.5%
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ 了解更多 [集成分類器](https://scikit-learn.org/stable/modules/ensemble.html)
✅ 了解 [集成分類器](https://scikit-learn.org/stable/modules/ensemble.html)
這種機器學習方法「結合了多個基估算器的預測」,以提高模型的質量。在我們的例子中,我們使用了隨機森林和 AdaBoost。
這種機器學習方法「結合多個基礎估計器的預測」以提升模型品質。在本例中,我們使用隨機樹和 AdaBoost。
- [隨機森林](https://scikit-learn.org/stable/modules/ensemble.html#forest)一種平均方法構建了一個隨機性注入的「決策樹森林」以避免過擬合。n_estimators 參數設置為樹的數量。
- [隨機森林](https://scikit-learn.org/stable/modules/ensemble.html#forest)為平均方法構建「決策樹森林」並注入隨機性以避免過擬合。n_estimators 參數設定為樹的數量。
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) 將分類器擬合到數據集,然後將該分類器的副本擬合到相同數據集。它專注於錯誤分類項目的權重,並調整下一個分類器的擬合以進行修正。
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) 對資料集擬合一個分類器,然後擬合同樣分類器的多個副本。它會聚焦於錯誤分類項目的權重,並調整下一個分類器的擬合以做修正。
---
## 🚀挑戰
這些技術中的每一種都有大量參數可以調整。研究每種技術的默認參數,並思考調整這些參數對模型質量的影響。
每種技術都有大量可以調整的參數。研究各自的預設參數,並思考調整這些參數會對模型品質有何影響。
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## 回顧與自學
## 複習與自學
這些課程中有很多術語,因此花點時間回顧[這份術語表](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)
這些課程中有很多行話,花點時間複習[此列表](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)的實用術語
## 作業
[參數調整](assignment.md)
[參數實作](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。
本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於精確翻譯,但請注意自動翻譯可能包含錯誤或不準確之處。原始語言版本之文件應視為權威來源。對於關鍵資訊,建議使用專業人工翻譯。本公司不對因使用本翻譯文件所導致之任何誤解或誤釋負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# 建立分類模型\n"
]
},
{
"cell_type": "code",
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免責聲明** \n本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明** \n本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議採用專業人工翻譯。因使用本翻譯所產生的任何誤解或誤譯,我們不承擔任何責任。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-03T20:27:26+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "tw"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# 建立更多分類模型\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,8 +116,8 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
@ -146,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -261,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**免責聲明** \n本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**免責聲明**\n本文件係使用人工智慧翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件以其母語版本為權威依據。對於重要資訊,建議聘請專業人工翻譯。我們不對因使用本翻譯而產生之任何誤解或誤釋負責。\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-03T20:27:53+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "tw"
}
},
"nbformat": 4,

@ -10,212 +10,227 @@
### 🌐 多語言支援
#### 透過 GitHub Action 支援(自動化且隨時更新)
#### 透過 GitHub Action 支援(自動且持續更新)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[阿拉伯語](../ar/README.md) | [孟加拉語](../bn/README.md) | [保加利亞語](../bg/README.md) | [緬甸語](../my/README.md) | [中文(簡體)](../zh-CN/README.md) | [中文(繁體,香港)](../zh-HK/README.md) | [中文(繁體,澳門)](../zh-MO/README.md) | [中文(繁體,台灣)](./README.md) | [克羅埃西亞語](../hr/README.md) | [捷克語](../cs/README.md) | [丹麥語](../da/README.md) | [荷蘭語](../nl/README.md) | [愛沙尼亞語](../et/README.md) | [芬蘭語](../fi/README.md) | [法語](../fr/README.md) | [德語](../de/README.md) | [希臘語](../el/README.md) | [希伯來語](../he/README.md) | [印地語](../hi/README.md) | [匈牙利語](../hu/README.md) | [尼語](../id/README.md) | [義大利語](../it/README.md) | [日語](../ja/README.md) | [納達語](../kn/README.md) | [韓語](../ko/README.md) | [立陶宛語](../lt/README.md) | [馬來語](../ms/README.md) | [馬拉雅拉姆語](../ml/README.md) | [馬拉地語](../mr/README.md) | [尼泊爾語](../ne/README.md) | [奈及利亞皮欽語](../pcm/README.md) | [挪威語](../no/README.md) | [波斯語(法爾西語)](../fa/README.md) | [波蘭語](../pl/README.md) | [葡萄牙語(巴西)](../pt-BR/README.md) | [葡萄牙語(葡萄牙)](../pt-PT/README.md) | [旁遮普語(Gurmukhi](../pa/README.md) | [羅馬尼亞語](../ro/README.md) | [俄語](../ru/README.md) | [塞爾維亞語(西里爾字母)](../sr/README.md) | [斯洛伐克語](../sk/README.md) | [斯洛尼亞語](../sl/README.md) | [西班牙語](../es/README.md) | [斯瓦希里語](../sw/README.md) | [瑞典語](../sv/README.md) | [他加祿語(菲律賓語)](../tl/README.md) | [泰米爾語](../ta/README.md) | [泰盧固語](../te/README.md) | [泰語](../th/README.md) | [土耳其語](../tr/README.md) | [烏克蘭語](../uk/README.md) | [烏爾都語](../ur/README.md) | [越南語](../vi/README.md)
[阿拉伯語](../ar/README.md) | [孟加拉語](../bn/README.md) | [保加利亞語](../bg/README.md) | [緬甸語](../my/README.md) | [中文(簡體)](../zh-CN/README.md) | [中文(繁體,香港)](../zh-HK/README.md) | [中文(繁體,澳門)](../zh-MO/README.md) | [中文(繁體,臺灣)](./README.md) | [克羅地亞語](../hr/README.md) | [捷克語](../cs/README.md) | [丹麥語](../da/README.md) | [荷蘭語](../nl/README.md) | [愛沙尼亞語](../et/README.md) | [芬蘭語](../fi/README.md) | [法語](../fr/README.md) | [德語](../de/README.md) | [希臘語](../el/README.md) | [希伯來語](../he/README.md) | [印地語](../hi/README.md) | [匈牙利語](../hu/README.md) | [西亞語](../id/README.md) | [義大利語](../it/README.md) | [日語](../ja/README.md) | [納達語](../kn/README.md) | [韓語](../ko/README.md) | [立陶宛語](../lt/README.md) | [馬來語](../ms/README.md) | [馬拉雅拉姆語](../ml/README.md) | [馬拉地語](../mr/README.md) | [尼泊爾語](../ne/README.md) | [奈及利亞洋泾浜語](../pcm/README.md) | [挪威語](../no/README.md) | [波斯語(法爾西語)](../fa/README.md) | [波蘭語](../pl/README.md) | [葡萄牙語(巴西)](../pt-BR/README.md) | [葡萄牙語(葡萄牙)](../pt-PT/README.md) | [旁遮普語(古魯穆奇](../pa/README.md) | [羅馬尼亞語](../ro/README.md) | [俄語](../ru/README.md) | [塞爾維亞語(西里爾字母)](../sr/README.md) | [斯洛伐克語](../sk/README.md) | [斯洛尼亞語](../sl/README.md) | [西班牙語](../es/README.md) | [斯瓦希里語](../sw/README.md) | [瑞典語](../sv/README.md) | [他加祿語(菲律賓語)](../tl/README.md) | [泰米爾語](../ta/README.md) | [泰盧固語](../te/README.md) | [泰語](../th/README.md) | [土耳其語](../tr/README.md) | [烏克蘭語](../uk/README.md) | [烏爾都語](../ur/README.md) | [越南語](../vi/README.md)
> **偏好本地複製?**
> 此儲存庫包含 50 多種語言的翻譯,這會大幅增加下載大小。若想跳過翻譯內容進行複製,請使用稀疏簽出:
> **偏好本地 Clone**
>
> 本倉庫包含 50 多種語言的翻譯,會大幅增加下載大小。若要不含翻譯檔案的 Clone請使用 sparse checkout
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> 這可讓你快速取得完成課程所需的所有內容並加快下載速度。
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> 這讓你可以更快下載,且擁有所需完成課程的所有內容。
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### 加入我們的社群
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
我們持續舉辦 Discord AI 學習系列,更多資訊及加入請見 [Learn with AI Series](https://aka.ms/learnwithai/discord),時間為 2025 年 9 月 18 日至 30 日。你將獲得使用 GitHub Copilot 進行資料科學的技巧與秘訣。
我們有一系列 Discord AI 學習活動,詳情及參與請訪問 [Learn with AI Series](https://aka.ms/learnwithai/discord),時間為 2025 年 9 月 18 日至 30 日。您將學到使用 GitHub Copilot 於資料科學的技巧與秘訣。
![Learn with AI series](../../translated_images/zh-TW/3.9b58fd8d6c373c20.webp)
# 機器學習初學者課程
# 機器學習初學者 - 課程大綱
> 🌍 隨著我們透過世界各地文化探索機器學習,一同環遊世界 🌍
> 🌍 透過世界多元文化,一同探索機器學習 🌍
微軟的 Cloud Advocates 很高興提供一個為期 12 週、共 26 課的 **機器學習** 課程。在此課程中,你將學習所謂的 **經典機器學習**,主要使用 Scikit-learn 函式庫,避免使用深度學習,深度學習部分則涵蓋於我們的 [AI 初學者課程](https://aka.ms/ai4beginners) 中。你也可以搭配我們的 ['資料科學初學者課程'](https://aka.ms/ds4beginners) 一起學習!
微軟雲端推廣團隊很高興提供一個為期 12 週、共 26 課的 **機器學習** 課程。在這套課程中,您將學習有時被稱為 **經典機器學習** 的內容,主要使用 Scikit-learn 這個函式庫,避免使用深度學習(深度學習部分包含在我們的 [AI for Beginners 課程](https://aka.ms/ai4beginners) 中)。此外,也建議搭配我們的 [初學者資料科學課程](https://aka.ms/ds4beginners) 一同學習。
跟著我們環遊世界,將這些經典技術應用到來自世界許多地區的資料。每課包含課前與課後測驗、書面教學指引、解答、練習題等等。基於專案的教學法讓你透過實作學習,是新技能吸收的有效途徑
跟著我們環遊世界,應用這些經典技術於全球各地的資料。每堂課都包含課前和課後測驗、書面教學指示、解答、作業等。我們採取以專案為基礎的教學法,讓你透過實作學習新技能,成效更佳
**✍️ 衷心感謝我們的作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu Amy Boyd
**✍️ 由衷感謝我們的作者**Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu Amy Boyd
**🎨 也感謝我們的插畫師** Tomomi Imura、Dasani Madipalli 和 Jen Looper
**🎨 也感謝我們的插畫師**Tomomi Imura、Dasani Madipalli 與 Jen Looper
**🙏 特別感謝 🙏 微軟學生大使作者、審閱者與內容貢獻者**,特別是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 和 Snigdha Agarwal
**🙏 特別感謝 🙏 微軟學生大使團隊作者、審查者與內容貢獻者**,特別是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 和 Snigdha Agarwal
**🤩 額外感謝微軟學生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 提供我們的 R 課程**
**🤩 額外感謝微軟學生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 貢獻 R 課程內容**
# 開始使用
# 快速開始
請依照以下步驟操作:
1. **分叉此儲存庫**點擊本頁右上方的「Fork」按鈕。
2. **克隆此儲存庫**`git clone https://github.com/microsoft/ML-For-Beginners.git`
請依操作:
1. **Fork 倉庫**點擊本頁右上方的「Fork」按鈕。
2. **Clone 倉庫**`git clone https://github.com/microsoft/ML-For-Beginners.git`
> [本課程的所有額外資源都收錄於我們的 Microsoft Learn 專輯](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [在我們的 Microsoft Learn 集合中找到本課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **需要幫助?** 請查看我們的 [故障排除指南](TROUBLESHOOTING.md),了解安裝、設定及執行課程時常見問題的解決方案
> 🔧 **需要幫助?** 請參考我們的 [故障排除指南](TROUBLESHOOTING.md),解決安裝、設定與課程執行常見問題
**[學生](https://aka.ms/student-page)**,要使用本課程,請將整個儲存庫分叉到你的 GitHub 帳號,並自行或團體完成練習:
**[學生專屬頁面](https://aka.ms/student-page)**,使用本課程時,請將整個倉庫 Fork 至您自己的 GitHub 帳號,自行或與團隊完成練習:
- 從課前測驗開始。
- 閱讀課程並完成活動,於每個知識檢測停下思考。
- 盡量透過理解課程內容來自行建立專案,而非直接執行解答程式碼;不過每個專案式課程都在 `/solution` 資料夾提供解答程式碼
- 完成課後測驗。
- 閱讀課程並完成活動,每個知識點停下來思考。
- 嘗試自行理解並完成專案,不要直接執行解答程式碼;不過解答程式碼位於各專案課程的 `/solution` 資料夾中供參考
- 參加課後測驗。
- 完成挑戰題。
- 完成作業。
- 完成一組課程後,請造訪 [討論板](https://github.com/microsoft/ML-For-Beginners/discussions) 並「大聲學習」,填寫相應的 PAT 評分表。PAT 是一種進度評估工具,透過填寫評分表幫助學習。你也可以對其他人的 PAT 回應,一同進步
- 完成一組課程後,請造訪 [討論區](https://github.com/microsoft/ML-For-Beginners/discussions),並透過填寫適當的 PAT 評量表來「大聲學習」。PAT進度評量工具是您填寫的學習工具還可以回應其他人的 PAT一起互相學習
> 若想更深入學習,我們建議參考這些 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組與學習路徑。
> 想要深入學習,我們推薦關注這些 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組與學習路徑。
**教師**,我們已在 [教師建議](for-teachers.md) 中提供一些使用課程的建議
**教師專用**,我們提供了[使用本課程的建議](for-teachers.md)
---
## 視頻導覽
## 影片導覽
部分課程有短片形式的視頻說明,這些視頻皆置於課程中,也可在 [Microsoft 開發者 YouTube 頻道的 ML for Beginners 播放清單](https://aka.ms/ml-beginners-videos) 觀看,點擊下方圖片即可
部分課程有短版影片,您可在課程內嵌連結觀看,或前往 [Microsoft Developer YouTube 頻道上機器學習入門影片清單](https://aka.ms/ml-beginners-videos) 按下面圖片播放
[![ML for beginners banner](../../translated_images/zh-TW/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## 團隊介紹
## 認識團隊
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**動圖製作者** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif 製作:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 點擊上方圖片,觀看關於此專案及幕後團隊的影片!
> 🎥 點擊上方圖片觀看關於專案和開發團隊的影片!
---
## 教學法
我們在設計此課程時堅持兩個教學原則:確保為 **專案式實作**,並包含 **頻繁測驗**。此外,本課程擁有一致的 **主題** 以增強整體性
我們在打造本課程時堅持兩大教學原則:確保課程是動手做的 **專案導向**,以及包含 **頻繁測驗**。另外,本課程有一致的 **主題** 以保持連貫
確保內容與專案對齊能增加學生參與度並提升概念記憶。課前進行低壓力測驗,設定學習動機;課後測驗則強化記憶。此課程設計靈活有趣,可全程或部分學習。專案由淺入深,逐步增加複雜度,適合 12 星期期。課程還包含一篇關於機器學習真實應用的後記,可用作額外學分或討論素材
透過確保內容與專案對應,學習過程更吸引學生,概念吸收也更牢固。課前的低壓測驗幫助學生設定學習目標,而課後測驗則加強記憶。本課程設計靈活有趣,您可全部修完或擇取部分。專案由淺入深,隨著 12 週結束而逐漸複雜。此外,本課程包含機器學習實際應用的後記,可作為額外學分或討論基礎
> 請查閱我們的 [行為守則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯指南](TRANSLATIONS.md) 和 [故障排除](TROUBLESHOOTING.md) 。歡迎您提供建設性意見
> 找到我們的[行為守則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯指南](TRANSLATIONS.md)與[故障排除指南](TROUBLESHOOTING.md)。歡迎您提供建設性回饋
## 每課內容包含
## 每課包含
- 選擇性手繪筆記
- 選擇性補充影片
- 可選的手繪筆記
- 可選的補充影片
- 影片導覽(部分課程)
- [課前暖身測驗](https://ff-quizzes.netlify.app/en/ml/)
- 書面教學
- 專案式課程附逐步專案製作指引
- 知識檢
- 書面課程內容
- 專案導向課程有詳細逐步指引,教您完成專案
- 知識檢
- 挑戰題
- 補充閱讀
- 作業
- [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
> **關於語言的說明**:課程內容主要以 Python 撰寫,也有許多 R 課程。完成 R 課時,請至 `/solution` 資料夾尋找包含 .rmd 副檔名的 R Markdown 檔案,這種文件格式結合了 `程式碼區塊`R 或其他語言)與 `YAML 標頭`(指定輸出格式如 PDF以 Markdown 文件形式表達。因此它是資料科學典範的撰寫框架能讓你同時撰寫程式碼、呈現輸出與文字描述。此外R Markdown 文件可匯出為 PDF、HTML 或 Word 等格式。
> **有關測驗的小提醒**:所有測驗皆收錄在 [Quiz App folder](../../quiz-app) 中,共 52 個測驗,每個測驗含三個問題。這些測驗會在課程中連結,但測驗應用程式可以在本機執行;請依照 `quiz-app` 資料夾中的說明進行本機架設或部署至 Azure。
| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author |
| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | 機器學習簡介 | [Introduction](1-Introduction/README.md) | 了解機器學習的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 了解此領域的歷史背景 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 建立及應用機器學習模型時,學生應考慮的公平性哲學重要議題? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 機器學習技巧 | [Introduction](1-Introduction/README.md) | 機器學習研究者用於建構機器學習模型的技巧為何? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | 回歸簡介 | [Regression](2-Regression/README.md) | 使用 Python 與 Scikit-learn 開始建構回歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 視覺化並清理資料以準備機器學習 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性及多項式回歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯回歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | 網頁應用 🔌 | [Web App](3-Web-App/README.md) | 建立一個網頁應用程式以使用訓練好的模型 | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | 分類簡介 | [Classification](4-Classification/README.md) | 清理、準備並視覺化你的資料;分類導論 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器簡介 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 進階分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 使用你的模型建立推薦系統的網頁應用程式 | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | 分群簡介 | [Clustering](5-Clustering/README.md) | 清理、準備並視覺化你的資料;分群導論 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | 探索奈及利亞音樂品味 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-均值分群方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | 自然語言處理導論 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建立簡單機器人學習自然語言處理的基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | 常見 NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 深入了解處理語言結構時需執行的常見任務 | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 使用珍‧奧斯汀的翻譯與情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 旅館評論的情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 旅館評論的情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | 時間序列預測導論 | [Time series](7-TimeSeries/README.md) | 時間序列預測入門 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 世界用電 ⚡️ - 使用 ARIMA 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 世界用電 ⚡️ - 使用 SVR 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支援向量回歸進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 強化學習導論 | [Reinforcement learning](8-Reinforcement/README.md) | 透過 Q 學習介紹強化學習 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 幫助彼得躲避狼! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| 後記 | 真實世界的機器學習情境與應用 | [ML in the Wild](9-Real-World/README.md) | 傳統機器學習有趣且具啟發性的真實世界應用 | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| 後記 | 使用 RAI 儀表板進行機器學習模型除錯 | [ML in the Wild](9-Real-World/README.md) | 利用負責任的 AI 儀表板組件進行機器學習模型除錯 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [在我們的 Microsoft Learn 集合中尋找本課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## 離線存取
您可以透過使用 [Docsify](https://docsify.js.org/#/) 離線查看這份文件。先 Fork 此倉庫,於您的本機電腦上 [安裝 Docsify](https://docsify.js.org/#/quickstart),然後在此倉庫的根目錄中輸入 `docsify serve`。網站將在本機的 3000 埠執行`localhost:3000`。
## PDF
[此處](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)下載含有連結的課程 PDF
> **關於語言的說明**:這些課程主要以 Python 撰寫,但也有許多課程提供 R 語言版本。若要完成 R 課程,請前往 `/solution` 資料夾尋找 R 課程檔案。它們附有 .rmd 副檔名,代表 **R Markdown** 文件,簡單來說,是將 `程式碼區塊`(可能是 R 或其他語言)與 `YAML 標頭`(引導如何格式化輸出,例如 PDF內嵌於 `Markdown 文件` 中的格式。 因此,它是資料科學的優秀撰寫框架,允許您結合程式碼、輸出與您的想法,並以 Markdown 撰寫。此外R Markdown 文件可匯出成 PDF、HTML 或 Word 等格式。
> **關於小測驗的說明**:所有小測驗皆包含於[Quiz App 資料夾](../../quiz-app)中,總共 52 個小測驗,每個包含三個問題。這些小測驗會在課程中以連結形式呈現,但您也可以在本機執行 Quiz App請參考 `quiz-app` 資料夾中的說明在本機部署或部署至 Azure。
| 課程編號 | 主題 | 課程分類 | 學習目標 | 相關課程 | 作者 |
| :-------: | :-------------------------------------------------------------: | :------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: |
| 01 | 機器學習導論 | [Introduction](1-Introduction/README.md) | 了解機器學習的基本概念 | [課程](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 了解此領域的歷史背景 | [課程](1-Introduction/2-history-of-ML/README.md) | Jen 和 Amy |
| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 學生應考慮建構和應用機器學習模型時關於公平性的重要哲學議題 | [課程](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究者使用何種技術來建立機器學習模型? | [課程](1-Introduction/4-techniques-of-ML/README.md) | Chris 和 Jen |
| 05 | 迴歸導論 | [Regression](2-Regression/README.md) | 透過 Python 和 Scikit-learn 開始建立迴歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 對資料進行視覺化與清理,為 ML 準備資料 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性與多項式迴歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen 和 Dmitry • Eric Wanjau |
| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯斯迴歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | 網頁應用 🔌 | [Web App](3-Web-App/README.md) | 建立一個網頁應用以使用訓練好的模型 | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | 分類導論 | [Classification](4-Classification/README.md) | 清理、準備及視覺化您的資料;分類導論 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen 和 Cassie • Eric Wanjau |
| 11 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器入門 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen 和 Cassie • Eric Wanjau |
| 12 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 更多分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen 和 Cassie • Eric Wanjau |
| 13 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 使用您的模型建立推薦網站應用 | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | 聚類導論 | [Clustering](5-Clustering/README.md) | 清理、準備及視覺化資料;聚類導論 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | 探索奈及利亞音樂品味 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-均值聚類法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | 自然語言處理導論 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建立簡單機器人學習 NLP 基本知識 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | 常見 NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 透徹了解處理語言結構時常見任務 | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 以珍·奧斯汀作品進行情感與翻譯分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 旅館評論情感分析(一) | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 旅館評論情感分析(二) | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | 時間序列預測導論 | [Time series](7-TimeSeries/README.md) | 時間序列預測導論 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ 世界用電 ⚡️ - 使用 ARIMA 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 實作時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ 世界用電 ⚡️ - 使用 SVR 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量回歸進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | 強化學習導論 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q-Learning 認識強化學習 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | 幫助 Peter 避免狼群!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| 附錄 | 真實世界的機器學習場景與應用 | [ML in the Wild](9-Real-World/README.md) | 經典機器學習在真實世界中的有趣且啟發性的應用 | [課程](9-Real-World/1-Applications/README.md) | 團隊 |
| 附錄 | 使用 RAI 儀表板來偵錯機器學習模型 | [ML in the Wild](9-Real-World/README.md) | 使用負責任的人工智慧儀表板元件來進行機器學習模型偵錯 | [課程](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [在我們的 Microsoft Learn 收藏中找到此課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## 離線瀏覽
您可以使用 [Docsify](https://docsify.js.org/#/) 離線瀏覽本文件。請 fork 此 repo並在本地機器上[安裝 Docsify](https://docsify.js.org/#/quickstart),然後於本 repo 根目錄輸入 `docsify serve`,網站將架設在本機的 3000 埠`localhost:3000`。
## PDFs
課程綱要的 PDF含連結請見[此處](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)。
## 🎒 其他課程
我們團隊還製作其他課程!請參考:
我們團隊還製作其他課程!請參考:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j 初學者](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js 初學者](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain 初學者](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AZD 初學者](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI 初學者](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者 MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者 AI 代理人](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### 生成式 AI 系列
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
[![初學者生成式 AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![生成式 AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![生成式 AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![生成式 AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### 核心學習
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者機器學習](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者資料科學](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者 AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者資安](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![初學者網頁開發](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者物聯網](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![初學者 XR 開發](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot 系列
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
[![AI 配對程式設計 Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![C#/.NET Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot 冒險](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## 尋求協助
如果您在建置 AI 應用程式時遇到困難或有任何問題,歡迎加入學習者與經驗豐富的開發者們一起討論 MCP。這是一個支持性的社群問題都歡迎提出知識也樂於共享
如果您在構建 AI 應用程式時遇到困難或有任何問題。加入其他學習者和經驗豐富的開發者一起討論 MCP。這是一個支援性的社群歡迎提出問題並自由分享知識
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
如果您在建置過程中有產品回饋或遇到錯誤,請造訪
如果您在構建過程中有產品反饋或錯誤,請訪問
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## 額外學習提示
- 每堂課後複習筆記本以增進理解。
- 練習自行實作演算法。
- 運用所學概念探索實際資料集。
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們力求準確,但請注意自動翻譯可能包含錯誤或不準確之處。原文件之母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生之任何誤解或誤用負責。
本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意自動翻譯可能包含錯誤或不準確之處。原文文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤譯負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save