python線性回歸

2021-02-20 Python編程學習圈

一.理論基礎1.回歸公式
  對於單元的線性回歸,我們有:f(x) = kx + b 的方程(k代表權重,b代表截距)。
  對於多元線性回歸,我們有:
   
  或者為了簡化,乾脆將b視為k0·x0,,其中k0為1,於是我們就有:
   
2.損失函數


3.誤差衡量
MSE,RMSE,MAE越接近於0越好,R方越接近於1越好。

MSE平均平方誤差(mean squared error)
    

RMSE,是MSE的開根號
  
MAE平均絕對值誤差(mean absolute error)
   

R方
   

二.代碼實現本次,我們將用iris數據集實現單元線性回歸的機器學習,使用boston數據集實現多元線性回歸的機器學習。在python中,單元線性回歸與多元線性回歸的操作完全一樣,這裡只是為了演示而將其一分為二。
1.鳶尾花花瓣長度與寬度的線性回歸
from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegressionimport numpy as np
iris = load_iris()
'''iris數據集的第三列是鳶尾花長度,第四列是鳶尾花寬度x和y就是自變量和因變量reshape(-1,1)就是將iris.data[:,3]由一維數組轉置為二維數組,以便於與iris.data[:,2]進行運算'''x,y = iris.data[:,2].reshape(-1,1),iris.data[:,3]lr = LinearRegression()
'''train_test_split可以進行訓練集與測試集的拆分,返回值分別為訓練集的x,測試集的x,訓練集的y,測試集的y,分別賦值給x_train,x_test,y_train,y_test,test_size:測試集佔比random_state:選定隨機種子'''x_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.25,random_state = 0)lr.fit(x_train,y_train)y_hat = lr.predict(x_test)print(y_train[:5])print(y_hat[:5])
from sklearn.metrics import mean_squared_error,mean_absolute_error,r2_scoreprint('MSE:',mean_squared_error(y_test,y_hat))print('RMSE:',np.sqrt(mean_squared_error(y_test,y_hat))print('MAE:',mean_absolute_error(y_test,y_hat))print('R方:',r2_score(y_test,y_hat))print('R方:',lr.score(x_test,y_test))

from matplotlib import pyplot as pltplt.rcParams['font.family'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = Falseplt.rcParams['font.size'] = 15plt.figure(figsize = (20,8))plt.scatter(x_train,y_train,color = 'green',marker = 'o',label = '訓練集')plt.scatter(x_test,y_test,color = 'orange',marker = 'o',label = '測試集')plt.plot(x,lr.predict(x),'r-')plt.legend()plt.xlabel('花瓣長度')plt.ylabel('花瓣寬度')

就這樣畫出了一張很醜的圖,如果想畫更精美的圖或者其他方面的比較


  剛剛我們做了對鳶尾花花瓣長度和寬度的線性回歸,探討長度與寬度的關係,探究鳶尾花的花瓣寬度受長度變化的趨勢是怎麼樣的。但是在現實生活當中的數據是十分複雜的,像這種單因素影響的事物是比較少的,我們需要引入多元線性回歸來對多個因素的權重進行分配,從而與複雜事物相符合。吶,boston數據集的介紹在這裡了,我就不詳細介紹了
現在,我們要探討boston當中每一個因素對房價的影響有多大,這就是一個多因素影響的典型例子。
import pandas as pdimport numpy as npfrom sklearn.datasets import load_bostonfrom sklearn.linear_model import LinearRegressionfrom sklearn.model_selection import train_test_splitboston = load_boston()lr = LinearRegression()x,y = boston.data,boston.targetx_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.15,random_state = 0)lr.fit(x_train,y_train)print(lr.coef_)print(lr.intercept_)y_hat = lr.predict(x_test)

[-1.24536078e-01 4.06088227e-02 5.56827689e-03 2.17301021e+00
-1.72015611e+01 4.02315239e+00 -4.62527553e-03 -1.39681074e+00
2.84078987e-01 -1.17305066e-02 -1.06970964e+00 1.02237522e-02
-4.54390752e-01]
36.09267761760974

聲明:https://blog.csdn.net/weixin_45891155/article/details/111109655

相關焦點

  • 利用python實現簡單的線性回歸
    用python實現簡單的線性回歸利用python實現簡單的線性回歸今天,我們將純粹使用python來實現最流行和最直接的回歸技術-簡單的線性回歸當我說純粹使用python。它指的是沒有使用任何python機器學習庫。當我說簡單的線性回歸,你在想什麼?讓我猜猜:當我說簡單線性回歸的時候,也許我以上的分析你都猜測過,也許上述假設在技術上是合理的。但有一個特別的理由稱之為簡單的線性回歸。首先,讓我們來了解為什麼我們稱之為簡單的線性回歸。然後我們可以開始我最喜歡的部分,在python中編寫簡單的線性回歸。
  • python|線性回歸問題
    線性回歸是利用數理統計中回歸分析,來確定兩種或兩種以上變量間相互依賴的定量關係的一種統計分析方法。可以解釋為,利用線性回歸方程的最小平方函數對一個或多個自變量和因變量之間的關係進行數學建模。這種函數是一個或多個稱為回歸係數的模型參數的線性組合。
  • Python 機器學習:多元線性回歸
    python機器學習:線性回歸往下講,這篇文章要講解的多元線性回歸。1、什麼是多元線性回歸模型?當y值的影響因素不唯一時,採用多元線性回歸模型。例如商品的銷售額可能不電視廣告投入,收音機廣告投入,報紙廣告投入有關係,可以有 sales =β0+β1*TV+β2* radio+β3*newspaper.
  • python數據分析--回歸函數及線性回歸分析
    1.常見的回歸函數2.工具數據分析有很多成熟的工具可以使用,如R、python、此處我們選用python進行分析。首先,我們需要安裝並導入python數據分析常用的庫。__version__)3.線性回歸分析Y= aX + b + e ,e表示殘差。
  • 線性回歸:簡單線性回歸詳解
    【導讀】本文是一篇專門介紹線性回歸的技術文章,討論了機器學習中線性回歸的技術細節。線性回歸核心思想是獲得最能夠擬合數據的直線。
  • Python環境下的8種簡單線性回歸算法
    如本文所示,在線性回歸模型中,「線性」一詞指的是回歸係數,而不是特徵的 degree。特徵(或稱獨立變量)可以是任何的 degree,甚至是超越函數(transcendental function),比如指數函數、對數函數、正弦函數。因此,很多自然現象可以通過這些變換和線性模型來近似模擬,即使當輸出與特徵的函數關係是高度非線性的也沒問題。
  • Python 實戰多元線性回歸模型,附帶原理+代碼
    來源 | 早起Python( ID:zaoqi-python )「多元線性回歸模型」非常常見,是大多數人入門機器學習的第一個案例,儘管如此,裡面還是有許多值得學習和注意的地方。其中多元共線性這個問題將貫穿所有的機器學習模型,所以本文會「將原理知識穿插於代碼段中」,爭取以不一樣的視角來敘述和講解「如何更好的構建和優化多元線性回歸模型」。主要將分為兩個部分:
  • 在 Python 中使用線性回歸預測數據
    這部分沒有實戰例子,不過我會教你怎麼去用線性回歸替換這些值。所以,讓我們投入編程吧(馬上)在動手之前,去把我以前的文章(Python Packages for Data Mining)中的程序包安裝了是個好主意。
  • Python數據科學 | 線性回歸診斷
    >接上篇的線性回歸文章,傳送門如下。Python數據科學:線性回歸多元線性回歸的前提條件:/ 01 / 殘差分析殘差分析是線性回歸診斷的重要環節。殘差應服從的前提條件有三個:殘差方差齊性殘差獨立同分布殘差不能和自變量相關(不能檢驗)通過查看殘差圖來查看殘差情況。
  • 從statsmodels到線性回歸
    結合計量經濟學知識可知,擬合線性模型通常需要擬合帶截距項的模型,就需要將常係數列合併到解釋變量矩陣中去,使用函數sm.add_constant可以解決這個問題,查看添加常數列的矩陣。統計建模分析中,只得到回歸係數往往是不夠的,回歸係數的顯著水平、模型的R2等都是需要的。如果想得到像其他統計軟體一樣的回歸明細表,對模型返回結果使用summary方法即可。
  • 通過使用Python、pandas和statsmodels線性回歸預測房屋的價格
    通過使用Python、pandas和statsmodels線性回歸預測房屋的價格在這篇文章中,我們將逐步通過建立線性回歸模型來預測經濟活動導致的房屋價格。其中涵蓋的主題包括:1.    什麼是回歸2.    變量的選擇3.    利用pandas讀取數據4.    普通最小二乘假設5.    一元線性回歸6.
  • sklearn機器學習心得—線性回歸|粉絲投稿1
    ,也是重要的算法之一,基本上第一次接觸的機器學習算法就是線性回歸了。因為相對其他算法而言,我覺得線性回歸是相對比較容易的算法,從某種意義上來說,在學習函數的時候已經開始接觸線性回歸了,只不過那個時候並沒有涉及到誤差項,其實在中學的時候就有接觸了,學習的最小二乘法就是啦~~1).對於坐標系中給定的點,我們希望用一條線或是一個類似於:f(x)=θ0+θ1*x1+θ2*x2_...θn*xn 方程來擬合這寫數據點,這就是我們說的回歸了2).這次我們要用的是
  • 從零開始,用Python徒手寫線性回歸
    對於大多數數據科學家而言,線性回歸方法是他們進行統計學建模和預測分析任務的起點。這種方法已經存在了 200 多年,並得到了廣泛研究,但仍然是一個積極的研究領域。由於良好的可解釋性,線性回歸在商業數據上的用途十分廣泛。當然,在生物數據、工業數據等領域也不乏關於回歸分析的應用。另一方面,Python 已成為數據科學家首選的程式語言,能夠應用多種方法利用線性模型擬合大型數據集顯得尤為重要。
  • 使用python+sklearn實現線性回歸示例
    ‍本示例僅使用diabetes數據集的第一個特徵,以說明此回歸技術的二維的圖
  • 線性回歸
    根據給定數據,用線性回歸方法擬合數據。從本周19教技學生作業來看,第1、5、7、8、10組同學完成的不錯。以下是她們各組整合後的代碼。
  • R數據分析:一般線性回歸的做法和解釋
    發現大家做分析做的最多的還是線性回歸,很多人諮詢的都是線性回歸的問題,今天專門出一個線性回歸的文章。
  • 第三天:線性回歸
    其中回歸是指的預測得到連續具體的數值,分類是指預測得到事物所屬的類別,是一個離散的結果。下面再回到今天的問題,「線性回歸」就是指用線性模型來解決回歸問題。線性模型是指自變量之間是線性的關係,可以用線性方程來表達。
  • 對線性回歸,logistic回歸和一般回歸的認識
    前四節主要講述了回歸問題,回歸屬於有監督學習中的一種方法。該方法的核心思想是從連續型統計數據中得到數學模型,然後將該數學模型用於預測或者分類。該方法處理的數據可以是多維的。講義最初介紹了一個基本問題,然後引出了線性回歸的解決方法,然後針對誤差問題做了概率解釋。之後介紹了logistic回歸。最後上升到理論層次,提出了一般回歸。
  • 多重線性回歸分析
    指描述一個因變量與多個自變量的依存關係的回歸分析,其基本形式為:x1,…,xp為p個自變量,β0為常數項,β1,…,βp為偏回歸係數,ε為隨機誤差,又稱為殘差,是y的變化中不能用自變量解釋的部分。 通過樣本估計的多重線性回歸方程:
  • 多元線性回歸分析
    這次筆記的內容是多元線性回歸的SPSS操作及解讀。