線形回帰
はじめに 線形回帰というと予測関数が といったスカラー関数を取り上げることが多いですが、 本記事では、 予測関数が のベクトル値関数の場合を取り上げます。 登場する変数 登場順に記します。 :点列 :予測関数の入力値 :非線形写像 :パラメータ :予…
乱数の固定 現象が再現するように乱数を固定します。 # ランダムシードを設定する(乱数を固定する) np.random.seed(1) 入力空間と特徴空間 今回のプログラムでは入力空間は1次元です。 その入力空間の元 を非線形写像 で写した特徴空間で回帰します。 目標値…
線形回帰を自前実装 クラスの仕様は大体sklearnに合わせています。 ポイントはxに1の列を加えているところです。 # 線形回帰クラス class LinearRegression: def __init__(self): pass def fit(self, x, t): X = self._add_ones(x) self.w = np.linalg.inv(X…
ソースの説明 ソースは【Python自前実装】曲線フィッティングがベースなので、そちらをご一読ください。 ラッソ回帰 ラッソ回帰は以下の目的関数を最小化する回帰のことで、過学習を防ぐことができます。 # ラッソ回帰(L1正則化)のモデルを作成 lasso_model …
ソースの説明 ソースは【Python自前実装】曲線フィッティングがベースなので、そちらをご一読ください。 リッジ回帰 リッジ回帰は以下の目的関数を最小化する回帰のことで、過学習を防ぐことができます。 # リッジ回帰(L2正則化)のモデルを作成 ridge_model …
ソースの説明 ソースは【Python自前実装】曲線フィッティングとほぼ同じです。 違いは、LinearRegression が sklearn.linear_model.LinearRegression になっただけです。 ソース import matplotlib.pyplot as plt import numpy as np from sklearn import li…
線形回帰モデルを使う 線形回帰モデルを使うためにimportします。 from sklearn import linear_model モデルを作成し、学習データを渡し、予測します。 予測時に学習データをの行列にしておく必要があります。 # 線形回帰のモデルを作成 model = linear_mode…
MAP推定とリッジ回帰 MAP推定とリッジ回帰の関係という記事で 事前分布を平均は、共分散行列は等方的な分布としたときに についてMAP推定することと、 二乗和誤差関数と二次正則化項の和を最小化することが等価であることを示しました。これを利用して、リッ…
周辺尤度 一般に、観測データ、パラメータのとき、の事後分布は以下の式で表されます。のを周辺尤度といい、モデルからデータが出現する尤もらしさを表しています。 をについて解きます。事後分布を求める時は、この周辺尤度は無視されますが、この記事では…
予測分布とは、新たな入力値に対するの分布のことです。が予測分布です。予測分布はの条件付き同時分布をについて周辺化することにより求まります。を変形します。の式変形ですが が与えられた下で、が独立であることと が与えられた下で、が独立であること…
以前、MAP推定とリッジ回帰という記事では、事前分布の平均を、共分散行列は等方的な分布としましたが、 今回の記事ではそのような仮定は設けません。 MAP推定 尤度が多次元ガウス分布なので、共役事前分布として多次元ガウス分布とします。 平均を、共分散…
最小二乗法の復習 個のデータが与えられています。 で、と表します。線形回帰モデルは以下のよう表されるとします。ただし、です。 また、を以下のようにおきます。この時、目的関数を以下のように定義します。目的関数を最小化したをと表すととなります。 …
正則化 目的関数に正則化項を加えることにより、過学習を防ぐことができます。 一般的な正則化項を用いて目的関数を表してみます。(1)において、の時をラッソ回帰、の時をリッジ回帰というのでした。 異なるの値に対する正則化関数のグラフを示します。 正則…
この記事は最尤推定と最小二乗法の続きの記事です。 MAP推定 MAP推定とは事後分布を最大するようなパラメータを点推定することです。 事後分布を求めるために事前分布を定めます。 尤度が多次元ガウス分布なので、共役事前分布として多次元ガウス分布としま…
最尤推定 個のデータが与えられています。 で、まとめてと表します。線形回帰モデルは以下のよう表されるとします。ただし、です。目標変数がと加法性のガウスノイズの和で表される場合を考えます。は期待値がで精度(分散の逆数)がのガウス分布に従う確率変…
L1正則化 目的関数に正則化項としてL1ノルムを加えたものをL1正則化と言います。ラッソ回帰とも言います。 は正則化から外すことも多い為、今回は外します。 目的関数は以下のようになります。 最適化 この目的関数の最適化はL1ノルムがあり、解析的に解くの…
過学習と正則化 過学習とはモデルがデータに適合しすぎてしまうことを言います。過学習を防ぐために目的関数に正則化項(罰則項)を加えて最適化します。 このことを正則化と言います。この記事では加える正則化項がL2ノルムなのでL2正則化といいます。リッジ…
要件 個のデータに当てはまる曲線を求めたい。 モデルの定義 予測曲線(モデル)をとします。 目的関数の定義 あるデータに着目する。 の予測値はです。 との差の2乗はです。 これを全データについて足し合わせたものを目的関数とします。はで偏微分した式を奇…
要件 個のデータに当てはまる直線を求めたい。 モデルの定義 予測直線(モデル)をとします。 目的関数の定義 あるデータに着目する。 の予測値はです。 との差の2乗はです。 これを全データについて足し合わせたものを目的関数とします。はで偏微分した式を奇…