<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 使用梯度下降進行機器學習的線性回歸教程 > 原文: [https://machinelearningmastery.com/linear-regression-tutorial-using-gradient-descent-for-machine-learning/](https://machinelearningmastery.com/linear-regression-tutorial-using-gradient-descent-for-machine-learning/) 隨機梯度下降是機器學習中一種重要且廣泛使用的算法。 在本文中,您將了解如何使用隨機梯度下降來通過最小化訓練數據集上的誤差來學習簡單線性回歸模型的系數。 閱讀這篇文章后你會知道: * 簡單線性回歸模型的形式。 * 梯度下降和隨機梯度下降之間的差異 * 如何使用隨機梯度下降來學習簡單的線性回歸模型。 讓我們開始吧。 ![Linear Regression Tutorial Using Gradient Descent for Machine Learning](img/bc2e90c85380e16fd5ca9f6fc7036057.jpg) 使用梯度下降進行機器學習的線性回歸教程 照片由 [Stig Nygaard](https://www.flickr.com/photos/stignygaard/19990684452/) 拍攝,保留一些權利。 ## 教程數據集 我們正在使用的數據集是完全組成的。 這是原始數據。屬性x是輸入變量,y是我們試圖預測的輸出變量。如果我們得到更多數據,我們只有x值,我們會對預測y值感興趣。 ```py x y 1 1 2 3 4 3 3 2 5 5 ``` 下面是x與y的簡單散點圖。 ![Plot of the Dataset for Simple Linear Regression](img/81b2cddb2dc00c781a6da7d5eab6c992.jpg) 簡單線性回歸數據集的圖 我們可以看到x和y之間的關系看起來是線性的。在中,我們可能會在從圖的左下角對角線到右上角繪制一條線,以概括地描述數據之間的關系。這是一個很好的跡象,表明使用線性回歸可能適合這個小數據集。 ## 獲取免費算法思維導圖 ![Machine Learning Algorithms Mind Map](img/2ce1275c2a1cac30a9f4eea6edd42d61.jpg) 方便的機器學習算法思維導圖的樣本。 我已經創建了一個由類型組織的60多種算法的方便思維導圖。 下載,打印并使用它。 ## 簡單線性回歸 當我們有一個單一的輸入屬性(x)并且我們想要使用線性回歸時,這稱為簡單線性回歸。 通過簡單的線性回歸,我們希望對數據建模如下: y = B0 + B1 * x 這是一條線,其中y是我們想要預測的輸出變量,x是我們知道的輸入變量,B0和B1是我們需要估計的系數。 B0稱為截距,因為它確定了線截取y軸的位置。在機器學習中,我們可以稱之為偏差,因為它被添加以抵消我們所做的所有預測。 B1項稱為斜率,因為它定義了線的斜率或者在我們添加偏差之前x如何轉換為y值。 該模型稱為簡單線性回歸,因為只有一個輸入變量(x)。如果有更多的輸入變量(例如x1,x2等),那么這將被稱為多元回歸。 ## 隨機梯度下降 梯度下降是通過遵循成本函數的梯度來最小化函數的過程。 這包括了解成本的形式以及衍生物,以便從給定的點知道梯度并且可以在該方向上移動,例如,向下走向最小值。 在機器學習中,我們可以使用一種稱為隨機梯度下降的類似技術來最小化模型對訓練數據的誤差。 這種方式的工作方式是每個訓練實例一次一個地顯示給模型。該模型對訓練實例進行預測,計算誤差并更新模型以減少下一次預測的誤差。 該過程可用于在模型中找到導致訓練數據上模型的最小誤差的系數集。每次迭代使用以下等式更新機器學習語言中稱為權重(w)的系數: w = w - alpha * delta 其中w是要優化的系數或權重,alpha是您必須配置的學習率(例如0.1),而梯度是歸因于權重的訓練數據上的模型的誤差。 ## 具有隨機梯度下降的簡單線性回歸 可以使用隨機梯度下降找到簡單線性回歸中使用的系數。 線性回歸是線性系統,系數可以使用線性代數進行分析計算。隨機梯度下降不用于計算實際中線性回歸的系數(在大多數情況下)。 線性回歸確實為學習隨機梯度下降提供了有用的練習,這是用于通過機器學習算法最小化成本函數的重要算法。 如上所述,我們的線性回歸模型定義如下: y = B0 + B1 * x ### Gradient Descent Iteration#1 讓我們從兩個系數的值0.0開始。 B0 = 0.0 B1 = 0.0 y = 0.0 + 0.0 * x 我們可以計算預測誤差如下: 錯誤= p(i) - y(i) 其中p(i)是我們數據集中第i個實例的預測,y(i)是數據集中實例的第i個輸出變量。 我們現在可以使用第一個訓練實例的起點系數來計算y的預測值: x = 1,y = 1 p(i)= 0.0 + 0.0 * 1 p(i)= 0 使用預測輸出,我們可以計算出錯誤: 錯誤= 0 - 1 錯誤= -1 我們現在可以在梯度下降的等式中使用此誤差來更新權重。我們將首先更新攔截,因為它更容易。 我們可以說B0對所有錯誤負責。這就是說,更新權重將僅使用誤差作為梯度。我們可以如下計算B0系數的更新: B0(t + 1)= B0(t) - α*誤差 其中B0(t + 1)是我們將在下一個訓練實例上使用的系數的更新版本,B0(t)是B0 alpha的當前值是我們的學習率,而誤差是我們為訓練實例計算的誤差。讓我們使用0.01的小學習率并將值插入等式中,以計算出B0的新的和略微優化的值: B0(t + 1)= 0.0-0.01 * -1.0 B0(t + 1)= 0.01 現在,我們來看看更新B1的值。我們使用相同的方程式進行一次小改動。錯誤由導致它的輸入過濾。我們可以使用以下等式更新B1: B1(t + 1)= B1(t) - alpha * error * x 在B1(t + 1)是更新系數的情況下,B1(t)是系數的當前版本,α是與上述相同的學習率,誤差是上面計算的相同誤差,x是輸入值。 我們可以將我們的數字插入等式并計算B1的更新值: B1(t + 1)= 0.0-0.01 * -1 * 1 B1(t + 1)= 0.01 我們剛剛完成了梯度下降的第一次迭代,我們將權重更新為B0 = 0.01和B1 = 0.01。必須對我們數據集中剩余的4個實例重復此過程。 一次通過訓練數據集稱為時期。 ### Gradient Descent Iteration#20 讓我們一起跳。 你可以再重復這個過程19次。這是暴露于模型并更新系數的訓練數據的4個完整時期。 以下是您應該看到的20次迭代中系數的所有值的列表: ```py B0 B1 0.01 0.01 0.0397 0.0694 0.066527 0.176708 0.08056049 0.21880847 0.1188144616 0.410078328 0.1235255337 0.4147894001 0.1439944904 0.4557273134 0.1543254529 0.4970511637 0.1578706635 0.5076867953 0.1809076171 0.6228715633 0.1828698253 0.6248337715 0.1985444516 0.6561830242 0.2003116861 0.6632519622 0.1984110104 0.657549935 0.2135494035 0.7332419008 0.2140814905 0.7337739877 0.2272651958 0.7601413984 0.2245868879 0.7494281668 0.219858174 0.7352420252 0.230897491 0.7904386102 ``` 我認為20個迭代或4個時期是一個很好的圓數和一個停下來的好地方。如果你愿意,你可以堅持下去。 您的值應該匹配,但由于不同的電子表格程序和不同的精度,可能會有微小的差異。您可以將每對系數插回到簡單的線性回歸方程中。這很有用,因為我們可以計算每個訓練實例的預測,然后計算誤差。 下面是學習過程展開時每組系數的誤差圖。這是一個有用的圖表,因為它向我們顯示錯誤隨著每次迭代而減少并且開始在結束時反彈一點。 ![Linear Regression Gradient Descent Error versus Iteration](img/ad7c7638b24fc9436fb84bdaee165786.jpg) 線性回歸梯度下降誤差與迭代 您可以看到我們的最終系數的值為B0 = 0.230897491和B1 = 0.7904386102 讓我們將它們插入到我們的簡單線性回歸模型中,并對訓練數據集中的每個點進行預測。 ```py x y prediction 1 1 0.9551001992 2 3 1.690342224 4 3 3.160826275 3 2 2.42558425 5 5 3.8960683 ``` 我們可以再次繪制我們的數據集,覆蓋這些預測(x vs y和x vs預測)。通過5個預測繪制一條線讓我們了解模型與訓練數據的匹配程度。 ![Simple Linear Regression Model](img/bd9ae26f552f9e7226451e2673caed66.jpg) 簡單線性回歸模型 ## 摘要 在這篇文章中,您發現了簡單的線性回歸模型以及如何使用隨機梯度下降來訓練它。 您將完成梯度下降的更新規則的應用。您還學習了如何使用學習的線性回歸模型進行預測。 您對此帖子或隨機梯度下降的簡單線性回歸有任何疑問嗎?發表評論并提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看