Python 散點圖線性擬合_機器學習之利用Python進行簡單線性回歸分析

ed04ed171fc7e4801dbbc966fbb43d0b.png
前言:在利用機器學習方法進行數據分析時經常要了解變量的相關性,有時還需要對變量進行回歸分析。本文首先對人工智能/機器學習/深度學習、相關分析/因果分析/回歸分析等易混淆的概念進行區分,最后結合案例介紹如何利用Python進行簡單線性回歸分析。

6563365d7f3a55233070223a4be981af.png

一、機器學習

1.1什么是機器學習

談到機器學習,人們會很容易聯想到人工智能和深度學習,我們通過這三個概念的對比來說明三者的區別和聯系。

人工智能Artificial Inteligence:這個概念早在1956年就被提出,當時科學家夢想著用當時剛剛出現的計算機來構造復雜的、擁有像人類智慧特性的機器。目前,AI的分支很多,諸如專家系統、機器學習、自然語言處理以及推薦系統等。

機器學習Mechine Learning:機器學習是實現人工智能的一種方法,是使用算法解析數據、并從中學習,然后對真實世界中事件作出決策或預測。機器學習是通過大量數據來“訓練”算法模型,利用算法從數據中學習如何完成任務。學習方法可以分為:監督學習(如分類)、無監督學習(如聚類)等。(下面介紹一些基礎概念)

  • 學習(learning):是指找到特征(feature)和標簽(label)的映射(mapping)關系。
  • 有監督學習(supervised learning):不僅將訓練數據(特征)丟給計算機,還把分類的結果(數據具有的標簽)也一并丟給計算機分析,如分類和回歸;
  • 無監督學習(unsupervised learning):只提供訓練數據(特征),不給結果(標簽),計算機只能利用其計算能力分析數據的特征,然后得到一些數據集合,集合內的數據在某些特征上相同或相似,如聚類分析;
  • 半監督學習(semi-supervised learning):給計算機大量訓練數據與少量分類結果(具有同一標簽的集合)。
  • 聚類(clustering):無監督學習的結果,聚類的結果將產生若干組集合,同集合中對象彼此相似,與其他集合中對象相異。
  • 分類(classification)與回歸(regression):有監督學習的兩大應用,其區別在于分別產生離散或連續的結果(分類及回歸方法的區別在下文中有較詳細分析)。
起名困難癥用戶:機器學習之利用Python進行邏輯回歸分析?zhuanlan.zhihu.com
ce05fdbbd99f7fa93c8ca6aa1ef43910.png

深度學習Deep Learning:深度學習是機器學習的一種方法,其本身會用到有監督和無監督的學習方法來訓練深度神經網絡。

82554f5d9fda073c3ecfd35cdd10b9e4.png
人工智能、機器學習、深度學習三者的關系

1.2機器學習的步驟

利用機器學習方法分析、解決問題的過程可分為五個步驟:

e4dc2ad6d180caf4e6439f86a332d11b.png
機器學習主要步驟

1.提出問題

明確要分析的問題,為后續的機器學習過程提供目標。

2.理解數據(采集并查看數據)

采集數據(根據研究問題采集數據);導入數據(從不同數據源讀取數據);查看數據信息(描述統計信息、數據缺失值、異常值情況等,可以結合具體圖表來直觀查看數據)。

3.數據清洗(數據預處理)

數據預處理是數據分析過程中關鍵的一環,數據質量決定了機器學習分析的上限,而具體采用的算法和模型只是逼近這個上限。(包括缺失數據處理、異常值處理、數據類型轉換、列名重命名、數據排序、選擇子集、特征工程等步驟)

4.構建模型

根據研究的問題以及數據的特點選擇合適的算法,將訓練數據放入所選擇的機器學習算法中構建相應的模型,有時需要對多種算法模型進行比較,甚至進行模型整合。

5.模型評估

利用測試數據對得到的模型效果進行評估,具體評估指標依據研究的問題及采用的模型進行選擇,常用到的指標需根據模型的類型而定,如分類模型常用準確率、ROC-AUC等,而回歸模型可以用決定系數等。

各類學習器評價指標 - MsSpark的博客 - CSDN博客?blog.csdn.net
322e9f2a58df4379fb9d3305de50534d.png

1.3特征(feature)和標簽(label)

機器學習中經常遇到特征及標簽兩個概念:

特征:數據的特征,描述數據的屬性。

標簽:數據的標簽,對數據的預測結果。

1.4Python機器學習包sklearn

Python提供了強大的sklearn包,可以調用不同機器學習方法解決問題。我們并不需要一開始就掌握sklearn中每種機器學習方法,只需在用到某個機器學習方法時,再去sklearn中找對應算法的用法即可。本文第三部分會以調用sklearn包中LinearRegression方法進行簡單線性回歸分析為例,說明如何使用Python進行數據分析。

