予測対象の変換

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

機械学習においては、モデルを学習する前に予測対象を変換する必要がよくあります。これには、多クラスラベルを 2 値インジケータ行列に変換したり、非数値ラベルを数値ラベルにエンコードしたりするなどのタスクが含まれます。

この実験では、scikit - learn のsklearn.preprocessingモジュールが提供する予測対象を変換するための様々な手法を探ります。

VM のヒント

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

時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labby にお尋ねください。セッション終了後にフィードバックを提供してください。すぐに問題を解決いたします。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/DataPreprocessingandFeatureEngineeringGroup(["Data Preprocessing and Feature Engineering"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/DataPreprocessingandFeatureEngineeringGroup -.-> sklearn/preprocessing("Preprocessing and Normalization") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/preprocessing -.-> lab-71136{{"予測対象の変換"}} ml/sklearn -.-> lab-71136{{"予測対象の変換"}} end

ラベル 2 値化

ラベル 2 値化は、多クラスラベルを 2 値インジケータ行列に変換するプロセスです。LabelBinarizerクラスを使って達成できます。

from sklearn import preprocessing

## LabelBinarizer インスタンスを作成
lb = preprocessing.LabelBinarizer()

## 多クラスラベルのリストに LabelBinarizer を適用
lb.fit([1, 2, 6, 4, 2])

## LabelBinarizer が学習したクラスを取得
lb.classes_

## 多クラスラベルのリストを 2 値インジケータ行列に変換
lb.transform([1, 6])

マルチラベル 2 値化

マルチラベル 2 値化は、ラベルのコレクションのコレクションをインジケータ形式に変換するプロセスです。これはMultiLabelBinarizerクラスを使って達成できます。

from sklearn.preprocessing import MultiLabelBinarizer

## ラベルのコレクションのリストを定義
y = [[2, 3, 4], [2], [0, 1, 3], [0, 1, 2, 3, 4], [0, 1, 2]]

## MultiLabelBinarizer インスタンスを作成し、コレクションのリストに fit_transform を適用
MultiLabelBinarizer().fit_transform(y)

ラベルエンコーディング

ラベルエンコーディングは、非数値ラベルを数値ラベルに変換するプロセスです。これはLabelEncoderクラスを使って達成できます。

from sklearn import preprocessing

## LabelEncoder インスタンスを作成
le = preprocessing.LabelEncoder()

## 非数値ラベルのリストに LabelEncoder を適用
le.fit(["paris", "paris", "tokyo", "amsterdam"])

## LabelEncoder が学習したクラスを取得
list(le.classes_)

## 非数値ラベルのリストを数値ラベルに変換
le.transform(["tokyo", "tokyo", "paris"])

## 数値ラベルを逆変換して非数値ラベルに戻す
list(le.inverse_transform([2, 2, 1]))

まとめ

この実験では、scikit - learn のsklearn.preprocessingモジュールが提供する様々な手法を使って予測対象を変換する方法を学びました。これらの手法には、ラベル 2 値化、マルチラベル 2 値化、およびラベルエンコーディングが含まれました。

OSZAR »