回覆列表
  • 1 # AI中國

    線性迴歸

    線性迴歸是一種基於單個預測變數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%的資料會進入測試資料中,其餘資料仍保留在訓練集中。

    建立和訓練模型

    上述程式碼適合訓練資料的線性迴歸模型。

    從模型的預測

    讓我們從測試集中獲取預測,看看它有多好!

    讓我們想象一下預測

    工作完成得相當不錯,已經獲得了一個線性模型!

  • 中秋節和大豐收的關聯?
  • 自動擋汽車掛著N擋,猛踩了下油門,對發動機有傷害嗎?