43cf833a83880786c9ff4abfc2e2d2f1.png
sklearn algorithm cheat-sheet

二、相關分析及回歸分析

機器學習常用來解決相關分析和回歸分析的問題,本文接下來主要介紹兩者的相關概念及評估指標,以及它們的區別與聯系。

2.1相關分析及回歸分析

  • 相關分析(Correlation analysis):研究兩個或兩個以上處于同等地位的隨機變量間的相關關系的統計分析方法。
  • 回歸分析(Regression analysis):確定兩種或兩種以上變量間相互依賴定量關系的統計分析方法,將變量分為因變量和自變量。

兩者的區別:

  • 相關分析中涉及的變量不區分自變量和因變量,變量之間關系是對等的;回歸分析中,需要根據研究對象的性質和研究分析的目的,區分變量為自變量和因變量。
  • 相關分析主要通過“相關系數”反映變量間相關程度的大小,因為變量間關系是對等的,所有相關系數是唯一的;回歸分析中,自變量和因變量之間可能存在多個回歸方程。

兩者的聯系:

  • 相關分析是回歸分析的基礎和前提,回歸分析是相關分析的深入和繼續。
  • 相關分析表現變量間數量變化的相關程度,回歸分析表現變量間數量相關的具體形式。
  • 只有變量間存在高度相關時,進行回歸分析需求具體形式才有意義。

2.2線性相關性類型及回歸分析類型

2.2.1線性相關性類型

以兩個變量的簡單線性相關為例:

散點圖(直觀判斷變量間是否有相關性的最佳方法):結合散點圖來直觀顯示各個變量之間的相關性。

三種線性相關性:正線性相關(總體表現直線朝上);負線性相關;非線性相關。

71cf59a5c3afa090180212909811bfb4.png

2.2.2回歸分析類型

根據不同的維度對回歸分析進行分類:

  • 一元回歸和多元multivariate回歸分析(因變量多少);
  • 簡單回歸和多重multiple回歸分析(自變量多少);
  • 線性回歸和非線性回歸(自變量及因變量間關系類型)。

2.3衡量指標

2.3.1衡量變量間相關度的指標

符號(反映兩個變量的相關性方向);大小(表示兩個變量相關性程度)

  • 指標一:協方差

協方差(cov(data,bias=1)):描述變量間相互關系,兩隨機向量X,Y之間的協方差定義為cov(X,Y)=E[(X-E(X))(Y-E(Y))],E表示數學期望。可通俗的理解為,兩個變量在變化過程中是同方向變化還是反方向變化?以及同向或反向程度如何?

符號表示相關性方向;大小表示相關性程度。

該指標缺點:容易受到變量量綱影響。

87d3d0713200be048643b80e066a2851.png
  • 指標二:相關系數

相關系數(corrcoef(data)):先對變量做標準化變換(除相應標準差),然后再計算協方差,把先標準化變換后做協方差運算定義為變量間的相關系數(皮爾遜相關系數)。可以理解為是剔除兩個變量量綱影響,標準化后的特殊協方差。

654b8f2eb18af1feb1b3bfe117d148d6.png

37731f36431078bf9336c78ce7884a55.png

47532a2445e0643594e2776908679760.png

相關系數與協方差對比:

  1. 相關系數是一個無單位的量,絕對值不超過1,它描述了變量間的線性相關程度。
  2. 當變量間相關系數為0時,變量間不存在線性趨勢關系,但可能存在非線性趨勢關系。
  3. 當變量間相關系數的絕對值為1時,一個變量是另一變量的線性函數;當變量間相關系數越接近1時,變量間線性趨勢越明顯。
  4. 在用協方差描述變量間的相關程度時會受到變量的量綱和數量級的影響,即使對于同樣的一組變量,當變量的量綱和數量級發生變化時,協方差也會隨之改變。

2.3.2衡量回歸模型精確度的指標

>>>先介紹回歸分析中的最佳擬合線(回歸方程)

最佳擬合線即能最準確預測出所有點真實值的線。

91fc2f7c7d74105f63ace3c7b146f6aa.png

如何求出回歸方程中的截距和回歸系數(最小二乘法:使誤差平方和最小)

8d6ac84ce16db141a46236271dc00c31.png

指標三:決定系數R平方(coefficient of determination)

決定系數(model.score()):評估得到的回歸方程是否較好擬合樣本數據的統計量。(以下是與決定系數相關的重要指標,以及決定系數的計算過程)

9a6b6a4ce3572be5793777a50b4ad43c.png

總的平方和:觀測值與平均值的離差平方和

69008a6f8bb1e6be2b61f652a7b9549d.png

誤差平方和:觀測值與預估值的離差平方和

