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/zh-HK/1-Introduction/4-techniques-of-ML/README.md

125 lines
9.9 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.

# Techniques of Machine Learning
建立、使用及維護機器學習模型及其數據的流程與許多其他開發工作流程大不相同。在本課程中,我們將揭開這個過程的神秘面紗,並概述您需要了解的主要技巧。您將:
- 在高層次上理解機器學習背後的過程。
- 探索「模型」、「預測」和「訓練數據」等基本概念。
## [課前測驗](https://ff-quizzes.netlify.app/en/ml/)
[![ML for beginners - Techniques of Machine Learning](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "ML for beginners - Techniques of Machine Learning")
> 🎥 點擊上方圖片觀看本課程的短片教學。
## 介紹
從高層次來看創建機器學習ML流程的工藝包含多個步驟
1. <strong>決定問題</strong>。大多數機器學習流程從提出一個無法通過簡單條件程式或規則引擎解答的問題開始。這些問題通常圍繞基於數據集合的預測。
2. <strong>收集和準備數據</strong>。為了能回答您的問題,您需要數據。數據的質量有時還有數量將決定您對初始問題回答的準確程度。視覺化數據是這個階段的一個重要部分。此階段也包括將數據分拆成訓練組和測試組以建立模型。
3. <strong>選擇訓練方法</strong>。根據您的問題和數據特性,您需要選擇如何訓練模型,以最佳反映數據並對其進行準確預測。這部分的機器學習流程需要特定專業知識,且通常需要大量試驗。
4. <strong>訓練模型</strong>。利用訓練資料,您將使用各種演算法來訓練模型,以識別數據中的模式。模型可能利用可調整的內部權重,優先考慮數據的某些部分以建立更好的模型。
5. <strong>評估模型</strong>。您使用從未見過的數據(測試數據)來檢驗模型的表現。
6. <strong>參數調整</strong>。基於模型的表現,您可以使用不同的參數或變量重新進行訓練,這些參數控制用於訓練模型的演算法行為。
7. <strong>預測</strong>。使用新輸入測試模型的準確度。
## 該問什麼問題
電腦對於發現數據中隱藏的模式特別在行。這對於研究者來說非常有用,他們在某一領域有問題,無法簡單透過建立條件性規則引擎得到答案。例如,在精算任務中,資料科學家或許能夠圍繞吸煙者與非吸煙者的死亡率構建手工規則。
但當許多其他變數加入分析時,機器學習模型在根據過去的健康歷史預測未來死亡率方面可能更有效。一個較為愉快的例子是,基於包含緯度、經度、氣候變化、接近海洋程度、噴射氣流模式等數據,對某地區四月的天氣進行預測。
✅ 這份[天氣模型簡報](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) 提供了使用機器學習分析天氣的歷史觀點。
## 建模前任務
開始建立模型前,您需要完成若干任務。為了驗證問題並建立基於模型預測的假設,您需要識別並配置多個元素。
### 數據
為了能帶著一定程度的確定性回答問題,您需要大量且正確類型的數據。此時有兩件事您必須完成:
- <strong>收集數據</strong>。記住前一課關於數據分析公正性的內容,謹慎收集數據。留意數據來源、可能的內在偏差,並記錄其起源。
- <strong>準備數據</strong>。數據準備流程包含多個步驟。若數據來自不同來源,您或許需要整理和正規化數據。可以透過將字串轉換為數字(如我們在[分群](../../5-Clustering/1-Visualize/README.md)中所做)等各種方法提升數據質量及數量。您甚至可能會基於原始數據生成新數據(如在[分類](../../4-Classification/1-Introduction/README.md)中所做)。您也可以對數據進行清理和編輯(如[網頁應用程式](../../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`,代表您希望從數據中回答的問題:例如在十二月,哪種<strong>顏色</strong>的南瓜最便宜?在舊金山,哪些社區的房地產<strong>價格</strong>最優惠?目標有時也稱為標籤屬性。
### 選擇特徵變數
🎓 <strong>特徵選擇與特徵提取</strong> 您如何知道在建立模型時應選哪些變數?您可能會通過特徵選擇或特徵提取過程來選擇最適合、表現最好模型的變數。但兩者不同:「特徵提取是從原始特徵函數創建新特徵,而特徵選擇是返回特徵的子集。」 ([資料來源](https://wikipedia.org/wiki/Feature_selection))
### 視覺化數據
數據科學家的工具中,使用如 Seaborn 或 MatPlotLib 等優秀函式庫視覺化數據,具備強大功能。將數據以圖像形式呈現,可能幫助發現您可加以利用的隱藏相關性。視覺化也能協助您偵測偏差或數據不平衡狀況(如我們在[分類](../../4-Classification/2-Classifiers-1/README.md)所發現)。
### 拆分數據集
訓練前,您需要將數據集拆分為兩個以上不同大小但仍能代表數據的部分。
- <strong>訓練組</strong>。此部分用於訓練模型,佔原始數據集多數。
- <strong>測試組</strong>。測試數據集是獨立的數據組,通常從原始數據取得,用於驗證建立的模型的效能。
- <strong>驗證組</strong>。驗證集是一小部分獨立樣本,用來調整模型超參數或架構,提升模型表現。依數據大小及問題,有時不需要建立此第三集合(如我們在[時間序列預測](../../7-TimeSeries/1-Introduction/README.md)所述)。
## 建立模型
利用訓練數據,您的目標是透過各種演算法建立模型,亦即對數據的統計表示,進行<strong>訓練</strong>。訓練模型是令它接觸數據並從所識別、驗證的模式中做出假設並接受或拒絕。
### 選擇訓練方法
根據您的問題與數據特性,您將選擇適當的訓練方法。透過翻閱[Scikit-learn 的文件](https://scikit-learn.org/stable/user_guide.html) — 本課程採用的函式庫 — 您可探索多種訓練模型方式。視經驗有時須嘗試多種方法,資料科學家會透過讓模型面對未見數據,檢查準確度、公正性及其他可能影響品質的問題,挑選最合適的訓練方法。
### 訓練模型
有了訓練數據您就能開始「擬合」模型。您會注意到許多機器學習函式庫中會用到「model.fit」程式碼 — 此時您將送入特徵變數陣列(通常為 X及目標變數通常為 y
### 評估模型
訓練過程完成後(訓練大型模型可能經歷多次迭代或「時代」),您可藉由測試數據評估模型品質。此數據為模型之前未分析過的原始數據子集。您可以列印包含模型品質指標的表格。
🎓 <strong>模型擬合</strong>
就機器學習而言,模型擬合意指模型對未知數據分析的底層函數準確程度。
🎓 <strong>欠擬合</strong><strong>過擬合</strong>是常見損害模型品質的問題,前者擬合不夠,後者擬合過度。這使模型對訓練數據的預測過於精確或不夠精確。過擬合模型對訓練數據預測過好,因為模型過度學習資料細節及噪聲。欠擬合模型則不準確,既無法準確分析訓練數據,也無法分析未知數據。
![overfitting model](../../../../translated_images/zh-HK/overfitting.1c132d92bfd93cb6.webp)
> 資訊圖表由 [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)。
## 預測
此時您將使用全新數據測試模型準確度。在「應用」機器學習環境中,當您建置網站資產以在生產環境使用模型時,此過程可能涉及收集用戶輸入(例如按鈕點擊)以設定變數,送入模型進行推理或評估。
在這些課程中您會發現如何使用這些步驟準備、建構、測試、評估和預測——這些均是資料科學家的核心技能並更進一步支持您成為「全端」ML 工程師的旅程。
---
## 🚀挑戰
繪製一張反映機器學習從業者步驟的流程圖。您認為自己目前處於流程的哪個階段?您預測會在哪裡遇到困難?有哪些部分對您而言似乎容易?
## [課後測驗](https://ff-quizzes.netlify.app/en/ml/)
## 複習與自學
在線上搜尋資料科學家的訪談,了解他們的日常工作。這裡有[一段](https://www.youtube.com/watch?v=Z3IjgbbCEfs)。
## 作業
[訪問一位資料科學家](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的原文版本應視為權威來源。對於重要資訊,建議使用專業人工翻譯。我們對因使用本翻譯而引起的任何誤解或誤釋概不負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->