直線回帰
記事のディレクトリ
学習目標
- 線形回帰の実装プロセスにおける所有権
- アプリケーションの線形回帰やSGDRegressor回帰予測を実現
- 私たちは、評価基準を知っていると数式回帰アルゴリズム
- underfitting原因と解決策を知っている過剰適合
- 私たちは、原則リッジ回帰と線形回帰の違いを知っています
- アプリケーションリッジ回帰予測を実現します
- アプリケーションは、保存と読み込みモデルを達成JOBLIB
2.4線形回帰と最適化の喪失
家の前の例は、実際のデータとの間に関係があると仮定すると、
真实关系:真实房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价) + 0.254×城镇犯罪率
さて、我々は(推測)の関係を特定するのは自由です
随机指定关系:预测房子价格 = 0.25×中心区域的距离 + 0.14×城市一氧化氮浓度 + 0.42×自住房平均房价 + 0.34×城镇犯罪率
私は何が起こるか、これが事実であるかって?実際の結果と我々の予測の結果の間には、特定のエラーではないでしょうか?このようになります
このエラーの有無ので、誤差は我々が測定するのに出てくること
1損失関数
総損失は次のように定義されます。
- 李氏は学習サンプルのi番目の実際の値であり、
- i番目の学習サンプル組成固有値予測関数の時間(XI)
- また、最小二乗法等の公知
我々はいくつかは、より正確に予想して、この損失を低減する方法?この損失の存在するので、我々は常にここに自動学習の機械学習機能、線形回帰を反映することができます述べています。ここでは(実際には、相互間の数学的導出関数)最適化するために、いくつかの最適化手法もできるトータルリターンロス!!!
2最適化アルゴリズム
どのように損失を最小化するように、Wの間でモデルを模索するには?(Wの目標は、最小の損失に対応する値を見つけることです)
2つの最適化アルゴリズムは、一般的に、線形回帰を使用します
2.1正規方程式
2.1.1正規方程式とは何ですか
理解される:Xは、Yが目標行列の固有値の行列です。直接最良の結果を探しています
短所:あまりにも多くの機能、複雑すぎて遅すぎると解決できない結果
2.1.2正規方程式ソルバー例
以下のデータは、実施例を表します。
すなわち:
方程式のパラメータを解決するための正式な方法の使用:
2.1.3正規方程式が導出されます
- 導出方法:
行列で記述された損失関数の変換:
yが実数値行列であり、Xは、wは重み行列固有値行列であります
開始および終了のY上の最小値wを解く、直接導出、誘導体ゼロ位置の両方に知られているXの二次関数は、最小です。
導出:
注:式(1)到式(2)推导过程中, X是一个m行n列的矩阵,并不能保证其有逆矩阵,但是右乘XT把其变成一个方阵,保证其有逆矩阵。
式(5)到式(6)推导过程中,和上类似。
- 推导方式二【拓展】:
https://www.jianshu.com/p/2b6633bd4d47
2.2 梯度下降(Gradient Descent)
2.2.1 什么是梯度下降
梯度下降法的基本思想可以类比为一个下山的过程。
假设这样一个场景:一个人被困在山上,需要从山上下来(i.e. 找到山的最低点,也就是山谷)。但此时山上的浓雾很大,导致可视度很低。因此,下山的路径就无法确定,他必须利用自己周围的信息去找到下山的路径。这个时候,他就可以利用梯度下降算法来帮助自己下山。具体来说就是,以他当前的所处的位置为基准,寻找这个位置最陡峭的地方,然后朝着山的高度下降的地方走,(同理,如果我们的目标是上山,也就是爬到山顶,那么此时应该是朝着最陡峭的方向往上走)。然后每走一段距离,都反复采用同一个方法,最后就能成功的抵达山谷。
梯度下降的基本过程就和下山的场景很类似。
首先,我们有一个可微分的函数。这个函数就代表着一座山。
我们的目标就是找到这个函数的最小值,也就是山底。
根据之前的场景假设,最快的下山的方式就是找到当前位置最陡峭的方向,然后沿着此方向向下走,对应到函数中,就是找到给定点的梯度 ,然后朝着梯度相反的方向,就能让函数值下降的最快!因为梯度的方向就是函数之变化最快的方向。 所以,我们重复利用这个方法,反复求取梯度,最后就能到达局部的最小值,这就类似于我们下山的过程。而求取梯度就确定了最陡峭的方向,也就是场景中测量方向的手段。
2.2.2 梯度的概念
梯度是微积分中一个很重要的概念
在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率
在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向
这也就说明了为什么我们需要千方百计的求取梯度!我们需要到达山底,就需要在每一步观测到此时最陡峭的地方,梯度就恰巧告诉了我们这个方向。梯度的方向是函数在给定点上升最快的方向,那么梯度的反方向就是函数在给定点下降最快的方向,这正是我们所需要的。所以我们只要沿着梯度的反方向一直走,就能走到局部的最低点!
2.2.3 梯度下降举例
- 1. 单变量函数的梯度下降**
我们假设有一个单变量的函数 :J(θ) = θ2
函数的微分:J、(θ) = 2θ
初始化,起点为: θ0 = 1
学习率:α = 0.4
我们开始进行梯度下降的迭代计算过程:
如图,经过四次的运算,也就是走了四步,基本就抵达了函数的最低点,也就是山底
- 2.多变量函数的梯度下降
我们假设有一个目标函数 ::J(θ) = θ12 + θ22
现在要通过梯度下降法计算这个函数的最小值。我们通过观察就能发现最小值其实就是 (0,0)点。但是接下 来,我们会从梯度下降算法开始一步步计算到这个最小值! 我们假设初始的起点为: θ0 = (1, 3)
初始的学习率为:α = 0.1
函数的梯度为:▽:J(θ) =< 2θ1 ,2θ2>
进行多次迭代:
我们发现,已经基本靠近函数的最小值点
2.2.4 梯度下降**(**Gradient Descent)公式
-
1) α是什么含义?
αは次のように勾配降下アルゴリズムと呼ばれる学習率やステップサイズ我々が引か卵全体でそのあまりないペースを確保するために、αで歩いた距離のすべてのステップを制御することができることを意味し、ハハ、実際には、あまりにも速く行っていません、彼は最低点を逃しました。しかし、また、遅すぎる行かないことを保証するために、太陽の原因はダウンし、山に来ていません。だから、α選択がで勾配降下中にしばしば非常に重要です!αが大きすぎず小さすぎ、小さすぎない、それは逃した最低点につながることができ、あまりにも、最低点に到達することができ、遅延につながる可能性が!
- 2)なぜ勾配が負の数で乗算され?
元勾配プラスマイナス記号は、勾配の反対方向に移動することを意味します!私たちは、最初に述べた、この時点での勾配関数の実際の方向は、最も急速に成長している方向であります!そして、私たちはそうここに負の符号を追加する必要があるので、当然それは勾配の負の方向で、どこへ行く方向に向けた最速の減少を必要とします
私たちはより良い二つのグラフを通じて勾配降下の過程を理解します
だから、そのようなA勾配降下最適化アルゴリズムの能力を持つ、「自動学習」へのリターンがあるでしょう
- 比較勾配降下と正規方程式
勾配降下 | 正規方程式 |
---|---|
あなたは学習率を選択する必要があります | 必要はありません。 |
これは、反復解法が必要です | 運用の結果、一度 |
機能の多くは使用することができます | 計算式を必要とし、高い時間複雑性O(N3) |
- 選択してください。
- 小規模のデータ:
- 線形回帰(フィッティング問題を解決していません)
- リッジ回帰
- 大規模データ:SGDRegressor
- 小規模のデータ: