機器學習十講-第二講迴歸

清風紫雪發表於2021-01-30

迴歸

迴歸三大模型

  • 線性迴歸
  • 嶺迴歸
  • LASSO迴歸

 

使用迴歸模型預測鮑魚年齡

一、匯入資料,進行分析

 

 可以看出鮑魚有9個特徵

每個特徵所對應的資料代表的含義是:

 

 資料集一共有 4177 個樣本,每個樣本有 9 個特徵。其中 rings 為鮑魚環數,能夠代表鮑魚年齡,是預測變數。除了 sex 為離散特徵,其餘都為連續變數。

首先借助 seaborn 中的 countplot 函式繪製條形圖,觀察 sex 列的取值分佈情況。

 

 對於連續特徵,可以使用 seaborn 的 distplot 函式繪製直方圖觀察特徵取值情況。我們將 8 個連續特徵的直方圖繪製在一個 4 行 2 列的子圖佈局中。

 

 也可以通過,熱力圖來展示性別對其他特徵的影響

 

 為了定量地分析特徵之間的線性相關性,我們計算特徵之間的相關係數矩陣,並藉助熱力圖將相關性視覺化。

 

 

二、鮑魚資料預處理

對 sex 特徵進行 OneHot 編碼

新增取值為 1 的特徵(若是用sklearn中的linear_model裡的迴歸函式,則不必新增)

根據鮑魚環計算年齡

一般每過一年,鮑魚就會在其殼上留下一道深深的印記,這叫生長紋,就相當於樹木的年輪。在本資料集中,我們要預測的是鮑魚的年齡,可以通過環數 rings 加上 1.5 得到。

構造兩組特徵集

將鮑魚資料集劃分為訓練集和測試集

實現線性迴歸和嶺迴歸

構建自己的線性迴歸方程

 

 

 

 

 使用sklearn裡的線性方程

這裡所用的訓練集的引數:是不包含ones那一列的

 

 可見結果值相同,我們使用 Numpy 實現的線性迴歸模型與 sklearn 得到的結果是一致的。

構建自己的嶺迴歸方程

 

 

 

 

 使用sklearn裡的嶺迴歸方程

使用 LASSO 構建鮑魚年齡預測模型

 

 

鮑魚年齡預測模型效果評估

 

可以看出:嶺迴歸和線性迴歸比較好

 

可以看出三者都不好,嶺迴歸相對好

 

 

 

相關文章