[Python教學] Scikit-learn:基礎入門-機器學習基礎與環境設置

更新 發佈閱讀 8 分鐘

歡迎來到Scikit-learn教學系列的第一篇文章!本篇將帶你認識Scikit-learn這個強大的機器學習工具,了解機器學習的基本概念,並完成開發環境的設置。我們還會通過一個簡單的範例,探索Scikit-learn的內建資料集,開啟你的機器學習之旅!

raw-image


什麼是Scikit-learn?

Scikit-learn(簡稱sklearn)是一個基於Python的開源機器學習庫,廣泛應用於資料分析與建模。它提供了簡單且高效的工具,涵蓋資料前處理、模型訓練、評估與部署等機器學習流程。Scikit-learn的特點包括:

  • 易於上手:API設計直觀,適合初學者。
  • 功能豐富:支援分類、回歸、聚類、降維等多種任務。
  • 生態完整:與NumPy、Pandas、Matplotlib等Python套件無縫整合。

無論你是想預測房價、分類圖片,還是進行客戶分群,Scikit-learn都能幫助你快速實現!


機器學習基本概念

在深入Scikit-learn之前,讓我們先了解機器學習的核心概念:

  • 機器學習(Machine Learning):讓電腦從資料中學習規律並進行預測或決策,而無需明確的程式規則。
  • 監督學習(Supervised Learning):使用有標籤的資料進行訓練,例如預測房價(回歸)或辨識郵件是否為垃圾郵件(分類)。
  • 非監督學習(Unsupervised Learning):處理無標籤資料,例如將客戶分群(聚類)或降低資料維度(降維)。
  • 資料集分割:通常將資料分為訓練集(用於學習)、驗證集(用於調參)和測試集(用於評估模型)。

Scikit-learn支援上述所有類型的任務,讓你能靈活應對不同問題。


設置開發環境

要開始使用Scikit-learn,你需要安裝Python及其相關套件。以下是步驟:

1. 安裝Python

建議使用Python 3.8或以上版本。你可以從官方網站下載,或使用Anaconda管理Python環境。

我們推薦超好用的Python集成開發環境-PyCharm!安裝教學文章連結點此:[Python教學] 開發環境安裝與設定教學-Pycharm

2. 安裝必要套件

Scikit-learn依賴以下套件:

  • NumPy:處理數值計算。
  • Pandas:管理資料框架。
  • Matplotlib與Seaborn:資料視覺化。
  • Scikit-learn:核心機器學習庫。

使用pip安裝這些套件:

pip install numpy pandas matplotlib seaborn scikit-learn

3. 驗證安裝

在Python環境中執行以下程式碼,確認安裝成功:

import sklearn
print(sklearn.__version__)

如果輸出版本號(例如1.6.1),表示環境設置完成!

raw-image


簡單範例:探索Iris資料集

讓我們通過Scikit-learn的內建Iris資料集,來體驗資料載入與視覺化的過程。Iris資料集包含150筆鳶尾花資料,每筆資料有4個特徵(花萼長度、花萼寬度、花瓣長度、花瓣寬度)與3個類別(Setosa、Versicolor、Virginica)。

程式碼範例

以下程式碼展示如何載入Iris資料集並繪製散點圖:

# 匯入必要套件
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import load_iris

# 載入Iris資料集
iris = load_iris()
X = iris.data # 特徵
y = iris.target # 標籤
feature_names = iris.feature_names
target_names = iris.target_names

# 將資料轉為Pandas DataFrame以便處理
df = pd.DataFrame(X, columns=feature_names)
df['species'] = pd.Categorical.from_codes(y, target_names)

# 繪製散點圖
plt.figure(figsize=(8, 6))
sns.scatterplot(data=df, x='sepal length (cm)', y='sepal width (cm)', hue='species', style='species', s=100)
plt.title('Iris Dataset - Sepal Length vs Sepal Width')
plt.xlabel('Sepal Length (cm)')
plt.ylabel('Sepal Width (cm)')
plt.legend(title='Species')
plt.savefig('iris_scatter.png')
plt.show()

程式碼解釋

  1. 載入資料:load_iris()從Scikit-learn中讀取Iris資料集,X儲存特徵,y儲存標籤。
  2. 轉為DataFrame:使用Pandas將資料整理為表格,方便操作。
  3. 視覺化:使用Seaborn繪製散點圖,展示花萼長度與寬度的分佈,並以不同顏色和形狀區分物種。

