最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python機器學習基礎(chǔ)線性回歸與嶺回歸算法詳解

 更新時間:2021年11月12日 14:38:38   作者:Swayzzu  
這篇文章主要為大家介紹了python機器學習基礎(chǔ)線性回歸與嶺回歸算法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步

一、什么是線性回歸

1.線性回歸簡述

線性回歸,是一種趨勢,通過這個趨勢,我們能預測所需要得到的大致目標值。線性關(guān)系在二維中是直線關(guān)系,三維中是平面關(guān)系。

我們可以使用如下模型來表示線性回歸:y = wx+b(w是權(quán)重,x是特征,b是偏置項)

當有多個特征時,線性關(guān)系模型如下圖所示:

2.數(shù)組和矩陣

數(shù)組

數(shù)組可以是多維的,各個維度的數(shù)組表示如下:

0維:5

1維:[1,2,5,5,4,8]

2維:[[1,4,5],[1,4,7]]

3維:[[[1,4,5],[1,4,7]],[[1,4,5],[1,4,7]]]

數(shù)組運算有加法,乘法。具體計算可以在python中嘗試,數(shù)組是ndarray類型。3.

矩陣

矩陣特點:必須是二維,矩陣的運算滿足了特定的需求。我們可以僅僅通過1步的矩陣乘法,就得出w1*x1+w2*x2+w3*x3這樣模型的結(jié)果。

矩陣乘法的要求會涉及到矩陣的形狀要求:m*n的矩陣 * n*p的矩陣,結(jié)果是m*p的矩陣

也就是說,第一個矩陣的列數(shù),必須要和第二個矩陣的行數(shù)相同。

3.線性回歸的算法

線性回歸是一種迭代的算法。我們需要建立一個函數(shù),對于每一個特征x(i)都有一個對應的權(quán)重w(i),兩者相乘,并最終把所有的特征權(quán)重乘積求和,就是我們的目標結(jié)果。但如何尋找到最佳的權(quán)重,從而使得模型能夠最好地擬合我們的樣本呢?

線性回歸的迭代算法的每次迭代,都會更新權(quán)重w(i)的值,使模型往靠近樣本點的地方更加靠近,而損失函數(shù),就是我們用來求得最佳權(quán)重的函數(shù)。

損失函數(shù)定義如下:

損失意思就是預測的各個目標值,與各個原目標值的差的平方和(誤差平方和)。損失越小也就是預測值與原值越接近,效果越好。該方法也稱為最小二乘法。當損失函數(shù)達到最小值時,所對應的權(quán)重w,就是我們的目標權(quán)重。

二、權(quán)重的求解

1.正規(guī)方程

是求權(quán)重w的一種方法,適用于特征少的數(shù)據(jù)。用的比較少。

2.梯度下降

該方法通過指定學習率,并利用梯度,迭代更新權(quán)重。通常都使用這個方法。

正規(guī)方程API:sklearn.linear_model.LinearRegression()

梯度下降A(chǔ)PI:sklearn.linear_model.SGDRegressor()

兩個算法都可以通過.coef_得到回歸系數(shù),學習率是一個超參數(shù),也可使用網(wǎng)格交叉驗證進行調(diào)優(yōu)。

三、線性回歸案例

1.案例概述

通過從sklearn中獲取的“波士頓房價預測”數(shù)據(jù)進行房價預測,特征有很多,比如該鎮(zhèn)的人均犯罪率、一氧化氮濃度、低收入人群占比等。我們對每一個特征都給出一個權(quán)重,通過算法,求得最佳的權(quán)重即可。

2.數(shù)據(jù)獲取

導入數(shù)據(jù)代碼:

from sklearn.datasets import load_boston 
lb = load_boston()

3.數(shù)據(jù)分割

x_train, x_test, y_train, y_test = train_test_split(lb.data, lb.target, test_size=0.25)

4.數(shù)據(jù)標準化

此處的數(shù)據(jù),需要對特征數(shù)據(jù)以及目標值數(shù)據(jù)都進行標準化,并且需要用不同的標準。

導入標準化方法:from sklearn.preprocessing import StandardScaler

x實例化方法:std_x = StandardScaler()

y實例化方法:std_y = StandardScaler()

標準化:

x_train = std_x.fit_transform(x_train)

x_test = std_x.transform(x_test)

y_train = std_y.fit_transform(y_train)

y_test = std_y.transform(y_test)

5.模型訓練

注意,訓練后得出的目標值,是標準化后的,因此需要使用StandardScaler中的inverse_transform進行轉(zhuǎn)換回原來的值。

實例化算法:lr = LinearRegressor()

將數(shù)據(jù)轉(zhuǎn)為二維:y_train = y_train.reshape(-1,1)

訓練算法:lr.fit(x_train, y_train)

預測結(jié)果:y_predict = lr.predict(x_test)

結(jié)果轉(zhuǎn)為正常結(jié)果:y_lr_predict = std.inverse_transform(y_predict)

6.回歸性能評估

通過對預測值也真實值計算均方誤差可得,API中,輸入真實目標值,以及預測目標值即可(注意:輸入的都是標準化之前的值。

API:sklearn.metrics.mean_squared_error(y_true, y_pred)

線性回歸性能評估:mean_squared_error(y_test, y_lr_predict)

以上為使用線性回歸算法,對房價進行的預測。其他的算法,具體操作基本一致。

7.梯度下降與正規(guī)方程區(qū)別

特點:線性回歸器是最為簡單、易用的回歸模型。 從某種程度上限制了使用,盡管如此,在不知道特征之間關(guān)系的前提下,我們?nèi)匀皇褂镁€性回歸器作為大多數(shù)系統(tǒng)的首要選擇。

