嶺迴歸是一種常用的線性迴歸方法,它在處理多重共線性問題時能夠取得比一般最小平方法迴歸更好的結果,同時也可以用於特徵選擇。
Python是一門強大的程式語言,使用Python進行嶺迴歸分析非常方便。本文將透過一個實例來介紹如何使用Python進行嶺迴歸分析。
首先,我們需要導入需要的庫,如下所示:
import pandas as pd import numpy as np from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error
本實例使用的數據是Boston房價數據,該數據集包含了1970年代波士頓地區房屋的13個不同特徵及其價格的資訊。我們可以透過pandas函式庫中的read_csv函數將資料讀取進來,如下所示:
data = pd.read_csv('Boston.csv')
接著,我們需要將資料集分成訓練集和測試集。這可以使用scikit-learn庫中的train_test_split函數來實現,如下所示:
X = data.iloc[:, :-1].values y = data.iloc[:, -1].values X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
在訓練嶺回歸模型之前,我們需要對資料進行標準化處理,以確保在不同特徵取值範圍差異很大的情況下能夠比較他們對目標變數的影響。我們可以使用scikit-learn庫中的StandardScaler函數進行標準化處理,程式碼如下所示:
from sklearn.preprocessing import StandardScaler sc_X = StandardScaler() X_train = sc_X.fit_transform(X_train) X_test = sc_X.transform(X_test)
然後我們可以定義一個嶺回歸模型,將其放入我們的訓練資料集中進行訓練,程式碼如下所示:
ridge = Ridge(alpha=0.1) ridge.fit(X_train, y_train)
其中alpha值是超參數,需要透過調參來最佳化模型。我們可以透過在訓練集和測試集上評估預測結果來選擇最優的超參數。在本實例中,我們選擇針對alpha值進行交叉驗證來選擇最優的超參數,程式碼如下所示:
from sklearn.model_selection import GridSearchCV ridge_params = {'alpha': [0.001, 0.01, 0.1, 1, 10]} ridge_grid = GridSearchCV(estimator=Ridge(), param_grid=ridge_params, cv=10, scoring='neg_mean_squared_error') ridge_grid.fit(X_train, y_train) print("Best alpha:", ridge_grid.best_params_['alpha'])
透過交叉驗證,我們選擇最優的alpha值為0.1。
接下來,我們可以在測試集上進行預測,並評估預測結果。我們可以使用scikit-learn函式庫中的mean_squared_error函數計算均方誤差,程式碼如下所示:
y_pred = ridge.predict(X_test) mse = mean_squared_error(y_test, y_pred) print("Mean Squared Error:", mse)
最後,我們可以使用matplotlib函式庫來繪製預測值和真實值的散佈圖,以便更好地了解模型的預測效果。程式碼如下所示:
import matplotlib.pyplot as plt plt.scatter(y_test, y_pred) plt.xlabel("True Values") plt.ylabel("Predictions") plt.show()
總之,Python中的嶺迴歸分析非常方便,使用scikit-learn函式庫的函數能夠幫助我們輕鬆實現預測結果的評估和視覺化。
以上是Python中的嶺迴歸實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!