はじめに
この実験では、Python の人気のある機械学習ライブラリである scikit-learn の設定と推定器オブジェクトを探ります。2 次元配列として表されるデータセットについて学び、scikit-learn で前処理する方法を学びます。また、データから学習して予測を行うために使用される推定器オブジェクトの概念についても探ります。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
データセットの理解
Scikit-learn は、データセットを 2 次元配列として表現します。ここで、最初の軸はサンプルを表し、2 番目の軸は特徴量を表します。iris データセットを使った例を見てみましょう。
from sklearn import datasets
iris = datasets.load_iris()
data = iris.data
print(data.shape)
出力:
(150, 4)
iris データセットは、150 個のアヤメの観測値で構成されており、各観測値は 4 つの特徴量で記述されています。データ配列の形状は (150, 4) です。
データの整形
時々、データが最初から scikit-learn に必要な形状になっていない場合があります。そのような場合、データを前処理して (n_samples, n_features) の形状に変換する必要があります。データを整形する例として、1797 個の 8x8 の手書き数字の画像からなる digits データセットがあります。
digits = datasets.load_digits()
print(digits.images.shape)
出力:
(1797, 8, 8)
このデータセットを scikit-learn で使用するには、各 8x8 の画像を長さ 64 の特徴量ベクトルに整形する必要があります。
data = digits.images.reshape((digits.images.shape[0], -1))
推定器オブジェクト
scikit-learn の推定器オブジェクトは、データから学習して予測を行うために使用されます。分類、回帰、クラスタリングアルゴリズム、または生データから有用な特徴量を抽出する変換器にすることができます。推定器オブジェクトの簡単な例を作成しましょう。
from sklearn.base import BaseEstimator
class Estimator(BaseEstimator):
def __init__(self, param1=0, param2=0):
self.param1 = param1
self.param2 = param2
def fit(self, data):
## Implementation of the fit method
pass
estimator = Estimator()
データの適合
scikit-learn によって実装される主な API は、推定器オブジェクトの fit メソッドです。このメソッドは、データセット(通常は 2 次元配列)を入力として受け取ります。推定器にデータを適合させるには、fit メソッドを呼び出すことができます。
estimator.fit(data)
推定器のパラメータ
推定器オブジェクトには、その動作に影響を与えるパラメータがあります。これらのパラメータは、推定器をインスタンス化する際に設定するか、対応する属性を変更することで設定できます。例の推定器にいくつかのパラメータを設定しましょう。
estimator = Estimator(param1=1, param2=2)
print(estimator.param1)
出力:
1
推定されたパラメータ
データを推定器に適合させると、パラメータはデータから推定されます。すべての推定されたパラメータは、アンダースコアで終わる推定器オブジェクトの属性です。たとえば:
print(estimator.estimated_param_)
まとめ
この実験では、scikit-learn のデータセット、データの整形方法、および推定器オブジェクトの概念について学びました。推定器を使ったデータの適合、パラメータの設定、および推定されたパラメータのアクセス方法を検討しました。この設定と推定器オブジェクトの理解は、統計学習タスクで scikit-learn を使用する際に欠かせないものです。