衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

多元線性回歸的特點是什么

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-31 10:34 ? 次閱讀

何為多元線性回歸?對比于前一天學習的線性回歸,多元線性回歸的特點是什么?

多元線性回歸與簡單線性回歸一樣,都是嘗試通過使用一個方程式來適配數據,得出相應結果。不同的是,多元線性回歸方程,適配的是兩個及以上的特征(即X1、X2、...),而簡單線性回歸一般只有一個特征(X)。

另外,與簡單線性回歸相比,多元線性回歸有一個顯著的特點,即能拿到每個特征的權重,這樣你能知道哪些因素對結果的影響最大。

請注意多元線性回歸的以下4個前提:

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

第一、二點比較好理解,第三、四點需要詳細地講一下:

第三點,保持誤差項的方差齊性的意義 : 首先,明確什么叫誤差項?誤差項也可以叫隨機誤差項,一般包括:

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

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

圖片

如何判斷數據是否滿足方差齊性呢?精確的判斷是很難做到的,我們可以通過上圖繪制X值與殘差的關系來大致估計,也可以用一個巧妙的方法: 對殘差做簡單線性回歸,如果得到的直線大致平行于X軸,則說明滿足方差齊性 。

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

第四點,缺少多重共線性的意義 :根據回歸分析的結果,一般而言我們能發現自變量X1、X2、... 等因素對Y的影響。但是存在一種情況:如果各個自變量x之間有很強的線性關系,就無法固定其他變量,也就找不到x和y之間真實的關系了,這就叫做多重共線性。

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

圖片

一般認為VIF大于10時(嚴格是5),代表模型存在嚴重的共線性問題。

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

1.準****備

開始之前,你要確保Pythonpip已經成功安裝在電腦上,如果沒有,請訪問這篇文章:超詳細Python安裝指南 進行安裝。

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

此外,推薦大家用VSCode編輯器,因為它有許多許多的優點:Python 編程的最好搭檔—VSCode 詳細指南。

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

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

本篇文章使用的50_Startups.csv文件,由研發開銷、管理開銷、市場開銷、州和利潤五列數據組成。

本文源代碼和數據文件,可以關注Python實用寶典公眾號,后臺回復:**機器學習3 **下載。

2.數據預處理

導入庫

import pandas as pd
import numpy as np

導入數據集

最后一列利潤為Y值,其他均為X值。

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

將類別數據數字化

將“州”這一列數字化。

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

躲避虛擬變量陷阱

原始數據如下:

圖片

在我們對“州”這列變量進行數字化后,會在前面出現三列one_hot變量,每一列代表一個州。

圖片

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

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

X = X[: , 1:]

拆分數據集為訓練集和測試集

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. 訓練模型

與簡單線性回歸一樣,使用LinearRegression即可實現多元線性回歸(sklearn已經幫你處理好多元的情況)。

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

4. 預測結果

一行搞定:

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

看看效果:

圖片

畫個圖看看對比效果:

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()

圖片

藍色的線是預測值,紅色的點是真實的值,可以看到預測效果還是不錯的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7139

    瀏覽量

    89576
  • 線性
    +關注

    關注

    0

    文章

    199

    瀏覽量

    25200
  • 編輯器
    +關注

    關注

    1

    文章

    806

    瀏覽量

    31290
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85037
收藏 人收藏

    評論

    相關推薦

    基于RK3568國產處理器教學實驗箱操作案例分享:一元線性回歸實驗

    分為:一元線性回歸多元線性回歸。很明顯一元只有一個自變量,多元有多個自變量。
    發表于 12-05 14:14

    matlab回歸分析總結

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

    線性回歸的標準方程法使用

    線性回歸-標準方程法示例(python原生實現)
    發表于 05-07 16:44

    線性回歸定義

    線性回歸與評價指標-2
    發表于 09-03 14:24

    生產應用中使用線性回歸進行實際操練

    線性回歸】生產應用中使用線性回歸進行實際操練
    發表于 05-08 07:45

    Tensorflow的非線性回歸

    Tensorflow 非線性回歸
    發表于 05-12 10:19

    機器學習100天之多元線性回歸

    機器學習100天-多元線性回歸 [代碼實現細節分析]
    發表于 05-12 15:06

    Multivariate Linear Regression多變量線性回歸

    吳恩達機器學習-手寫筆記三 - Multivariate Linear Regression 多變量線性回歸
    發表于 06-11 17:02

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

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

    TensorFlow實現簡單線性回歸

    本小節直接從 TensorFlow contrib 數據集加載數據。使用隨機梯度下降優化器優化單個訓練樣本的系數。實現簡單線性回歸的具體做法導入需要的所有軟件包: 在神經網絡中,所有的輸入都線性增加
    發表于 08-11 19:34

    TensorFlow實現多元線性回歸(超詳細)

    在 TensorFlow 實現簡單線性回歸的基礎上,可通過在權重和占位符的聲明中稍作修改來對相同的數據進行多元線性回歸。在
    發表于 08-11 19:35

    如何用C語言實現一個簡單的一元線性回歸算法

    今天我們用C語言實現一個簡單的線性回歸算法;在代碼前面我們在回顧一下線性回歸線性回歸
    發表于 07-20 06:34

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

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

    基于Weierstrass逼近定理在非線性回歸模型中應用

    基于Weierstrass逼近定理,闡釋了將一般非線性回歸模型近似為多項式模型來處理的數學原理,從而引入了把多元線性回歸分析轉化為多元線性
    發表于 01-12 09:59 ?0次下載

    最小二乘多元線性回歸及Mie光散射便攜式揚塵粒子監測系統的資料概述

    基于Mie光散射原理設計便攜式的揚塵粒子在線監測系統,結合最小二乘多元線性回歸方法對數據精度偏差進行線性修正補償,解決了監測PM 2.5/10顆粒質量濃度靈敏度低的問題,為環境監管執法
    發表于 11-20 17:28 ?10次下載
    最小二乘<b class='flag-5'>多元</b><b class='flag-5'>線性</b><b class='flag-5'>回歸</b>及Mie光散射便攜式揚塵粒子監測系統的資料概述
    bet365娱乐官网| 八宿县| 德州扑克游戏大厅| 环球国际娱乐| 百家乐官网两头压注| 模拟百家乐官网游戏软件| 百家乐官网免费改| 子山午向的房子24山图| 视频百家乐赢钱| 大发888体育娱乐场| 百家乐官网有技巧么| 百家乐官网群到shozo网| 百家乐透视牌靴哪里有| 威尼斯人娱乐场官网是多少 | 冠军百家乐官网现金网| 百家乐官网游戏单机牌| 网络百家乐现金游戏哪里的信誉好啊 | 申博太阳城官网| 百家乐官网玩法与规则| 闲和庄百家乐官网娱乐网| 百家乐算号软件| 国际娱百家乐的玩法技巧和规则| 顶尖娱乐城开户| 百家乐官网路单| 运城百家乐蓝盾| 精英百家乐官网现金网| 百家乐赌神| 即时比分直播| 圣安娜百家乐官网代理| 新梦想百家乐的玩法技巧和规则| 百家乐官网视频双扣| 网上百家乐真实度| 龍城百家乐官网的玩法技巧和规则| 洛克百家乐的玩法技巧和规则| 百家乐官网怎么赢9| gt百家乐平台假吗| bet365怎么上不去| 百家乐官网赌博租| LV百家乐客户端LV| 赌博百家乐官网的乐趣| 新全讯网3344555|