Python での局所加重回帰の例

WBOY
WBOYオリジナル
2023-06-11 19:37:361545ブラウズ

Python での局所加重回帰の例

局所加重回帰 (局所加重回帰) は、ノンパラメトリック回帰手法です。従来の回帰手法と比較して、回帰に固定パラメータを使用しませんが、サンプルデータに基づいて適応的にモデル化します。この適応特性により、局所加重回帰は回帰分析や時系列予測などの分野で広く使用されます。

Python では、scikit-learn パッケージのローカル加重散布図平滑化 (LOWESS) アルゴリズムを使用して、ローカル加重回帰分析を実行できます。この記事では、Python を使用して LOWESS アルゴリズムを実装する方法と、デモ分析の例を紹介します。

Python を使用してローカル加重回帰を実装する手順は次のとおりです:

  1. 必要なライブラリをインポートします

ローカル加重回帰を Python で実装するには、次を使用します。 numpy、pandas、matplotlib.pyplot、sklearn.neighbors などのライブラリをインポートします。

  1. データの準備

パンダ ライブラリを使用してデータを読み取り、X と y のデータを準備します。このうち、X は独立変数、y は従属変数です。

  1. データの前処理

X と y のデータを標準化します。これにより、データ間の測定値の差異を排除し、モデル化する前にデータをゼロ付近に集中させ、大きさの影響を軽減できます。

  1. モデルの近似

sklearn.neighbors ライブラリの LocallyWeightedRegression クラスを使用してモデルを近似します。この方法を使用する場合、帯域幅と重み関数という 2 つのハイパーパラメータを指定する必要があります。ほとんどの場合、帯域幅の値が小さいほど、より正確なモデルが提供されますが、計算コストも高くなります。

  1. 予測値

local_weighted_regression オブジェクトの予測メソッドを使用して、新しく入力された独立変数に対応する従属変数を予測します。

次に、局所加重回帰の例を見てみましょう。

例 1: 人口データに基づく住宅価格の予測

モデルのフィッティングと予測には、UCI データベースにあるボストンの住宅価格データ セットを使用します。データセットには 506 のサンプルと 13 の独立変数が含まれており、これには一人当たりの都市犯罪率 (CRIM)、建設後の 1940 年以前の自己所有住宅の割合 (ZN)、一酸化窒素濃度 (NOX)、一人当たりの部屋数 (RM) が含まれます。 )待って。

  1. 必要なライブラリをインポートします

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsRegressor

  1. データの準備

ボストンの住宅価格データ セットの読み取り

data = pd.read_csv('https : //archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data', header = None, sep = 's ')

X と y

を指定してください#X = data.iloc[:, :13].values

y = data.iloc[:, 13].values

    データの前処理
  1. Normalize X および y

sc_X = StandardScaler()

sc_y = StandardScaler()

XX = sc_X.fit_transform(X)
y = sc_y.fit_transform(y.reshape (-1, 1) ))

データセットをトレーニングセットとテストセットに分割します

from sklearn.model_selection import train_test_split

XX_train, X_test, y_train, y_test = train_test_split(X , y, test_size =0.2、random_state=0)


モデルの近似
  1. LocallyWeightedRegressionを使用してモデルを近似します

lwr = KNeighborsRegressor(n_neighbors=2 ,weights= 'uniform')

lwr.fit(X_train, y_train)


予測値
  1. lwr オブジェクトの予測メソッドを使用して予測

y_pred = lwr.predict(X_test)

y_pred = sc_y.inverse_transform(y_pred)

y_test = sc_y.inverse_transform(y_test)

結果の視覚化
  1. #同じグラフ上のテストセットの真の値と予測結果を比較します
plt.scatter(X_test[:,5], y_test, color='red')

plt.scatter (X_test [:,5], y_pred, color='blue')

plt.xlabel('部屋数')

plt.ylabel('価格')
plt.title('価格')
plt.show()

視覚的なグラフィックによると、モデルの予測結果がテスト セットの真の値に非常に近いことがわかります。これは、局所加重回帰モデルが住宅価格を正確に予測できることを示しています。

以上がPython での局所加重回帰の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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