Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 重回帰分析の構築 | 重回帰分析
Pythonによる線形回帰

book重回帰分析の構築

メニューを表示するにはスワイプしてください

OLS クラスは、単回帰分析と同様に重回帰分析を構築することが可能です。しかし、残念ながら np.polyfit() 関数は複数の特徴量には対応していません。

ここでは OLS クラスを使用します。

X̃ 行列の構築

単回帰分析の例と同じデータセットを使用しますが、今回は母親の身長が2つ目の特徴量として追加されています。データを読み込み、X 変数を確認します。

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file # Assign the variables X = df[['Father', 'Mother']] y = df['Height'] print(X.head())
copy

OLS(y, X_tilde) を使用して OLS オブジェクトを初期化する必要があることに注意。ご覧の通り、X 変数にはすでに 2 つの特徴量が別々の列として含まれている。そのため、X_tilde を得るには、最初の列として 1 を追加するだけでよい。sm.add_constant(X) 関数はまさにそれを実行する。

123
# Create X_tilde X_tilde = sm.add_constant(X) print(X_tilde.head())
copy

パラメータの求め方

素晴らしいです!これでモデルを構築し、パラメータを求め、前のセクションと同じ方法で予測を行うことができます。

12345678910111213141516
import numpy as np # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1, beta_2 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1) print('beta_2 is: ', beta_2) # Predict new values X_new = np.array([[65, 62],[70, 65],[75, 70]]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print('Predictions:', y_pred)
copy
Note
注意

今回のトレーニングセットには2つの特徴量があるため、予測したい各新しいインスタンスにも2つの特徴量を指定する必要があります。そのため、上記の例では np.array([[65, 62],[70, 65],[75, 70]]) が使用されています。これは3つの新しいインスタンス y, [Father:65,Mother:62], [Father:70, Mother:65] に対して [Father:75, Mother:70] を予測しています。

question mark

sm.add_constant(X) は何を行いますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  3

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  3
some-alt