You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/tw/1-Introduction/4-techniques-of-ML/README.md

132 lines
10 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d91f3af3758fdd4569fb410575995ef",
"translation_date": "2025-09-05T09:53:31+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "tw"
}
-->
# 機器學習技術
建立、使用和維護機器學習模型及其所使用的數據的過程,與許多其他開發工作流程有很大的不同。在本課中,我們將揭開這一過程的神秘面紗,並概述您需要了解的主要技術。您將學到:
- 從高層次理解支撐機器學習的過程。
- 探索基本概念,例如「模型」、「預測」和「訓練數據」。
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
[![機器學習初學者 - 機器學習技術](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "機器學習初學者 - 機器學習技術")
> 🎥 點擊上方圖片觀看一段簡短的影片,了解本課內容。
## 簡介
從高層次來看創建機器學習ML流程的技術包括以下幾個步驟
1. **確定問題**。大多數機器學習流程始於提出一個無法通過簡單條件程序或基於規則的引擎回答的問題。這些問題通常圍繞基於數據集合進行的預測。
2. **收集和準備數據**。為了回答您的問題,您需要數據。數據的質量以及有時候的數量,將決定您能多好地回答最初的問題。數據可視化是這一階段的重要部分。這一階段還包括將數據分為訓練組和測試組以構建模型。
3. **選擇訓練方法**。根據您的問題和數據的性質,您需要選擇如何訓練模型以最佳反映數據並對其進行準確預測。這是機器學習過程中需要特定專業知識且通常需要大量實驗的部分。
4. **訓練模型**。使用訓練數據,您將使用各種算法訓練模型以識別數據中的模式。模型可能會利用內部權重,這些權重可以調整以優先考慮數據的某些部分,從而構建更好的模型。
5. **評估模型**。使用從未見過的數據(測試數據)來檢查模型的性能。
6. **參數調整**。根據模型的性能,您可以使用不同的參數或變量重新進行該過程,這些參數或變量控制訓練模型時所用算法的行為。
7. **預測**。使用新輸入測試模型的準確性。
## 該問什麼問題
計算機特別擅長發現數據中的隱藏模式。這對於研究人員來說非常有用,因為他們對某個領域有一些問題,而這些問題無法輕易通過創建基於條件的規則引擎來回答。例如,針對精算任務,數據科學家可能能夠構建手工規則來分析吸煙者與非吸煙者的死亡率。
然而,當許多其他變量被納入考量時,機器學習模型可能更有效地根據過去的健康歷史預測未來的死亡率。一個更令人愉快的例子可能是根據包括緯度、經度、氣候變化、靠近海洋的距離、噴流模式等數據,預測某地四月份的天氣。
✅ 這份[簡報](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf)提供了使用機器學習進行天氣分析的歷史視角。
## 構建前的任務
在開始構建模型之前,您需要完成幾項任務。為了測試您的問題並根據模型的預測形成假設,您需要識別並配置幾個元素。
### 數據
為了能夠以任何確定性回答您的問題,您需要足夠數量且類型正確的數據。在這一點上,您需要完成以下兩件事:
- **收集數據**。記住上一課中關於數據分析公平性的內容,謹慎收集數據。注意數據的來源、可能存在的內在偏見,並記錄其來源。
- **準備數據**。數據準備過程包括多個步驟。如果數據來自不同來源,您可能需要整理並標準化數據。您可以通過各種方法提高數據的質量和數量,例如將字符串轉換為數字(如我們在[聚類](../../5-Clustering/1-Visualize/README.md)中所做的)。您還可以基於原始數據生成新數據(如我們在[分類](../../4-Classification/1-Introduction/README.md)中所做的)。您可以清理和編輯數據(如我們在[Web 應用](../../3-Web-App/README.md)課程之前所做的)。最後,根據您的訓練技術,您可能還需要隨機化和打亂數據。
✅ 在收集和處理數據後,花點時間檢查其形狀是否能幫助您解決預期問題。可能數據在您的任務中表現不佳,正如我們在[聚類](../../5-Clustering/1-Visualize/README.md)課程中發現的那樣!
### 特徵與目標
[特徵](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection)是數據的一個可測量屬性。在許多數據集中,它表現為列標題,例如「日期」、「大小」或「顏色」。特徵變量通常在代碼中表示為 `X`,代表用於訓練模型的輸入變量。
目標是您試圖預測的事物。目標通常在代碼中表示為 `y`,代表您試圖從數據中回答的問題。例如:在十二月,哪種**顏色**的南瓜最便宜?在舊金山,哪些街區的房地產**價格**最好?有時目標也被稱為標籤屬性。
### 選擇您的特徵變量
🎓 **特徵選擇與特徵提取** 如何知道在構建模型時選擇哪個變量?您可能需要經歷特徵選擇或特徵提取的過程,以選擇最適合的變量來構建性能最佳的模型。然而,這兩者並不相同:「特徵提取通過原始特徵的函數創建新特徵,而特徵選擇則返回特徵的子集。」([來源](https://wikipedia.org/wiki/Feature_selection)
### 可視化數據
數據科學家工具箱中的一個重要方面是使用多種優秀庫(如 Seaborn 或 MatPlotLib來可視化數據的能力。以可視化方式表示數據可能幫助您發現可以利用的隱藏相關性。您的可視化還可能幫助您發現偏見或數據不平衡如我們在[分類](../../4-Classification/2-Classifiers-1/README.md)中發現的那樣)。
### 分割數據集
在訓練之前,您需要將數據集分為兩個或更多不等大小的部分,這些部分仍能很好地代表數據。
- **訓練集**。這部分數據集用於訓練模型。這部分數據通常佔原始數據集的大多數。
- **測試集**。測試數據集是從原始數據中獨立提取的一組數據,用於確認構建的模型的性能。
- **驗證集**。驗證集是一組較小的獨立數據,用於調整模型的超參數或架構,以改進模型。根據數據的大小和您提出的問題,您可能不需要構建這第三組數據(如我們在[時間序列預測](../../7-TimeSeries/1-Introduction/README.md)中所述)。
## 構建模型
使用訓練數據,您的目標是使用各種算法構建一個模型,或者說是數據的統計表示,來**訓練**它。訓練模型使其接觸數據,並讓它對發現的模式進行假設、驗證並接受或拒絕。
### 決定訓練方法
根據您的問題和數據的性質,您將選擇一種方法來訓練模型。通過瀏覽[Scikit-learn 的文檔](https://scikit-learn.org/stable/user_guide.html)(我們在本課程中使用的工具),您可以探索多種訓練模型的方法。根據您的經驗,您可能需要嘗試幾種不同的方法來構建最佳模型。您可能會經歷一個過程,數據科學家通過向模型提供未見過的數據來評估其性能,檢查準確性、偏差和其他可能降低質量的問題,並選擇最適合當前任務的訓練方法。
### 訓練模型
有了訓練數據,您可以開始「擬合」數據以創建模型。您會注意到,在許多機器學習庫中,您會看到代碼 `model.fit`——這時您將特徵變量作為值數組(通常是 `X`)以及目標變量(通常是 `y`)傳入。
### 評估模型
一旦訓練過程完成(對於大型模型,可能需要多次迭代或「時期」),您將能夠使用測試數據來評估模型的質量,檢查其性能。這些測試數據是原始數據的一個子集,模型之前未曾分析過。您可以打印出一個關於模型質量的指標表。
🎓 **模型擬合**
在機器學習的背景下,模型擬合指的是模型的底層函數在嘗試分析未熟悉的數據時的準確性。
🎓 **欠擬合**和**過擬合**是常見問題,會降低模型質量,因為模型要麼擬合得不夠好,要麼擬合得太好。這會導致模型的預測與訓練數據過於緊密或過於鬆散地對齊。過擬合模型對訓練數據的預測過於準確,因為它過於詳細地學習了數據的細節和噪聲。欠擬合模型則不夠準確,因為它既無法準確分析訓練數據,也無法準確分析未見過的數據。
![過擬合模型](../../../../1-Introduction/4-techniques-of-ML/images/overfitting.png)
> 信息圖由 [Jen Looper](https://twitter.com/jenlooper) 提供
## 參數調整
完成初步訓練後,觀察模型的質量,並考慮通過調整其「超參數」來改進模型。閱讀更多相關過程的[文檔](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott)。
## 預測
這是您可以使用全新數據測試模型準確性的時刻。在「應用」機器學習設置中,當您構建用於生產的網頁資產時,這一過程可能涉及收集用戶輸入(例如按下按鈕)來設置變量並將其發送到模型進行推理或評估。
在這些課程中,您將學習如何使用這些步驟來準備、構建、測試、評估和預測——這些都是數據科學家的基本操作,隨著您在成為「全棧」機器學習工程師的旅程中不斷進步,您還會學到更多。
---
## 🚀挑戰
繪製一個反映機器學習從業者步驟的流程圖。您認為自己目前處於該過程的哪一步?您預測在哪些方面會遇到困難?哪些部分對您來說似乎很簡單?
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## 回顧與自學
在線搜索數據科學家討論日常工作的訪談。這裡有一個[例子](https://www.youtube.com/watch?v=Z3IjgbbCEfs)。
## 作業
[訪談一位數據科學家](assignment.md)
---
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。