diff --git a/translations/zh-HK/.co-op-translator.json b/translations/zh-HK/.co-op-translator.json index 244bfe60a..5a5cc9055 100644 --- a/translations/zh-HK/.co-op-translator.json +++ b/translations/zh-HK/.co-op-translator.json @@ -1,7 +1,7 @@ { "1-Introduction/1-intro-to-ML/README.md": { - "original_hash": "69389392fa6346e0dfa30f664b7b6fec", - "translation_date": "2025-09-05T09:26:21+00:00", + "original_hash": "3a6394c6f5ce3f8aee8211e92eaf9ef0", + "translation_date": "2026-05-26T23:07:15+00:00", "source_file": "1-Introduction/1-intro-to-ML/README.md", "language_code": "zh-HK" }, @@ -240,8 +240,8 @@ "language_code": "zh-HK" }, "5-Clustering/1-Visualize/README.md": { - "original_hash": "730225ea274c9174fe688b21d421539d", - "translation_date": "2025-09-05T09:21:17+00:00", + "original_hash": "08b00d9fbffc667a7fe7fc19ac00dfbd", + "translation_date": "2026-05-26T23:06:48+00:00", "source_file": "5-Clustering/1-Visualize/README.md", "language_code": "zh-HK" }, diff --git a/translations/zh-HK/1-Introduction/1-intro-to-ML/README.md b/translations/zh-HK/1-Introduction/1-intro-to-ML/README.md index 036323df8..3b06c9a87 100644 --- a/translations/zh-HK/1-Introduction/1-intro-to-ML/README.md +++ b/translations/zh-HK/1-Introduction/1-intro-to-ML/README.md @@ -1,150 +1,157 @@ -# 機器學習簡介 +# Introduction to machine learning -## [課前測驗](https://ff-quizzes.netlify.app/en/ml/) +## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) --- -[![初學者的機器學習 - 機器學習入門](https://img.youtube.com/vi/6mSx_KJxcHI/0.jpg)](https://youtu.be/6mSx_KJxcHI "初學者的機器學習 - 機器學習入門") +[![ML for beginners - Introduction to Machine Learning for Beginners](https://img.youtube.com/vi/6mSx_KJxcHI/0.jpg)](https://youtu.be/6mSx_KJxcHI "ML for beginners - Introduction to Machine Learning for Beginners") -> 🎥 點擊上方圖片觀看本課程的簡短視頻。 +> 🎥 點擊上方圖片觀看本課程的短片教學。 -歡迎來到這門針對初學者的經典機器學習課程!無論你是完全新手,還是有經驗的機器學習從業者希望重新學習某個領域,我們都很高興你能加入我們!我們希望為你的機器學習研究創造一個友好的起點,並樂於評估、回應和採納你的[反饋](https://github.com/microsoft/ML-For-Beginners/discussions)。 +歡迎參加這個為初學者而設的經典機器學習課程!無論你是對這個主題毫無認識,還是有經驗的機器學習從業者想要溫習某個範疇,我們都非常歡迎你加入!我們希望為你的機器學習學習之路建立一個友善的起點,並很樂意評估、回應並納入你的[反饋](https://github.com/microsoft/ML-For-Beginners/discussions)。 -[![機器學習簡介](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "機器學習簡介") +[![Introduction to ML](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "Introduction to ML") -> 🎥 點擊上方圖片觀看視頻:麻省理工學院的 John Guttag 介紹機器學習 +> 🎥 點擊上方圖片觀看視頻:MIT 的 John Guttag 介紹機器學習 --- -## 開始學習機器學習 +## Getting started with machine learning -在開始學習本課程之前,你需要將你的電腦設置好,準備在本地運行筆記本。 +在開始本課程之前,你需要先設定好你的電腦,準備好本地執行 notebook。 -- **用這些視頻配置你的電腦**。使用以下鏈接學習[如何在系統中安裝 Python](https://youtu.be/CXZYvNRIAKM)以及[設置文本編輯器](https://youtu.be/EU8eayHWoZg)進行開發。 -- **學習 Python**。建議對[Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott)有基本的了解,這是一種對數據科學家非常有用的編程語言,我們在本課程中會使用它。 -- **學習 Node.js 和 JavaScript**。我們在課程中偶爾會使用 JavaScript 來構建網頁應用,因此你需要安裝 [node](https://nodejs.org) 和 [npm](https://www.npmjs.com/),以及為 Python 和 JavaScript 開發準備好 [Visual Studio Code](https://code.visualstudio.com/)。 -- **創建 GitHub 帳戶**。既然你在 [GitHub](https://github.com) 上找到了我們,你可能已經有一個帳戶了,但如果沒有,請創建一個,然後 fork 本課程以供自己使用。(也可以給我們點個星星 😊) -- **探索 Scikit-learn**。熟悉 [Scikit-learn](https://scikit-learn.org/stable/user_guide.html),這是一組我們在課程中引用的機器學習庫。 +- 跟著這些影片設定你的機器。利用以下連結學習[如何安裝 Python](https://youtu.be/CXZYvNRIAKM)於你的系統,以及[設定文字編輯器](https://youtu.be/EU8eayHWoZg)作開發環境。 +- **學習 Python**。同時建議具備 [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott) 的基本認識,這是數據科學家常用的程式語言,本課程亦會使用。 +- **學習 Node.js 與 JavaScript**。本課程中建構網頁應用時會用到 JavaScript,因此你需要安裝 [node](https://nodejs.org) 及 [npm](https://www.npmjs.com/),並安裝 [Visual Studio Code](https://code.visualstudio.com/) 作 Python 和 JavaScript 開發之用。 +- **建立 GitHub 帳號**。既然你已在 [GitHub](https://github.com) 上找到我們,你可能已有帳號,如果沒有,請建立一個,然後 fork 本課程以便個人使用。(也歡迎給我們點個 star 😊) +- **探索 Scikit-learn**。熟悉一下我們課程中會提及的 [Scikit-learn](https://scikit-learn.org/stable/user_guide.html),這是一套非常好用的機器學習函式庫,許多學生用它來學習基礎。 --- -## 什麼是機器學習? +## What is machine learning? -“機器學習”這個術語是當今最流行且最常用的術語之一。如果你對技術有一定的了解,無論你從事什麼領域,都有很大可能至少聽過一次這個術語。然而,機器學習的運作機制對大多數人來說仍然是個謎。對於機器學習初學者來說,這個主題有時可能會讓人感到不知所措。因此,了解機器學習的真正含義並通過實際例子逐步學習它是非常重要的。 +「機器學習」是現今最流行且經常被提及的詞彙之一。如果你對科技有一點認識,無論你工作在哪個領域,很大機會你都至少聽過這個詞。可是大多數人對機器學習的運作原理仍是一團迷霧。對於初學者來說,這個主題有時候會顯得非常難以掌握。因此,理解機器學習究竟是甚麼、一步步透過實際例子來學習它是非常重要的。 --- -## 熱潮曲線 +## The hype curve -![機器學習熱潮曲線](../../../../1-Introduction/1-intro-to-ML/images/hype.png) +![ml hype curve](../../../../translated_images/zh-HK/hype.07183d711a17aafe.webp) -> Google 趨勢顯示了“機器學習”術語的近期熱潮曲線 +> Google 趨勢展示了「機器學習」一詞近期的「熱潮曲線」 --- -## 神秘的宇宙 +## A mysterious universe -我們生活在一個充滿迷人謎團的宇宙中。偉大的科學家如史蒂芬·霍金、阿爾伯特·愛因斯坦等人,畢生致力於尋找有意義的信息,以揭示我們周圍世界的奧秘。這是人類學習的本質:人類的孩子隨著成長逐年學習新事物,揭示他們世界的結構。 +我們生活在一個充滿迷人謎團的宇宙中。偉大的科學家如 Stephen Hawking、Albert Einstein 等,獻出生命追尋有意義的資訊,以揭示我們周遭世界的奧秘。這是人類學習的本質:一個小孩隨著成長年年學習新事物,揭開其世界的結構。 --- -## 孩子的大腦 +## The child's brain -孩子的大腦和感官感知周圍環境的事實,並逐漸學習生活中隱藏的模式,幫助孩子制定邏輯規則來識別已學習的模式。人類大腦的學習過程使人類成為這個世界上最複雜的生物。通過不斷發現隱藏的模式並在這些模式上進行創新,我們能夠在一生中不斷提升自己。這種學習能力和進化能力與一個名為[大腦可塑性](https://www.simplypsychology.org/brain-plasticity.html)的概念有關。表面上,我們可以在人類大腦的學習過程和機器學習的概念之間找到一些激勵性的相似之處。 +孩童的大腦與感官感知周遭事實,逐漸學習生命中隱藏的模式,這幫助孩子制定邏輯規則來識別學到的模式。人類大腦的學習過程造就了人類作為世界上最複雜的生物。透過持續發現隱藏模式並加以創新,我們能終生改進自己。這種學習能力及不斷演進的能力與一種稱為[大腦可塑性](https://www.simplypsychology.org/brain-plasticity.html)的概念相關。表面上,我們可從人腦學習過程與機器學習的概念中找到一些激勵性的相似之處。 --- -## 人類大腦 +## The human brain -[人類大腦](https://www.livescience.com/29365-human-brain.html)從現實世界中感知事物,處理感知到的信息,做出理性決策,並根據情況執行某些行動。這就是我們所說的智能行為。當我們將智能行為過程的模擬編程到機器上時,這就被稱為人工智能(AI)。 +[人類大腦](https://www.livescience.com/29365-human-brain.html)感知世界,處理所得資訊,依據情況做出理性決策,並執行某些行動。這就是我們所謂的智能行為。當我們將智能行為過程模擬編程到機器上,即稱為人工智能 (AI)。 --- -## 一些術語 +## Some terminology -雖然這些術語可能會混淆,但機器學習(ML)是人工智能的一個重要子集。**機器學習專注於使用專門的算法從感知到的數據中發掘有意義的信息並找到隱藏的模式,以支持理性決策過程**。 +雖然這些名詞容易混淆,機器學習 (ML) 是人工智能的重要子集。**機器學習專注於使用專門的演算法,從感知到的數據中挖掘有意義的資訊與隱藏模式,輔助理性決策過程。** --- -## AI、ML、深度學習 +## AI, ML, Deep Learning -![AI、ML、深度學習、數據科學](../../../../1-Introduction/1-intro-to-ML/images/ai-ml-ds.png) +![AI, ML, deep learning, data science](../../../../translated_images/zh-HK/ai-ml-ds.537ea441b124ebf6.webp) -> 一張展示 AI、ML、深度學習和數據科學之間關係的圖表。信息圖由 [Jen Looper](https://twitter.com/jenlooper) 製作,靈感來自[這張圖](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) +> 顯示人工智能、機器學習、深度學習及數據科學之間關係的圖表。資訊圖由 [Jen Looper](https://twitter.com/jenlooper) 製作,靈感來自於[此圖](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) --- -## 涵蓋的概念 +## Concepts to cover -在本課程中,我們將僅涵蓋機器學習的核心概念,這些是初學者必須了解的。我們主要使用 Scikit-learn 來教授所謂的“經典機器學習”,這是一個許多學生用來學習基礎知識的優秀庫。要理解人工智能或深度學習的更廣泛概念,扎實的機器學習基礎知識是不可或缺的,因此我們希望在此提供這些知識。 +本課程將只涵蓋初學者必須知道的機器學習核心概念。我們主要使用 Scikit-learn 探討所謂的「經典機器學習」,這是許多學生用來學習基礎的優秀函式庫。想要理解更廣泛的人工智能或深度學習概念,紮實的機器學習基礎知識必不可少,因此我們希望在這裡提供它。 --- -## 在本課程中你將學到: +## In this course you will learn: -- 機器學習的核心概念 -- 機器學習的歷史 +- 機器學習核心概念 +- 機器學習歷史 - 機器學習與公平性 - 回歸機器學習技術 - 分類機器學習技術 -- 聚類機器學習技術 +- 叢集機器學習技術 - 自然語言處理機器學習技術 - 時間序列預測機器學習技術 - 強化學習 -- 機器學習的實際應用 +- 機器學習的真實世界應用 --- -## 我們不會涵蓋的內容 +## What we will not cover - 深度學習 - 神經網絡 -- 人工智能 +- AI -為了提供更好的學習體驗,我們將避免涉及神經網絡的複雜性、“深度學習”——使用神經網絡構建多層模型——以及人工智能,這些內容我們會在另一門課程中討論。我們還將提供即將推出的數據科學課程,專注於這個更大領域的這一方面。 +為了提供更好的學習體驗,我們將避開神經網絡、「深度學習」(使用多層神經網絡的模型建構)以及人工智能相關複雜性,這些會於另一個課程詳細探討。我們亦將提供即將推出的數據科學課程以聚焦這個更大的領域。 --- -## 為什麼要學習機器學習? +## Why study machine learning? -從系統的角度來看,機器學習被定義為創建能夠從數據中學習隱藏模式以幫助做出智能決策的自動化系統。 +從系統角度來看,機器學習是創造能自動學習數據中隱藏模式,幫助做出智能決策的系統。 -這種動機在某種程度上受到人類大腦如何根據外界感知到的數據學習某些事物的啟發。 +這種動機大致來自於人腦如何根據外界感知到的數據學習某些東西。 -✅ 想一想,為什麼企業會希望使用機器學習策略,而不是創建基於硬編碼規則的引擎。 +✅ 想一想,為何企業會用機器學習策略,而非只用硬編碼規則引擎。 --- -## 機器學習的應用 +## Why data quality matters -機器學習的應用現在幾乎無處不在,就像我們社會中流動的數據一樣,這些數據由智能手機、連接設備和其他系統生成。考慮到最先進的機器學習算法的巨大潛力,研究人員一直在探索它們解決多維度和多學科現實問題的能力,並取得了非常積極的成果。 +高質量數據能提升模型表現。即使使用先進的機器學習演算法,劣質或雜訊數據仍會導致預測不準。 --- -## 應用機器學習的例子 +## Applications of machine learning -**你可以用多種方式使用機器學習**: +機器學習應用已存在於各處,如同不斷流動於我們社會的數據,這些數據由智能手機、連接設備及其他系統產生。考慮到尖端機器學習演算法的巨大潛力,研究人員一直探索其解決多維且跨學科現實問題的能力,並取得良好成果。 -- 從患者的病史或報告中預測疾病的可能性。 -- 利用天氣數據預測天氣事件。 -- 理解文本的情感。 -- 檢測假新聞以阻止宣傳的傳播。 +--- +## Examples of applied ML + +機器學習的用法多種多樣: + +- 從患者的醫療歷史或報告預測疾病可能性。 +- 利用天氣數據預測氣象事件。 +- 理解文本的情感傾向。 +- 偵測假新聞以停止宣傳散播。 -金融、經濟、地球科學、太空探索、生物醫學工程、認知科學,甚至人文領域都已經採用機器學習來解決其領域中繁重的數據處理問題。 +金融、經濟、地球科學、太空探索、生物醫學工程、認知科學甚至人文領域都已採用機器學習來解決其艱難且數據處理密集的問題。 --- -## 結論 +## Conclusion -機器學習通過從現實世界或生成的數據中發現有意義的洞察來自動化模式發現的過程。它已經在商業、健康和金融應用等領域證明了自己的巨大價值。 +機器學習通過從現實或生成的數據中挖掘有意義的洞見,自動化了模式發現過程。它已證明在商業、健康及金融等應用中極具價值。 -在不久的將來,了解機器學習的基礎知識將成為任何領域的人必須掌握的技能,因為它的廣泛採用。 +不久的將來,由於其廣泛應用,各行各業人員學習機器學習基礎將成為必須。 --- -# 🚀 挑戰 +# 🚀 Challenge -用紙或使用像 [Excalidraw](https://excalidraw.com/) 這樣的在線應用程序,繪製你對 AI、ML、深度學習和數據科學之間差異的理解。添加一些這些技術擅長解決的問題的想法。 +用紙張或線上軟件如[Excalidraw](https://excalidraw.com/)繪製你對人工智能、機器學習、深度學習及數據科學的差異的理解。加上這些技術適合解決問題的一些想法。 -# [課後測驗](https://ff-quizzes.netlify.app/en/ml/) +# [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) --- -# 回顧與自學 +# Review & Self Study -要了解更多關於如何在雲端使用機器學習算法,請參考這個[學習路徑](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott)。 +欲了解如何在雲端操作機器學習演算法,請跟隨此[學習路徑](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott)。 -參加一個關於機器學習基礎的[學習路徑](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott)。 +上這個[學習路徑](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott)了解機器學習基礎。 --- -# 作業 +# Assignment -[開始學習](assignment.md) +[Get up and running](assignment.md) --- -**免責聲明**: -此文件已使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file + +**免責聲明**: +本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意,機器自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議進行專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。 + \ No newline at end of file diff --git a/translations/zh-HK/5-Clustering/1-Visualize/README.md b/translations/zh-HK/5-Clustering/1-Visualize/README.md index b141f2394..05c6057ab 100644 --- a/translations/zh-HK/5-Clustering/1-Visualize/README.md +++ b/translations/zh-HK/5-Clustering/1-Visualize/README.md @@ -1,116 +1,116 @@ -# 聚類簡介 +# 叢集分析簡介 -聚類是一種[無監督學習](https://wikipedia.org/wiki/Unsupervised_learning)方法,假設數據集是未標籤的,或者其輸入未與預定義的輸出匹配。它使用各種算法來整理未標籤的數據,並根據數據中識別的模式提供分組。 +叢集分析是一種[無監督學習](https://wikipedia.org/wiki/Unsupervised_learning)方法,假設資料集未標註標籤或其輸入與預定義輸出不匹配。它使用多種演算法來排序未標註的資料,根據資料中的模式提供分群。 -[![PSquare 的 No One Like You](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "PSquare 的 No One Like You") +[![No One Like You by PSquare](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "No One Like You by PSquare") -> 🎥 點擊上方圖片觀看影片。在學習機器學習中的聚類時,欣賞一些尼日利亞舞廳音樂——這是 PSquare 在 2014 年的一首高評價歌曲。 +> 🎥 點擊上方圖片觀看影片。在學習使用叢集分析的機器學習時,享受一些奈及利亞舞廳音樂-這是 PSquare 於 2014 年的高評價歌曲。 -## [課前測驗](https://ff-quizzes.netlify.app/en/ml/) +## [課前小測驗](https://ff-quizzes.netlify.app/en/ml/) ### 簡介 -[聚類](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124)在數據探索中非常有用。讓我們看看它是否能幫助發現尼日利亞觀眾消費音樂的趨勢和模式。 +[叢集分析](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124)對資料探索非常有用。讓我們看看它是否能幫助發現奈及利亞觀眾消費音樂的趨勢和模式。 -✅ 花一分鐘思考一下聚類的用途。在日常生活中,聚類發生在你有一堆洗衣物需要分類成家人衣物的時候 🧦👕👖🩲。在數據科學中,聚類發生在分析用戶偏好或確定任何未標籤數據集的特徵時。聚類在某種程度上幫助理解混亂,就像整理襪子抽屜一樣。 +✅ 花一分鐘想想叢集分析的用途。在現實生活中,當你需要分揀家人衣物時就會用到叢集分析 🧦👕👖🩲。在資料科學中,叢集分析用於分析用戶偏好,或辨別任何未標記資料集的特性。叢集分析在某種程度上幫助理解混亂,例如整理襪子抽屜。 -[![機器學習簡介](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "聚類簡介") +[![Introduction to ML](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "Introduction to Clustering") -> 🎥 點擊上方圖片觀看影片:麻省理工學院的 John Guttag 介紹聚類 +> 🎥 點擊上方圖片觀看影片:MIT 的 John Guttag 介紹叢集分析 -在專業環境中,聚類可以用於確定市場細分,例如確定哪些年齡段購買哪些商品。另一個用途是異常檢測,例如從信用卡交易數據集中檢測欺詐行為。或者你可能使用聚類來確定一批醫學掃描中的腫瘤。 +在專業環境中,叢集分析可用來確定市場區隔,例如決定哪些年齡層購買哪些商品。另一個用途是異常檢測,例如從信用卡交易資料中偵測詐騙。或者你可能會用叢集分析判斷醫學掃描中是否有腫瘤。 -✅ 花一分鐘思考一下你可能在銀行、電子商務或商業環境中遇到過的聚類。 +✅ 花一分鐘思考你可能在哪些銀行、電子商務或商業場景中遇過叢集分析。 -> 🎓 有趣的是,聚類分析起源於 1930 年代的人類學和心理學領域。你能想像它可能是如何被使用的嗎? +> 🎓 有趣的是,叢集分析起源於 1930 年代的人類學和心理學領域。你能想像它當時如何被使用嗎? -或者,你可以用它來分組搜索結果,例如按購物鏈接、圖片或評論分組。當你有一個大型數據集需要縮減並進行更細緻的分析時,聚類非常有用,因此該技術可以在構建其他模型之前幫助了解數據。 +另外,你也可以用來對搜尋結果分組-例如購物連結、圖片或評論。叢集分析在你有龐大資料但想降低維度並進行更細緻分析時很有用,因此它可用於建構其他模型前的資料探索。 -✅ 一旦你的數據被組織成聚類,你可以為其分配一個聚類 ID。這種技術在保護數據集隱私時非常有用;你可以用聚類 ID 而不是更具識別性的數據來引用數據點。你能想到其他使用聚類 ID 而不是聚類中其他元素來識別的原因嗎? +✅ 一旦你的資料被組成叢集,便會指派叢集 ID,這種技術也有助於保護資料隱私;你可以用叢集 ID 來代替更揭露身分的資料點。你能想到其他用叢集 ID 而非叢集中其他元素來識別的原因嗎? -在這個[學習模組](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)中深入了解聚類技術。 +在這個[學習模組](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)深化你對叢集技術的理解。 -## 聚類入門 +## 叢集分析入門 -[Scikit-learn 提供了大量方法](https://scikit-learn.org/stable/modules/clustering.html)來執行聚類。你選擇的類型將取決於你的使用案例。根據文檔,每種方法都有不同的優勢。以下是 Scikit-learn 支持的方法及其適用使用案例的簡化表格: +[Scikit-learn 提供多種](https://scikit-learn.org/stable/modules/clustering.html)叢集方法,所選擇的方法取決於你的使用案例。根據文件,每種方法都有不同優勢。以下為 Scikit-learn 支援的方法及其適用情境的簡化表格: -| 方法名稱 | 使用案例 | +| 方法名稱 | 適用情況 | | :--------------------------- | :--------------------------------------------------------------------- | -| K-Means | 通用用途,歸納式 | -| Affinity propagation | 多個、不均勻的聚類,歸納式 | -| Mean-shift | 多個、不均勻的聚類,歸納式 | -| Spectral clustering | 少量、均勻的聚類,轉導式 | -| Ward hierarchical clustering | 多個、受限的聚類,轉導式 | -| Agglomerative clustering | 多個、受限的、非歐幾里得距離,轉導式 | -| DBSCAN | 非平面幾何、不均勻的聚類,轉導式 | -| OPTICS | 非平面幾何、不均勻的聚類,密度可變,轉導式 | -| Gaussian mixtures | 平面幾何,歸納式 | -| BIRCH | 大型數據集,含異常值,歸納式 | - -> 🎓 我們如何創建聚類與我們如何將數據點分組有很大關係。讓我們解釋一些術語: +| K-Means | 通用,歸納式 | +| 親和力傳播 (Affinity propagation) | 許多、不均勻的叢集,歸納式 | +| 平均漂移 (Mean-shift) | 許多、不均勻的叢集,歸納式 | +| 光譜叢集 (Spectral clustering) | 少量、均勻的叢集,傳導式 | +| Ward 階層叢集 (Ward hierarchical clustering) | 許多、有約束的叢集,傳導式 | +| 凝聚式叢集 (Agglomerative clustering) | 許多、有約束、非歐氏距離,傳導式 | +| DBSCAN | 非平坦幾何、不均勻的叢集,傳導式 | +| OPTICS | 非平坦幾何、不均勻且密度變化的叢集,傳導式 | +| 高斯混合 (Gaussian mixtures) | 平坦幾何,歸納式 | +| BIRCH | 含異常值的大資料集,歸納式 | + +> 🎓 叢集如何產生很大程度上取決於你如何將資料點劃分成群組。我們解析一些詞彙: > -> 🎓 ['轉導式' vs. '歸納式'](https://wikipedia.org/wiki/Transduction_(machine_learning)) +> 🎓 [「傳導式」與「歸納式」](https://wikipedia.org/wiki/Transduction_(machine_learning)) > -> 轉導式推理是基於觀察到的訓練案例並映射到特定測試案例。歸納式推理是基於訓練案例並映射到一般規則,然後應用於測試案例。 +> 傳導推理是根據特定測試案例映射的觀察訓練案例衍生而來。歸納推理則是從訓練案例總結出一般規則,再應用於測試案例。 > -> 舉例:假設你有一個部分標籤的數據集。一些是“唱片”,一些是“CD”,一些是空白。你的任務是為空白部分提供標籤。如果你選擇歸納式方法,你會訓練一個模型尋找“唱片”和“CD”,並將這些標籤應用於未標籤數據。這種方法可能難以分類實際上是“磁帶”的物品。而轉導式方法則更有效地處理這些未知數據,因為它努力將相似的物品分組,然後為整個分組分配標籤。在這種情況下,聚類可能反映“圓形音樂物品”和“方形音樂物品”。 +> 例如:假設資料集中只有部分標籤,有的是「唱片」,有的是「CD」,有些未標籤。你的工作是為未標籤部分指定標籤。若選擇歸納式方法,你會訓練一個模型以找出「唱片」與「CD」,並將標籤套用於未標籤資料,然而這方法難以分類實際為「卡帶」的資料。傳導式則能有效處理此未知資料,會先將相似的資料分群,然後給群組標籤,譬如「圓形音樂物品」與「方形音樂物品」。 > -> 🎓 ['非平面' vs. '平面'幾何](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering) +> 🎓 [「非平坦」與「平坦」幾何](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering) > -> 源自數學術語,非平面 vs. 平面幾何指的是通過“平面”([歐幾里得](https://wikipedia.org/wiki/Euclidean_geometry))或“非平面”(非歐幾里得)幾何方法測量點之間的距離。 +> 取自數學術語,非平坦與平坦幾何指的是用「平坦」([歐氏幾何](https://wikipedia.org/wiki/Euclidean_geometry))或「非平坦」(非歐氏)幾何方法來測距離。 > ->'平面'在此上下文中指的是歐幾里得幾何(部分被教為“平面”幾何),而非平面指的是非歐幾里得幾何。幾何與機器學習有什麼關係?作為兩個根植於數學的領域,必須有一種通用方法來測量聚類中點之間的距離,這可以根據數據的性質以“平面”或“非平面”的方式進行。[歐幾里得距離](https://wikipedia.org/wiki/Euclidean_distance)是通過兩點之間線段的長度來測量的。[非歐幾里得距離](https://wikipedia.org/wiki/Non-Euclidean_geometry)則沿曲線測量。如果你的數據在可視化後似乎不在平面上,你可能需要使用專門的算法來處理它。 +> 「平坦」指歐氏幾何(部分為平面幾何),非平坦指非歐氏幾何。幾何跟機器學習有何關?由於兩者根源於數學,必須有共同方法量度叢集中的點距離,且依資料特性會用「平坦」或「非平坦」量度。[歐氏距離](https://wikipedia.org/wiki/Euclidean_distance)是兩點間線段長度,[非歐氏距離](https://wikipedia.org/wiki/Non-Euclidean_geometry)則沿曲線測量。若你資料視覺化後似乎不在一平面上,可能要用特殊演算法處理。 > -![平面 vs 非平面幾何信息圖](../../../../5-Clustering/1-Visualize/images/flat-nonflat.png) -> 信息圖由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 +![平坦 vs 非平坦幾何資訊圖](../../../../translated_images/zh-HK/flat-nonflat.d1c8c6e2a96110c1.webp) +> 圖表由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 製作 > -> 🎓 ['距離'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) +> 🎓 [「距離」](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) > -> 聚類由其距離矩陣定義,例如點之間的距離。這些距離可以通過幾種方式測量。歐幾里得聚類由點值的平均值定義,並包含一個“中心點”或中心點。因此距離是通過到該中心點的距離來測量的。非歐幾里得距離指的是“聚類中心點”,即最接近其他點的點。聚類中心點可以通過多種方式定義。 +> 叢集由距離矩陣定義,例如點與點之間的距離。這距離可用數種方式量度。歐氏叢集由點值平均定義,包含「中心點」或質心,距離即為點與質心間距離。非歐氏距離指「聚類中心點」(clustroids),即最接近其他點的點,且聚類中心點可由不同方式定義。 > -> 🎓 ['受限'](https://wikipedia.org/wiki/Constrained_clustering) +> 🎓 [「有約束」](https://wikipedia.org/wiki/Constrained_clustering) > -> [受限聚類](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf)在這種無監督方法中引入了“半監督”學習。點之間的關係被標記為“不能鏈接”或“必須鏈接”,因此對數據集施加了一些規則。 +> [有約束叢集](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf)將半監督學習引入此無監督方法。點間關係標記為「不得連結」或「必須連結」,為資料集建立規則。 > ->舉例:如果一個算法在一批未標籤或半標籤數據上自由運行,它生成的聚類可能質量較差。在上述例子中,聚類可能分組為“圓形音樂物品”、“方形音樂物品”、“三角形物品”和“餅乾”。如果給出一些限制或規則(“物品必須由塑料製成”,“物品需要能夠產生音樂”),這可以幫助“限制”算法做出更好的選擇。 +> 例如:若演算法無約束於未標註或半標註資料,自主產生的叢集可能品質不佳。上述例子中,叢集可能分為「圓形音樂物品」、「方形音樂物品」、「三角形物品」和「餅乾」。如果給予約束,例如「項目必須用塑膠製成」、「項目必須能產生音樂」等,能促使演算法做出更佳決定。 > -> 🎓 '密度' +> 🎓「密度」 > -> 被認為是“噪聲”的數據被認為是“密集”的。每個聚類中的點之間的距離在檢查時可能顯示出更多或更少的密度或“擁擠”,因此需要使用適當的聚類方法來分析這些數據。[這篇文章](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html)展示了使用 K-Means 聚類與 HDBSCAN 算法探索具有不均勻聚類密度的噪聲數據集的區別。 +> 「雜訊」資料視為密集。叢集中點與點間距離可能略有差異,稱為密度或擁擠度,因此需要用適合的叢集方法分析。[本文](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html)示範用 K-Means 與 HDBSCAN 演算法分析不均勻密度的噪聲資料。 -## 聚類算法 +## 叢集演算法 -有超過 100 種聚類算法,其使用取決於手頭數據的性質。讓我們討論一些主要的算法: +有超過 100 種叢集演算法,其用法取決於資料特性。讓我們討論幾種主要的: -- **層次聚類**。如果物品是根據其與附近物品的接近程度而分類,而不是與更遠的物品,聚類是基於其成員與其他物品的距離形成的。Scikit-learn 的凝聚聚類是層次聚類。 +- 階層叢集。若一物件依與鄰近物件的距離被分類,而非與較遠物件距離,叢集即以成員間的相對距離形成。Scikit-learn 的凝聚式叢集屬階層型。 - ![層次聚類信息圖](../../../../5-Clustering/1-Visualize/images/hierarchical.png) - > 信息圖由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 + ![階層叢集資訊圖](../../../../translated_images/zh-HK/hierarchical.bf59403aa43c8c47.webp) + > 圖表由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 製作 -- **中心點聚類**。這種流行的算法需要選擇“k”,即要形成的聚類數量,然後算法確定聚類的中心點並圍繞該點收集數據。[K-means 聚類](https://wikipedia.org/wiki/K-means_clustering)是中心點聚類的一個流行版本。中心點由最近的平均值確定,因此得名。聚類的平方距離被最小化。 +- 質心叢集。此熱門演算法必須指定「k」值,表示要形成的叢集數,接著演算法決定叢集中心點並將資料聚集於此。 [K-means 叢集](https://wikipedia.org/wiki/K-means_clustering) 是一種質心叢集。中心由最近的平均值決定,因此名為質心。其目標是將離質心的平方距離最小化。 - ![中心點聚類信息圖](../../../../5-Clustering/1-Visualize/images/centroid.png) - > 信息圖由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 + ![質心叢集資訊圖](../../../../translated_images/zh-HK/centroid.097fde836cf6c918.webp) + > 圖表由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 製作 -- **基於分佈的聚類**。基於統計建模,基於分佈的聚類集中於確定數據點屬於某個聚類的概率,並據此分配。高斯混合方法屬於此類。 +- 分布式叢集。基於統計模型,該方法確定資料點屬於某叢集的概率,然後相應分配。高斯混合方法為此類型。 -- **基於密度的聚類**。數據點根據其密度或圍繞彼此的分組分配到聚類中。遠離群體的數據點被認為是異常值或噪聲。DBSCAN、Mean-shift 和 OPTICS 屬於此類聚類。 +- 密度式叢集。資料點依密度或彼此環繞的分布編入叢集。距群組離得遠的資料點被視為異常或噪聲。DBSCAN、Mean-shift 與 OPTICS 歸類於此。 -- **基於網格的聚類**。對於多維數據集,創建一個網格,並將數據分配到網格的單元中,從而創建聚類。 +- 格網叢集。針對多維資料集,建立格網,將資料分配至格網格格中,以此形成叢集。 -## 練習 - 聚類你的數據 +## 練習 - 對你的資料進行叢集分析 -聚類作為一種技術在適當的可視化支持下效果更佳,因此讓我們開始可視化我們的音樂數據。這個練習將幫助我們決定針對這些數據的性質最有效使用哪種聚類方法。 +叢集技術仰賴良好的視覺化,讓我們先從視覺化音樂資料開始。此練習幫助我們決定哪種叢集方法最適合此資料性質。 -1. 打開此文件夾中的 [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb)。 +1. 開啟此資料夾內的 [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) 檔案。 -1. 導入 `Seaborn` 套件以進行良好的數據可視化。 +1. 匯入 `Seaborn` 套件以良好視覺化資料。 ```python !pip install seaborn ``` -1. 從 [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv) 附加歌曲數據。使用一些關於歌曲的數據加載一個數據框。通過導入庫並輸出數據準備探索這些數據: +1. 將 [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv) 的歌曲資料附加並載入資料框。準備匯入函式庫並輸出資料以便探索: ```python import matplotlib.pyplot as plt @@ -120,23 +120,23 @@ df.head() ``` - 查看數據的前幾行: + 查看資料前幾行: | | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature | | --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ------------ | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- | | 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 | | 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 | -| 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 | -| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 | -| 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 | + | 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 | + | 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 | + | 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 | -1. 獲取數據框的基本信息,使用 `info()`: +1. 獲取 dataframe 的一些資訊,調用 `info()`: ```python df.info() ``` - 輸出如下所示: + 輸出類似如下: ```output @@ -164,13 +164,13 @@ memory usage: 66.4+ KB ``` -1. 使用 `isnull()` 並驗證總和為 0,檢查是否有空值: +1. 再次檢查是否有空值,調用 `isnull()` 並驗證總和為 0: ```python df.isnull().sum() ``` - 看起來不錯: + 看起來沒有問題: ```output name 0 @@ -209,11 +209,11 @@ | 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 | | max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 | -> 🤔 如果我們正在使用聚類這種不需要標籤數據的無監督方法,為什麼還要展示帶有標籤的數據?在數據探索階段,標籤很有用,但對於聚類算法來說並非必要。你完全可以移除列標題,並通過列號來引用數據。 +> 🤔 如果我們使用的是無監督學習的分群演算法,不需要標記資料,那為什麼會展示有標籤的數據?在資料探索階段,這些標籤很有用,但對於分群演算法本身來說不必要。您也可以直接移除列標題,並用列號來參考資料。 -查看數據的一般值。注意,流行度可以是 "0",這表示歌曲沒有排名。我們稍後會移除這些數據。 +觀察數據的整體值。注意人氣(popularity)可能為「0」,表示歌曲沒有排名。我們稍後會移除這些。 -1. 使用條形圖找出最流行的音樂類型: +1. 用長條圖找出最受歡迎的曲風: ```python import seaborn as sns @@ -225,13 +225,13 @@ plt.title('Top genres',color = 'blue') ``` - ![most popular](../../../../5-Clustering/1-Visualize/images/popular.png) + ![most popular](../../../../translated_images/zh-HK/popular.9c48d84b3386705f.webp) -✅ 如果想查看更多的前幾名數據,可以將 `[:5]` 改為更大的值,或者移除它以查看所有數據。 +✅ 若想看到更多頂尖值,將頂部的 `[:5]` 改成更大的數值,或移除以查看全部。 -注意,當最流行的音樂類型被描述為 "Missing" 時,這表示 Spotify 沒有對其進行分類,因此我們需要移除它。 +注意,當頂尖曲風顯示「Missing」表示 Spotify 沒有分類,所以我們將其移除。 -1. 通過篩選移除缺失數據: +1. 移除缺失資料: ```python df = df[df['artist_top_genre'] != 'Missing'] @@ -242,11 +242,11 @@ plt.title('Top genres',color = 'blue') ``` - 現在重新檢查音樂類型: + 現在重新檢查曲風: - ![most popular](../../../../5-Clustering/1-Visualize/images/all-genres.png) + ![most popular](../../../../translated_images/zh-HK/all-genres.1d56ef06cefbfcd6.webp) -1. 顯然,前三大音樂類型在這個數據集中占主導地位。我們將集中研究 `afro dancehall`、`afropop` 和 `nigerian pop`,並進一步篩選數據,移除流行度值為 0 的數據(這表示該數據集未對其進行流行度分類,對我們的目的來說可以視為噪音): +1. 明顯地,前三個曲風主導此資料集。我們只聚焦於 `afro dancehall`、`afropop` 和 `nigerian pop`,並且額外篩選去除人氣為0的資料(代表沒有人氣排名,可視為雜訊): ```python df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')] @@ -258,7 +258,7 @@ plt.title('Top genres',color = 'blue') ``` -1. 快速測試數據是否有特別強的相關性: +1. 快速測試資料是否存在明顯的相關性: ```python corrmat = df.corr(numeric_only=True) @@ -266,21 +266,21 @@ sns.heatmap(corrmat, vmax=.8, square=True) ``` - ![correlations](../../../../5-Clustering/1-Visualize/images/correlation.png) + ![correlations](../../../../translated_images/zh-HK/correlation.a9356bb798f5eea5.webp) - 唯一的強相關性是 `energy` 和 `loudness` 之間,這並不令人驚訝,因為響亮的音樂通常非常有活力。除此之外,相關性相對較弱。看看聚類算法如何處理這些數據會很有趣。 + 唯一強相關是 `energy` 與 `loudness`,這並不奇怪,因為大聲音樂通常較有活力。除此之外,相關性都相當弱。看看分群演算法會如何解讀這些資料會很有趣。 - > 🎓 注意,相關性並不意味著因果關係!我們有相關性的證據,但沒有因果關係的證據。一個[有趣的網站](https://tylervigen.com/spurious-correlations)提供了一些視覺化內容,強調了這一點。 + > 🎓 注意,相關不代表因果關係!我們有相關證據,但沒有因果證明。一個[有趣的網站](https://tylervigen.com/spurious-correlations)有些圖像突顯了這點。 -在這個數據集中,歌曲的流行度和舞蹈性是否有任何收斂?FacetGrid 顯示無論音樂類型如何,都有一些同心圓排列。是否可能是尼日利亞的品味在這些音樂類型中收斂於某個舞蹈性水平? +這組資料中,歌曲的人氣和舞曲感是否存在聚合趨勢?使用 FacetGrid 顯示有同心圓重合,不論曲風。難道尼日利亞人在這類流派的舞曲感有共通偏好? -✅ 嘗試不同的數據點(例如 energy、loudness、speechiness)以及更多或不同的音樂類型。你能發現什麼?查看 `df.describe()` 表格以了解數據點的一般分佈。 +✅ 試試不同的資料點(能量、響度、語音成分)或多種不同音樂風格。你會發現什麼?看看 `df.describe()` 表了解資料點的分布。 -### 練習 - 數據分佈 +### 練習 - 資料分布 -這三種音樂類型在流行度和舞蹈性方面的感知是否有顯著差異? +這三個曲風在人氣與舞曲感的感知上是否顯著不同? -1. 檢查我們前三大音樂類型在流行度和舞蹈性上的數據分佈,沿著給定的 x 和 y 軸。 +1. 檢視前三大曲風在人氣和舞曲感兩軸的資料分布。 ```python sns.set_theme(style="ticks") @@ -292,15 +292,15 @@ ) ``` - 你可以發現圍繞一般收斂點的同心圓,顯示數據分佈。 + 你會發現在一個共同收斂點附近存在同心圓分布。 - > 🎓 注意,此示例使用了 KDE(核密度估計)圖,該圖使用連續概率密度曲線表示數據。這使我們在處理多個分佈時能夠解釋數據。 + > 🎓 這個示例使用 KDE(核密度估計)圖,運用連續概率密度曲線來代表資料,方便我們解讀多分布資料。 - 總的來說,這三種音樂類型在流行度和舞蹈性方面大致對齊。要在這些大致對齊的數據中確定聚類將是一個挑戰: + 大致上,三種曲風在人氣及舞曲感上大致對齊。要在這種鬆散對齊的資料中找出群集會是個挑戰: - ![distribution](../../../../5-Clustering/1-Visualize/images/distribution.png) + ![distribution](../../../../translated_images/zh-HK/distribution.9be11df42356ca95.webp) -1. 創建散點圖: +1. 繪製散點圖: ```python sns.FacetGrid(df, hue="artist_top_genre", height=5) \ @@ -308,31 +308,33 @@ .add_legend() ``` - 同一軸上的散點圖顯示了類似的收斂模式 + 同軸的散點圖展現類似收斂模式 - ![Facetgrid](../../../../5-Clustering/1-Visualize/images/facetgrid.png) + ![Facetgrid](../../../../translated_images/zh-HK/facetgrid.9b2e65ce707eba1f.webp) -總的來說,對於聚類,你可以使用散點圖來顯示數據的聚類,因此掌握這種可視化方法非常有用。在下一課中,我們將使用 k-means 聚類來探索這些數據中有趣的重疊群組。 +一般而言,在分群時可用散點圖顯示資料群集,熟練此視覺化十分重要。下節課會用這套篩選資料,用 k-means 分群找出有趣的重疊群體。 --- ## 🚀挑戰 -為下一課做準備,製作一張關於你可能在生產環境中發現並使用的各種聚類算法的圖表。聚類試圖解決什麼樣的問題? +為下節課做準備,製作一張關於各種分群演算法的圖表,說明在生產環境中可能會用到的演算法。這些分群嘗試解決那些問題? -## [課後測驗](https://ff-quizzes.netlify.app/en/ml/) +## [課後小測驗](https://ff-quizzes.netlify.app/en/ml/) -## 回顧與自學 +## 複習與自學 -在應用聚類算法之前,正如我們所學,了解數據集的性質是個好主意。閱讀更多相關內容:[這裡](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) +在應用分群演算法前,如同我們學到的,了解你的資料集性質十分重要。可閱讀更多此主題 [這裡](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) -[這篇有用的文章](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) 介紹了不同聚類算法在不同數據形狀下的行為。 +[這篇有用的文章](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/)介紹不同分群演算法的行為,依不同資料形狀而異。 ## 作業 -[研究其他聚類的可視化方法](assignment.md) +[研究其他分群視覺化方式](assignment.md) --- -**免責聲明**: -此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤詮釋概不負責。 \ No newline at end of file + +**免責聲明**: +本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意,機器自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議進行專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋承擔責任。 + \ No newline at end of file diff --git a/translations/zh-MO/.co-op-translator.json b/translations/zh-MO/.co-op-translator.json index 86cd3e821..786fc561e 100644 --- a/translations/zh-MO/.co-op-translator.json +++ b/translations/zh-MO/.co-op-translator.json @@ -1,7 +1,7 @@ { "1-Introduction/1-intro-to-ML/README.md": { - "original_hash": "69389392fa6346e0dfa30f664b7b6fec", - "translation_date": "2025-09-06T09:14:48+00:00", + "original_hash": "3a6394c6f5ce3f8aee8211e92eaf9ef0", + "translation_date": "2026-05-26T23:05:44+00:00", "source_file": "1-Introduction/1-intro-to-ML/README.md", "language_code": "zh-MO" }, @@ -240,8 +240,8 @@ "language_code": "zh-MO" }, "5-Clustering/1-Visualize/README.md": { - "original_hash": "730225ea274c9174fe688b21d421539d", - "translation_date": "2025-09-06T09:10:48+00:00", + "original_hash": "08b00d9fbffc667a7fe7fc19ac00dfbd", + "translation_date": "2026-05-26T23:05:24+00:00", "source_file": "5-Clustering/1-Visualize/README.md", "language_code": "zh-MO" }, diff --git a/translations/zh-MO/1-Introduction/1-intro-to-ML/README.md b/translations/zh-MO/1-Introduction/1-intro-to-ML/README.md index 479c97a56..6a1caf3c7 100644 --- a/translations/zh-MO/1-Introduction/1-intro-to-ML/README.md +++ b/translations/zh-MO/1-Introduction/1-intro-to-ML/README.md @@ -1,150 +1,157 @@ -# 機器學習簡介 +# 机器学习简介 -## [課前測驗](https://ff-quizzes.netlify.app/en/ml/) +## [课前测验](https://ff-quizzes.netlify.app/en/ml/) --- -[![初學者的機器學習 - 機器學習入門](https://img.youtube.com/vi/6mSx_KJxcHI/0.jpg)](https://youtu.be/6mSx_KJxcHI "初學者的機器學習 - 機器學習入門") +[![初学者机器学习 - 面向初学者的机器学习介绍](https://img.youtube.com/vi/6mSx_KJxcHI/0.jpg)](https://youtu.be/6mSx_KJxcHI "初学者机器学习 - 面向初学者的机器学习介绍") -> 🎥 點擊上方圖片觀看本課程的簡短介紹影片。 +> 🎥 点击上方图片观看本课的简短讲解视频。 -歡迎來到這門針對初學者的經典機器學習課程!無論您是完全新手,還是有經驗的機器學習從業者希望重新學習某些領域,我們都很高興您加入我們!我們希望為您的機器學習研究創造一個友好的起點,並樂於評估、回應和採納您的[反饋](https://github.com/microsoft/ML-For-Beginners/discussions)。 +欢迎加入本课程,面向初学者的经典机器学习课程!无论你是对这一主题完全陌生,还是有经验的机器学习从业者希望复习某个领域,我们都很高兴你加入我们!我们希望为你的机器学习学习打造一个友好的起点,并乐意评估、回应以及采纳你的[反馈](https://github.com/microsoft/ML-For-Beginners/discussions)。 -[![機器學習簡介](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "機器學習簡介") +[![机器学习介绍](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "机器学习介绍") -> 🎥 點擊上方圖片觀看影片:麻省理工學院的 John Guttag 介紹機器學習 +> 🎥 点击上方图片观看视频:MIT的John Guttag介绍机器学习 --- -## 機器學習入門 +## 开始机器学习之旅 -在開始學習本課程之前,您需要先準備好您的電腦以便在本地運行筆記本。 +在开始本课程之前,你需要准备好电脑并能在本地运行笔记本文件。 -- **使用這些影片配置您的電腦**。通過以下連結學習[如何安裝 Python](https://youtu.be/CXZYvNRIAKM)以及[設置文本編輯器](https://youtu.be/EU8eayHWoZg)進行開發。 -- **學習 Python**。建議您對[Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott)有基本的了解,這是一種對數據科學家非常有用的編程語言,我們在本課程中會使用它。 -- **學習 Node.js 和 JavaScript**。我們在本課程中偶爾會使用 JavaScript 來構建網頁應用,因此您需要安裝 [node](https://nodejs.org) 和 [npm](https://www.npmjs.com/),以及[Visual Studio Code](https://code.visualstudio.com/)以進行 Python 和 JavaScript 的開發。 -- **創建 GitHub 帳戶**。既然您在 [GitHub](https://github.com) 找到了我們,您可能已經有帳戶了,但如果沒有,請創建一個帳戶,然後 fork 本課程以供自己使用。(也可以給我們一顆星星 😊) -- **探索 Scikit-learn**。熟悉 [Scikit-learn](https://scikit-learn.org/stable/user_guide.html),這是一組我們在課程中引用的機器學習庫。 +- 通过这些视频配置你的机器。使用以下链接学习[如何安装Python](https://youtu.be/CXZYvNRIAKM)以及[设置文本编辑器](https://youtu.be/EU8eayHWoZg)进行开发。 +- **学习Python**。建议具备[Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott)的基础知识,这是一种对数据科学家非常有用的编程语言,我们在本课程中会使用到。 +- **学习Node.js和JavaScript**。本课程中构建网页应用时会用到JavaScript,因此你需要安装[node](https://nodejs.org)和[npm](https://www.npmjs.com/),以及[Visual Studio Code](https://code.visualstudio.com/)用于Python和JavaScript开发。 +- **创建一个GitHub账户**。既然你已经在[GitHub](https://github.com)找到这里,可能已有账户,若没有,请创建一个并Fork本课程,以方便你自己的使用。(也欢迎给我们点个星哦😊) +- **了解Scikit-learn**。熟悉[Scikit-learn](https://scikit-learn.org/stable/user_guide.html),这是我们课程中常用的一套机器学习库。 --- -## 什麼是機器學習? +## 什么是机器学习? -「機器學習」這個詞是當今最流行且最常用的術語之一。如果您對科技有一定的了解,無論您從事哪個領域,都有很大的可能性至少聽過一次這個詞。然而,機器學習的運作機制對大多數人來說仍然是一個謎。對於機器學習初學者來說,這個主題有時可能會讓人感到不知所措。因此,了解機器學習的真正含義並通過實際例子逐步學習是非常重要的。 +“机器学习”这个术语是当今最流行、最常用的词汇之一。如果你对科技有一定了解,无论你从事哪个领域,几乎可以肯定你至少听过这词一次。然而,机器学习的运作机制对多数人来说仍是个谜。对于机器学习初学者来说,这个主题有时会令人觉得难以应付。因此,理解机器学习到底是什么,并一步步通过实践案例去学习它就显得尤为重要。 --- -## 熱潮曲線 +## 热潮曲线 -![機器學習熱潮曲線](../../../../1-Introduction/1-intro-to-ML/images/hype.png) +![ml hype curve](../../../../translated_images/zh-MO/hype.07183d711a17aafe.webp) -> Google 趨勢顯示了「機器學習」這個詞最近的熱潮曲線 +> Google Trends 显示了“机器学习”一词近期的“热潮曲线” --- -## 神秘的宇宙 +## 一个神秘的宇宙 -我們生活在一個充滿迷人謎團的宇宙中。像史蒂芬·霍金、阿爾伯特·愛因斯坦等偉大的科學家,將一生奉獻於尋找有意義的信息,以揭示我們周圍世界的奧秘。這是人類學習的本質:一個孩子隨著成長逐年學習新事物,揭示他們世界的結構。 +我们生活在一个充满着迷人谜团的宇宙中。著名科学家如Stephen Hawking、Albert Einstein等人投入毕生心血寻找揭示世界奥秘的重要信息。这就是人类学习的本质:一个人类儿童逐年成长为成年人,认识新的事物,发掘他所处世界的结构和规律。 --- -## 孩子的大腦 +## 儿童的大脑 -孩子的大腦和感官感知周圍環境的事實,並逐漸學習生活中隱藏的模式,幫助孩子制定邏輯規則以識別已學習的模式。人類大腦的學習過程使人類成為世界上最複雜的生物。通過不斷發現隱藏的模式並在這些模式上進行創新,我們能夠在一生中不斷改進自己。這種學習能力和進化能力與一個名為[大腦可塑性](https://www.simplypsychology.org/brain-plasticity.html)的概念有關。表面上,我們可以將人類大腦的學習過程與機器學習的概念進行一些激勵性的類比。 +儿童的大脑和感官感知周围事实,并逐步学习到生活中的隐藏模式,帮助孩子形成逻辑规则来识别学到的模式。人脑的学习过程使人类成为这个世界上最复杂的生物。通过不断地发现隐藏模式并加以创新,我们得以不断提升自我,这种学习能力和不断进化的能力与[脑可塑性](https://www.simplypsychology.org/brain-plasticity.html)的概念相关联。从表面上看,我们可以发现人脑的学习过程和机器学习理念之间存在激励性的相似点。 --- -## 人類大腦 +## 人脑 -[人類大腦](https://www.livescience.com/29365-human-brain.html)從現實世界中感知事物,處理感知到的信息,做出理性決策,並根據情況執行某些行動。這就是我們所說的智能行為。當我們將智能行為過程的模擬編程到機器上時,這就被稱為人工智能(AI)。 +[人脑](https://www.livescience.com/29365-human-brain.html)感知来自现实世界的信息,处理所感知的信息,做出理性决策,并基于情境执行特定动作。这就是我们所说的智能行为。当我们向机器编写这种智能行为过程的仿真时,这就是人工智能(AI)。 --- -## 一些術語 +## 一些术语 -雖然這些術語可能會混淆,但機器學習(ML)是人工智能的一個重要子集。**機器學習專注於使用專門的算法從感知到的數據中發掘有意義的信息並找到隱藏的模式,以支持理性決策過程**。 +虽然概念之间可能混淆,机器学习(ML)是人工智能的重要子集。**机器学习关注的是利用专门算法从感知到的数据中发现有意义的信息和隐藏模式,从而支持理性决策的过程**。 --- -## AI、ML、深度學習 +## AI、ML、深度学习 -![AI、ML、深度學習、數據科學](../../../../1-Introduction/1-intro-to-ML/images/ai-ml-ds.png) +![AI, ML, deep learning, data science](../../../../translated_images/zh-MO/ai-ml-ds.537ea441b124ebf6.webp) -> 一張展示 AI、ML、深度學習和數據科學之間關係的圖表。由 [Jen Looper](https://twitter.com/jenlooper) 製作,靈感來自[這張圖表](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) +> 展示AI、ML、深度学习和数据科学间关系的示意图。信息图由[Jen Looper](https://twitter.com/jenlooper)制作,灵感来自[this graphic](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) --- -## 涵蓋的概念 +## 要覆盖的概念 -在本課程中,我們將只涵蓋機器學習的核心概念,這是初學者必須了解的。我們主要使用 Scikit-learn 來教授所謂的「經典機器學習」,這是一個許多學生用來學習基礎知識的優秀庫。要理解人工智能或深度學習的更廣泛概念,扎實的機器學習基礎知識是不可或缺的,因此我們希望在此提供這些知識。 +本课程将只覆盖初学者必须了解的机器学习核心概念。我们主要使用Scikit-learn来讲解所谓的“经典机器学习”,这是许多学生用来学习基础知识的优秀库。要理解更广泛的人工智能或深度学习概念,坚实的机器学习基础知识是不可或缺的,因此我们想在这里提供它。 --- -## 在本課程中您將學到: +## 本课程你将学习: -- 機器學習的核心概念 -- 機器學習的歷史 -- 機器學習與公平性 -- 回歸機器學習技術 -- 分類機器學習技術 -- 聚類機器學習技術 -- 自然語言處理機器學習技術 -- 時間序列預測機器學習技術 -- 強化學習 -- 機器學習的實際應用 +- 机器学习的核心概念 +- 机器学习的历史 +- 机器学习与公平性 +- 回归机器学习技术 +- 分类机器学习技术 +- 聚类机器学习技术 +- 自然语言处理机器学习技术 +- 时间序列预测机器学习技术 +- 强化学习 +- 机器学习的现实应用 --- -## 我們不會涵蓋的內容 +## 我们不会覆盖的内容 -- 深度學習 -- 神經網絡 +- 深度学习 +- 神经网络 - 人工智能 -為了提供更好的學習體驗,我們將避免涉及神經網絡的複雜性、「深度學習」——使用神經網絡構建多層模型——以及人工智能,這些內容我們會在其他課程中討論。我們還將提供即將推出的數據科學課程,專注於這個更大領域的相關方面。 +为了更好的学习体验,我们将避免神经网络、“深度学习”(即利用多层神经网络进行模型构建)及人工智能的复杂内容,这些内容将在其他课程中讨论。我们还将推出一个数据科学的相关课程,专注于该领域。 --- -## 為什麼要學習機器學習? +## 为什么学习机器学习? -從系統的角度來看,機器學習被定義為創建能夠從數據中學習隱藏模式以幫助做出智能決策的自動化系統。 +从系统角度来看,机器学习定义为创建能够自动学习数据中隐藏模式以辅助做出智能决策的自动化系统。 -這種動機在某種程度上受到人類大腦如何根據外界感知的數據學習某些事物的啟發。 +这一动机大致来源于人脑如何基于从外部世界感知到的数据学习某些事物。 -✅ 想一想,為什麼企業會選擇使用機器學習策略,而不是創建基於硬編碼規則的引擎? +✅ 花一分钟思考为什么企业会倾向于使用机器学习策略,而不是创建硬编码的基于规则的引擎。 --- -## 機器學習的應用 +## 数据质量为何重要 -機器學習的應用如今幾乎無處不在,就像我們社會中流動的數據一樣普遍,這些數據由智能手機、連接設備和其他系統生成。考慮到最先進的機器學習算法的巨大潛力,研究人員一直在探索它們解決多維度和多學科現實問題的能力,並取得了非常積極的成果。 +高质量数据提升模型表现。即使使用先进的机器学习算法,低质量或含噪声的数据也会导致不准确的预测。 --- -## 機器學習的應用例子 +## 机器学习的应用 -**機器學習有許多用途**: +机器学习的应用几乎无处不在,它们与流动于我们社会的数据同样普遍,这些数据由智能手机、联网设备及其他系统生成。考虑到最先进的机器学习算法强大潜力,研究人员探索了利用它们解决多维多学科现实问题的能力,并取得了显著成效。 -- 從患者的病史或報告中預測疾病的可能性。 -- 利用天氣數據預測天氣事件。 -- 理解文本的情感。 -- 檢測假新聞以阻止宣傳的傳播。 +--- +## 机器学习应用示例 + +你可以以多种方式使用机器学习: + +- 根据病人的病历或报告预测疾病可能性。 +- 利用气象数据预测气象事件。 +- 识别文本情绪。 +- 侦测假新闻以阻止宣传传播。 -金融、經濟、地球科學、太空探索、生物醫學工程、認知科學,甚至人文領域都已經採用機器學習來解決其領域中繁重的數據處理問題。 +金融、经济、地球科学、太空探索、生物医学工程、认知科学甚至人文学科领域都采用机器学习来解决其领域内繁重的数据处理问题。 --- -## 結論 +## 总结 -機器學習通過從現實世界或生成的數據中發現有意義的洞察來自動化模式發現的過程。它已經在商業、健康和金融應用等領域證明了自己的巨大價值。 +机器学习通过从真实或生成数据中发现有意义的见解,实现了模式发现过程的自动化。它在商业、健康和金融等领域证明了其高度价值。 -在不久的將來,了解機器學習的基礎知識將成為任何領域人員的必備技能,因為它的廣泛採用。 +在不远的未来,任何领域的人都必须掌握机器学习基础知识,因为它被广泛采用。 --- -# 🚀 挑戰 +# 🚀 挑战 -使用紙筆或像 [Excalidraw](https://excalidraw.com/) 這樣的在線應用程序,繪製您對 AI、ML、深度學習和數據科學之間差異的理解。添加一些這些技術擅長解決的問題的想法。 +用纸笔或在线应用如[Excalidraw](https://excalidraw.com/)绘制出你对AI、ML、深度学习和数据科学之间区别的理解。添加一些这些技术擅长解决的问题的想法。 -# [課後測驗](https://ff-quizzes.netlify.app/en/ml/) +# [课后测验](https://ff-quizzes.netlify.app/en/ml/) --- -# 回顧與自學 +# 复习与自学 -要了解更多關於如何在雲端中使用機器學習算法,請參考這個[學習路徑](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott)。 +想了解如何在云端使用机器学习算法,请访问此[学习路线](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott)。 -參加一個關於機器學習基礎的[學習路徑](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott)。 +参加有关机器学习基础的[学习路径](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott)。 --- -# 作業 +# 作业 -[開始學習](assignment.md) +[开始动手](assignment.md) --- -**免責聲明**: -本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。 \ No newline at end of file + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。 + \ No newline at end of file diff --git a/translations/zh-MO/5-Clustering/1-Visualize/README.md b/translations/zh-MO/5-Clustering/1-Visualize/README.md index 22be88673..88b7a7c98 100644 --- a/translations/zh-MO/5-Clustering/1-Visualize/README.md +++ b/translations/zh-MO/5-Clustering/1-Visualize/README.md @@ -1,116 +1,116 @@ -# 聚類簡介 +# 叢集分析簡介 -聚類是一種[無監督學習](https://wikipedia.org/wiki/Unsupervised_learning)方法,假設數據集是未標記的,或者其輸入未與預定義的輸出匹配。它使用各種算法來整理未標記的數據,並根據數據中識別出的模式提供分組。 +叢集分析是一種假設資料集沒有標籤或其輸入未與預定義輸出相匹配的[無監督學習](https://wikipedia.org/wiki/Unsupervised_learning)。它使用各種演算法來篩選未標記的資料,並根據資料中辨識出的模式提供分組。 -[![PSquare 的 No One Like You](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "PSquare 的 No One Like You") +[![No One Like You by PSquare](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "No One Like You by PSquare") -> 🎥 點擊上方圖片觀看影片。在學習聚類的機器學習時,欣賞一些尼日利亞舞廳音樂——這是 PSquare 在 2014 年的一首高評價歌曲。 +> 🎥 點擊上方圖片觀看影片。在您學習使用叢集進行機器學習時,享受一些奈及利亞舞廳曲目 — 這是 PSquare 於 2014 年的高評價歌曲。 ## [課前測驗](https://ff-quizzes.netlify.app/en/ml/) ### 簡介 -[聚類](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124)在數據探索中非常有用。讓我們看看它是否能幫助發現尼日利亞觀眾消費音樂的趨勢和模式。 +[叢集分析](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) 對於資料探索非常有用。讓我們看看它是否能幫助發掘奈及利亞觀眾聽音樂的趨勢和模式。 -✅ 花一分鐘思考一下聚類的用途。在日常生活中,聚類發生在你有一堆洗好的衣物需要分類成家人衣物的時候 🧦👕👖🩲。在數據科學中,聚類發生在分析用戶偏好或確定任何未標記數據集的特徵時。聚類在某種程度上幫助我們理解混亂,就像整理襪子抽屜一樣。 +✅ 花一分鐘思考叢集分析的用途。在現實生活中,叢集分析就像當你有一堆待整理的衣物,得為家人的衣服分類🧦👕👖🩲。在資料科學中,叢集分析出現在嘗試分析使用者喜好或決定任何未標籤資料集的特徵時。某種程度上,叢集分析幫助整理混亂,像整理襪子抽屜一樣。 -[![機器學習簡介](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "聚類簡介") +[![Introduction to ML](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "Introduction to Clustering") -> 🎥 點擊上方圖片觀看影片:麻省理工學院的 John Guttag 介紹聚類 +> 🎥 點擊上方圖片觀看影片:MIT 的 John Guttag 介紹叢集分析 -在專業環境中,聚類可以用於確定市場細分,例如確定哪些年齡段購買哪些商品。另一個用途是異常檢測,例如從信用卡交易數據集中檢測欺詐行為。或者你可能使用聚類來確定一批醫學掃描中的腫瘤。 +在專業環境中,叢集可用於決定像市場細分,例如判斷不同年齡層購買哪些商品。另一種用途是異常檢測,可能用於從信用卡交易資料中偵測詐騙。您也可以使用叢集分析判定醫學掃描中的腫瘤。 -✅ 花一分鐘思考一下你可能在銀行、電子商務或商業環境中遇到過的聚類。 +✅ 想想您可能在哪些銀行、電子商務或商業情境中遇過叢集分析。 -> 🎓 有趣的是,聚類分析起源於 1930 年代的人類學和心理學領域。你能想像它可能是如何被使用的嗎? +> 🎓 有趣的是,叢集分析起源於 1930 年代的人類學和心理學領域。您能想像它當時是如何被使用的嗎? -另外,你可以用它來分組搜索結果,例如按購物鏈接、圖片或評論分組。當你有一個大型數據集需要縮減並進行更細緻的分析時,聚類技術非常有用,因此可以在構建其他模型之前用來了解數據。 +另外,您也可以用來分群搜尋結果 — 例如依購物連結、圖片或評論分組。當您擁有龐大資料集,想要降低維度並對其進行更細緻分析時,叢集分析十分有用,因此該技術可以在建構其他模型前,用於了解資料。 -✅ 一旦你的數據被組織成聚類,你可以為其分配一個聚類 ID。這種技術在保護數據集隱私時非常有用;你可以用聚類 ID 而不是更具識別性的數據來引用數據點。你能想到其他使用聚類 ID 而不是聚類中其他元素來識別的原因嗎? +✅ 將資料組織成叢集後,您會賦予其叢集 ID。這技術在保護資料集隱私時很有用;您可以用叢集 ID 來指代資料點,而不是用更具揭露性的可識別資料。您能想到其他為何會用叢集 ID 來識別叢集,而非其他元素的理由嗎? -在這個[學習模組](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)中深入了解聚類技術。 +透過此 [學習模組](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott) 深入瞭解叢集技術。 -## 聚類入門 +## 叢集分析入門 -[Scikit-learn 提供了大量](https://scikit-learn.org/stable/modules/clustering.html)方法來執行聚類。你選擇的類型將取決於你的使用案例。根據文檔,每種方法都有不同的優勢。以下是 Scikit-learn 支持的方法及其適用場景的簡化表格: +[Scikit-learn 提供多種](https://scikit-learn.org/stable/modules/clustering.html)進行叢集分析的方法。您選擇的類型將取決於您的使用案例。根據文件,每種方法都有不同的好處。以下是一個簡化的 Scikit-learn 支援方法及其適用案例的表格: -| 方法名稱 | 使用場景 | +| 方法名稱 | 使用場景 | | :--------------------------- | :--------------------------------------------------------------------- | -| K-Means | 通用用途,歸納式 | -| Affinity propagation | 多個、不均勻的聚類,歸納式 | -| Mean-shift | 多個、不均勻的聚類,歸納式 | -| Spectral clustering | 少量、均勻的聚類,轉導式 | -| Ward hierarchical clustering | 多個、受限的聚類,轉導式 | -| Agglomerative clustering | 多個、受限的、非歐幾里得距離,轉導式 | -| DBSCAN | 非平面幾何、不均勻的聚類,轉導式 | -| OPTICS | 非平面幾何、不均勻且密度可變的聚類,轉導式 | -| Gaussian mixtures | 平面幾何,歸納式 | -| BIRCH | 大型數據集且有異常值,歸納式 | - -> 🎓 我們如何創建聚類與我們如何將數據點分組有很大關係。讓我們解釋一些術語: +| K-Means | 一般用途,歸納式 | +| 親和力傳播 (Affinity propagation) | 多個、不均等叢集,歸納式 | +| 均值漂移 (Mean-shift) | 多個、不均等叢集,歸納式 | +| 光譜叢集 (Spectral clustering) | 少量、均等叢集,傳導式 | +| Ward 階層式叢集 | 多個、受限叢集,傳導式 | +| 凝聚叢集 (Agglomerative clustering) | 多個、受限、非歐幾里得距離,傳導式 | +| DBSCAN | 非平面幾何、不均整叢集,傳導式 | +| OPTICS | 非平面幾何、多密度不均整叢集,傳導式 | +| 高斯混合 (Gaussian mixtures) | 平面幾何,歸納式 | +| BIRCH | 大型資料集含異常值,歸納式 | + +> 🎓 我們如何創建叢集與如何將資料點組成群組息息相關。讓我們解釋一些詞彙: > -> 🎓 ['轉導式' vs. '歸納式'](https://wikipedia.org/wiki/Transduction_(machine_learning)) +> 🎓 [‘傳導式’ vs. ‘歸納式’](https://wikipedia.org/wiki/Transduction_(machine_learning)) > -> 轉導式推理是基於觀察到的訓練案例並映射到特定測試案例。歸納式推理是基於訓練案例並映射到一般規則,然後應用於測試案例。 +> 傳導推理是從觀察到的訓練案例直接映射到特定測試案例。歸納推理則是從訓練案例推導一般規則,然後將規則應用於測試案例。 > -> 舉例:假設你有一個部分標記的數據集。一些是“唱片”,一些是“CD”,一些是空白。你的任務是為空白部分提供標籤。如果你選擇歸納式方法,你會訓練一個模型尋找“唱片”和“CD”,並將這些標籤應用於未標記的數據。這種方法可能難以分類實際上是“磁帶”的物品。而轉導式方法則更有效地處理這些未知數據,因為它努力將相似的物品分組,然後為整個分組分配標籤。在這種情況下,聚類可能反映“圓形音樂物品”和“方形音樂物品”。 +> 例如:假設您有一個資料集只有部分標註。某些是“黑膠唱片”,某些是“CD”,有些沒標。您的工作是給沒標的資料打標。採用歸納法,您會訓練出一個模型來尋找“黑膠唱片”和“CD”,並將這些標籤套用到未標記資料上。這種方法會難以辨認“卡帶”。傳導法則較有效,因為它透過將相似物品群聚再將標籤賦予群集。在這個案例中,叢集可能會反映“圓形樂器”和“方形樂器”等群組。 > -> 🎓 ['非平面' vs. '平面'幾何](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering) +> 🎓 [‘非平面’ vs. ‘平面’幾何](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering) > -> 源自數學術語,非平面 vs. 平面幾何指的是通過“平面”([歐幾里得](https://wikipedia.org/wiki/Euclidean_geometry))或“非平面”(非歐幾里得)幾何方法測量點之間的距離。 +> 取自數學術語,非平面與平面幾何指的是透過“平面”([歐幾里得](https://wikipedia.org/wiki/Euclidean_geometry))或“非平面”(非歐幾里得)幾何方法測量點間距離。 > -> '平面'在此上下文中指的是歐幾里得幾何(部分被教為“平面”幾何),而非平面指的是非歐幾里得幾何。幾何與機器學習有什麼關係?作為兩個根植於數學的領域,必須有一種通用方法來測量聚類中點之間的距離,這可以根據數據的性質以“平面”或“非平面”的方式完成。[歐幾里得距離](https://wikipedia.org/wiki/Euclidean_distance)是通過兩點之間線段的長度來測量的。[非歐幾里得距離](https://wikipedia.org/wiki/Non-Euclidean_geometry)則沿曲線測量。如果你的數據在可視化後似乎不在平面上,你可能需要使用專門的算法來處理它。 +> 這裡的“平面”指的是歐幾里得幾何(部分一樣是“平面”幾何),而非平面指非歐幾里得幾何。幾何與機器學習相關的原因是,它們都根植於數學,必須有共通方式來測量叢集中點間距離,而這可用平面或非平面方式決定,視資料性質而定。[歐幾里得距離](https://wikipedia.org/wiki/Euclidean_distance) 是測量兩點間線段長度。[非歐幾里得距離](https://wikipedia.org/wiki/Non-Euclidean_geometry) 是沿曲線測量。若您的視覺化資料似乎不在平面上,您可能需要用專門演算法處理它。 > -![平面 vs 非平面幾何信息圖](../../../../5-Clustering/1-Visualize/images/flat-nonflat.png) -> 信息圖由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 +![Flat vs Nonflat Geometry Infographic](../../../../translated_images/zh-MO/flat-nonflat.d1c8c6e2a96110c1.webp) +> 圖解由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 > -> 🎓 ['距離'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) +> 🎓 [‘距離’](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) > -> 聚類由其距離矩陣定義,例如點之間的距離。這些距離可以通過幾種方式測量。歐幾里得聚類由點值的平均值定義,並包含一個“中心點”或中心點。因此距離是通過到該中心點的距離來測量的。非歐幾里得距離指的是“聚類中心”,即最接近其他點的點。聚類中心可以通過多種方式定義。 +> 叢集定義依其距離矩陣,例如點之間的距離。這距離可有多種測量方式。歐幾里得叢集以點值的平均數來定義,包含“質心”或中心點。距離即為每點到質心的距離。非歐幾里得距離則指“叢集中心點”(clustroid),即與其他點距離最接近的點,而clustroid可用不同方式定義。 > -> 🎓 ['受限'](https://wikipedia.org/wiki/Constrained_clustering) +> 🎓 [‘受限’](https://wikipedia.org/wiki/Constrained_clustering) > -> [受限聚類](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf)在這種無監督方法中引入了“半監督”學習。點之間的關係被標記為“不能鏈接”或“必須鏈接”,因此對數據集施加了一些規則。 +> [受限叢集](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) 將“半監督”學習引入此無監督方法。點與點之間關係被標記為“不可連結”或“必須連結”,對資料集施加規則。 > -> 舉例:如果一個算法在一批未標記或半標記的數據上自由運行,它生成的聚類可能質量較差。在上述例子中,聚類可能會分組“圓形音樂物品”、“方形音樂物品”、“三角形物品”和“餅乾”。如果給出一些約束或規則(“物品必須由塑料製成”,“物品需要能夠產生音樂”),這可以幫助“約束”算法做出更好的選擇。 +> 例如:若演算法被放開在無標或半標資料上,產生的叢集質量可能不佳。以上例,叢集可能會分組“圓形音樂物品”、“方形音樂物品”、“三角物品”及“餅乾”。若給予限制或規則(如“物品必須為塑膠材質”、“物品需能產生音樂”),有助於‘受限’演算法作出更好選擇。 > -> 🎓 '密度' +> 🎓 密度 > -> 被認為“噪聲”的數據被認為是“密集”的。每個聚類中的點之間的距離可能在檢查時顯示為更密集或更稀疏,因此需要使用適當的聚類方法來分析這些數據。[這篇文章](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html)展示了使用 K-Means 聚類與 HDBSCAN 算法探索具有不均勻聚類密度的噪聲數據集的區別。 +> “嘈雜”資料被視為“密集”。叢集中各點間距離受密度影響可能較為稠密或擁擠,故需用適當叢集方法分析。[這篇文章](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) 比較使用 K-Means 與 HDBSCAN 演算法探討有不均密度的嘈雜資料集的差異。 -## 聚類算法 +## 叢集演算法 -有超過 100 種聚類算法,其使用取決於手頭數據的性質。讓我們討論一些主要的算法: +叢集演算法有超過 100 種,其使用依賴於資料特性。我們來介紹幾種主要的: -- **層次聚類**。如果物品是根據其與附近物品的接近程度而分類,而不是與更遠的物品,則聚類是基於其成員與其他物品的距離形成的。Scikit-learn 的凝聚聚類是層次聚類。 +- 階層式叢集。若物件以與鄰近物件的距離分類,而非較遠物件,則根據成員與其他物件的距離形成叢集。Scikit-learn 的凝聚叢集即為階層式。 - ![層次聚類信息圖](../../../../5-Clustering/1-Visualize/images/hierarchical.png) - > 信息圖由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 + ![Hierarchical clustering Infographic](../../../../translated_images/zh-MO/hierarchical.bf59403aa43c8c47.webp) + > 圖解由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 -- **中心點聚類**。這種流行的算法需要選擇“k”,即要形成的聚類數量,之後算法確定聚類的中心點並圍繞該點收集數據。[K-means 聚類](https://wikipedia.org/wiki/K-means_clustering)是中心點聚類的一個流行版本。中心點由最近的平均值確定,因此得名。聚類的平方距離被最小化。 +- 質心叢集。此流行演算法需選擇“k”,即要形成的叢集數,之後演算法決定叢集中心點並將資料聚集於此。 [K-means 叢集](https://wikipedia.org/wiki/K-means_clustering) 是質心叢集的流行版本。中心由最近的平均數決定,因此名稱。使叢集平方距離最小化。 - ![中心點聚類信息圖](../../../../5-Clustering/1-Visualize/images/centroid.png) - > 信息圖由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 + ![Centroid clustering Infographic](../../../../translated_images/zh-MO/centroid.097fde836cf6c918.webp) + > 圖解由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 -- **基於分佈的聚類**。基於統計建模,基於分佈的聚類集中於確定數據點屬於某個聚類的概率,並據此分配。高斯混合方法屬於此類。 +- 分布式叢集。基於統計模型,此叢集法側重於決定資料點屬於叢集的機率,並相應指派。高斯混合方法屬於此類。 -- **基於密度的聚類**。數據點根據其密度或圍繞彼此的分組分配到聚類中。遠離群體的數據點被認為是異常值或噪聲。DBSCAN、Mean-shift 和 OPTICS 屬於此類聚類。 +- 密度式叢集。資料點依其密度或彼此分佈群組指派至叢集。遠離群組的資料點視為離群值或雜訊。DBSCAN、均值漂移和 OPTICS 屬此類。 -- **基於網格的聚類**。對於多維數據集,創建一個網格,並將數據分配到網格的單元中,從而創建聚類。 +- 格狀叢集。針對多維資料集創建格狀,資料依格格劃分進而形成叢集。 -## 練習 - 聚類你的數據 +## 練習 - 叢集您的資料 -聚類作為一種技術在適當的可視化支持下效果更佳,因此讓我們開始可視化我們的音樂數據。這個練習將幫助我們決定針對這些數據的性質最有效使用哪種聚類方法。 +叢集分析技術在視覺化時特別有幫助,現在開始視覺化我們的音樂資料。這練習將協助我們決定針對此資料最有效的叢集方法。 -1. 打開此文件夾中的 [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb)。 +1. 開啟此資料夾內的 [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) 檔案。 -1. 導入 `Seaborn` 套件以進行良好的數據可視化。 +1. 匯入 `Seaborn` 套件以便良好資料視覺化。 ```python !pip install seaborn ``` -1. 從 [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv) 附加歌曲數據。加載一個包含歌曲數據的數據框。通過導入庫並輸出數據準備探索這些數據: +1. 附加 [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv) 中的歌曲資料。載入一些關於歌曲的資料框(dataframe)。準備透過匯入圖書館並列印資料來探索它: ```python import matplotlib.pyplot as plt @@ -120,23 +120,23 @@ df.head() ``` - 查看數據的前幾行: + 查看前幾行資料: | | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature | | --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ------------ | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- | | 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 | | 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 | -| 2 | LITT! | LITT! | AYLØ | 獨立R&B | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 | -| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | 奈及利亞流行音樂 | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 | -| 4 | wanted you | rare. | Odunsi (The Engine) | 非洲流行音樂 | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 | + | 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 | + | 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 | + | 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 | -1. 獲取數據框的基本資訊,呼叫 `info()`: +1. 獲取 dataframe 的一些資訊,呼叫 `info()`: ```python df.info() ``` - 輸出如下所示: + 輸出看起來像這樣: ```output @@ -164,13 +164,13 @@ memory usage: 66.4+ KB ``` -1. 通過呼叫 `isnull()` 並驗證總和是否為 0,仔細檢查是否有空值: +1. 透過呼叫 `isnull()` 並驗證總和為 0 來再次檢查是否有缺失值: ```python df.isnull().sum() ``` - 看起來不錯: + 情況良好: ```output name 0 @@ -192,7 +192,7 @@ dtype: int64 ``` -1. 描述數據: +1. 描述資料: ```python df.describe() @@ -209,9 +209,9 @@ | 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 | | max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 | -> 🤔 如果我們使用的是無需標籤數據的無監督方法(如聚類),為什麼還要顯示帶有標籤的數據?在數據探索階段,這些標籤很有用,但對於聚類算法來說並非必要。你完全可以移除列標題,僅通過列號來引用數據。 +> 🤔 如果我們正在使用叢集分析,一種無監督且不需要標籤資料的方法,為什麼要顯示帶標籤的資料?在資料探索階段,它們很有用,但叢集演算法本身並不需要這些標籤。你也可以直接移除欄位名稱,並以欄位編號來引用資料。 -觀察數據的一般值。注意,受歡迎度可以為 "0",這表示歌曲沒有排名。我們稍後會移除這些數據。 +觀察資料的一般數值。注意 popularity 可以是 '0',代表歌曲沒有排名。稍後讓我們先移除這些。 1. 使用條形圖找出最受歡迎的音樂類型: @@ -225,13 +225,13 @@ plt.title('Top genres',color = 'blue') ``` - ![最受歡迎](../../../../5-Clustering/1-Visualize/images/popular.png) + ![most popular](../../../../translated_images/zh-MO/popular.9c48d84b3386705f.webp) -✅ 如果你想查看更多的前幾名數據,可以將 `[:5]` 改為更大的值,或者移除它以查看全部。 +✅ 如果你想看更多熱門值,請將上方的 `[:5]` 改成更大的數字,或者移除它來查看全部。 -注意,當最受歡迎的音樂類型顯示為 "Missing" 時,這表示 Spotify 沒有對其進行分類,因此我們需要將其移除。 +注意:當熱門類型顯示為 'Missing',代表 Spotify 沒有給它分類,因此我們將剔除這些。 -1. 通過篩選移除缺失數據: +1. 移除缺失資料,透過篩選掉 ```python df = df[df['artist_top_genre'] != 'Missing'] @@ -242,11 +242,11 @@ plt.title('Top genres',color = 'blue') ``` - 現在重新檢查音樂類型: + 現在重新檢查類型: - ![所有音樂類型](../../../../5-Clustering/1-Visualize/images/all-genres.png) + ![most popular](../../../../translated_images/zh-MO/all-genres.1d56ef06cefbfcd6.webp) -1. 顯然,前三大音樂類型在這個數據集中占據主導地位。我們專注於 `afro dancehall`、`afropop` 和 `nigerian pop`,並進一步篩選數據,移除任何受歡迎度為 0 的數據(這表示數據集中未分類的歌曲,對我們的目的來說可以視為噪聲): +1. 截至目前,前三名音樂類型主導這份資料集。我們將專注於 `afro dancehall`、`afropop` 和 `nigerian pop`,並進一步篩選資料,移除 popularity 為 0 的資料(意即在資料集中未被分類為有排名的歌曲,可視為噪音): ```python df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')] @@ -258,7 +258,7 @@ plt.title('Top genres',color = 'blue') ``` -1. 快速測試數據是否有特別強的相關性: +1. 快速檢測資料是否有特別強的相關性: ```python corrmat = df.corr(numeric_only=True) @@ -266,21 +266,21 @@ sns.heatmap(corrmat, vmax=.8, square=True) ``` - ![相關性](../../../../5-Clustering/1-Visualize/images/correlation.png) + ![correlations](../../../../translated_images/zh-MO/correlation.a9356bb798f5eea5.webp) - 唯一的強相關性是 `energy` 和 `loudness` 之間,這並不令人驚訝,因為響亮的音樂通常充滿活力。除此之外,相關性相對較弱。看看聚類算法如何處理這些數據會很有趣。 + 唯一明顯相關的是 `energy` 和 `loudness`,這並不令人意外,因為音量大的音樂通常充滿活力。其餘的相關性則較弱。看看叢集演算法如何處理這些資料會很有趣。 - > 🎓 請注意,相關性並不意味著因果關係!我們有相關性的證據,但沒有因果關係的證據。一個[有趣的網站](https://tylervigen.com/spurious-correlations) 提供了一些強調這一點的視覺化內容。 + > 🎓 請注意,相關性不代表因果關係!我們有相關性的證據,但沒有因果的證明。這個[有趣的網站](https://tylervigen.com/spurious-correlations)有許多視覺範例強調這點。 -在這個數據集中,歌曲的受歡迎度和舞蹈性是否存在某種趨同?使用 FacetGrid 可以顯示出無論音樂類型如何,都有一些同心圓的趨勢。這是否意味著奈及利亞的音樂品味在某種程度上對舞蹈性有一定的偏好? +在這份資料中,歌曲的受歡迎度與舞蹈感是否呈現任何收斂趨勢?FacetGrid 展示了無論類型如何,皆有同心圓排列的情況。難道尼日利亞音樂品味在舞蹈感上達到某個共識層次? -✅ 嘗試不同的數據點(如 energy、loudness、speechiness)以及更多或不同的音樂類型。你能發現什麼?查看 `df.describe()` 表格,了解數據點的一般分佈。 +✅ 嘗試不同的資料點(energy、loudness、speechiness)及更多或不同的音樂類型。你能發現什麼?請查看 `df.describe()` 表格了解資料點的一般分布。 -### 練習 - 數據分佈 +### 練習 - 資料分布 -這三種音樂類型在受歡迎度和舞蹈性方面的感知是否有顯著差異? +這三種音樂類型在其受歡迎度的舞蹈感認知上是否有顯著差異? -1. 檢查我們前三大音樂類型在受歡迎度和舞蹈性上的數據分佈,沿著給定的 x 和 y 軸進行分析。 +1. 檢視前三大類型在受歡迎度及舞蹈感的資料分布,分別以 x 與 y 軸表示。 ```python sns.set_theme(style="ticks") @@ -292,15 +292,15 @@ ) ``` - 你可以發現圍繞一個一般趨勢點的同心圓,顯示數據點的分佈。 + 你會發現圍繞一個一般共識點的同心圓,顯示點的分布。 - > 🎓 請注意,此示例使用的是 KDE(核密度估計)圖,該圖通過連續的概率密度曲線來表示數據。這在處理多個分佈時非常有用。 + > 🎓 請注意,此範例以 KDE(核密度估計)圖呈現資料,使用連續機率密度曲線表示。這允許我們處理多重分布的資料。 - 總體來看,這三種音樂類型在受歡迎度和舞蹈性方面大致一致。在這些大致對齊的數據中確定聚類將是一個挑戰: + 總體來說,這三個類型在受歡迎度及舞蹈感上的分布是鬆散對齊的。在這種鬆散對齊的資料中辨識叢集將會是挑戰: - ![分佈](../../../../5-Clustering/1-Visualize/images/distribution.png) + ![distribution](../../../../translated_images/zh-MO/distribution.9be11df42356ca95.webp) -1. 創建散點圖: +1. 建立散點圖: ```python sns.FacetGrid(df, hue="artist_top_genre", height=5) \ @@ -308,31 +308,33 @@ .add_legend() ``` - 同一軸上的散點圖顯示了類似的趨勢: + 同軸的散點圖展現相似的收斂圖樣 - ![Facetgrid](../../../../5-Clustering/1-Visualize/images/facetgrid.png) + ![Facetgrid](../../../../translated_images/zh-MO/facetgrid.9b2e65ce707eba1f.webp) -總體來說,對於聚類分析,你可以使用散點圖來顯示數據的聚類,因此掌握這種類型的可視化非常有用。在下一課中,我們將使用 k-means 聚類來探索這些數據中有趣的重疊群組。 +一般而言,叢集分析可以使用散點圖來顯示資料群,所以掌握此類視覺化非常實用。下一節課,我們將使用這份篩選後的資料,透過 k-means 叢集演算法找出看來有趣重疊群組。 --- ## 🚀挑戰 -為了準備下一課,製作一個關於你可能在生產環境中發現並使用的各種聚類算法的圖表。這些聚類算法試圖解決哪些問題? +為準備下一節課,畫一張圖表說明你可能會發現並用於生產環境中的各種叢集演算法。叢集嘗試解決的是什麼樣的問題? ## [課後測驗](https://ff-quizzes.netlify.app/en/ml/) -## 回顧與自學 +## 複習與自學 -在應用聚類算法之前,正如我們所學,了解數據集的性質是一個好主意。閱讀更多相關內容:[這裡](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) +在你應用叢集演算法之前,正如我們學到的,了解資料集的性質是個好主意。請參考更多相關內容[這裡](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) -[這篇有幫助的文章](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) 介紹了不同聚類算法在不同數據形狀下的行為。 +[這篇有用的文章](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/)帶你了解不同叢集演算法在不同資料形狀下的表現差異。 ## 作業 -[研究其他聚類的可視化方法](assignment.md) +[研究其他叢集視覺化方法](assignment.md) --- -**免責聲明**: -本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或曲解承擔責任。 + \ No newline at end of file diff --git a/translations/zh-TW/.co-op-translator.json b/translations/zh-TW/.co-op-translator.json index 4e64cee66..894528eaf 100644 --- a/translations/zh-TW/.co-op-translator.json +++ b/translations/zh-TW/.co-op-translator.json @@ -1,7 +1,7 @@ { "1-Introduction/1-intro-to-ML/README.md": { - "original_hash": "69389392fa6346e0dfa30f664b7b6fec", - "translation_date": "2025-09-05T09:54:07+00:00", + "original_hash": "3a6394c6f5ce3f8aee8211e92eaf9ef0", + "translation_date": "2026-05-26T23:08:40+00:00", "source_file": "1-Introduction/1-intro-to-ML/README.md", "language_code": "zh-TW" }, @@ -240,8 +240,8 @@ "language_code": "zh-TW" }, "5-Clustering/1-Visualize/README.md": { - "original_hash": "730225ea274c9174fe688b21d421539d", - "translation_date": "2025-09-05T09:48:49+00:00", + "original_hash": "08b00d9fbffc667a7fe7fc19ac00dfbd", + "translation_date": "2026-05-26T23:08:13+00:00", "source_file": "5-Clustering/1-Visualize/README.md", "language_code": "zh-TW" }, diff --git a/translations/zh-TW/1-Introduction/1-intro-to-ML/README.md b/translations/zh-TW/1-Introduction/1-intro-to-ML/README.md index 4fe97a4fb..c41d19329 100644 --- a/translations/zh-TW/1-Introduction/1-intro-to-ML/README.md +++ b/translations/zh-TW/1-Introduction/1-intro-to-ML/README.md @@ -4,82 +4,82 @@ --- -[![機器學習初學者 - 機器學習入門](https://img.youtube.com/vi/6mSx_KJxcHI/0.jpg)](https://youtu.be/6mSx_KJxcHI "機器學習初學者 - 機器學習入門") +[![針對初學者的機器學習 - 機器學習入門](https://img.youtube.com/vi/6mSx_KJxcHI/0.jpg)](https://youtu.be/6mSx_KJxcHI "針對初學者的機器學習 - 機器學習入門") -> 🎥 點擊上方圖片觀看一段簡短的課程介紹影片。 +> 🎥 點擊上方圖片觀看本課程的短片教學。 -歡迎參加這門針對初學者的經典機器學習課程!無論你是對這個主題完全陌生,還是已經有經驗的機器學習從業者想要重新學習某些領域,我們都很高興你能加入我們!我們希望為你的機器學習之旅創造一個友好的起點,並且非常樂意評估、回應並採納你的[反饋](https://github.com/microsoft/ML-For-Beginners/discussions)。 +歡迎來到這門初學者的經典機器學習課程!無論你是完全不熟悉這個領域的初學者,或是希望加強某部分知識的有經驗 ML 從業者,我們都很高興你加入我們!我們希望為你的機器學習學習打造一個友善的起點,也歡迎你提出[反饋](https://github.com/microsoft/ML-For-Beginners/discussions),我們會評估、回應並考慮納入改進。 [![機器學習簡介](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "機器學習簡介") -> 🎥 點擊上方圖片觀看影片:麻省理工學院的 John Guttag 介紹機器學習 +> 🎥 點擊上方圖片觀看影片:MIT 的 John Guttag 介紹機器學習 --- -## 開始學習機器學習 +## 開始使用機器學習 -在開始這門課程之前,你需要將電腦設置好,準備在本地運行筆記本。 +在開始本課程內容之前,你需要先設定好電腦,以本地運行筆記本。 -- **通過這些影片配置你的電腦**。使用以下鏈接學習[如何安裝 Python](https://youtu.be/CXZYvNRIAKM)以及[設置文本編輯器](https://youtu.be/EU8eayHWoZg)進行開發。 -- **學習 Python**。建議對[Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott)有基本的了解,這是一門對數據科學家非常有用的編程語言,我們在這門課程中會使用它。 -- **學習 Node.js 和 JavaScript**。我們在課程中會幾次使用 JavaScript 來構建網頁應用,因此你需要安裝 [node](https://nodejs.org) 和 [npm](https://www.npmjs.com/),以及為 Python 和 JavaScript 開發準備的 [Visual Studio Code](https://code.visualstudio.com/)。 -- **創建一個 GitHub 帳戶**。既然你已經在 [GitHub](https://github.com) 找到了我們,你可能已經有一個帳戶了,但如果沒有,請創建一個,然後 fork 這門課程以便自己使用。(如果喜歡,也可以給我們點個星星 😊) -- **探索 Scikit-learn**。熟悉 [Scikit-learn](https://scikit-learn.org/stable/user_guide.html),這是一組我們在課程中參考的機器學習庫。 +- 透過這些影片設定你的電腦。使用以下連結學習[如何安裝 Python](https://youtu.be/CXZYvNRIAKM)及[設定文字編輯器](https://youtu.be/EU8eayHWoZg)以便開發。 +- **學習 Python**。建議具備 [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott) 的基本認識,這是數據科學家常用的程式語言,也是本課程中的主要語言。 +- **學習 Node.js 和 JavaScript**。本課程部分時候會使用 JavaScript 來建立網頁應用,所以請安裝 [node](https://nodejs.org) 與 [npm](https://www.npmjs.com/),並準備好 [Visual Studio Code](https://code.visualstudio.com/) 來開發 Python 和 JavaScript。 +- **建立 GitHub 帳號**。既然你已找到本課程於 [GitHub](https://github.com),可能已經有帳號,如無,請註冊一個並分叉此課程內容以作自用。(也歡迎給我們點個⭐️) +- **熟悉 Scikit-learn**。了解 [Scikit-learn](https://scikit-learn.org/stable/user_guide.html),這是一組在課程中常用到的機器學習函式庫。 --- ## 什麼是機器學習? -「機器學習」這個術語是當今最流行且最常被使用的術語之一。如果你對科技有一定的了解,無論你從事什麼領域,都有很大的可能性至少聽過這個術語一次。然而,機器學習的運作機制對大多數人來說仍然是個謎。對於機器學習初學者來說,這個主題有時可能會讓人感到不知所措。因此,了解機器學習的真正含義,並通過實際例子一步步學習它,是非常重要的。 +「機器學習」這個詞是當今最流行且經常使用的術語之一。假如你對科技有一定程度的熟悉,不論你屬於哪個領域,你很可能至少聽過這個詞一次。不過,機器學習的實際運作對大多數人來說還是一個謎。對於機器學習初學者來說,這個主題有時會感到壓力很大。因此,了解機器學習到底是什麼,並藉由實際案例循序漸進學習它,是非常重要的。 --- ## 熱潮曲線 -![機器學習熱潮曲線](../../../../1-Introduction/1-intro-to-ML/images/hype.png) +![ml hype curve](../../../../translated_images/zh-TW/hype.07183d711a17aafe.webp) -> Google 趨勢顯示了「機器學習」這個術語最近的「熱潮曲線」 +> Google 趨勢顯示「機器學習」一詞近期的熱潮曲線 --- -## 一個神秘的宇宙 +## 神秘的宇宙 -我們生活在一個充滿迷人謎團的宇宙中。像史蒂芬·霍金、阿爾伯特·愛因斯坦等偉大的科學家,將畢生精力投入到尋找有意義的信息中,試圖揭開圍繞我們世界的謎團。這是人類學習的本質:一個孩子隨著成長,年復一年地學習新事物,逐漸揭開他們世界的結構。 +我們生活在充滿神秘的宇宙中。像史蒂芬·霍金、艾爾伯特·愛因斯坦等偉大科學家,都終身致力於尋找揭開周遭世界奧秘的有意義資訊。這是人類學習的本質:一個孩子隨著成長,逐年學習新事物並揭露他們世界的結構。 --- -## 孩子的腦袋 +## 兒童的大腦 -孩子的大腦和感官感知周圍環境的事實,並逐漸學習生活中隱藏的模式,這些模式幫助孩子制定邏輯規則來識別已學習的模式。人類大腦的學習過程使人類成為這個世界上最複雜的生物。通過不斷發現隱藏的模式,並在這些模式的基礎上進行創新,我們能夠在一生中不斷提升自己。這種學習能力和進化能力與一個名為[大腦可塑性](https://www.simplypsychology.org/brain-plasticity.html)的概念有關。表面上,我們可以在人類大腦的學習過程和機器學習的概念之間找到一些激勵性的相似之處。 +兒童的大腦和感覺器官感知周圍事實,逐漸學習生命中隱藏的模式,這幫助兒童建構邏輯規則以識別所學的模式。人類大腦的學習過程造就了人類成為世界上最精密的生物。透過持續學習隱藏模式並在這些模式基礎上創新,使我們能夠在一生中逐步提升自己。這種學習能力和不斷演變的能力,與稱為[大腦可塑性](https://www.simplypsychology.org/brain-plasticity.html)的概念有關。粗略地說,我們可以在大腦的學習過程與機器學習概念之間找到一些啟發性的相似之處。 --- -## 人類大腦 +## 人體大腦 -[人類大腦](https://www.livescience.com/29365-human-brain.html)從現實世界中感知事物,處理感知到的信息,做出理性的決策,並根據情況執行某些行動。我們稱之為智能行為。當我們將這種智能行為過程的模擬編程到機器中時,這就被稱為人工智能(AI)。 +[人體大腦](https://www.livescience.com/29365-human-brain.html)感知真實世界的事物,處理所感知的信息,基於情境做出理性決策並執行行動。這就是我們所說的智能行為。當我們為機器編寫模擬智能行為過程的程式時,這稱為人工智慧(AI)。 --- ## 一些術語 -雖然這些術語可能會混淆,但機器學習(ML)是人工智能的一個重要子集。**機器學習專注於使用專門的算法,從感知到的數據中發掘有意義的信息,並找到隱藏的模式,以支持理性決策過程**。 +雖然這些術語易混淆,但機器學習(ML)是人工智慧的重要子集。**機器學習關注於使用專用算法,從感知到的數據中揭露有意義的信息及隱藏的模式,以佐證理性決策過程**。 --- ## AI、ML、深度學習 -![AI、ML、深度學習、數據科學](../../../../1-Introduction/1-intro-to-ML/images/ai-ml-ds.png) +![AI, ML, deep learning, data science](../../../../translated_images/zh-TW/ai-ml-ds.537ea441b124ebf6.webp) -> 一張展示 AI、ML、深度學習和數據科學之間關係的圖表。信息圖由 [Jen Looper](https://twitter.com/jenlooper) 製作,靈感來自[這張圖](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) +> 一張說明 AI、ML、深度學習與資料科學間關係的圖示。資訊圖表由 [Jen Looper](https://twitter.com/jenlooper) 製作,靈感來源於[此圖](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) --- -## 涵蓋的概念 +## 將涵蓋的概念 -在這門課程中,我們將只涵蓋機器學習的核心概念,這是初學者必須了解的。我們主要使用 Scikit-learn 來教授所謂的「經典機器學習」,這是一個許多學生用來學習基礎知識的優秀庫。要理解人工智能或深度學習的更廣泛概念,扎實的機器學習基礎知識是不可或缺的,因此我們希望在這裡提供這些知識。 +本課程將只介紹初學者必須了解的機器學習核心概念。我們主要使用 Scikit-learn,這是許多學生學習基礎時優良的函式庫。我們希望提供良好的基礎知識讓你未來學習更廣泛的人工智慧或深度學習概念時更為扎實。 --- -## 在這門課程中你將學到: +## 本課程你將學習: -- 機器學習的核心概念 -- 機器學習的歷史 +- 機器學習核心概念 +- 機器學習歷史 - 機器學習與公平性 - 回歸機器學習技術 - 分類機器學習技術 -- 聚類機器學習技術 -- 自然語言處理機器學習技術 -- 時間序列預測機器學習技術 +- 分群機器學習技術 +- 自然語言處理相關機器學習技術 +- 時序預測相關機器學習技術 - 強化學習 - 機器學習的實際應用 @@ -87,64 +87,71 @@ ## 我們不會涵蓋的內容 - 深度學習 -- 神經網絡 -- 人工智能 +- 神經網路 +- 人工智慧 -為了提供更好的學習體驗,我們將避免涉及神經網絡的複雜性、「深度學習」(使用多層神經網絡進行模型構建)以及人工智能,這些內容我們會在其他課程中討論。我們還將提供即將推出的數據科學課程,專注於這個更大領域的這一部分。 +為了讓學習體驗更佳,我們將避免涉及神經網路的複雜性、使用多層神經網路建立模型的「深度學習」以及人工智慧相關主題,那些將在其他課程中詳細討論。我們也會提供即將推出的資料科學課程,專注於這個更廣泛領域的部分。 --- -## 為什麼要學習機器學習? +## 為何要學機器學習? -從系統的角度來看,機器學習被定義為創建能夠從數據中學習隱藏模式的自動化系統,以幫助做出智能決策。 +從系統觀點看,機器學習是創建自動化系統,以從數據中學習隱藏模式,協助做出智能決策。 -這種動機在某種程度上受到人類大腦如何根據外界感知數據學習某些事物的啟發。 +這個動機大致來自人腦如何依據感知到的外部數據學習特定事物。 -✅ 想一想,為什麼企業會選擇使用機器學習策略,而不是創建基於硬編碼規則的引擎? +✅ 思考一下:為什麼企業會想用機器學習策略,而不是建立硬編碼的規則引擎呢? + +--- +## 為何資料品質很重要 + +高品質資料可改善模型性能。即使使用先進的機器學習算法,品質差或雜訊多的資料也會導致不準確的預測結果。 --- ## 機器學習的應用 -機器學習的應用現在幾乎無處不在,就像我們社會中由智能手機、連接設備和其他系統生成的數據一樣普遍。考慮到最先進的機器學習算法的巨大潛力,研究人員一直在探索它們解決多維度和多學科現實問題的能力,並取得了非常積極的成果。 +機器學習應用幾乎無處不在,與我們社會中由智慧型手機、連網裝置及其他系統產生的海量數據同樣普遍。鑑於尖端機器學習算法的強大潛力,研究人員一直在探索它們解決多維度、多學科現實問題的能力,且成效良好。 --- -## 應用機器學習的例子 +## 已應用機器學習的範例 -**你可以用多種方式應用機器學習**: +你可以在許多場景中使用機器學習: -- 從患者的病史或報告中預測疾病的可能性。 -- 利用天氣數據預測天氣事件。 -- 理解文本的情感。 -- 偵測假新聞以阻止宣傳的傳播。 +- 透過病患的醫療史或報告預測疾病風險。 +- 利用氣象資料預測天氣事件。 +- 解析文本的情感傾向。 +- 偵測假新聞以阻止宣傳擴散。 -金融、經濟、地球科學、太空探索、生物醫學工程、認知科學,甚至人文領域都已經採用機器學習來解決其領域中繁重的數據處理問題。 +金融、經濟、地球科學、太空探索、生醫工程、認知科學,甚至人文領域都已採用機器學習,以解決該領域中龐大且繁重的數據處理問題。 --- ## 結論 -機器學習通過從現實世界或生成的數據中發現有意義的見解,自動化了模式發現的過程。它已經在商業、健康和金融應用等領域證明了自己的價值。 +機器學習透過從真實世界或生成數據中發掘有意義的洞見,自動化模式發現過程。它在商業、健康與金融應用等領域已被證明極具價值。 -在不久的將來,了解機器學習的基礎知識將成為任何領域人員的必備技能,因為它的廣泛應用。 +未來,理解機器學習基礎將成為所有領域人士的必備能力,因為其廣泛採用將持續擴大。 --- # 🚀 挑戰 -在紙上或使用像 [Excalidraw](https://excalidraw.com/) 這樣的在線應用,畫出你對 AI、ML、深度學習和數據科學之間差異的理解。添加一些這些技術擅長解決的問題的想法。 +用紙筆或線上軟體如 [Excalidraw](https://excalidraw.com/) 繪製你對 AI、ML、深度學習與資料科學間差異的理解。並列出每種技術適合解決的問題。 # [課後測驗](https://ff-quizzes.netlify.app/en/ml/) --- -# 回顧與自學 +# 複習與自學 -想了解更多關於如何在雲端中使用機器學習算法,請參考這個[學習路徑](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott)。 +欲了解更多在雲端如何使用機器學習算法,請參考此[學習路徑](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott)。 -參加這個[學習路徑](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott),了解機器學習的基礎知識。 +搭配此[學習路徑](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott)學習機器學習基礎。 --- # 作業 -[開始學習](assignment.md) +[開始上手](assignment.md) --- -**免責聲明**: -本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file + +**免責聲明**: +此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力追求準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用此翻譯所產生的任何誤解或誤譯承擔責任。 + \ No newline at end of file diff --git a/translations/zh-TW/5-Clustering/1-Visualize/README.md b/translations/zh-TW/5-Clustering/1-Visualize/README.md index 3be8477b4..80c2383d8 100644 --- a/translations/zh-TW/5-Clustering/1-Visualize/README.md +++ b/translations/zh-TW/5-Clustering/1-Visualize/README.md @@ -1,116 +1,116 @@ -# 聚類簡介 +# 叢集介紹 -聚類是一種[無監督學習](https://wikipedia.org/wiki/Unsupervised_learning)方法,假設數據集是未標籤的,或者其輸入未與預定義的輸出匹配。它使用各種算法來處理未標籤的數據,並根據數據中識別的模式進行分組。 +叢集是一種[無監督學習](https://wikipedia.org/wiki/Unsupervised_learning),假設資料集是未標記的,或其輸入並未對應到預定義的輸出。它使用各種演算法來分類未標記的資料,並根據其在資料中辨識的模式提供分組。 [![PSquare 的 No One Like You](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "PSquare 的 No One Like You") -> 🎥 點擊上方圖片觀看影片。在學習聚類機器學習的同時,欣賞一些尼日利亞舞廳音樂——這是 PSquare 在 2014 年推出的一首高評價歌曲。 +> 🎥 點擊上方圖片觀看影片。當你在學習帶有叢集的機器學習時,欣賞一些奈及利亞舞廳曲目——這是 PSquare 於2014年推出的高評價歌曲。 ## [課前測驗](https://ff-quizzes.netlify.app/en/ml/) -### 簡介 +### 介紹 -[聚類](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124)對於數據探索非常有用。讓我們看看它是否能幫助發現尼日利亞觀眾消費音樂方式的趨勢和模式。 +[叢集](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124)對資料探索非常有用。讓我們看看它能否幫助發現奈及利亞聽眾消費音樂的趨勢與模式。 -✅ 花一分鐘思考聚類的用途。在現實生活中,聚類發生在你有一堆洗好的衣服需要分類到家人衣物的時候 🧦👕👖🩲。在數據科學中,聚類發生在試圖分析用戶偏好或確定任何未標籤數據集的特徵時。某種程度上,聚類幫助我們從混亂中找到秩序,就像整理襪子抽屜一樣。 +✅ 花一分鐘思考叢集的用途。在現實生活中,當你有一堆洗好的衣服,需要分類家人衣物時就會用到叢集🧦👕👖🩲。在資料科學中,叢集用於分析使用者喜好或確定任何未標記資料集的特性。某種程度上,叢集有助於理解混亂,就像整理襪子抽屜。 -[![機器學習簡介](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "聚類簡介") +[![ML 介紹](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "叢集介紹") -> 🎥 點擊上方圖片觀看影片:麻省理工學院的 John Guttag 介紹聚類 +> 🎥 點擊上方圖片觀看影片:MIT 的 John Guttag 介紹叢集 -在專業環境中,聚類可以用於確定市場細分,例如確定哪些年齡段購買哪些商品。另一個用途是異常檢測,比如從信用卡交易數據集中檢測欺詐行為。或者,你可以使用聚類來識別一批醫學掃描中的腫瘤。 +在專業環境中,叢集可用於如市場區隔,判斷哪些年齡層購買哪些商品。例如,也可用於異常偵測,可能用於從信用卡交易資料集偵測詐欺。你也可能使用叢集來判斷醫療影像中的腫瘤。 -✅ 花一分鐘思考你是否在銀行、電子商務或商業環境中遇到過聚類。 +✅ 花一分鐘思考你是否在銀行、電子商務或商業環境中遇過「叢集」的應用。 -> 🎓 有趣的是,聚類分析起源於 1930 年代的人類學和心理學領域。你能想像它當時是如何被使用的嗎? +> 🎓 有趣的是,叢集分析起源於1930年代的人類學和心理學領域。你能想像它當時可能怎麼被使用嗎? -另外,你可以用它來分組搜索結果——例如按購物鏈接、圖片或評論分組。當你有一個大型數據集需要縮減並進行更細緻的分析時,聚類非常有用,因此這種技術可以在構建其他模型之前幫助了解數據。 +或者,你也可以用於將搜尋結果分組,例如以購物連結、圖片或評價分類。當你有大型資料集想要降維並進行更細緻分析時,叢集很有用,因此此技術可用於在構建其他模型之前先學習資料。 -✅ 一旦你的數據被組織成聚類,你可以為其分配一個聚類 ID。這種技術在保護數據集隱私時非常有用;你可以用聚類 ID 來引用數據點,而不是使用更具識別性的數據。你能想到其他使用聚類 ID 而不是聚類中其他元素來識別它的原因嗎? +✅ 一旦資料被組成叢集,你會分配叢集ID,這技術在保護資料隱私時很實用;你可以用叢集ID來代替更揭露個人資料的識別資料。你還能想出其他為什麼要用叢集ID而非叢集中其他元素來識別的原因嗎? -在這個[學習模組](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)中深入了解聚類技術。 +在這個 [Learn 模組](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)中,深入了解叢集技術。 -## 開始使用聚類 +## 入門叢集 -[Scikit-learn 提供了多種方法](https://scikit-learn.org/stable/modules/clustering.html)來執行聚類。你選擇的方法將取決於你的使用案例。根據文檔,每種方法都有其各自的優勢。以下是 Scikit-learn 支持的方法及其適用場景的簡化表格: +[Scikit-learn 提供了多種](https://scikit-learn.org/stable/modules/clustering.html)叢集方法。選擇的類型視使用案例而定。根據文件說明,每種方法有不同優勢。以下為 Scikit-learn 支援的方法及適用案例簡化表: -| 方法名稱 | 使用場景 | -| :--------------------------- | :--------------------------------------------------------------------- | -| K-Means | 通用,歸納式 | -| Affinity propagation | 多個、不均勻的聚類,歸納式 | -| Mean-shift | 多個、不均勻的聚類,歸納式 | -| Spectral clustering | 少量、均勻的聚類,轉導式 | -| Ward hierarchical clustering | 多個、受限的聚類,轉導式 | -| Agglomerative clustering | 多個、受限的、非歐幾里得距離的聚類,轉導式 | -| DBSCAN | 非平面幾何、不均勻的聚類,轉導式 | -| OPTICS | 非平面幾何、不均勻且密度可變的聚類,轉導式 | -| Gaussian mixtures | 平面幾何,歸納式 | -| BIRCH | 含有異常值的大型數據集,歸納式 | +| 方法名稱 | 使用案例 | +| :-------------------------- | :--------------------------------------------------------------------- | +| K-Means | 通用,歸納式(inductive) | +| 親和傳播(Affinity propagation) | 眾多、不均等叢集,歸納式 | +| 平均漂移(Mean-shift) | 眾多、不均等叢集,歸納式 | +| 光譜叢集(Spectral clustering) | 少數、均等叢集,傳遞式(transductive) | +| Ward 階層叢集 | 多數、有限制叢集,傳遞式 | +| 凝聚叢集(Agglomerative clustering) | 多數、有限制、非歐氏距離,傳遞式 | +| DBSCAN | 非平面幾何、不均等叢集,傳遞式 | +| OPTICS | 非平面幾何、不均等且密度可變叢集,傳遞式 | +| 高斯混合(Gaussian mixtures) | 平面幾何,歸納式 | +| BIRCH | 大型資料集有離群值,歸納式 | -> 🎓 我們如何創建聚類與我們如何將數據點分組密切相關。讓我們來解釋一些術語: +> 🎓 我們如何創建叢集很大程度上取決於如何將資料點歸成群組。讓我們拆解一些詞彙: > -> 🎓 ['轉導式' vs. '歸納式'](https://wikipedia.org/wiki/Transduction_(machine_learning)) +> 🎓 [『傳遞式(transductive)與歸納式(inductive)』](https://wikipedia.org/wiki/Transduction_(machine_learning)) > -> 轉導式推理來自觀察到的訓練案例,這些案例映射到特定的測試案例。歸納式推理來自訓練案例,這些案例映射到通用規則,然後才應用於測試案例。 +> 傳遞推理是由觀察到的訓練案例映射至特定測試案例所得;歸納推理是由訓練案例推導出一般規則,然後才應用於測試案例。 > -> 一個例子:假設你有一個部分標籤的數據集。一些項目是“唱片”,一些是“CD”,一些是空白的。你的任務是為空白項目提供標籤。如果你選擇歸納式方法,你會訓練一個模型來尋找“唱片”和“CD”,並將這些標籤應用於未標籤數據。這種方法可能無法很好地分類實際上是“磁帶”的項目。而轉導式方法則更有效地處理這些未知數據,因為它努力將相似的項目分組,然後為整個組分配一個標籤。在這種情況下,聚類可能反映“圓形音樂物品”和“方形音樂物品”。 +> 例子:假設你有部分標記的資料集。有些是『黑膠唱片』,一些是『CD』,有些是空白。你的任務是為空白標籤提供標籤。如果你採取歸納方法,你會訓練模型識別『黑膠唱片』和『CD』,並將這些標籤套用於未標記資料。此方法對其實是『錄音帶』的分類會很吃力。相反地,傳遞方法更有效處理未知資料,因為它先將相似項目分組,再為群組賦標籤;在此情況下,叢集可能會是『圓形音樂物品』和『方形音樂物品』。 > -> 🎓 ['非平面' vs. '平面' 幾何](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering) +> 🎓 [『非平面(non-flat)與平面(flat)幾何』](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering) > -> 來自數學術語,非平面與平面幾何指的是通過“平面”([歐幾里得](https://wikipedia.org/wiki/Euclidean_geometry))或“非平面”(非歐幾里得)幾何方法測量點之間的距離。 +> 源自數學術語,非平面與平面幾何指以『平面』([歐氏幾何](https://wikipedia.org/wiki/Euclidean_geometry))或『非平面』(非歐氏)幾何方法測量點與點間距離。 > -> '平面'在此上下文中指的是歐幾里得幾何(部分內容在學校被教為“平面幾何”),而非平面指的是非歐幾里得幾何。幾何與機器學習有什麼關係?作為兩個都根植於數學的領域,必須有一種通用的方法來測量聚類中點之間的距離,這可以根據數據的性質以“平面”或“非平面”的方式完成。[歐幾里得距離](https://wikipedia.org/wiki/Euclidean_distance)是通過兩點之間的線段長度來測量的。[非歐幾里得距離](https://wikipedia.org/wiki/Non-Euclidean_geometry)則沿曲線測量。如果你的數據在可視化時似乎不在一個平面上,你可能需要使用專門的算法來處理它。 +>此處『平面』指歐氏幾何(部分稱為『平面』幾何),非平面則指非歐氏幾何。幾何和機器學習有何關係?兩者都根源於數學,必須用共同方法量測叢集內點距離,可依資料性質採用平面或非平面度量方式。 [歐氏距離](https://wikipedia.org/wiki/Euclidean_distance)是指兩點連線長度。 [非歐氏距離](https://wikipedia.org/wiki/Non-Euclidean_geometry)則沿曲線測量。若你視覺化資料發現它似乎不在平面上,可能需要使用特殊演算法處理。 > -![平面與非平面幾何資訊圖表](../../../../5-Clustering/1-Visualize/images/flat-nonflat.png) -> 資訊圖表由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 +![平面與非平面幾何資訊圖](../../../../translated_images/zh-TW/flat-nonflat.d1c8c6e2a96110c1.webp) +> 資訊圖作者:[Dasani Madipalli](https://twitter.com/dasani_decoded) > -> 🎓 ['距離'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) +> 🎓 [『距離』](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) > -> 聚類由其距離矩陣定義,例如點之間的距離。這種距離可以通過幾種方式測量。歐幾里得聚類由點值的平均值定義,並包含一個“中心點”或中心點。因此,距離是通過到該中心點的距離來測量的。非歐幾里得距離則指“聚心點”,即最接近其他點的點。聚心點可以通過多種方式定義。 +> 叢集由距離矩陣定義,例如點與點之間的距離。此距離可用幾種方式測量。歐氏叢集由點值平均定義,含有『質心』或中心點,所以距離是以該中心點為依據。非歐氏距離則是指『clustroid』,即最接近其他點的點,而clustroid的定義又可有多種變化。 > -> 🎓 ['受限'](https://wikipedia.org/wiki/Constrained_clustering) +> 🎓 [『有限制(Constrained)』](https://wikipedia.org/wiki/Constrained_clustering) > -> [受限聚類](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) 在這種無監督方法中引入了“半監督”學習。點之間的關係被標記為“不能鏈接”或“必須鏈接”,因此對數據集施加了一些規則。 +> [有限制叢集](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf)在此無監督方法中引入『半監督學習』。點間關係會被標記為『不可連結』或『必須連結』,因此對資料集加上有限制規則。 > -> 一個例子:如果一個算法在一批未標籤或半標籤數據上自由運行,它生成的聚類可能質量較差。在上述例子中,聚類可能會將“圓形音樂物品”、“方形音樂物品”、“三角形物品”和“餅乾”分組。如果給定一些約束或規則(“物品必須由塑料製成”,“物品需要能夠產生音樂”),這可以幫助“限制”算法做出更好的選擇。 +>舉例:若演算法自由運作於一批未標記或半標記資料,生成的叢集品質可能不佳。上例中,叢集可能僅分為『圓形音樂物品』、『方形音樂物品』、『三角形物品』及『餅乾』。若給予一些限制(「必須為塑膠製成」、「必須能發出音樂」),可協助『限制』演算法做出更佳選擇。 > -> 🎓 '密度' +> 🎓 『密度』 > -> 被認為“嘈雜”的數據被認為是“密集的”。檢查時,其每個聚類中點之間的距離可能被證明是更密集或更稀疏的,因此需要使用適當的聚類方法來分析這些數據。[這篇文章](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html)展示了使用 K-Means 聚類與 HDBSCAN 算法探索具有不均勻聚類密度的嘈雜數據集的區別。 +> 資料若『雜訊多』即被視為『密集』。叢集中點與點之距離,經過檢視後可能發現或多或少密集或擁擠,因此需要使用適合的叢集方法分析此類資料。 [此文](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html)展示使用 K-Means 叢集法與 HDBSCAN 演算法探索帶有不均密叢集的雜訊資料集的差異。 -## 聚類算法 +## 叢集演算法 -有超過 100 種聚類算法,其使用取決於手頭數據的性質。讓我們討論一些主要的算法: +叢集演算法超過百種,使用取決於資料性質。讓我們說明一些主要演算法: -- **層次聚類**。如果一個物體是通過其與附近物體的接近程度而分類的,而不是與更遠的物體分類,則聚類是基於其成員與其他物體的距離形成的。Scikit-learn 的凝聚聚類是層次聚類的一種。 +- 階層式叢集。若一物件的分類依據是其與附近物件的相似度,而非更遠物件,叢集即根據其成員間距離形成。Scikit-learn 的凝聚叢集即為階層式。 - ![層次聚類資訊圖表](../../../../5-Clustering/1-Visualize/images/hierarchical.png) - > 資訊圖表由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 + ![階層式叢集資訊圖](../../../../translated_images/zh-TW/hierarchical.bf59403aa43c8c47.webp) + > 資訊圖作者:[Dasani Madipalli](https://twitter.com/dasani_decoded) -- **中心點聚類**。這種流行的算法需要選擇“k”,即要形成的聚類數量,然後算法確定聚類的中心點並圍繞該點收集數據。[K-means 聚類](https://wikipedia.org/wiki/K-means_clustering) 是一種流行的中心點聚類方法。中心點由最近的平均值確定,因此得名。從聚類的平方距離被最小化。 +- 質心叢集。此流行演算法需選擇「k」即叢集數量,接著演算法判斷叢集中心點,將資料聚集於該點周圍。 [K-means叢集](https://wikipedia.org/wiki/K-means_clustering)為質心叢集的常見方法。中心由最近均值決定,因此得名。叢集的平方距離被最小化。 - ![中心點聚類資訊圖表](../../../../5-Clustering/1-Visualize/images/centroid.png) - > 資訊圖表由 [Dasani Madipalli](https://twitter.com/dasani_decoded) 提供 + ![質心叢集資訊圖](../../../../translated_images/zh-TW/centroid.097fde836cf6c918.webp) + > 資訊圖作者:[Dasani Madipalli](https://twitter.com/dasani_decoded) -- **基於分佈的聚類**。基於統計建模,基於分佈的聚類集中於確定數據點屬於某個聚類的概率,並據此分配。高斯混合方法屬於這種類型。 +- 基於分布的叢集。基於統計建模,分布式叢集著重判定資料點屬於叢集的概率,並依此指派。高斯混合方法即屬此類。 -- **基於密度的聚類**。數據點根據其密度或它們彼此之間的分組被分配到聚類中。遠離群體的數據點被認為是異常值或噪聲。DBSCAN、Mean-shift 和 OPTICS 屬於這種類型的聚類。 +- 基於密度的叢集。根據資料點間密度或群聚程度指派叢集,遠離群體的點被視為離群或噪聲。DBSCAN、平均漂移和 OPTICS 屬於此類。 -- **基於網格的聚類**。對於多維數據集,創建一個網格,並將數據分配到網格的單元中,從而創建聚類。 +- 基於格點的叢集。對多維資料集建立格子,將資料分配至格點內,進而形成叢集。 -## 練習 - 聚類你的數據 +## 練習 - 對你的資料進行叢集 -聚類作為一種技術在適當的可視化幫助下效果更佳,因此讓我們從可視化我們的音樂數據開始。這個練習將幫助我們決定針對這些數據的性質最有效使用哪種聚類方法。 +叢集技術大大受惠於良好視覺化,讓我們從視覺化音樂資料開始。此練習將助我們決定對此資料性質應最有效使用哪種叢集方法。 -1. 打開此文件夾中的 [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb)。 +1. 開啟此資料夾內的 [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) 檔案。 -1. 導入 `Seaborn` 套件以進行良好的數據可視化。 +1. 匯入 `Seaborn` 套件以進行良好資料視覺化。 ```python !pip install seaborn ``` -1. 從 [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv) 附加歌曲數據。加載一個包含歌曲數據的數據框。通過導入庫並輸出數據來準備探索這些數據: +1. 附加 [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv) 的歌曲資料。載入包含歌曲資料的 dataframe。準備引入函式庫並匯出資料以探索它: ```python import matplotlib.pyplot as plt @@ -120,23 +120,23 @@ df.head() ``` - 檢查數據的前幾行: + 查看前幾行資料: | | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature | | --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ------------ | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- | | 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 | | 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 | -| 2 | LITT! | LITT! | AYLØ | 獨立R&B | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 | -| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | 奈及利亞流行音樂 | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 | -| 4 | wanted you | rare. | Odunsi (The Engine) | 非洲流行音樂 | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 | + | 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 | + | 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 | + | 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 | -1. 獲取數據框的基本資訊,呼叫 `info()`: +1. 取得一些關於資料框的資訊,呼叫 `info()`: ```python df.info() ``` - 輸出如下所示: + 輸出看起來像這樣: ```output @@ -164,7 +164,7 @@ memory usage: 66.4+ KB ``` -1. 通過呼叫 `isnull()` 並驗證總和是否為 0,仔細檢查是否有空值: +1. 再次檢查是否有空值,呼叫 `isnull()` 並確認總和是 0: ```python df.isnull().sum() @@ -192,7 +192,7 @@ dtype: int64 ``` -1. 描述數據: +1. 描述資料: ```python df.describe() @@ -209,11 +209,11 @@ | 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 | | max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 | -> 🤔 如果我們使用的是無需標籤數據的無監督方法(如聚類),為什麼還要顯示帶有標籤的數據?在數據探索階段,這些標籤很有用,但對於聚類算法來說並非必要。你完全可以移除列標題,直接用列號來引用數據。 +> 🤔 如果我們使用的是聚類,一種不需要標記資料的無監督方法,為什麼我們要顯示帶標籤的資料?在資料探索階段,它們很有用,但對聚類演算法來說不一定是必要的。你也可以刪除欄位標頭,直接用欄位號碼參考資料。 -看看數據的一般值。注意,受歡迎度可以為 "0",這表示歌曲沒有排名。我們稍後會移除這些數據。 +觀察資料的一般數值。注意人氣(popularity)可以是 '0',表示歌曲沒有排名。稍後我們將移除這些。 -1. 使用條形圖找出最受歡迎的音樂類型: +1. 使用長條圖找出最受歡迎的類型: ```python import seaborn as sns @@ -225,13 +225,13 @@ plt.title('Top genres',color = 'blue') ``` - ![最受歡迎](../../../../5-Clustering/1-Visualize/images/popular.png) + ![最受歡迎](../../../../translated_images/zh-TW/popular.9c48d84b3386705f.webp) -✅ 如果你想查看更多的前幾名數據,可以將 `[:5]` 改為更大的值,或者移除它以查看全部。 +✅ 如果你想看更多頂尖值,將前五筆的 `[:5]` 改成更大數字,或移除它以查看全部。 -注意,當最受歡迎的類型被描述為 "Missing" 時,這表示 Spotify 沒有對其進行分類,因此我們需要將其移除。 +注意,當最熱門類型顯示為「Missing」時,表示 Spotify 沒有分類這類型,所以我們將其移除。 -1. 通過篩選移除缺失數據: +1. 透過篩選排除缺失資料 ```python df = df[df['artist_top_genre'] != 'Missing'] @@ -242,11 +242,11 @@ plt.title('Top genres',color = 'blue') ``` - 現在重新檢查音樂類型: + 現在再檢查這些類型: - ![所有類型](../../../../5-Clustering/1-Visualize/images/all-genres.png) + ![最受歡迎](../../../../translated_images/zh-TW/all-genres.1d56ef06cefbfcd6.webp) -1. 顯然,前三大音樂類型在這個數據集中占據主導地位。我們專注於 `afro dancehall`、`afropop` 和 `nigerian pop`,並進一步篩選數據,移除任何受歡迎度為 0 的數據(這表示數據集中未被分類為受歡迎的歌曲,對我們的目的來說可以視為噪聲): +1. 前三大類型明顯主導此資料集。我們將專注於 `afro dancehall`、`afropop` 與 `nigerian pop`,並進一步篩選資料,移除人氣值為 0 的資料(表示資料集中未分類的人氣,可以視為噪音): ```python df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')] @@ -258,7 +258,7 @@ plt.title('Top genres',color = 'blue') ``` -1. 快速測試數據是否有特別強的相關性: +1. 快速測試資料是否存在明顯強相關性: ```python corrmat = df.corr(numeric_only=True) @@ -266,21 +266,21 @@ sns.heatmap(corrmat, vmax=.8, square=True) ``` - ![相關性](../../../../5-Clustering/1-Visualize/images/correlation.png) + ![相關性](../../../../translated_images/zh-TW/correlation.a9356bb798f5eea5.webp) - 唯一的強相關性是 `energy` 和 `loudness` 之間,這並不令人驚訝,因為響亮的音樂通常充滿活力。除此之外,相關性相對較弱。看看聚類算法如何處理這些數據會很有趣。 + 唯一強烈相關的是 `energy` 和 `loudness`,這不意外,因為響亮的音樂通常很有能量。其他相關性較弱。看看聚類演算法對此資料會做出什麼樣的判斷會很有趣。 - > 🎓 請注意,相關性並不意味著因果關係!我們有相關性的證據,但沒有因果關係的證據。一個[有趣的網站](https://tylervigen.com/spurious-correlations) 提供了一些強調這一點的視覺化內容。 + > 🎓 注意,相關性不代表因果關係!我們只有相關證明,沒有因果證明。一個 [有趣的網站](https://tylervigen.com/spurious-correlations) 有一些視覺化例子強調這點。 -在這個數據集中,歌曲的受歡迎度和舞蹈性是否存在某種趨同?使用 FacetGrid 可以看到無論音樂類型如何,都有一些同心圓的分佈。是否可能奈及利亞的品味在這些類型的舞蹈性上達到了一定的趨同水平? +這個資料集中,歌曲的人氣感受與舞蹈感是否有任何收斂現象?FacetGrid 顯示無論類型如何都有一圈圈的同心圓。難道奈及利亞口味對這類型的舞蹈感有某個共同比例? -✅ 嘗試不同的數據點(如 energy、loudness、speechiness)以及更多或不同的音樂類型。你能發現什麼?查看 `df.describe()` 表格,了解數據點的一般分佈。 +✅ 嘗試不同的數據點(能量、音量、說話性)和更多或不同音樂類型。你會發現什麼?看看 `df.describe()` 表格了解資料的整體分布。 -### 練習 - 數據分佈 +### 練習 - 數據分布 -這三種音樂類型在受歡迎度和舞蹈性上的感知是否有顯著差異? +這三種類型在舞蹈感的認知上是否根據人氣有顯著差異? -1. 檢查我們的前三大音樂類型在受歡迎度和舞蹈性上的數據分佈,沿著給定的 x 和 y 軸。 +1. 觀察我們前三大類型在人氣和舞蹈感的資料分布,以特定 x 軸和 y 軸繪圖。 ```python sns.set_theme(style="ticks") @@ -292,15 +292,15 @@ ) ``` - 你可以發現圍繞一個一般趨同點的同心圓,顯示數據點的分佈。 + 你可以看出圍繞一個總體偏好的同心圓點,顯示資料點分布。 - > 🎓 請注意,此示例使用的是 KDE(核密度估計)圖,該圖使用連續的概率密度曲線來表示數據。這在處理多個分佈時非常有用。 + > 🎓 本範例使用 KDE(核密度估算)圖,通過連續的機率密度曲線來表示資料。這讓我們在處理多種分布時能更好詮釋資料。 - 總的來說,這三種音樂類型在受歡迎度和舞蹈性上大致對齊。在這些大致對齊的數據中確定聚類將是一個挑戰: + 三種類型在人氣和舞蹈感上大致呈鬆散對齊。判斷這鬆散對齊資料中的群聚會是一個挑戰: - ![分佈](../../../../5-Clustering/1-Visualize/images/distribution.png) + ![分布](../../../../translated_images/zh-TW/distribution.9be11df42356ca95.webp) -1. 創建一個散點圖: +1. 繪製散佈圖: ```python sns.FacetGrid(df, hue="artist_top_genre", height=5) \ @@ -308,31 +308,33 @@ .add_legend() ``` - 同一軸上的散點圖顯示了類似的趨同模式 + 相同維度的散點圖顯示相似的收斂模式 - ![Facetgrid](../../../../5-Clustering/1-Visualize/images/facetgrid.png) + ![Facetgrid](../../../../translated_images/zh-TW/facetgrid.9b2e65ce707eba1f.webp) -總的來說,對於聚類,你可以使用散點圖來顯示數據的聚類,因此掌握這種類型的可視化非常有用。在下一課中,我們將使用 k-means 聚類來探索這些數據中有趣的重疊群組。 +一般而言,用於聚類分析時,你可以使用散點圖來顯示資料群聚,因此掌握這類可視化非常重要。下一課我們將使用此過濾後的資料,透過 k-means 聚類找出資料中有趣的重疊群聚。 --- ## 🚀挑戰 -為下一課做準備,製作一個關於你可能在生產環境中發現和使用的各種聚類算法的圖表。聚類試圖解決哪些問題? +為下一課做好準備,畫出你可能會發現並在生產環境中使用的各種聚類演算法的圖表。聚類嘗試解決什麼類型的問題? -## [課後測驗](https://ff-quizzes.netlify.app/en/ml/) +## [課後小考](https://ff-quizzes.netlify.app/en/ml/) -## 回顧與自學 +## 複習與自學 -在應用聚類算法之前,正如我們所學,了解數據集的性質是個好主意。閱讀更多相關內容[這裡](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) +在應用聚類演算法前,我們如同學習到的,理解資料集本質是很重要的。更多資訊請參考 [這裡](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)。 -[這篇有幫助的文章](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) 介紹了不同聚類算法在不同數據形狀下的行為。 +[這篇有幫助的文章](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) 引導你瞭解不同聚類演算法在不同資料形態下的行為。 ## 作業 -[研究其他聚類的可視化方法](assignment.md) +[研究其他聚類視覺化](assignment.md) --- -**免責聲明**: -本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言的文件應被視為權威來源。對於關鍵資訊,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋不承擔責任。 \ No newline at end of file + +**免責聲明**: +此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們努力追求準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用此翻譯所產生的任何誤解或誤譯承擔責任。 + \ No newline at end of file