運行程式碼後,你會看到一張散點圖,顯示三種鳶尾花的分佈情況。這是機器學習的第一步:了解你的資料!

raw-image


練習:探索Wine資料集

現在輪到你動手試試!請完成以下練習:

  1. 使用Scikit-learn的load_wine()載入Wine資料集。
  2. 將資料轉為Pandas DataFrame,檢查特徵名稱與標籤。
  3. 選擇兩個特徵(例如alcohol與malic_acid),繪製散點圖,並以類別區分顏色。
  4. 保存圖表為wine_scatter.png。

以下是範例程式碼的起點:

from sklearn.datasets import load_wine

# 載入Wine資料集
wine = load_wine()
X = wine.data
y = wine.target
feature_names = wine.feature_names
target_names = wine.target_names

# 你的程式碼從這裡開始...
raw-image


總結

恭喜你完成了Scikit-learn的第一課!本篇文章介紹了Scikit-learn的用途、機器學習的基本概念,並帶你設置環境與探索Iris資料集。通過程式碼範例與視覺化,你已經邁出了成為資料科學家的第一步。

在下一篇文章中,我們將深入探討資料前處理,學習如何清理與準備資料,為模型訓練做好準備。請繼續練習,並在留言區分享你的Wine資料集散點圖!


資源與進階學習



