Python でのリッジ回帰の例

WBOY
WBOYオリジナル
2023-06-10 22:39:521310ブラウズ

リッジ回帰は、一般的に使用される線形回帰手法です。多重共線性の問題を扱う場合、通常の最小二乗回帰よりも優れた結果が得られ、特徴の選択にも使用できます。

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

この例で使用されるデータは、ボストンの住宅価格データです。このデータ セットには、ボストンの 13 の異なる住宅価格が含まれています1970年代のエリアの機能と価格についての情報。以下に示すように、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)

アルファ値はハイパーパラメータであり、パラメータを調整してモデルを最適化する必要があります。トレーニング セットとテスト セットの予測を評価することで、最適なハイパーパラメーターを選択できます。この例では、最適なハイパーパラメータを選択するためにアルファ値に対して相互検証を実行することを選択します。コードは次のとおりです:

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'])

相互検証を通じて、最適なアルファ値を 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。