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

什麼是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),表示環境設置完成!

簡單範例:探索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()
程式碼解釋
- 載入資料:load_iris()從Scikit-learn中讀取Iris資料集,X儲存特徵,y儲存標籤。
- 轉為DataFrame:使用Pandas將資料整理為表格,方便操作。
- 視覺化:使用Seaborn繪製散點圖,展示花萼長度與寬度的分佈,並以不同顏色和形狀區分物種。
運行程式碼後,你會看到一張散點圖,顯示三種鳶尾花的分佈情況。這是機器學習的第一步:了解你的資料!

練習:探索Wine資料集
現在輪到你動手試試!請完成以下練習:
- 使用Scikit-learn的load_wine()載入Wine資料集。
- 將資料轉為Pandas DataFrame,檢查特徵名稱與標籤。
- 選擇兩個特徵(例如alcohol與malic_acid),繪製散點圖,並以類別區分顏色。
- 保存圖表為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
# 你的程式碼從這裡開始...

總結
恭喜你完成了Scikit-learn的第一課!本篇文章介紹了Scikit-learn的用途、機器學習的基本概念,並帶你設置環境與探索Iris資料集。通過程式碼範例與視覺化,你已經邁出了成為資料科學家的第一步。
在下一篇文章中,我們將深入探討資料前處理,學習如何清理與準備資料,為模型訓練做好準備。請繼續練習,並在留言區分享你的Wine資料集散點圖!
資源與進階學習
- Scikit-learn官方文件:https://scikit-learn.org/stable/
- Python與資料科學入門:《Python Data Science Handbook》
- 練習平台:Kaggle(https://www.kaggle.com/)
