留言
avatar-img
追極光的北極熊|軟體工程師的小天地
16會員
170內容數
歡迎來到我的部落格!這裡記錄了軟體工程師的日常生活點滴,並分享程式設計與演算法的實用教學。無論你是初學者還是有經驗的開發者,都能在這裡找到深入淺出的技術解析與實戰技巧。此外,我也會分享工作中的心路歷程與學習心得,讓你不僅學到技術,更能瞭解軟體開發的實際應用與挑戰。希望透過這個平台,能與你共同成長,激發對技術的熱情!
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/28
當我們開發程式時,功能能正常運作固然重要,但在資料量變大或執行時間變長時,效能就成為不可忽視的一環。尤其在 Web 應用、資料分析或科學運算中,程式跑得快與否,直接影響使用者體驗與系統成本。
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/22
嘿,大家好!上篇教學文章我們做出了一個待辦事項清單,已經有點小工具的感覺了吧?今天我們要再升級,來做個「簡單記事本」。這個專案不只可以寫東西,還能存檔、讀檔,甚至換字體大小,感覺就像自己寫了個迷你軟體!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
2025/04/16
嘿,大家好!走到這一步,我們已經玩過 Tkinter 的基本招式、佈局、事件處理,還搞了些進階元件,應該有點信心了吧?今天我們要把這些功夫練成一套連招,來做個實用的「待辦事項清單」(To-Do List),順便聊聊怎麼把程式寫得更漂亮、更好用。準備好了嗎?這就上場啦!
看更多
你可能也想看
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
創作不只是個人戰,在 vocus ,也可以是一場集體冒險、組隊升級。最具代表性的創作者社群「vocus 野格團」,現在有了更強大的新夥伴加入!除了大家熟悉的「官方主題沙龍」,這次我們徵召了 8 位領域各異的「個人主題專家」,將再度嘗試創作的各種可能,和格友們激發出更多未知的火花。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
vocus 最具指標性的創作者社群──「野格團」, 2026 年春季,這支充滿專業、熱情的團隊再次擴編,迎來了 8 位實力堅強的「個人主題專家」新成員 💫💫💫 從投資理財、自我成長、閱讀書評到電影戲劇,他們各自帶著獨特的「創作超能力」準備在格友大廳與大家見面。
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
人工智慧是什麼? 人工智慧(Artificial Intelligence, AI) 簡單來說,就是讓機器模仿人類的思考、學習和決策的能力。它就像是一個聰明的電腦程序,可以執行許多原本需要人類智慧才能完成的工作,例如: 語音辨識: 讓電腦聽懂人類的語言,像是 Siri、Google As
Thumbnail
人工智慧是什麼? 人工智慧(Artificial Intelligence, AI) 簡單來說,就是讓機器模仿人類的思考、學習和決策的能力。它就像是一個聰明的電腦程序,可以執行許多原本需要人類智慧才能完成的工作,例如: 語音辨識: 讓電腦聽懂人類的語言,像是 Siri、Google As
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
最新的AI趨勢讓人眼花撩亂,不知要如何開始學習?本文介紹了作者對AI的使用和體驗,以及各類AI工具以及推薦的選擇。最後強調了AI是一個很好用的工具,可以幫助人們節省時間並提高效率。鼓勵人們保持好奇心,不停止學習,並提出了對健康生活和開心生活的祝福。
Thumbnail
AI 相關的內容每天都非常多,有聽過很多人因此感覺到焦慮,怕錯過了最新資訊就會趕不上,這篇內容會跟大家詳細的分享我自己的學習方法和經驗,並且會在最後分享一些我的學習資訊來源。
Thumbnail
AI 相關的內容每天都非常多,有聽過很多人因此感覺到焦慮,怕錯過了最新資訊就會趕不上,這篇內容會跟大家詳細的分享我自己的學習方法和經驗,並且會在最後分享一些我的學習資訊來源。
Thumbnail
這篇文章介紹瞭如何利用生成式AI(GenAI)來提高學習效率,包括文章重點整理、完善知識體系、客製化學習回饋、提供多元觀點等方法。同時提醒使用者應注意內容的信效度,保持學術誠信,適當運用GenAI能大幅提升工作效率。
Thumbnail
這篇文章介紹瞭如何利用生成式AI(GenAI)來提高學習效率,包括文章重點整理、完善知識體系、客製化學習回饋、提供多元觀點等方法。同時提醒使用者應注意內容的信效度,保持學術誠信,適當運用GenAI能大幅提升工作效率。
Thumbnail
延續上週提到的,「有哪些不訓練模型的情況下,能夠強化語言模型的能力」,這堂課接續介紹其中第 3、4 個方法
Thumbnail
延續上週提到的,「有哪些不訓練模型的情況下,能夠強化語言模型的能力」,這堂課接續介紹其中第 3、4 個方法
Thumbnail
這一節課說明,如何透過改變給模型的指示或咒語(prompt),來得到不同的結果 。如果直接說結論的話會是,在今天語言模型的能力之下,我們只要交代清楚任務就好,可以包括背景以及需求。而這節課很像是一堂模型咒語的歷史課 XD
Thumbnail
這一節課說明,如何透過改變給模型的指示或咒語(prompt),來得到不同的結果 。如果直接說結論的話會是,在今天語言模型的能力之下,我們只要交代清楚任務就好,可以包括背景以及需求。而這節課很像是一堂模型咒語的歷史課 XD
Thumbnail
誠品生活|科技應用 書櫃陳列著與AI相關軟硬體的科技應用實作材料包,包含物聯網、影像辨識、機器學習、生醫感測等實作套裝材料。 選擇趨勢|科技玩物 這麼多科技應用實作包,怎麼選呢? 科技日新月異 科技玩物在生活中反應的特徵詞: 顛覆、科幻、新奇、便利、酷炫、魔法、未來
Thumbnail
誠品生活|科技應用 書櫃陳列著與AI相關軟硬體的科技應用實作材料包,包含物聯網、影像辨識、機器學習、生醫感測等實作套裝材料。 選擇趨勢|科技玩物 這麼多科技應用實作包,怎麼選呢? 科技日新月異 科技玩物在生活中反應的特徵詞: 顛覆、科幻、新奇、便利、酷炫、魔法、未來
Thumbnail
2023年被世人稱做生成式AI世代的元年,各式各樣的AI工具不斷湧現,改變了人們的生活。本文將詳細介紹人工智慧和機器學習的相關知識,以及各種人工智慧和機器學習的實現方法。
Thumbnail
2023年被世人稱做生成式AI世代的元年,各式各樣的AI工具不斷湧現,改變了人們的生活。本文將詳細介紹人工智慧和機器學習的相關知識,以及各種人工智慧和機器學習的實現方法。
Thumbnail
前言 上一篇討論到如何訓練出模型,此篇將說明Streamlit建立的簡單Web應用程式的解說 Streamlit網頁App_貓狗辨識 連結 程式碼Github連結 [機器學習]CNN學習MNIST 手寫英文字母資料,用網頁展現成果_模型訓練篇 如何連動github與stramlit可以參考
Thumbnail
前言 上一篇討論到如何訓練出模型,此篇將說明Streamlit建立的簡單Web應用程式的解說 Streamlit網頁App_貓狗辨識 連結 程式碼Github連結 [機器學習]CNN學習MNIST 手寫英文字母資料,用網頁展現成果_模型訓練篇 如何連動github與stramlit可以參考
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News