1df204d7c2044fad2845c534418ac80f.png

回歸平方和:預估值與平均值的離差平方和

72aef62ace80d27af9c760ff65eb720a.png

三個平方和之間的關系

7c34d3dc2ddc263c786570abfb25dd9d.png

決定系數的計算(回歸平方和與總平方和的商)

決定系數與相關系數對比:

  • 決定系數表示回歸線擬合程度,即有多少百分比的y波動可以被回歸線描述;相關系數表示變量間的相關關系。
  • 決定系數大小:R平方越高,回歸模型越精確,取值為[0,1];相關系數等于 (相關性方向符號+or-)決定系數開方,取值為[-1,1]。
  • 決定系數越大則擬合優度越好,但具體問題要具體分析;相關系數絕對值越大說明變量相關性越強。

2.4相關關系與因果關系

注意不能混淆相關關系和因果關系,相關分析只能表明變量是如何或以怎樣的程度彼此聯系在一起的。

三、回歸分析的Python實現

利用Python中的sklearn包進行簡單線性回歸分析。

3.1提出問題

探究“學習時長”和“學習成績”之間是否存在相關性關系,如果有找出其回歸方程。

3.2理解數據

1、導入數據包

import 

2、創建數據并查看數據

#創建數據并查看數據

3、提取特征值和標簽

#特征值:解釋變量(自變量),一般加X為后綴

4、利用散點圖查看數據間關系

import 

322e1f616ffa0b2c7542f78397becf83.png

5、求出變量間相關系數

#變量間的相關系數

從散點圖中,我們可以看出學習時長和學習成績之間應該存在線性相關關系,且相關系數為0.9379呈現強線性相關關系(模型選擇時,我們會創建線性回歸模型進行擬合)。

3.3構建模型

1、從數據集中分離出訓練數據train和測試數據test

from 

繪制散點圖,查看訓練集和測試集數據的分布情況

import 

07226af0e27cd077561c12c16ee5b506.png

2、創建線性回歸模型

#導入線性回歸模型

3、訓練模型

#導入模型的數據應為一列數據

3.4模型評估

1、查看模型得分(即決定系數大小)

#查看模型得分

2、求出并繪制模型擬合線(模型的回歸方程)y=a+bx

#模型擬合線(模型的回歸方程)y=a+bx

67e4b8d10d3ff54e5614a65b781263f1.png

四、總結

機器學習方法有很多,這些方法有些很容易混淆,比如相關分析/回歸分析/因果分析以及聚類分析/分類分析等,在使用時要注意區分其異同點。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454486.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454486.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454486.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flask 第三方組件之 Migrate

flask-migrate是flask的一個擴展模塊,主要是擴展數據庫表結構的.類似于Django的python manage.py migrate 官方文檔: http://flask-migrate.readthedocs.io/en/latest/ 安裝 pip install flask-migrate 使用舉例 from flask import Flask from flask_sqlalchemy import SQLA…

html section 布局,section標簽的用法

標簽的用法由于昨晚發了一篇文章http://www.zcool.com.cn/article/ZMzA3MzI.html,有一個網友評論問 的用法。所以現在舉例來說明一下:html5引入了標簽,用于描述文檔的結構,它同標簽的意思一樣。但是在特定環境中,兩者又…

清北學堂Day4

(1)第一題 財富(treasure) Time Limit:1000ms Memory Limit:128MB 題目描述 LYK有n個小伙伴。每個小伙伴有一個身高hi。 這個游戲是這樣的,LYK生活的環境是以身高為美的環境,因此在這里的每個人都羨慕比自己身高高的人&#xff…

Falsk session 源碼解析

Falsk框架session請求流程 from flask import Flask # 1. 實例化Flask對象 app Flask(__name__) # 2. 設置路由 app.route(/index) def index(): return "index" if __name__ __main__: # 3. 啟動socket服務端 app.run() # 4. 用戶請求到來 ap…

vlc內部運行機制以及架構分析

VLC架構剖析1. VideoLan簡介1.1 videolan組成Videolan有以下兩部分組成:VLC:一個最主要的部分,它可以播放各種類型的媒體文件和流vlc架構剖析 1. VideoLan簡介 1.1 videolan組成 Videolan有以下兩部分組成: VLC:一個最主要的部分,它可以播放各種類型的媒…

visio中公式太小_visio繪圖中的數據計算

在繪流程圖時,我們有時候會想直接在流程圖上做計算,比如化工設計時精餾塔計算理論塔板數。在VISIO中,實現這個功能還是比較容易,舉一個最簡單的例子。如下圖所示,等號后面的數字可以根據前面的數字變化。實現過程如下&…

