NumPyを使用した線形回帰の構築
メニューを表示するにはスワイプしてください
単回帰分析が何であるか、そしてデータに最も適合する直線の求め方についてはすでに理解しています。ここでは、実際のデータセットを用いて線形回帰モデルを構築する全てのステップを順に確認します。
データの読み込み
例で使用したデータが含まれるファイル simple_height_data.csv があります。このファイルを読み込み、中身を確認します。
123456import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
このデータセットには2つの列があります。最初の列は'Father'で、入力特徴量です。2番目の列は'Height'で、こちらが目的変数となります。
目的変数の値をy変数に、特徴量の値をXに代入し、散布図を作成します。
123456import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
パラメータの算出
NumPyには線形回帰のパラメータを求める便利な関数があります。
線形回帰は次数1の多項式回帰です(多項式回帰については後のセクションで説明します)。そのため、線形回帰のパラメータを取得するには deg=1 を指定する必要があります。
以下はその例です:
12345import numpy as np beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
beta_1, beta_0 = np.polyfit(X,y,1) という構文に馴染みがない場合、これはアンパッキングと呼ばれます。2つの要素を持つイテレータ(例:リスト、NumPy配列、pandasシリーズ)がある場合、
a, b = my_iterator
は次のコードと同じ意味になります。
a = my_iterator[0]
b = my_iterator[1]
また、polyfit() 関数の戻り値は2つの値を持つNumPy配列なので、このような書き方が可能です。
予測の実施
パラメータを使用して回帰直線を描画し、新しい変数の予測が可能。
123plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
パラメータが得られたので、線形回帰式を用いて新しい値の予測が可能。
123X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
線形回帰のパラメータを取得するのは非常に簡単です。しかし、一部のライブラリでは追加情報も提供されます。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください