scikit-learn

Python 生態系統中最廣泛使用的機器學習經典庫

概述

scikit-learn 是 Python 生態系統中最廣泛使用的機器學習經典庫,於 2007 年發布,採用 NumPy/SciPy 陣列運算框架。設計簡潔優雅,API 統一一致,適合處理傳統機器學習任務。提供從資料預處理到模型訓練、評估、調參的完整工具鏈,支援監督式學習(分類、回歸)、非監督式學習(聚類、降維)和模型選擇。

監督式學習

分類:邏輯回歸 (LogisticRegression)、支援向量機 (SVC)、決策樹 (DecisionTreeClassifier)、隨機森林 (RandomForestClassifier)、梯度提升 (GradientBoostingClassifier)。 回歸:線性回歸 (LinearRegression)、嶺回歸 (Ridge)、Lasso (Lasso)、ElasticNet (ElasticNet)、支援向量回歸 (SVR)。scikit-learn 提供統一的 fit/predict API,所有模型都遵循相同的使用模式。

model = RandomForestClassifier(n_estimators=100, random_state=42) model.fit(X_train, y_train) predictions = model.predict(X_test)

非監督式學習

聚類:K-Means (KMeans)、DBSCAN (DBSCAN)、層次聚類 (AgglomerativeClustering)。 降維:主成分分析 (PCA)、t-SNE (TSNE)、UMAP(需安裝 umap-learn)。K-Means 使用肘部法 (Elbow Method) 選擇最佳聚類數,DBSCAN 無需指定聚類數且能發現任意形狀的聚類。PCA 用於線性降維,t-SNE 和 UMAP 用於高維數據的可視化。

模型評估與調參

評估指標包括準確率 (accuracy)、精確率 (precision)、召回率 (recall)、F1 分數、混淆矩陣、ROC-AUC、MSE、R² 等。交叉驗證支援 K-Fold、StratifiedKFold、LeaveOneOut 等策略。超參數調參提供網格搜尋 (GridSearchCV) 和隨機搜尋 (RandomizedSearchCV)。Pipeline 可將預處理和模型訓練串聯為單一工作流。

資料預處理

特徵縮放提供 StandardScaler(標準化)、MinMaxScaler(歸一化)、RobustScaler(魯棒縮放)。類別特徵編碼提供 LabelEncoder 和 OneHotEncoder。ColumnTransformer 可對不同特徵列應用不同的預處理。PolynomialFeatures 生成多項式互動特徵。scikit-learn 的預處理模組是建構機器學習管線的重要組成部分。

相關連結