[Python 實作] 迴歸模型Regression | Python 回歸 結果

本單元,我們將帶大家一起用Python實作迴歸模型。

歡迎大家跟著影片一起練習, ... 從結果我們也可以看到,三次方(含)以上的多項式比較符合這組資料。

Skiptocontent迴歸模型是處理連續變數相當好用且直觀的模型。

上個單元,我們已經認識了迴歸模型。

本單元,我們將帶大家一起用Python實作迴歸模型。

歡迎大家跟著影片一起練習,程式檔案亦提供在文末,歡迎有需要的朋友自行下載。

(一)前置作業在進入模型建構之前,如同以往,我們要先做兩件重要的事情。

1.引入模組首先,我們可以先引入一些常用的模組,這些模組中包含了前人的智慧,讓我們可以簡單的使用這些模組來達到我們想要的成果!importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromsklearnimportlinear_modelfromsklearn.preprocessingimportPolynomialFeaturesfromsklearn.pipelineimportmake_pipelinefromsklearn.datasetsimportmake_regressionfromsklearn.model_selectionimporttrain_test_split相信大家對於這些模組並不陌生,在本單元的迴歸模型中,linear_model主要用來建構線性模型。

而在高維度的多項式迴歸模型中,就要依靠PolynimialFeatures以及make_pipeline來建構!在資料集的部分,我們也可以採用sklearn裡面所提供的make_regression來下載合適線性迴歸的練習資料。

其他模組在之前單元都有介紹過了,有興趣的朋友歡迎參考先前單元,在此不再贅述。

2.區分訓練集與測試集首先,我們先讀取我們要用來建模的資料。

在這裡,我們用make_regression來下載sklearn裡面資料集的資料。

在這裡,我們抽取100個樣本,特徵數為一,並設定噪音為50。

X,y=make_regression(n_samples=100,n_features=1,noise=50)緊接著,為了避免過度擬和,我們在建構模型時,應至少把資料區分為訓練集與測試集。

在python中,我們可以利用train_test_split功能自動幫我們區分,我們也可以設定合適的資料集比例。

以下例來說,我們設定測試集為30%,也就是訓練集為70%。

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=0)random_state的部分是設定隨機種子,如果沒有設定的話每次區分時都會隨機區分。

(二)簡單線性迴歸SimpleLinearRegression在建構迴歸模型之前,我們可以先將資料用散佈圖畫出來看看,以推估合適的迴歸模型。

plt.scatter(X,y)接下來,我們用linear_model裡面的LinearRegression對訓練集進行模型建構:regr=linear_model.LinearRegression()regr.fit(X_train,y_train)短短兩行code,模型已經建構完成了!接下來,我們來看看訓練集的成果。

plt.scatter(X_train,y_train,color='black')plt.plot(X_train,regr.predict(X_train),color='blue',linewidth=1)plt.show()藍色的線就是我們建構出的線性迴歸,我們也可以看到這條線的截距與斜率:w_0=regr.intercept_w_1=regr.coef_也就是說,方程式為$$y=w_0+w_1x$$score會透過$R^2$來判定我們模型的精準程度,因此我們可以透過score來看模型成效,以下我們先看訓練集的分數。

regr.score(X_train,y_train)當然,我們更想知道的是,用訓練集建構好的模型,實際在測試集的表現又是如何呢?plt.scatter(X_test,y_test,color='red')plt.plot(X_test,regr.predict(X_test),color='blue',linewidth=1)plt.show()最後,我們一樣可


常見投資理財問答


延伸文章資訊