再帰的特徴量削減

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、特徴選択に Recursive Feature Elimination (RFE) をどのように使用するかを学びます。このタスクを実行するために、Python の Scikit-Learn ライブラリを使用します。特徴選択は、機械学習において無関係または冗長な特徴を削除することでモデルの性能を向上させるための重要なステップです。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替えて、Jupyter Notebook を使った練習にアクセスします。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題が発生した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

データセットの読み込みとデータの分割

まず、Scikit-Learn ライブラリを使って digits データセットを読み込みます。このデータセットは、0 から 9 までの数字の 8x8 画像で構成されています。各画像は 64 個の特徴の配列として表されます。データを特徴量と目的変数に分割します。

from sklearn.datasets import load_digits
digits = load_digits()
X = digits.images.reshape((len(digits.images), -1))
y = digits.target

RFE オブジェクトの作成とデータの適合

次に、RFE クラスのオブジェクトを作成し、それにデータを適合させます。推定器として線形カーネルを持つサポートベクター分類器 (SVC) を使用します。1 回に 1 つの特徴を選択し、1 ステップずつ進めます。

from sklearn.svm import SVC
from sklearn.feature_selection import RFE

svc = SVC(kernel="linear", C=1)
rfe = RFE(estimator=svc, n_features_to_select=1, step=1)
rfe.fit(X, y)

特徴のランキング付け

RFE オブジェクトにデータを適合させた後、重要度に基づいて特徴をランキング付けすることができます。RFE オブジェクトの ranking_ 属性を使って特徴のランキングを取得します。また、ランキングを元の画像の形状に合わせるために整形します。

ranking = rfe.ranking_.reshape(digits.images[0].shape)

特徴のランキングを可視化する

最後に、Matplotlib ライブラリを使って特徴のランキングをプロットします。matshow() 関数を使って、ランキングを画像として表示します。また、カラーバーとタイトルをプロットに追加します。

import matplotlib.pyplot as plt

plt.matshow(ranking, cmap=plt.cm.Blues)
plt.colorbar()
plt.title("Ranking of pixels with RFE")
plt.show()

まとめ

この実験では、再帰的特徴量削減 (RFE) を使って特徴量選択を行う方法を学びました。Python の Scikit-Learn ライブラリを使って、digits データセットを読み込み、RFE オブジェクトを作成し、データに適合させ、特徴量をランキング付けし、特徴量のランキングを可視化しました。