3.

scikit-learn

編集

scikit-learnとは

Pythonの機械学習ライブラリ。分類・回帰・クラスタリング・次元削減・モデル選定・前処理など、古典的な機械学習アルゴリズムを統一APIで提供します。データサイエンス・機械学習の学習・実務で最も広く使われるツールキットの一つです。

公式サイトはこちら

scikit-learnの主な特徴

  • 豊富なアルゴリズム — 線形回帰、ロジスティック回帰、決定木、ランダムフォレスト、SVM、kNN、ナイーブベイズ、K-means、DBSCAN、PCA等
  • 統一されたAPIfit() / predict() / transform() でほぼ全モデル共通
  • NumPy / pandas / SciPy 連携 — 同じ世界観で扱える
  • パイプライン — 前処理+モデルを1本にまとめて再現性を確保
  • 交差検証・グリッドサーチ — ハイパーパラメータ調整が容易
  • ライセンス — BSD-3-Clause(商用可)

本ページの子ページ

scikit-learnでできること(タスク別)

タスク代表アルゴリズム
分類(カテゴリ予測)LogisticRegression、RandomForestClassifier、SVC、GradientBoostingClassifier、KNeighborsClassifier
回帰(数値予測)LinearRegression、Ridge、Lasso、RandomForestRegressor、GradientBoostingRegressor
クラスタリングKMeans、DBSCAN、AgglomerativeClustering
次元削減PCA、t-SNE、UMAP(別ライブラリ)
前処理StandardScaler、MinMaxScaler、OneHotEncoder、SimpleImputer
モデル選定train_test_split、GridSearchCV、cross_val_score
評価指標accuracy_score、precision_recall、roc_auc、mean_squared_error

最小サンプル:Irisデータの分類

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# データ読み込み
iris = load_iris()
X, y = iris.data, iris.target

# 学習/テスト分割
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42)

# モデル学習
clf = RandomForestClassifier()
clf.fit(X_train, y_train)

# 予測と評価
pred = clf.predict(X_test)
print("accuracy:", accuracy_score(y_test, pred))

パイプライン例

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

pipe = Pipeline([
    ('scaler', StandardScaler()),
    ('clf', LogisticRegression()),
])
pipe.fit(X_train, y_train)
pipe.score(X_test, y_test)

類似ライブラリとの位置づけ

ライブラリ得意分野
scikit-learn古典機械学習、前処理、評価。学習・実務の中心
TensorFlow / PyTorchディープラーニング
XGBoost / LightGBM勾配ブースティング(コンペで強い)
statsmodels統計分析・推論

注意点

  • ディープラーニングはカバー外。ニューラルネット系は TensorFlow / PyTorch を使う
  • 大規模データには弱い。1台メモリに収まるサイズが前提(数百万行程度まで)
  • 外れ値・欠損値の前処理は自前で行う必要がある
  • カテゴリ変数は OneHotEncoder / OrdinalEncoder で数値化が必要

関連

編集
Post Share
子ページ
  1. インストール方法(Linux)
  2. 入門者向けクイックスタート
同階層のページ
  1. PyTorch
  2. TensorFlow(テンソルフロー)
  3. scikit-learn
  4. Hugging Face Transformers
  5. LangChain
  6. LlamaIndex
  7. JAX
  8. ONNX Runtime