6章アルゴリズムチェーンとパイプライン
「4章 データの表現と特徴量エンジニアリング」で述べたように、多くの機械学習アルゴリズムにおいて、データの表現は非常に重要だ。データの表現は、データのスケール変換から、手で特徴量を組み合わせたり、教師なし学習で特徴量を学習することまで、多岐にわたる。したがって、多くの機械学習アプリケーションでは、1つのアルゴリズムを実行するだけでなく、さまざまな処理と複数の機械学習アルゴリズムを連鎖的に実行する必要がある。本章ではPipeline
クラスを用いて、データ変換とモデル実行のチェーンの構築を簡単に行う方法を述べる。特に、Pipeline
と、GridSearchCV
を用いてすべての処理ステップを一度に行う方法を見ていく。
モデルチェーンの重要性を示す例として、cancer
データセットを見ていこう。このデータセットでは、前処理にMinMaxScaler
を使うことで、カーネル法を用いたSVMの性能を著しく向上することができた。下に、データを分割して最大値と最小値を求め、データのスケール変換を行い、SVMを訓練するコードを示す。
from sklearn.svm import SVC from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.preprocessing import MinMaxScaler # データをロードして分割 cancer = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split( ...
Get Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.