微软面向初学者的机器学习课程:1.4-机器学习技术
寫在前面:最近在參與microsoft/ML-For-Beginners的翻譯活動,歡迎有興趣的朋友加入(https://github.com/microsoft/ML-For-Beginners/issues/71)
機器學習技術
構建、使用和維護機器學習模型及其使用的數據的過程與許多其他開發工作流程截然不同。在本課中,我們將揭開該過程的神秘面紗,并概述您需要了解的主要技術。您會:
在高層次上理解支持機器學習的過程。
探索基本概念,例如“模型”、“預測”和“訓練數據”。
課前測驗[1]
介紹
在較高的層次上,創建機器學習(ML)過程的工藝包括許多步驟:
決定問題。大多數機器學習過程都是從提出一個簡單的條件程序或基于規則的引擎無法回答的問題開始的。這些問題通常圍繞基于數據集合的預測展開。
收集和準備數據。為了能夠回答您的問題,您需要數據。數據的質量(有時是數量)將決定您回答最初問題的能力。可視化數據是這個階段的一個重要方面。此階段還包括將數據拆分為訓練和測試組以構建模型。
選擇一種訓練方法。根據您的問題和數據的性質,您需要選擇如何訓練模型以最好地反映您的數據并對其進行準確預測。這是您的ML過程的一部分,需要特定的專業知識,并且通常需要大量的實驗。
訓練模型。使用您的訓練數據,您將使用各種算法來訓練模型以識別數據中的模式。該模型可能會利用可以調整的內部權重來使數據的某些部分優于其他部分,從而構建更好的模型。
評估模型。您使用收集到的集合中從未見過的數據(您的測試數據)來查看模型的性能。
參數調整。根據模型的性能,您可以使用不同的參數或變量重做該過程,這些參數或變量控制用于訓練模型的算法的行為。
預測。使用新輸入來測試模型的準確性。
要問什么問題
計算機特別擅長發現數據中的隱藏模式。此實用程序對于對給定領域有疑問的研究人員非常有幫助,這些問題無法通過創建基于條件的規則引擎來輕松回答。例如,給定一項精算任務,數據科學家可能能夠圍繞吸煙者與非吸煙者的死亡率構建手工規則。
然而,當將許多其他變量納入等式時,ML模型可能會更有效地根據過去的健康史預測未來的死亡率。一個更令人愉快的例子可能是根據包括緯度、經度、氣候變化、與海洋的接近程度、急流模式等在內的數據對給定位置的4月份進行天氣預報。
? 這個關于天氣模型的幻燈片[2]為在天氣分析中使用機器學習提供了一個歷史視角。
預構建任務
在開始構建模型之前,您需要完成多項任務。要測試您的問題并根據模型的預測形成假設,您需要識別和配置多個元素。
Data
為了能夠確定地回答您的問題,您需要大量正確類型的數據。此時您需要做兩件事:
收集數據。記住之前關于數據分析公平性的課程,小心收集數據。請注意此數據的來源、它可能具有的任何固有偏見,并記錄其來源。
準備數據。數據準備過程有幾個步驟。如果數據來自不同的來源,您可能需要整理數據并對其進行標準化。您可以通過各種方法提高數據的質量和數量,例如將字符串轉換為數字(就像我們在聚類[3]中所做的那樣)。您還可以根據原始數據生成新數據(正如我們在分類[4]中所做的那樣)。您可以清理和編輯數據(就像我們在 Web App[5]課程之前所做的那樣)。最后,您可能還需要對其進行隨機化和打亂,具體取決于您的訓練技術。
? 在收集和處理您的數據后,花點時間看看它的形狀是否能讓您解決您的預期問題。正如我們在聚類[6]課程中發現的那樣,數據可能在您的給定任務中表現不佳!
選擇特征變量
特征[7]是數據的可衡量屬性。在許多數據集中,它表示為列標題,如“日期”、“大小”或“顏色”。您的特征變量(通常在代碼中表示為y)代表您試圖對數據提出的問題的答案:在12月,哪種顏色的南瓜最便宜?在舊金山,哪些街區的房地產價格最好?
???? 特征選擇和特征提取 構建模型時如何知道選擇哪個變量?您可能會經歷一個特征選擇或特征提取的過程,以便為性能最好的模型選擇正確的變量。然而,它們不是一回事:“特征提取是從基于原始特征的函數中創建新特征,而特征選擇返回特征的一個子集。”(來源[8])
可視化數據
數據科學家工具包的一個重要方面是能夠使用多個優秀的庫(例如 Seaborn 或 MatPlotLib)將數據可視化。直觀地表示您的數據可能會讓您發現可以利用的隱藏關聯。您的可視化還可以幫助您發現偏見或不平衡的數據(正如我們在 分類[9]中發現的那樣)。
拆分數據集
在訓練之前,您需要將數據集拆分為兩個或多個大小不等但仍能很好地代表數據的部分。
訓練。這部分數據集適合您的模型進行訓練。這個集合構成了原始數據集的大部分。
測試。測試數據集是一組獨立的數據,通常從原始數據中收集,用于確認構建模型的性能。
驗證。驗證集是一個較小的獨立示例組,用于調整模型的超參數或架構,以改進模型。根據您的數據大小和您提出的問題,您可能不需要構建第三組(正如我們在時間序列預測[10]中所述)。
建立模型
使用您的訓練數據,您的目標是構建模型或數據的統計表示,并使用各種算法對其進行訓練。訓練模型將其暴露給數據,并允許它對其發現、驗證和接受或拒絕的感知模式做出假設。
決定一種訓練方法
根據您的問題和數據的性質,您將選擇一種方法來訓練它。逐步完成 Scikit-learn的文檔[11] - 我們在本課程中使用 - 您可以探索多種訓練模型的方法。根據您的經驗,您可能需要嘗試多種不同的方法來構建最佳模型。您可能會經歷一個過程,在該過程中,數據科學家通過提供未見過的數據來評估模型的性能,檢查準確性、偏差和其他降低質量的問題,并為手頭的任務選擇最合適的訓練方法。
訓練模型
有了您的訓練數據,您就可以“擬合”它以創建模型。您會注意到,在許多ML庫中,您會找到代碼'model.fit'——此時您將數據作為值數組(通常為'X')和特征變量(通常為'y')發送)。
評估模型
訓練過程完成后(訓練大型模型可能需要多次迭代或“時期”),您將能夠通過使用測試數據來衡量模型的性能來評估模型的質量。此數據是模型先前未分析的原始數據的子集。您可以打印出有關模型質量的指標表。
???? **模型擬合 **
在機器學習的背景下,模型擬合是指模型在嘗試分析不熟悉的數據時其底層功能的準確性。
???? 欠擬合和過擬合是降低模型質量的常見問題,因為模型擬合得不夠好或太好。這會導致模型做出與其訓練數據過于緊密對齊或過于松散對齊的預測。過擬合模型對訓練數據的預測太好,因為它已經很好地了解了數據的細節和噪聲。欠擬合模型并不準確,因為它既不能準確分析其訓練數據,也不能準確分析尚未“看到”的數據。
作者Jen Looper[12]
參數調優
初始訓練完成后,觀察模型的質量并考慮通過調整其“超參數”來改進它。在此文檔中[13]閱讀有關該過程的更多信息。
預測
這是您可以使用全新數據來測試模型準確性的時刻。在“應用”ML設置中,您正在構建Web資源以在生產中使用模型,此過程可能涉及收集用戶輸入(例如按下按鈕)以設置變量并將其發送到模型進行推理,或者評估。
在這些課程中,您將了解如何使用這些步驟來準備、構建、測試、評估和預測—所有這些都是數據科學家的姿態,而且隨著您在成為一名“全棧”ML工程師的旅程中取得進展,您將了解更多。
????挑戰
畫一個流程圖,反映ML的步驟。在這個過程中,您認為自己現在在哪里?您預測您在哪里會遇到困難?什么對您來說很容易?
閱讀后測驗[14]
復習與自學
在線搜索對討論日常工作的數據科學家的采訪。這是其中之一[15]。
任務
采訪一名數據科學家[16]
歡迎關注我的個人公眾號”My IO“
參考
[1]
課前測驗: https://jolly-sea-0a877260f.azurestaticapps.net/quiz/7/
[2]幻燈片: https://www2.cisl.ucar.edu/sites/default/files/0900%20June%2024%20Haupt_0.pdf
[3]聚類: ../../5-Clustering/1-Visualize/README.md
[4]分類: ../../4-Classification/1-Introduction/README.md
[5]Web App: ../3-Web-App/README.md
[6]聚類: ../../5-Clustering/1-Visualize/README.md
[7]特征: https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection
[8]來源: https://wikipedia.org/wiki/Feature_selection
[9]分類: ../../4-Classification/2-Classifiers-1/README.md
[10]時間序列預測: ../7-TimeSeries/1-Introduction/README.md
[11]Scikit-learn的文檔: https://scikit-learn.org/stable/user_guide.html
[12]Jen Looper: https://twitter.com/jenlooper
[13]在此文檔中: https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-15963-cxa
[14]閱讀后測驗: https://jolly-sea-0a877260f.azurestaticapps.net/quiz/8/
[15]其中之一: https://www.youtube.com/watch?v=Z3IjgbbCEfs
[16]采訪一名數據科學家: assignment.md
總結
以上是生活随笔為你收集整理的微软面向初学者的机器学习课程:1.4-机器学习技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在 C# 9 中使用record类型
- 下一篇: Blazor Server 和 WebA