手把手教你做線性迴歸分析,實用且通俗易懂!

hxc979891發表於2021-07-20

線性迴歸分析是資料探勘裡一個非常重要的方法,相信大家以前在高中或者大學時都學過一點點線性迴歸的概念。在統計學中,線性迴歸(Linear Regression)是利用稱為線性迴歸方程的最小平方函式對一個或多個 之間關係進行建模的一種 。聽著有點複雜,簡單來說,就是看一組零散的資料是否存在相關性。線性迴歸分析涉及到的數學理論知識比較複雜,本文不會涉及到這些數學理論知識,僅是介紹應用場景以及製作方法,請大家放心食用。

一、應用場景:

在開始之前,我們先來了解一下線性迴歸分析有什麼用。線性迴歸分析在日常工作中運用非常廣泛,透過線性迴歸,我們可以用模型去描述兩組資料中是否存在相關性。例如在分析銷售資料時,我們經常要對廣告費用以及銷售額的關係進行判斷,評估廣告費用對銷售額的作用到底有多大,公司應不應該加大廣告費投入,如果未來投入一定的廣告費用,預測銷售額可以達到多少…這一系列問題都可以透過線性迴歸分析去得出答案。

只要存在兩組以上的資料,我們都可以利用線性迴歸的方法去對其進行檢驗。下面我利用Python去對線性迴歸分析的方法和過程進行詳細的描述,力求以最簡潔語言帶你走進資料探勘的神秘大門。

二、Python實現過程:

第一步:資料匯入

首先要做的就是把本地的EXCEL或者CSV檔案讀取到Python裡,我們可以引用pandas庫去讀取資料:

讀取成功後,我們先來列印看一下資料是否和EXCEL裡的是一致的:

第二步:計算相關係數

上面我們說過了,只要存在兩組資料,我們就可以檢驗其是否存在相關性,在數學上通常是用皮爾遜相關係數來進行檢驗,這個數值越接近1,就代表兩組資料越具有相關性,我們可以用corr這個函式來對廣告費以及銷售額進行檢驗:

接下來我們列印一下data1,大家可以看到相關係數的值已經算出來了,達到了0.93,非常接近1,說明這兩組資料具有非常高的相關性:

第三步:畫圖

為了更加直觀地對這兩組資料進行呈現,我們可以畫一個散點圖,這時要引入另外一個庫:matplotlib,首先把廣告費用設定為X軸,把銷售額設定為Y軸,然後再利用plot()函式進行畫圖,最後再利用利用show()進行圖表呈現:

列印一下,我們看看圖形的效果,從圖中可以看中,這個散點圖裡面所有點的排列基本是在一條直線上的,擬合的非常緊密,說明廣告費用與銷售額是呈正相關的,廣告費用越多,銷售額也會隨之增長,這也對我們上面計算出來的相關係數提供了一個非常好的佐證:

第四步:建立線性迴歸模型

線性迴歸的方程我們可以用y=ks+b這個公式來表示,其中x是自變數,y是因變數,k是斜率,b是直線在軸上的截距。接下來我們就可以對上面的這組資料去建立線性迴歸模型,這裡要引用的是sklearn庫,這個庫是的主要作用是進行機器學習。首先先定義一個線性迴歸的物件LinearRegression(),然後再利用fit()函式對X、Y的值進行模型訓練,最後要輸出兩個資料,一個是coef_,代表k值,另一個是intercept_,代表b值:

輸出後的資料如下,k是17.3,b是291.9:

這裡我們可以檢驗一下模型的擬合程度,這裡可以用score()函式進行驗證,這個代表的意思是,數值越接近1,代表這個模型的擬合程度就越好:

結果算出來是0.879,說明模型的擬合程度非常好,可信度非常高,也就是可以投入到實際應用中去使用:

第五步:資料預測

從上面的步驟中我們得知了k和b的值,只要有x的值,那麼就可以算出y的值是多少了,通常我們可以利用這個原理去對資料進行預測。這裡可以利用predict()函式接入一個引數對資料進行預測,例如下面我們看看廣告費在20萬的時候,銷售額預計會有多少:

最後算出來的銷售額是 638 萬:

三、後續建議

從python的實現過程來看,雖然透過寫程式碼的形式可以把整個線性迴歸分析完美地實現了,但是畢竟大部分小夥伴都沒有接觸過這門程式語言,如果真要用python去做的話可能會難度比較大。那麼有沒有更加簡潔一點的方法呢?答案是肯定的,下面我開始嘗試用smartbi這個工具對上面的流程進行簡化。

進入資料探勘的介面後,可以看到左邊的工具欄上有很多元件,這個就是ETL的工作介面。ETL在資料清洗上運用比較廣泛,可以把很多複雜、不規則的資料來源治理的井然有序。如果把ETL和資料探勘結合起來,必然可以大幅提高資料分析的效率。

第一步要做的是先把資料來源讀取到ETL的介面裡,我們可以把EXCEL檔案這個元件拖拽進來,並把上面的廣告費用的EXCEL檔案讀取進來:

如果EXCEL檔案中存在著多個sheet,還需要把讀取Excel sheet這個元件拖拽進來,並讀取您的目標sheet:

讀取完成後,可以先對資料來源進行預覽:

我們先來計算一下廣告費用與銷售額的相關係數怎麼算出來的,在統計分析中我們可以看到相關性分析的元件,把它拖拽進來,並與上面的元件進行相連:

滑鼠選中相關係分析,在右邊的待選列裡把銷售額和廣告費用選中,並移動到右邊

最後我們看一下執行後的輸出效果,點選廣告費用與銷售額中間的區域,可以看到相關性係數是0.94,這個資料和我們上面用Python算出來的結果是一致的:

由於篇幅有限,散點圖、資料預測等其他功能實現的方法就不多做介紹了,有興趣的小夥伴可以自行去研究一下。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69980489/viewspace-2782214/,如需轉載,請註明出處,否則將追究法律責任。

相關文章