機械学習手法のインターフェース

機械学習における各種法の処理の流れを以下に示します.

教師あり学習では,特徴量を表す行列Xと,ターゲットまたはラベルを表すベクトルyの組が訓練データとなります.機械学習アルゴリズムを実装したクラスが例えば Algorithm として与えられているとすると,一般的な機械学習の手順は以下のようになります(ただし,Xとyには訓練データが入っていて,X_testには評価用のデータが入っているものとします).

 
model = Algorithm(parameters)
model.fit(X, y)
y_predicted = model.predict(X_test)
 

教師なし学習では特徴量のみが訓練データとして与えられます.教師なし学習のタスクとしては,クラスタリングと次元圧縮があります.
クラスタリングは点群のかたまりを見つけ出すタスクです.クラスタリングでの学習の結果は,各点がどのクラスタに属するかという識別データ(ラベル)になります.

 
model = Algorithm(parameters)
model.fit(X, y)
clusters = model.labels_
 
教師なし学習なので,fitの引数が特徴量行列Xのみであることに注意が必要です.
 
次元圧縮では多次元空間上の点群を低次元空間に射影します.まずは点群からどの方向に射影すべきかを学習し,その後に新たに与えられた点群を射影するという流れです.
 
model = Algorithm(parameters)
model.fit(X)
Z = model.transfer(X)