線性迴歸
線性迴歸是一種基於單個預測變數X預測響應Y的方法。假設X和Y之間存在近似線性關係。在數學上,我們可以將此關係表示為:
Y ≈ ɒ + ß X + ℇ
其中ɒ和ß是兩個未知常數,表示線性模型中的截距和斜率項,ℇ是估計中的誤差。
舉例
我們來看一個最簡單的例子。僅使用兩個資料點計算迴歸。
這裡我們有兩個黑點代表的2個數據點。當我們計算迴歸線時,我們所要做的就是繪製一條儘可能接近每一點的線。
在這裡,我們有一個完美擬合的線,因為我們只有兩個點。現在,我們必須考慮一個兩個以上資料點的情況。
透過應用線性迴歸,我們可以採用多個X並預測相應的Y值。這在下圖中描述:
我們使用線性迴歸的目標是最小化所有資料點和線之間的垂直距離。
而你現在可能有了一個基本的想法,那就是線性迴歸的目的是什麼。
Python程式碼
首先,讓我們匯入庫:
下一步是匯入和檢查資料。
在這裡,使用USA_Housing.csv作為示例資料集。探索資料集始終是一種好習慣。嘗試使用自己的檔案,並執行上面的程式碼以獲取有關資料集的所有可能資訊。
資料集的前五個記錄的快照
在這裡,我正在考慮將Price作為因變數,其餘作為自變數。這意味著我必須根據自變數預測價格。
現在是時候使用資料並建立一些視覺化的圖。
配對圖基於兩個基本圖形,即直方圖和散點圖。對角線上的直方圖允許我們看到單個變數的分佈,而上下三角形的散點圖顯示兩個變數之間的關係(或缺少)。
開始探索單個變數的一個好方法是使用直方圖。直方圖將變數劃分為組距(bin),計算每個組距中的資料點,並顯示x軸上的組距和y軸上的計數。
關聯性
相關係數或簡稱相關性是一個範圍從-1到1的索引。當該值接近零時,沒有線性關係。隨著相關性接近1或-1,關係更強。值為1(或-1)表示兩個變數之間的完美線性關係。讓我們找到資料集中變數之間的相關性。
現在,讓我們使用熱圖繪製相關性:
黑色表示兩個變數之間沒有線性關係。較淺的陰影表明變數之間的關係更加線性。
決定係數
決定係數R2是響應變數Y的變化的分數(百分比),其可由預測變數X解釋。其範圍在0(無可預測性)與1(或100%)之間,其表示完全可預測性。高的R2表示能夠以較少的錯誤預測響應變數。
訓練線性迴歸模型
我們現在開始訓練迴歸模型。我們需要首先將資料拆分為包含需要訓練的特徵的X陣列,以及包含目標變數的y陣列,在本例中為Price列。我們將丟擲Area列,因為它只包含線性迴歸模型無法使用的文字資訊。
訓練測試拆分
我們的目標是建立一個能夠很好地推廣新資料的模型。我們的測試集用作新資料的代理。訓練資料是我們應用線性迴歸演算法的資料。最後我們在測試資料上測試該演算法。拆分程式碼如下:
從上面的程式碼片段中我們可以推斷出40%的資料會進入測試資料中,其餘資料仍保留在訓練集中。
建立和訓練模型
上述程式碼適合訓練資料的線性迴歸模型。
從模型的預測
讓我們從測試集中獲取預測,看看它有多好!
讓我們想象一下預測
工作完成得相當不錯,已經獲得了一個線性模型!
線性迴歸
線性迴歸是一種基於單個預測變數X預測響應Y的方法。假設X和Y之間存在近似線性關係。在數學上,我們可以將此關係表示為:
Y ≈ ɒ + ß X + ℇ
其中ɒ和ß是兩個未知常數,表示線性模型中的截距和斜率項,ℇ是估計中的誤差。
舉例
我們來看一個最簡單的例子。僅使用兩個資料點計算迴歸。
這裡我們有兩個黑點代表的2個數據點。當我們計算迴歸線時,我們所要做的就是繪製一條儘可能接近每一點的線。
在這裡,我們有一個完美擬合的線,因為我們只有兩個點。現在,我們必須考慮一個兩個以上資料點的情況。
透過應用線性迴歸,我們可以採用多個X並預測相應的Y值。這在下圖中描述:
我們使用線性迴歸的目標是最小化所有資料點和線之間的垂直距離。
而你現在可能有了一個基本的想法,那就是線性迴歸的目的是什麼。
Python程式碼
首先,讓我們匯入庫:
下一步是匯入和檢查資料。
在這裡,使用USA_Housing.csv作為示例資料集。探索資料集始終是一種好習慣。嘗試使用自己的檔案,並執行上面的程式碼以獲取有關資料集的所有可能資訊。
資料集的前五個記錄的快照
在這裡,我正在考慮將Price作為因變數,其餘作為自變數。這意味著我必須根據自變數預測價格。
現在是時候使用資料並建立一些視覺化的圖。
配對圖基於兩個基本圖形,即直方圖和散點圖。對角線上的直方圖允許我們看到單個變數的分佈,而上下三角形的散點圖顯示兩個變數之間的關係(或缺少)。
開始探索單個變數的一個好方法是使用直方圖。直方圖將變數劃分為組距(bin),計算每個組距中的資料點,並顯示x軸上的組距和y軸上的計數。
關聯性
相關係數或簡稱相關性是一個範圍從-1到1的索引。當該值接近零時,沒有線性關係。隨著相關性接近1或-1,關係更強。值為1(或-1)表示兩個變數之間的完美線性關係。讓我們找到資料集中變數之間的相關性。
現在,讓我們使用熱圖繪製相關性:
黑色表示兩個變數之間沒有線性關係。較淺的陰影表明變數之間的關係更加線性。
決定係數
決定係數R2是響應變數Y的變化的分數(百分比),其可由預測變數X解釋。其範圍在0(無可預測性)與1(或100%)之間,其表示完全可預測性。高的R2表示能夠以較少的錯誤預測響應變數。
訓練線性迴歸模型
我們現在開始訓練迴歸模型。我們需要首先將資料拆分為包含需要訓練的特徵的X陣列,以及包含目標變數的y陣列,在本例中為Price列。我們將丟擲Area列,因為它只包含線性迴歸模型無法使用的文字資訊。
訓練測試拆分
我們的目標是建立一個能夠很好地推廣新資料的模型。我們的測試集用作新資料的代理。訓練資料是我們應用線性迴歸演算法的資料。最後我們在測試資料上測試該演算法。拆分程式碼如下:
從上面的程式碼片段中我們可以推斷出40%的資料會進入測試資料中,其餘資料仍保留在訓練集中。
建立和訓練模型
上述程式碼適合訓練資料的線性迴歸模型。
從模型的預測
讓我們從測試集中獲取預測,看看它有多好!
讓我們想象一下預測
工作完成得相當不錯,已經獲得了一個線性模型!