Django syncdb mysql error on localhost - (1045, Access denied for user 'ODBC'@'

環境:WINDOWS系統 將數據庫配置 DATABASES { default: { ENGINE: django.db.backends.mysql, HOST: localhost, PORT: 3306, NAME: yunwei, USERNAME: root, PASSWORD: mysql, } } 改為 DATABASES { default: { ENGINE: django.db.backends.mysql, HOST: localhos…

銀行招計算機專業算什么崗,銀行計算機專業崗位全方位分析

黑龍江銀行招聘信息陸續發布,中公教育專家為各位考生提供:銀行計算機專業崗位全方位分析!供大家參考,預祝大家取得好成績,更多黑龍江人民銀行招聘相關資料請關注黑龍江銀行招聘網。金融銀行部門一直是一個朝陽產業&…

【47.92%】【hdu 5763】Another Meaning

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1440 Accepted Submission(s): 690 Problem DescriptionAs is known to all, in many cases, a word has two meanings. Such as “hehe”, which not only mea…

root用戶登錄mysql后新建用戶提示1045錯誤

執行以下命令查看root權限 show grants for rootlocalhost; 如果沒有顯示with grant option,說明是root沒有擁有新建授權用戶的權限(為什么會這樣呢,因為我把userroot and hostlocalhost給刪掉了,然后重新授權all privileges給新建root用戶&a…

Flask werkzeug 源碼解析

Flask werkzeug流程大概:執行run_simple ,實際執行為先用make_server 創建一個 BaseServer 實例,然后執行 實例的serve_forever 方法, serve_forever 調用 run_simple 傳入的第三個參數,執行(self, environ, start_response) &am…

AVS 幀內預測模式的匯編優化

王瑞*基金項目:本課題得到國家自然科學基金資助項目基金(項目編號:60772101)的資助。作者簡介:王瑞(1986—), 男, 山東萊蕪人, 碩士, 主要從事視頻壓縮方面的研究. E-mai…

ltsc系統激活_WIN10_X64企業版LTSC 電腦公司裝機版 202008

文件: WIN10_X64_LTSC_ZJ202008.esd大小: 7431429353 字節(6.92G)MD5: A3A3B15ED47216E177C924D2E07E0799SHA1: 3A647265E0C8234225C633407093BAA07253FB34CRC32: 32E791E9(注意,下載文件有一定幾率損壞,如文件值不對請重新下載!)360安全云盤…

大學計算機應用基礎考試題庫,大學計算機應用基礎考試題庫

綜合模擬(四)一、選擇題。1、完整的計算機硬件系統一般包括外部設備和 C 。A、運算器的控制器 B、存儲器 C、主機 D、中央處理器2、計算機能夠自動工作,主要是因為采用了 D 。A、二進制數制 B、高速電子元件 C、存儲程序控制 D、程序設計語言3、下面哪能一組是系統軟…

Lombok 使用小結

Lombok 使用小結 Lombok 簡介Lombok 安裝Lombok 使用 API示例示例源碼引用和引申Lombok 簡介 Lombok 是一種 Java 實用工具,可用來幫助開發人員消除 Java 的冗長,尤其是對于簡單的 Java 對象(POJO)。它通過注釋實現這一目的。通過…

html表單input file,input標簽type=file的文件上傳

一,通過表單提交的方式該提交方式只是提交普通表單;對于file組所選中的文件內容是不上傳的,因此需要設置:enctype屬性enctype"multipart/form-data"如果想上傳多文件,可添加multiple二,通過Ajax異…

AVS游程解碼、反掃描、反量化和反變換優化設計

中圖分類號:TN919.81   文獻標識碼:A   文章編號:1009-2552 (2007) 02-0054-04AVS游程解碼、反掃描、反量化和反變換優化設計趙 策, 劉佩林(上海交通大學電子工程系, 上海200240)摘 要: 提出了一種適用于AVS的游程解碼、反掃描、反量化和反變換硬件結構優化設計方案。根據…

Django REST framework介紹

現在前后端分離的架構設計越來越流行,業界甚至出現了API優先的趨勢。 顯然API開發已經成為后端程序員的必備技能了,那作為Python程序員特別是把Django作為自己主要的開發框架的程序員,Django REST framework(DRF)這個…

zabbix 安裝_安裝zabbix

準備一個純凈環境10.0.0.99首先修改yum源,修改為zabbix清華源,清華源玉zabbix官方源都是同步的,下載速度更快!zabbix官方Download Zabbix?www.zabbix.com點擊下載,下面有zabbix的歷史版本以及官方安裝文檔可以查看到不…

拓展歐幾里得 [Noi2002]Savage

對于一個野人,他(她?)所在的位置,(C[i]x*p[i])%ans,是的,暴力枚舉每一個ans,用拓展歐幾里得求出每兩個wildpeople(wildrage?)相遇的年份,如果小于最小的壽限…