怎么用python进行回归预测_使用Python训练回归模型并进行预测
摘要:本篇文章將介紹在python中使用機器學習庫sklearn建立簡單回歸模型的過程。
回歸分析是一種常見的統計方法,用于確定不同變量間的相互關系。在Excel中可以通過數據分析菜單中的回歸功能快速完成。本篇文章將介紹在python中使用機器學習庫sklearn建立簡單回歸模型的過程。
準備工作
首先是開始前的準備工作,在創建回歸模型的過程中我們需要使用以下幾個庫文件,他們分別為sklearn庫,numpy庫,pandas庫和matplotlib庫。sklearn庫用于計算線性回歸模型中的關鍵參數,并對模型進行檢驗。numpy和pandas庫用于數據導入,創建數據表和一些基礎的計算工作。matplotlib庫用于繪制散點圖。
#導入機器學習linear_model庫 from sklearn import linear_model #導入交叉驗證庫 from sklearn import cross_validation #導入數值計算庫 import numpy as np #導入科學計算庫 import pandas as pd #導入圖表庫 import matplotlib.pyplot as plt 讀取并查看數據表
準備工作完成后,開始讀取數據,這里我們使用了一組每日廣告成本和點擊量的數據。將這組數據讀取到python中并取名為cost_and_click。通過head函數查看數據表中前5行的內容。以下是數據讀取和查看的代碼和結果。
#讀取數據并創建數據表,名稱為cost_and_click cost_and_click=pd.DataFrame(pd.read_excel(cost_and_click.xlsx))
#查看數據表前5行的內容 cost_and_click.head()
設置模型的自變量和因變量
在cost_and_click數據表中,我們將廣告成本cost設置為自變量X,將廣告點擊量click設置為因變量Y。希望通過回歸模型發現廣告成本對于廣告點擊量的影響,以及兩者間的關系。下面我們將X設置為cost,Y設置為click。并通過shape函數查看了兩個變量的行數,共25行,這是我們完整數據表的行數。
#將廣告成本設為自變量X X = np.array(cost_and_click[[cost]]) #將點擊量設為因變量Y Y = np.array(cost_and_click[click]) #查看自變量和因變量的行數 X.shape,Y.shape
繪制散點圖
在設置好自變量X和因變量Y后,為了更清楚的看到兩者間的關系,我們先使用散點圖進行觀察,下面是散點圖的繪制過程,其中X軸為廣告成本數據,Y軸為廣告點擊量數據。
#設置圖表字體為華文細黑,字號15 plt.rc(font, family=STXihei, size=15) #繪制散點圖,廣告成本X,點擊量Y,設置顏色,標記點樣式和透明度等參數 plt.scatter(X,Y,60,color=blue,marker=o,linewidth=3,alpha=0.8) #添加x軸標題 plt.xlabel(成本) #添加y軸標題 plt.ylabel(點擊量) #添加圖表標題 plt.title(廣告成本與點擊量分析) #設置背景網格線顏色,樣式,尺寸和透明度 plt.grid(color=#95a5a6,linestyle=--, linewidth=1,axis=both,alpha=0.4) #顯示圖表 plt.show()
從散點圖中可以看出廣告點擊量隨著廣告成本的增加而提升。兩者究竟有多強的聯系,以及具體的關系如何,我們需要從回歸模型中找到答案。
將數據分割為訓練集和測試集
原始數據中我們共記錄到25天的廣告成本和點擊量數據。將這25條數據分為兩部分,一部分作為訓練集創建回歸模型,另一部分作為測試集對回歸模型的結果進行檢驗。下面是具體的數據分組代碼,使用隨機方式從25條記錄中抽取40%作為測試集,另外60%作為訓練集數據。
#將原始數據通過隨機方式分割為訓練集和測試集,其中測試集占比為40% X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, Y, test_size=0.4, random_state=0)
使用shape函數對訓練集的數據行數進行查看,共有15行。這15行數據將被用于建立回歸模型。
#查看訓練集數據的行數 X_train.shape,y_train.shape
代入線性回歸模型
將訓練集數據代入到線性回歸模型中,以計算關鍵的參數值。下面是具體的代碼和結果。
#將訓練集代入到線性回歸模型中 clf = linear_model.LinearRegression() clf.fit (X_train,y_train)
計算模型的關鍵參數
回歸模型依據自變量的數量可以分為一元回歸模型和多元回歸模型,這里我們只有一個自變量X,因此是一元回歸模型。其中斜率b1和截距b0是我們要求的關鍵參數值。
首先計算出回歸模型中的斜率值,以下是具體的代碼和結果。
#線性回歸模型的斜率 clf.coef_
其次計算出回歸模型的截距,以下是具體的代碼和結果。
#線性回歸模型的截距 clf.intercept_
除此之外,對于回歸模型來說還需要計算判定系數,也就是R平方,用以說明自變量對因變量變化的解釋度。以下是具體的代碼和計算結果。
#判定系數R Square clf.score(X_train,y_train)
有了前面的斜率和截距后,就可以描繪出廣告成本與廣告點擊量之間的關系了,并且可以通過這種關系來對廣告點擊量的結果進行預測,下面我們在回歸模型中將廣告成本設置為20000元,經過計算獲得預測的廣告點擊量為1993次。這個預測結果準確嗎?我們還需要對回歸模型進行評估。
#輸入自變量預測因變量 clf.predict(20000)
使用測試集評估模型
評估回歸模型的方法就是使用測試集數據,將測試集中的自變量代入到回歸模型中,將結果與測試集的因變量進行對比,評估模型的準確性。下面我們將測試集中的自變量代入回歸模型,并列出了所有的計算結果。
#將測試集的自變量代入到模型預測因變量 list(clf.predict(X_test))
同時我們也列出了測試集中因變量。通過對比可以看到兩組數據間的差異,例如第一組數據回歸模型的計算結果796,測試集中的因變量736。以及第三組數據908和991。有些數據回歸模型的結果大于測試集的數據,而另一些則可能小于測試集的數據。
#顯示測試集的因變量 list(y_test)
為了衡量回歸模型的計算結果與測試集中因變量的數據差異,我們使用誤差平方和對兩者的差異進行評估。以下是誤差平方和的計算公式。為了防止兩組數據間差異的正負相互抵消,取平方和。
這里需要說明的是誤差平方和指標并不能說明回歸模型的結果與測試集數據間的差異大小,它只能用來進行模型間準確率的對比。以下是計算誤差平方和的代碼和結果。
總結
以上是生活随笔為你收集整理的怎么用python进行回归预测_使用Python训练回归模型并进行预测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RTX5 | 时间延时
- 下一篇: python后台返回cookie_Dja