迴歸
迴歸三大模型
- 線性迴歸
- 嶺迴歸
- 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 構建鮑魚年齡預測模型
鮑魚年齡預測模型效果評估
可以看出:嶺迴歸和線性迴歸比較好
可以看出三者都不好,嶺迴歸相對好