0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

多元線性回歸的特點(diǎn)是什么

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-31 10:34 ? 次閱讀

何為多元線性回歸?對(duì)比于前一天學(xué)習(xí)的線性回歸,多元線性回歸的特點(diǎn)是什么?

多元線性回歸與簡(jiǎn)單線性回歸一樣,都是嘗試通過(guò)使用一個(gè)方程式來(lái)適配數(shù)據(jù),得出相應(yīng)結(jié)果。不同的是,多元線性回歸方程,適配的是兩個(gè)及以上的特征(即X1、X2、...),而簡(jiǎn)單線性回歸一般只有一個(gè)特征(X)。

另外,與簡(jiǎn)單線性回歸相比,多元線性回歸有一個(gè)顯著的特點(diǎn),即能拿到每個(gè)特征的權(quán)重,這樣你能知道哪些因素對(duì)結(jié)果的影響最大。

請(qǐng)注意多元線性回歸的以下4個(gè)前提:

1.線性:自變量和因變量的關(guān)系應(yīng)該大致呈線性的。
2.呈現(xiàn)多元正態(tài)分布。
3.保持誤差項(xiàng)的方差齊性(誤差項(xiàng)方差必須等同)。
4.缺少多重共線性。

第一、二點(diǎn)比較好理解,第三、四點(diǎn)需要詳細(xì)地講一下:

第三點(diǎn),保持誤差項(xiàng)的方差齊性的意義 : 首先,明確什么叫誤差項(xiàng)?誤差項(xiàng)也可以叫隨機(jī)誤差項(xiàng),一般包括:

1)模型中省略的對(duì)被解釋變量(Y)不重要的影響因素 (解釋變量(X));
2)解釋變量(X)和被解釋變量(Y)的觀測(cè)誤差;
3)經(jīng)濟(jì)系統(tǒng)中無(wú)法控制、不易度量的隨機(jī)因素。

再確定什么叫 方差齊性 :顧名思義,方差相等。與什么東西的方差呢?這里需要引入殘差的概念:殘差,即預(yù)測(cè)值和真實(shí)值之間的差值。而方差齊性,指的就是滿足隨機(jī)分布的殘差,如下圖所示:

圖片

如何判斷數(shù)據(jù)是否滿足方差齊性呢?精確的判斷是很難做到的,我們可以通過(guò)上圖繪制X值與殘差的關(guān)系來(lái)大致估計(jì),也可以用一個(gè)巧妙的方法: 對(duì)殘差做簡(jiǎn)單線性回歸,如果得到的直線大致平行于X軸,則說(shuō)明滿足方差齊性 。

這種觀察自變量與殘差之間是否存在線性關(guān)系(BP法)或非線性關(guān)系(White檢驗(yàn))是較為常用的兩種方差齊性檢驗(yàn)的方法。

第四點(diǎn),缺少多重共線性的意義 :根據(jù)回歸分析的結(jié)果,一般而言我們能發(fā)現(xiàn)自變量X1、X2、... 等因素對(duì)Y的影響。但是存在一種情況:如果各個(gè)自變量x之間有很強(qiáng)的線性關(guān)系,就無(wú)法固定其他變量,也就找不到x和y之間真實(shí)的關(guān)系了,這就叫做多重共線性。

有多種方法可以檢測(cè)多重共線性,較常使用的是回歸分析中的VIF值(方差膨脹因子),VIF值越大,多重共線性越嚴(yán)重。VIF怎么計(jì)算? VIF=1/(1-R^2) , 其中R^2是樣本可決系數(shù)。樣本可決系數(shù)怎么計(jì)算?答案是通過(guò)殘差,這里有詳細(xì)的計(jì)算方法:

圖片

一般認(rèn)為VIF大于10時(shí)(嚴(yán)格是5),代表模型存在嚴(yán)重的共線性問(wèn)題。

講了這么多理論知識(shí),大家可能覺得比較枯燥,但是實(shí)際上本文最難的也就是這些理論知識(shí),希望大家能好好消化。下面正式開始實(shí)操部分。

1.準(zhǔn)****備

開始之前,你要確保Pythonpip已經(jīng)成功安裝在電腦上,如果沒有,請(qǐng)?jiān)L問(wèn)這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

