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つの列があります。1つ目は '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つの要素を持つイテレータ(例: list、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つを試してチャットを始めてください