Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ NumPyを用いた線形回帰の構築 | 単回帰
Pythonによる線形回帰

NumPyを用いた線形回帰の構築

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

単回帰分析が何であるか、そしてデータに最も適合する直線の求め方についてはすでに理解しています。ここでは、実際のデータセットを用いて線形回帰モデルを構築する全てのステップを確認します。

データの読み込み

例で使用したデータが含まれる simple_height_data.csv ファイルがあります。このファイルを読み込み、中身を確認します。

123456
import 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に割り当て、散布図を作成します。

123456
import 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には線形回帰のパラメータを求める便利な関数があります。

関数 polyfit

線形回帰は次数1の多項式回帰(多項式回帰については後のセクションで説明)であるため、線形回帰のパラメータを取得するには deg=1 を指定する必要があります。 以下はその例です:

12345
import 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)
Note
注意

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配列であるため、このような書き方が可能です。

予測の実行

これでパラメータを使って直線をプロットし、新しい変数の予測が可能になります。

123
plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()

パラメータが得られたので、線形回帰の方程式を使って新しい値を予測できます。

123
X_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)

線形回帰のパラメータを取得するのは非常に簡単です。しかし、一部のライブラリは追加情報も提供します。

question mark

NumPyの関数を使用して単回帰のパラメータを求めることが可能:

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

すべて明確でしたか?

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

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

セクション 1.  3

AIに質問する

expand

AIに質問する

ChatGPT

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

セクション 1.  3
some-alt