此外,推薦大家用VSCode編輯器,因?yàn)樗性S多許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。

準(zhǔn)備輸入命令安裝依賴,如果你沒有VSCode編輯器,Windows環(huán)境下打開 Cmd (開始-運(yùn)行-CMD),蘋果系統(tǒng)環(huán)境下請(qǐng)打開 Terminal (command+空格輸入Terminal),如果你用的是VSCode編輯器或Pycharm,可以直接在下方的Terminal中輸入命令:

pip install pandas
pip install numpy
pip install matplotlib
pip install scikit-learn

本篇文章使用的50_Startups.csv文件,由研發(fā)開銷、管理開銷、市場(chǎng)開銷、州和利潤(rùn)五列數(shù)據(jù)組成。

本文源代碼和數(shù)據(jù)文件,可以關(guān)注Python實(shí)用寶典公眾號(hào),后臺(tái)回復(fù):**機(jī)器學(xué)習(xí)3 **下載。

2.數(shù)據(jù)預(yù)處理

導(dǎo)入庫(kù)

import pandas as pd
import numpy as np

導(dǎo)入數(shù)據(jù)集

最后一列利潤(rùn)為Y值,其他均為X值。

dataset = pd.read_csv('50_Startups.csv')
X = dataset.iloc[:, :-1].values
Y = dataset.iloc[:, 4].values

將類別數(shù)據(jù)數(shù)字化

將“州”這一列數(shù)字化。

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder = LabelEncoder()
X[:, 3] = labelencoder.fit_transform(X[:, 3])
# 一共有3個(gè)州
onehotencoder = OneHotEncoder(categorical_features=[3])
X = onehotencoder.fit_transform(X).toarray()

躲避虛擬變量陷阱

原始數(shù)據(jù)如下:

圖片

在我們對(duì)“州”這列變量進(jìn)行數(shù)字化后,會(huì)在前面出現(xiàn)三列one_hot變量,每一列代表一個(gè)州。

圖片

這就出現(xiàn)虛擬變量陷阱了,比如第一列我們能通過(guò)另外兩列的值得到:如果2、3列為0,第1列肯定為1,如果2、3列存在不為0的值,則第1列肯定為1。

因此,這里第一列沒有使用的必要。

X = X[: , 1:]

拆分?jǐn)?shù)據(jù)集為訓(xùn)練集和測(cè)試集

from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 0)

3. 訓(xùn)練模型

與簡(jiǎn)單線性回歸一樣,使用LinearRegression即可實(shí)現(xiàn)多元線性回歸(sklearn已經(jīng)幫你處理好多元的情況)。

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, Y_train)

4. 預(yù)測(cè)結(jié)果

一行搞定:

y_pred = regressor.predict(X_test)
print("real:", Y_test)
print("predict:", y_pred)

看看效果:

圖片

畫個(gè)圖看看對(duì)比效果:

map_index = list(range(len(Y_test)))
plt.scatter(map_index, Y_test, color='red')
plt.plot(map_index, y_pred, color='blue')
plt.show()

圖片

