Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。
用python實現簡單的線性回歸
利用python實現簡單的線性回歸
今天,我們將純粹使用python來實現最流行和最直接的回歸技術-簡單的線性回歸。當我說純粹使用python。它指的是沒有使用任何python機器學習庫。
當我說簡單的線性回歸,你在想什麼?讓我猜猜:
當我說簡單線性回歸的時候,也許我以上的分析你都猜測過,也許上述假設在技術上是合理的。但有一個特別的理由稱之為簡單的線性回歸。首先,讓我們來了解為什麼我們稱之為簡單的線性回歸。然後我們可以開始我最喜歡的部分,在python中編寫簡單的線性回歸。
構建簡單的線性回歸,而不使用任何Python機器學習庫
什麼是簡單線性回歸?在線性回歸分析文章中,我們主要集中在解釋線性回歸的概念。我們在描述線性回歸通用方程時使用下面的方程:
上述方程更可能是直線方程。
其中m是直線的斜率,c是常數值。如果我們比較上述兩個方程,我們可以感知這兩個方程的相似程度。他們只是在寫的方式不同,其他都是相同的。
在線性回歸中,m()值稱為回歸係數,c()值稱為常數。在上面的方程中,我們只有一個因變量,一個自變量。這就是我們只有一個係數的原因。
從屬變量 - > y或
自變量 - > x或
如果我們有k個自變量。我們將得到k個係數值。如果我們有多個獨立變量來預測依賴值,那麼它被稱為線性回歸算法。當我們只有一個自變量來預測依賴值時,那麼它是簡單的線性回歸問題。
讓我給更多的例子認識線性回歸和簡單的線性回歸問題之間的區別。
簡單的線性回歸示例使用房間的特徵數來預測房價。
考慮學生學習的時間,學生將得到預測分數百分比。
給定時間來預測房間外的溫度。
線性回歸示例有了上述解釋,我希望我解決簡單線性回歸和線性回歸之間的差異。
簡言之:
簡單線性回歸:有一個自變量來預測因變量。
線性回歸:具有多個自變量以預測因變量。
現在讓我們在python中構建簡單的線性回歸,而不使用任何機器庫。
為了實現簡單的線性回歸,我們需要知道以下公式。
計算平均值的公式用於計算方差值的公式用於計算協方差的公式計算W0和W1值的公式我們將使用所有上面列出的公式在Python中實現簡單的線性回歸,而沒有任何機器學習庫。
在python中實現簡單線性回歸的過程中。我們將實現所有上述公式。然後我們將使用實現的函數來構建簡單的線性回歸模型。
之後,我們將使用python表格分析包來實現同樣簡單的線性回歸模型,只有少數幾行代碼。我們可以將其視為檢查前的實現。
讓我們開始按順序構建所需的函數。
平均值函數。
方差函數。
協方差函數。
計算W0和W1值的函數。
函數計算平均值計算方差值的函數使用cal_variance函數,我們將計算readings的方差。
使用已經實現的cal_mean函數,我們計算平均值。
然後我們計算readings中的每個readings與平均值之間的差值。之後,我們對計算的差值進行平方,並將平方差值存儲在 mean_difference_squared_readings中。
找到mean_difference_squared_readings的和,並返回方差和readings長度 -1的數的比率。
計算協方差值的函數使用cal_covariance函數,我們將計算readings_1和readings_2之間的協方差。這裡我們指的是readings_1和readings_2之間的協方差。
使用已經實現的cal_mean函數計算readings_1和readings_2的平均值。
然後將讀數_1和讀數_2的平方差的乘積相加。
最後,返回協方差和(reads_size - 1)的比率。
使用上述函數,我們準備好計算簡單的線性回歸係數W0和W1值。一旦我們實現了這些,我們可以使用這些值來執行預測。
計算W0和W1的值現在讓我們使用所有上面實現的函數來使用簡單的線性回歸技術來預測房價。
我們使用相同的房價數據用python實現線性回歸。
讓我們先加載數據集,看看數據集中有什麼特徵。要加載數據集,我們將使用python數據分析庫pandas。
我們給出了數據集所在的input_path。
使用input_path,我們將數據加載到pandas數據框架中。
接下來,使用加載的數據框架,我們調用simple_linear_regression模型。
在simple_linear_regression函數內部,現在我們只是得到頭名稱並嘗試列印頭名稱。
如果我們在我們的系統中準備好了pandas設置。我們可以期望下面的輸出。
腳本輸出從腳本輸出,我們知道我們有一個獨立變量(square_feet)和一個因變量(price)。我們的目的是使用square_feet和價格讀數來計算簡單的線性回歸係數。然後我們將使用計算的簡單線性回歸係數來預測房價。
現在讓我們寫一個簡單的函數來顯示房子的價格如何隨著square_feet變化。我們將使用散點圖來可視化。
現在讓我們調用scatter_graph函數,將squre_feet讀數作為x參數,將價格讀數作為y參數。
現在,讓我們使用房價數據集來建模簡單的線性回歸。
在simple_linear_regression函數中。我們使用已經實現的cal_mean函數來計算square_feet和price的平均值。
接下來,我們使用已經實現的cal_variance函數來計算square_feet和price 的方差。
之後,我們計算W0和W1值。
我們正在使用W0和W1值來執行預測。這只是預測房價給square_feet價值。
查看下面的完整代碼:
慶祝下吧!這裡我們實現了簡單的線性回歸,並且沒有使用任何機器學習庫。
完整的代碼可以為我們的Github:簡單的線性回歸代碼
英文原文:http://dataaspirant.com/2017/02/15/simple-linear-regression-python-without-any-machine-learning-libraries/