見出し画像

Scikit learn のチュートリアル vol.2

こんばんは。
Scikit learn の本家をたどり、User Guide を1から順に進めてます!
前回に引き続き、本日は vol.2と題して、Linear Model の 1.1.4. Multi-task Lasso にトライします!

1.1. Linear Models

1.1.1 ~ 1.1.3. はこちらをご覧ください。

1.1.4. MultiTaskLosso

MultiTaskLasso は、scikit-learnライブラリ内の線形モデルの1つであり、複数の回帰問題を同時に解決するためのモデルです。教師あり学習の一種であり、複数の関連するタスク間で特徴量の関係性を共有することで、モデルの性能を向上させることができます。

Lasso との違いは下記の通りです。
Lasso: Lassoは、単一の回帰問題に対して適用されることが一般的です。1つの目的変数(ターゲット)に対して、複数の特徴量を使って予測モデルを構築します。
MultiTaskLasso: MultiTaskLassoは、複数の目的変数(ターゲット)に対して同時に特徴量を使用してモデルを構築します。複数の関連するタスク(回帰問題)がある場合に使用されます。

例:(Lasso vs. MultiTaskLasso)
単純なLassoまたはMultiTaskLassoで得られた係数行列Wの非ゼロエントリの位置を比較しました。Lassoの推定では非ゼロが散在しているのに対し、MultiTaskLassoの非ゼロエントリは完全な列となっています。

<補足>
n_relevant_features :特徴量選択(Feature Selection)の評価を行う際に使用されるパラメータの一つです。特に、特徴量選択の性能を評価するために用いられるベンチマークデータや関数で使用されることがあります。特徴量選択は、与えられたデータセットから、予測モデルの性能を維持しながら、重要でない特徴量を削除するプロセスです。n_relevant_features はそのデータセット内での「重要な特徴量」の数を示すものです。このパラメータは、実際のデータセットにおいて、どれだけの特徴量が予測モデルにとって重要であるかを模擬的に設定するために使用されます。
np.zeros :NumPy の関数です。この関数は、指定した形状(行数と列数など)のゼロで満たされた多次元配列を生成するために使用されます。このようなゼロ行列は、初期化やデータのセットアップ、計算結果の保存など、さまざまな場面で使用されます。
np.linspace :NumPy の関数の一つです。この関数は、指定された範囲内で一定間隔の等間隔の値を持つ配列を生成するために使用されます。この関数は、開始値、終了値、および生成する要素の数を指定して使用します。 np.sin :NumPy というPythonの数値計算ライブラリ内の関数です。この関数は、与えられた配列内の各要素の正弦(サイン)値を計算します。
np.random.randn
 :NumPy というPythonの数値計算ライブラリ内の乱数生成関数の一つです。この関数は、標準正規分布(平均0、標準偏差1)に従う乱数を生成するために使用されます。
np.dot :NumPy というPythonの数値計算ライブラリ内の行列の積(ドット積)を計算する関数です。行列の積は線形代数において非常に重要な操作であり、多くの数値計算や機械学習のアルゴリズムに使用されます。この関数は、2つのndarray(NumPyの多次元配列)を受け取り、それらの行列の積を計算します。行列の積は、内積や外積といった行列同士の演算を行う際に使用されます。また、@ 演算子を使用しても行列の積を計算することができます。

<補足>
Matplotlib:Pythonのデータ可視化およびグラフ描画ライブラリです。科学技術計算やデータ解析、データ可視化のために広く使われており、様々な種類のグラフや図を生成するためのツールを提供します。Matplotlibを使用することで、折れ線グラフ、散布図、ヒストグラム、バーチャート、3Dプロットなどさまざまな種類の図を作成できます。また、カスタマイズ性も高く、ラベル、軸、タイトルなどの要素を追加し、スタイルや色を調整してグラフを美しくカスタマイズできます。

<補足>
plt.subplot :MatplotlibというPythonのデータ可視化ライブラリ内の関数です。この関数は、複数のサブプロット(複数のグラフ)を1つの図に配置するために使用されます。Matplotlibを使用して、1つの図内に複数のグラフを配置して比較や表示を行う際に便利です。plt.subplot 関数には、配置する行数、列数、および現在のサブプロットの位置を指定します。それぞれのサブプロット内で、データをプロットしたりグラフを描画することができます。Matplotlibの plt.subplot を使用することで、1つの図内に複数のグラフを配置し、比較や可視化を効果的に行うことができます。
plt.spy:MatplotlibというPythonのデータ可視化ライブラリ内の関数の一つです。この関数は、行列の非ゼロエントリを表示するために使用されます。主に、疎行列(スパースマトリクス)の非ゼロパターンを視覚化するために利用されます。行列の非ゼロ要素が点や線で表示され、ゼロ要素は表示されません。

本日はここまで😃
今回は MultiTaskLasso に挑戦しました。様々なpythonコードも出てきたので、私のような初学者には1つのタスクで色々と勉強できる内容でした。本ページに記載の Numpy や Matplotlib の基本の使い方についてはこちらにまとめていますのでぜひご参照ください。

次回は、Elastic-Net にトライします!

本ページの検証には、scikit-learn 1.3.0 を用いています。


この記事が気に入ったらサポートをしてみませんか?