見出し画像

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

Scikit learn の本家をたどり、User Guide を1から順にやってみます!
Git hub の data set 使った example も紹介します( ^ω^ )

1.1. Linear Models

1.1.1. Ordinary Least Squares


LinearRegressionは、線形回帰モデルを実装したクラスです。線形回帰は、データの特徴量と目的変数の間の線形な関係をモデル化するために使用される統計的な手法です。

例:

<補足>
fit(X, y)
: 線形回帰モデルを学習します。Xは特徴量の行列(サンプル数 × 特徴量数)で、yは目的変数のベクトル(サンプル数 × 1)です。
coef_: 学習済みのモデルの回帰係数(特徴量の重み)を返します。

1.1.2. Ridge regression and classification

Ridgeは、線形回帰の一種で、正則化(Regularization)を導入したモデルです。線形回帰は、データの特徴量と目的変数の間の線形な関係をモデル化する手法ですが、データにノイズが含まれる場合や特徴量が多すぎる場合などに過学習を防ぐために正則化を行います。
Ridge回帰では、最小二乗法(Ordinary Least Squares)による誤差を最小化するだけでなく、モデルの係数(重み)ができるだけ小さくなるようにペナルティを与えます。これにより、モデルの複雑さを制御して一般化能力を向上させます。
Ridge回帰の重要なパラメータはalpha(α)で、これが正則化の強度を決定します。alphaが大きいほど、モデルの係数はより小さくなります。alphaが0に近づくと、通常の線形回帰(正則化なし)に近づきます。

例:

<補足>
intercept_
: 学習済みのモデルの切片を返します。

RidgeCVは、scikit-learnのRidge回帰の拡張版であり、交差検証(Cross-validation)を利用して最適な正則化パラメータ(alpha)を自動的に選択するモデルです。Ridge回帰では、正則化パラメータalphaを手動で調整する必要がありますが、RidgeCVを使用すると、最適なalpha値を交差検証を通じて自動的に決定できます。

交差検証は、データを複数の部分に分割し、それらの一部を訓練用データとして使用し、残りの部分をテスト用データとして使用してモデルの性能を評価する手法です。RidgeCVでは、複数回の交差検証を実施し、最も性能の良いalpha値を見つけます。

例:

<補足>
NumPy
はPythonの数値計算において基本的なライブラリであり、大量の数値データの効率的な処理や高度な数学関数の利用を可能にし、科学技術計算から機械学習まで、幅広い分野で活用されています。

1.1.3. Lasso

Lasso(Least Absolute Shrinkage and Selection Operator)は、線形回帰の一種であり、正則化(Regularization)を導入したモデルです。線形回帰は、データの特徴量と目的変数の間の線形な関係をモデル化する手法であり、通常は最小二乗法を用いて誤差を最小化します。一方で、Lasso回帰は、誤差最小化に加えて係数(重み)の絶対値の和を最小化する正則化項を導入します。Lasso回帰では、正則化項により係数がゼロになるような効果があります。これにより、モデルにおいて重要でない特徴量を自動的に選択・削減する効果があります。この特性は、モデルの次元削減(Feature Selection)やスパース性を持たせるために非常に有用です。

<スパース性とは>
スパース性(Sparsity)は、データセットやモデルにおいて、値がゼロである要素が非常に多い状態を指します。つまり、データの多くの部分が0で占められていることを意味します。スパース性が高い場合、重要な情報だけを保持することができ、不要な情報を削減することでデータをより効率的に表現することができます。

例:

<補足>
predict(X): 学習済みのモデルを使って、特徴量Xに対して目的変数の予測を行います。

本日はここまで😃
次回は、1.1.4. Multi-task Lasso をトライします!

参考:


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