藍(lán)色的線是預(yù)測(cè)值,紅色的點(diǎn)是真實(shí)的值,可以看到預(yù)測(cè)效果還是不錯(cuò)的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • 線性
    +關(guān)注

    關(guān)注

    0

    文章

    196

    瀏覽量

    25119
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    800

    瀏覽量

    31055
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84375
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    matlab回歸分析總結(jié)

    1、多元線性回歸2、多項(xiàng)式回歸3、非線性回歸4、逐步回歸[hide][/hide]
    發(fā)表于 03-20 10:26

    線性回歸的標(biāo)準(zhǔn)方程法使用

    線性回歸-標(biāo)準(zhǔn)方程法示例(python原生實(shí)現(xiàn))
    發(fā)表于 05-07 16:44

    線性回歸定義

    線性回歸與評(píng)價(jià)指標(biāo)-2
    發(fā)表于 09-03 14:24

    生產(chǎn)應(yīng)用中使用線性回歸進(jìn)行實(shí)際操練

    線性回歸】生產(chǎn)應(yīng)用中使用線性回歸進(jìn)行實(shí)際操練
    發(fā)表于 05-08 07:45

    Tensorflow的非線性回歸

    Tensorflow 非線性回歸
    發(fā)表于 05-12 10:19

    機(jī)器學(xué)習(xí)100天之多元線性回歸

    機(jī)器學(xué)習(xí)100天-多元線性回歸 [代碼實(shí)現(xiàn)細(xì)節(jié)分析]
    發(fā)表于 05-12 15:06

    Multivariate Linear Regression多變量線性回歸

    吳恩達(dá)機(jī)器學(xué)習(xí)-手寫筆記三 - Multivariate Linear Regression 多變量線性回歸
    發(fā)表于 06-11 17:02

    回歸算法有哪些,常用回歸算法(3種)詳解

    損失函數(shù): 其中,需要對(duì)所有訓(xùn)練樣本的誤差求和。根據(jù)輸入變量 X 的數(shù)量和類型,可劃分出多種線性回歸類型:簡(jiǎn)單線性回歸(一個(gè)輸入變量,一個(gè)輸出變量),
    發(fā)表于 07-28 14:36

    TensorFlow實(shí)現(xiàn)簡(jiǎn)單線性回歸

    本小節(jié)直接從 TensorFlow contrib 數(shù)據(jù)集加載數(shù)據(jù)。使用隨機(jī)梯度下降優(yōu)化器優(yōu)化單個(gè)訓(xùn)練樣本的系數(shù)。實(shí)現(xiàn)簡(jiǎn)單線性回歸的具體做法導(dǎo)入需要的所有軟件包: 在神經(jīng)網(wǎng)絡(luò)中,所有的輸入都線性增加
    發(fā)表于 08-11 19:34

    TensorFlow實(shí)現(xiàn)多元線性回歸(超詳細(xì))

    在 TensorFlow 實(shí)現(xiàn)簡(jiǎn)單線性回歸的基礎(chǔ)上,可通過(guò)在權(quán)重和占位符的聲明中稍作修改來(lái)對(duì)相同的數(shù)據(jù)進(jìn)行多元線性回歸。在
    發(fā)表于 08-11 19:35

    如何用C語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的一元線性回歸算法

    今天我們用C語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的線性回歸算法;在代碼前面我們?cè)诨仡櫼幌?b class='flag-5'>線性回歸線性回歸
    發(fā)表于 07-20 06:34

    IWDG的特點(diǎn)是什么?怎么使用?

    stm32獨(dú)立看門狗和窗口看門狗區(qū)別是什么?IWDG的特點(diǎn)是什么?怎么使用?WWDG的特點(diǎn)是什么?怎么使用?
    發(fā)表于 09-18 06:35

    基于多元線性回歸的阻性和容性電流分解

    基于多元線性回歸的阻性和容性電流分解_韓永森
    發(fā)表于 01-07 17:16 ?2次下載

    基于Weierstrass逼近定理在非線性回歸模型中應(yīng)用

    基于Weierstrass逼近定理,闡釋了將一般非線性回歸模型近似為多項(xiàng)式模型來(lái)處理的數(shù)學(xué)原理,從而引入了把多元線性回歸分析轉(zhuǎn)化為多元線性
    發(fā)表于 01-12 09:59 ?0次下載

    最小二乘多元線性回歸及Mie光散射便攜式揚(yáng)塵粒子監(jiān)測(cè)系統(tǒng)的資料概述

    基于Mie光散射原理設(shè)計(jì)便攜式的揚(yáng)塵粒子在線監(jiān)測(cè)系統(tǒng),結(jié)合最小二乘多元線性回歸方法對(duì)數(shù)據(jù)精度偏差進(jìn)行線性修正補(bǔ)償,解決了監(jiān)測(cè)PM 2.5/10顆粒質(zhì)量濃度靈敏度低的問(wèn)題,為環(huán)境監(jiān)管執(zhí)法
    發(fā)表于 11-20 17:28 ?10次下載
    最小二乘<b class='flag-5'>多元</b><b class='flag-5'>線性</b><b class='flag-5'>回歸</b>及Mie光散射便攜式揚(yáng)塵粒子監(jiān)測(cè)系統(tǒng)的資料概述