python線性回歸實例 python一元線性回歸分析代碼


python線性回歸實例 python一元線性回歸分析代碼


線性回歸可能是最常見的算法之一,線性回歸是機器學習實踐者必須知道的 。這通常是初學者第一次接觸的機器學習算法,了解它的操作方式對于更好地理解它至關重要 。
所以,簡單地說,讓我們來分解一下真正的問題:什么是線性回歸?
線性回歸定義線性回歸是一種有監督的學習算法,旨在采用線性方法來建模因變量和自變量之間的關系 。換句話說,它的目標是擬合一條最好地捕捉數據關系的線性趨勢線,并且,從這條線,它可以預測目標值可能是什么 。
太好了,我知道它的定義,但它是如何工作的呢?好問題!為了回答這個問題,讓我們逐步了解一下線性回歸是如何運作的:
  1. 擬合數據(如上圖所示) 。
  2. 計算點之間的距離(圖上的紅點是點,綠線是距離),然后求平方,然后求和(這些值是平方的,以確保負值不會產生錯誤的值并阻礙計算) 。這是算法的誤差,或者更好地稱為殘差
  3. 存儲迭代的殘差
  4. 基于一個優化算法,使得該線稍微“移動”,以便該線可以更好地擬合數據 。
  5. 重復步驟2-5,直到達到理想的結果,或者剩余誤差減小到零 。
這種擬合直線的方法稱為最小二乘法 。
線性回歸背后的數學如果已經理解的請隨意跳過這一部分
【python線性回歸實例 python一元線性回歸分析代碼】線性回歸算法如下:
可以簡化為:
以下算法將基本完成以下操作:
  1. 接受一個Y向量(你的數據標簽,(房價,股票價格,等等…)
這是你的目標向量,稍后將用于評估你的數據(稍后將詳細介紹) 。
  1. 矩陣X(數據的特征):
這是數據的特征,即年齡、性別、性別、身高等 。這是算法將實際用于預測的數據 。注意如何有一個特征0 。這稱為截距項,且始終等于1 。
  1. 取一個權重向量,并將其轉置:
這是算法的神奇之處 。所有的特征向量都會乘以這些權重 。這就是所謂的點積 。實際上,你將嘗試為給定的數據集找到這些值的最佳組合 。這就是所謂的優化 。
  1. 得到輸出向量:
這是從數據中輸出的預測向量 。然后,你可以使用成本函數來評估模型的性能 。
這基本上就是用數學表示的整個算法 。現在你應該對線性回歸的功能有一個堅實的理解 。但問題是,什么是優化算法?我們如何選擇最佳權重?我們如何評估績效?
成本函數成本函數本質上是一個公式,用來衡量模型的損失或“成本” 。如果你曾經參加過任何Kaggle比賽,你可能會遇到過一些 。一些常見的方法包括:
  • 均方誤差
  • 均方根誤差
  • 平均絕對誤差
這些函數對于模型訓練和開發是必不可少的,因為它們回答了“我的模型預測新實例的能力如何”這一基本問題?”. 請記住這一點,因為這與我們的下一個主題有關 。
優化算法優化通常被定義為改進某事物,使其發揮其全部潛力的過程 。這也適用于機器學習 。在ML的世界里,優化本質上是試圖為某個數據集找到最佳的參數組合 。這基本上是機器學習的“學習”部分 。
我將討論兩種最常見的算法:梯度下降法和標準方程 。
梯度下降梯度下降是一種優化算法,旨在尋找函數的最小值 。它通過在梯度的負方向上迭代地采取步驟來實現這個目標 。在我們的例子中,梯度下降將通過移動函數切線的斜率來不斷更新權重 。
梯度下降的一個具體例子為了更好地說明梯度下降,讓我們看一個簡單的例子 。想象一個人在山頂上,他/她想爬到山底 。他們可能會做的是環顧四周,看看應該朝哪個方向邁出一步,以便更快地下來 。然后,他們可能會朝這個方向邁出一步,現在他們離目標更近了 。然而,它們在下降時必須小心,因為它們可能會在某一點卡住,所以我們必須確保相應地選擇我們的步長 。

推薦閱讀