Python 散点图线性拟合_机器学习之利用Python进行简单线性回归分析
一、機(jī)器學(xué)習(xí)
1.1什么是機(jī)器學(xué)習(xí)
談到機(jī)器學(xué)習(xí),人們會很容易聯(lián)想到人工智能和深度學(xué)習(xí),我們通過這三個概念的對比來說明三者的區(qū)別和聯(lián)系。
人工智能Artificial Inteligence:這個概念早在1956年就被提出,當(dāng)時科學(xué)家夢想著用當(dāng)時剛剛出現(xiàn)的計(jì)算機(jī)來構(gòu)造復(fù)雜的、擁有像人類智慧特性的機(jī)器。目前,AI的分支很多,諸如專家系統(tǒng)、機(jī)器學(xué)習(xí)、自然語言處理以及推薦系統(tǒng)等。
機(jī)器學(xué)習(xí)Mechine Learning:機(jī)器學(xué)習(xí)是實(shí)現(xiàn)人工智能的一種方法,是使用算法解析數(shù)據(jù)、并從中學(xué)習(xí),然后對真實(shí)世界中事件作出決策或預(yù)測。機(jī)器學(xué)習(xí)是通過大量數(shù)據(jù)來“訓(xùn)練”算法模型,利用算法從數(shù)據(jù)中學(xué)習(xí)如何完成任務(wù)。學(xué)習(xí)方法可以分為:監(jiān)督學(xué)習(xí)(如分類)、無監(jiān)督學(xué)習(xí)(如聚類)等。(下面介紹一些基礎(chǔ)概念)
- 學(xué)習(xí)(learning):是指找到特征(feature)和標(biāo)簽(label)的映射(mapping)關(guān)系。
- 有監(jiān)督學(xué)習(xí)(supervised learning):不僅將訓(xùn)練數(shù)據(jù)(特征)丟給計(jì)算機(jī),還把分類的結(jié)果(數(shù)據(jù)具有的標(biāo)簽)也一并丟給計(jì)算機(jī)分析,如分類和回歸;
- 無監(jiān)督學(xué)習(xí)(unsupervised learning):只提供訓(xùn)練數(shù)據(jù)(特征),不給結(jié)果(標(biāo)簽),計(jì)算機(jī)只能利用其計(jì)算能力分析數(shù)據(jù)的特征,然后得到一些數(shù)據(jù)集合,集合內(nèi)的數(shù)據(jù)在某些特征上相同或相似,如聚類分析;
- 半監(jiān)督學(xué)習(xí)(semi-supervised learning):給計(jì)算機(jī)大量訓(xùn)練數(shù)據(jù)與少量分類結(jié)果(具有同一標(biāo)簽的集合)。
- 聚類(clustering):無監(jiān)督學(xué)習(xí)的結(jié)果,聚類的結(jié)果將產(chǎn)生若干組集合,同集合中對象彼此相似,與其他集合中對象相異。
- 分類(classification)與回歸(regression):有監(jiān)督學(xué)習(xí)的兩大應(yīng)用,其區(qū)別在于分別產(chǎn)生離散或連續(xù)的結(jié)果(分類及回歸方法的區(qū)別在下文中有較詳細(xì)分析)。
深度學(xué)習(xí)Deep Learning:深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一種方法,其本身會用到有監(jiān)督和無監(jiān)督的學(xué)習(xí)方法來訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)。
人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)三者的關(guān)系1.2機(jī)器學(xué)習(xí)的步驟
利用機(jī)器學(xué)習(xí)方法分析、解決問題的過程可分為五個步驟:
機(jī)器學(xué)習(xí)主要步驟1.提出問題
明確要分析的問題,為后續(xù)的機(jī)器學(xué)習(xí)過程提供目標(biāo)。
2.理解數(shù)據(jù)(采集并查看數(shù)據(jù))
采集數(shù)據(jù)(根據(jù)研究問題采集數(shù)據(jù));導(dǎo)入數(shù)據(jù)(從不同數(shù)據(jù)源讀取數(shù)據(jù));查看數(shù)據(jù)信息(描述統(tǒng)計(jì)信息、數(shù)據(jù)缺失值、異常值情況等,可以結(jié)合具體圖表來直觀查看數(shù)據(jù))。
3.數(shù)據(jù)清洗(數(shù)據(jù)預(yù)處理)
數(shù)據(jù)預(yù)處理是數(shù)據(jù)分析過程中關(guān)鍵的一環(huán),數(shù)據(jù)質(zhì)量決定了機(jī)器學(xué)習(xí)分析的上限,而具體采用的算法和模型只是逼近這個上限。(包括缺失數(shù)據(jù)處理、異常值處理、數(shù)據(jù)類型轉(zhuǎn)換、列名重命名、數(shù)據(jù)排序、選擇子集、特征工程等步驟)
4.構(gòu)建模型
根據(jù)研究的問題以及數(shù)據(jù)的特點(diǎn)選擇合適的算法,將訓(xùn)練數(shù)據(jù)放入所選擇的機(jī)器學(xué)習(xí)算法中構(gòu)建相應(yīng)的模型,有時需要對多種算法模型進(jìn)行比較,甚至進(jìn)行模型整合。
5.模型評估
利用測試數(shù)據(jù)對得到的模型效果進(jìn)行評估,具體評估指標(biāo)依據(jù)研究的問題及采用的模型進(jìn)行選擇,常用到的指標(biāo)需根據(jù)模型的類型而定,如分類模型常用準(zhǔn)確率、ROC-AUC等,而回歸模型可以用決定系數(shù)等。
各類學(xué)習(xí)器評價指標(biāo) - MsSpark的博客 - CSDN博客?blog.csdn.net1.3特征(feature)和標(biāo)簽(label)
機(jī)器學(xué)習(xí)中經(jīng)常遇到特征及標(biāo)簽兩個概念:
特征:數(shù)據(jù)的特征,描述數(shù)據(jù)的屬性。
標(biāo)簽:數(shù)據(jù)的標(biāo)簽,對數(shù)據(jù)的預(yù)測結(jié)果。
1.4Python機(jī)器學(xué)習(xí)包sklearn
Python提供了強(qiáng)大的sklearn包,可以調(diào)用不同機(jī)器學(xué)習(xí)方法解決問題。我們并不需要一開始就掌握sklearn中每種機(jī)器學(xué)習(xí)方法,只需在用到某個機(jī)器學(xué)習(xí)方法時,再去sklearn中找對應(yīng)算法的用法即可。本文第三部分會以調(diào)用sklearn包中LinearRegression方法進(jìn)行簡單線性回歸分析為例,說明如何使用Python進(jìn)行數(shù)據(jù)分析。
sklearn algorithm cheat-sheet二、相關(guān)分析及回歸分析
機(jī)器學(xué)習(xí)常用來解決相關(guān)分析和回歸分析的問題,本文接下來主要介紹兩者的相關(guān)概念及評估指標(biāo),以及它們的區(qū)別與聯(lián)系。
2.1相關(guān)分析及回歸分析
- 相關(guān)分析(Correlation analysis):研究兩個或兩個以上處于同等地位的隨機(jī)變量間的相關(guān)關(guān)系的統(tǒng)計(jì)分析方法。
- 回歸分析(Regression analysis):確定兩種或兩種以上變量間相互依賴定量關(guān)系的統(tǒng)計(jì)分析方法,將變量分為因變量和自變量。
兩者的區(qū)別:
- 相關(guān)分析中涉及的變量不區(qū)分自變量和因變量,變量之間關(guān)系是對等的;回歸分析中,需要根據(jù)研究對象的性質(zhì)和研究分析的目的,區(qū)分變量為自變量和因變量。
- 相關(guān)分析主要通過“相關(guān)系數(shù)”反映變量間相關(guān)程度的大小,因?yàn)樽兞块g關(guān)系是對等的,所有相關(guān)系數(shù)是唯一的;回歸分析中,自變量和因變量之間可能存在多個回歸方程。
兩者的聯(lián)系:
- 相關(guān)分析是回歸分析的基礎(chǔ)和前提,回歸分析是相關(guān)分析的深入和繼續(xù)。
- 相關(guān)分析表現(xiàn)變量間數(shù)量變化的相關(guān)程度,回歸分析表現(xiàn)變量間數(shù)量相關(guān)的具體形式。
- 只有變量間存在高度相關(guān)時,進(jìn)行回歸分析需求具體形式才有意義。
2.2線性相關(guān)性類型及回歸分析類型
2.2.1線性相關(guān)性類型
以兩個變量的簡單線性相關(guān)為例:
散點(diǎn)圖(直觀判斷變量間是否有相關(guān)性的最佳方法):結(jié)合散點(diǎn)圖來直觀顯示各個變量之間的相關(guān)性。
三種線性相關(guān)性:正線性相關(guān)(總體表現(xiàn)直線朝上);負(fù)線性相關(guān);非線性相關(guān)。
2.2.2回歸分析類型
根據(jù)不同的維度對回歸分析進(jìn)行分類:
- 一元回歸和多元multivariate回歸分析(因變量多少);
- 簡單回歸和多重multiple回歸分析(自變量多少);
- 線性回歸和非線性回歸(自變量及因變量間關(guān)系類型)。
2.3衡量指標(biāo)
2.3.1衡量變量間相關(guān)度的指標(biāo)
符號(反映兩個變量的相關(guān)性方向);大小(表示兩個變量相關(guān)性程度)
- 指標(biāo)一:協(xié)方差
協(xié)方差(cov(data,bias=1)):描述變量間相互關(guān)系,兩隨機(jī)向量X,Y之間的協(xié)方差定義為cov(X,Y)=E[(X-E(X))(Y-E(Y))],E表示數(shù)學(xué)期望??赏ㄋ椎睦斫鉃?#xff0c;兩個變量在變化過程中是同方向變化還是反方向變化?以及同向或反向程度如何?
符號表示相關(guān)性方向;大小表示相關(guān)性程度。
該指標(biāo)缺點(diǎn):容易受到變量量綱影響。
- 指標(biāo)二:相關(guān)系數(shù)
相關(guān)系數(shù)(corrcoef(data)):先對變量做標(biāo)準(zhǔn)化變換(除相應(yīng)標(biāo)準(zhǔn)差),然后再計(jì)算協(xié)方差,把先標(biāo)準(zhǔn)化變換后做協(xié)方差運(yùn)算定義為變量間的相關(guān)系數(shù)(皮爾遜相關(guān)系數(shù))??梢岳斫鉃槭翘蕹齼蓚€變量量綱影響,標(biāo)準(zhǔn)化后的特殊協(xié)方差。
相關(guān)系數(shù)與協(xié)方差對比:
2.3.2衡量回歸模型精確度的指標(biāo)
>>>先介紹回歸分析中的最佳擬合線(回歸方程)
最佳擬合線即能最準(zhǔn)確預(yù)測出所有點(diǎn)真實(shí)值的線。
如何求出回歸方程中的截距和回歸系數(shù)(最小二乘法:使誤差平方和最小)
指標(biāo)三:決定系數(shù)R平方(coefficient of determination)
決定系數(shù)(model.score()):評估得到的回歸方程是否較好擬合樣本數(shù)據(jù)的統(tǒng)計(jì)量。(以下是與決定系數(shù)相關(guān)的重要指標(biāo),以及決定系數(shù)的計(jì)算過程)
總的平方和:觀測值與平均值的離差平方和
誤差平方和:觀測值與預(yù)估值的離差平方和
回歸平方和:預(yù)估值與平均值的離差平方和
三個平方和之間的關(guān)系
決定系數(shù)的計(jì)算(回歸平方和與總平方和的商)
決定系數(shù)與相關(guān)系數(shù)對比:
- 決定系數(shù)表示回歸線擬合程度,即有多少百分比的y波動可以被回歸線描述;相關(guān)系數(shù)表示變量間的相關(guān)關(guān)系。
- 決定系數(shù)大小:R平方越高,回歸模型越精確,取值為[0,1];相關(guān)系數(shù)等于 (相關(guān)性方向符號+or-)決定系數(shù)開方,取值為[-1,1]。
- 決定系數(shù)越大則擬合優(yōu)度越好,但具體問題要具體分析;相關(guān)系數(shù)絕對值越大說明變量相關(guān)性越強(qiáng)。
2.4相關(guān)關(guān)系與因果關(guān)系
注意不能混淆相關(guān)關(guān)系和因果關(guān)系,相關(guān)分析只能表明變量是如何或以怎樣的程度彼此聯(lián)系在一起的。
三、回歸分析的Python實(shí)現(xiàn)
利用Python中的sklearn包進(jìn)行簡單線性回歸分析。
3.1提出問題
探究“學(xué)習(xí)時長”和“學(xué)習(xí)成績”之間是否存在相關(guān)性關(guān)系,如果有找出其回歸方程。
3.2理解數(shù)據(jù)
1、導(dǎo)入數(shù)據(jù)包
import2、創(chuàng)建數(shù)據(jù)并查看數(shù)據(jù)
#創(chuàng)建數(shù)據(jù)并查看數(shù)據(jù)3、提取特征值和標(biāo)簽
#特征值:解釋變量(自變量),一般加X為后綴4、利用散點(diǎn)圖查看數(shù)據(jù)間關(guān)系
import5、求出變量間相關(guān)系數(shù)
#變量間的相關(guān)系數(shù)從散點(diǎn)圖中,我們可以看出學(xué)習(xí)時長和學(xué)習(xí)成績之間應(yīng)該存在線性相關(guān)關(guān)系,且相關(guān)系數(shù)為0.9379呈現(xiàn)強(qiáng)線性相關(guān)關(guān)系(模型選擇時,我們會創(chuàng)建線性回歸模型進(jìn)行擬合)。
3.3構(gòu)建模型
1、從數(shù)據(jù)集中分離出訓(xùn)練數(shù)據(jù)train和測試數(shù)據(jù)test
from繪制散點(diǎn)圖,查看訓(xùn)練集和測試集數(shù)據(jù)的分布情況
import2、創(chuàng)建線性回歸模型
#導(dǎo)入線性回歸模型3、訓(xùn)練模型
#導(dǎo)入模型的數(shù)據(jù)應(yīng)為一列數(shù)據(jù)3.4模型評估
1、查看模型得分(即決定系數(shù)大小)
#查看模型得分2、求出并繪制模型擬合線(模型的回歸方程)y=a+bx
#模型擬合線(模型的回歸方程)y=a+bx四、總結(jié)
機(jī)器學(xué)習(xí)方法有很多,這些方法有些很容易混淆,比如相關(guān)分析/回歸分析/因果分析以及聚類分析/分類分析等,在使用時要注意區(qū)分其異同點(diǎn)。
總結(jié)
以上是生活随笔為你收集整理的Python 散点图线性拟合_机器学习之利用Python进行简单线性回归分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手把手从零开始学习树莓派教程
- 下一篇: VB的阶乘和伽马函数