小規(guī)模數(shù)據(jù)可以使用LinearRegression(不能解決擬合問題)以及其它

大規(guī)模數(shù)據(jù)需要使用梯度下降法,SGDRegressor

四、嶺回歸Ridge

1.過擬合與欠擬合

欠擬合:一個假設(shè)在訓練數(shù)據(jù)上不能獲得更好的擬合, 但是在訓練數(shù)據(jù)外的數(shù)據(jù)集上也不能很好地擬合數(shù)據(jù),此時認為這個假設(shè)出現(xiàn)了欠擬合的現(xiàn)象。(模型過于簡單)

解決方法:增加特征

過擬合:一個假設(shè)在訓練數(shù)據(jù)上能夠獲得比其他假設(shè)更好的擬合, 但是在訓練數(shù)據(jù)外的數(shù)據(jù)集上卻不能很好地擬合數(shù)據(jù),此時認為這個假設(shè)出現(xiàn)了過擬合的現(xiàn)象。(模型過于復雜)

解決方法:正則化

2.正則化

L2正則化是通過減少權(quán)重的方式,對模型進行優(yōu)化,以解決過擬合的問題。該方法可以使得權(quán)重的每個元素都非常接近于0,參數(shù)變小,則模型變簡單。從而達到解決過擬合問題的效果。

嶺回歸就是帶有正則化的線性回歸。

嶺回歸API:sklearn.linear_model.Ridge

正則化中,alpha(或者lambda)越大,說明對參數(shù)的懲罰越大,參數(shù)就越趨近于0。

嶺回歸優(yōu)點:回歸得到的回歸系數(shù)更符合實際,更可靠。另外,能讓估計參數(shù)的波動范圍變小,變的更穩(wěn)定。在存在病態(tài)數(shù)據(jù)偏多的研究中有較大的實用價值。

以上就是python機器學習基礎(chǔ)線性回歸與嶺回歸算法詳解的詳細內(nèi)容,更多關(guān)于python線性回歸與嶺回歸算法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入淺出分析Python裝飾器用法

    深入淺出分析Python裝飾器用法

    這篇文章主要介紹了Python裝飾器用法,結(jié)合實例形式對比分析了Python裝飾器的定義與使用技巧,需要的朋友可以參考下
    2017-07-07
  • Python簡潔優(yōu)雅的推導式示例詳解

    Python簡潔優(yōu)雅的推導式示例詳解

    這篇文章主要給大家介紹了關(guān)于Python簡潔優(yōu)雅的推導式的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • slearn缺失值處理器之Imputer詳析

    slearn缺失值處理器之Imputer詳析

    這篇文章主要給大家介紹了關(guān)于slearn缺失值處理器之Imputer的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-08-08
  • Python中的 ansible 動態(tài)Inventory 腳本

    Python中的 ansible 動態(tài)Inventory 腳本

    這篇文章主要介紹了Python中的 ansible 動態(tài)Inventory 腳本,本章節(jié)通過實例代碼從mysql數(shù)據(jù)作為數(shù)據(jù)源生成動態(tài)ansible主機為入口介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2020-01-01
  • python中pandas庫中DataFrame對行和列的操作使用方法示例

    python中pandas庫中DataFrame對行和列的操作使用方法示例

    這篇文章主要介紹了python中pandas庫中DataFrame對行和列的操作使用方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • python基礎(chǔ)知識之字典(Dict)

    python基礎(chǔ)知識之字典(Dict)

    這篇文章主要介紹了python基礎(chǔ)知識之字典(Dict)的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 使用Python判斷質(zhì)數(shù)(素數(shù))的簡單方法講解

    使用Python判斷質(zhì)數(shù)(素數(shù))的簡單方法講解

    這篇文章主要介紹了使用Python判斷質(zhì)數(shù)(素數(shù))的簡單方法講解,經(jīng)常被用來做科學計算的Python處理這種小問題當然手到擒來^_-需要的朋友可以參考下
    2016-05-05
  • 一篇文章帶你了解幾個好用的Python技巧

    一篇文章帶你了解幾個好用的Python技巧

    這篇文章主要介紹了幾個Python小技巧,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • python 3.3 下載固定鏈接文件并保存的方法

    python 3.3 下載固定鏈接文件并保存的方法

    今天小編就為大家分享一篇python 3.3 下載固定鏈接文件并保存的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python基于multiprocessing的多進程創(chuàng)建方法

    python基于multiprocessing的多進程創(chuàng)建方法

    這篇文章主要介紹了python基于multiprocessing的多進程創(chuàng)建方法,實例分析了multiprocessing模塊操作進程的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06

最新評論

濉溪县| 阿勒泰市| 平阴县| 渭源县| 黄石市| 辰溪县| 安顺市| 元谋县| 平泉县| 白沙| 三穗县| 鄂托克旗| 临湘市| 永新县| 武义县| 佛教| 顺义区| 鄂伦春自治旗| 河南省| 阜南县| 潼关县| 方城县| 会同县| 平湖市| 嘉兴市| 大埔区| 平果县| 垣曲县| 财经| 渭南市| 象山县| 交口县| 清新县| 方正县| 德保县| 水富县| 吉水县| 大荔县| 贡山| 沁阳市| 凌云县|