概要
線形回帰(Linear Regression)は、統計学や機械学習の分野で使用される回帰分析の手法の一つです。線形回帰は、入力変数(説明変数)と連続的な目的変数(被説明変数)との間の線形関係をモデル化し、予測や変数間の関係の理解を支援します。
線形回帰の基本的なアイデアは、入力変数と目的変数の間の線形な関係を表現するために、最も適切な直線を見つけることです。単回帰分析では、1つの入力変数に対して目的変数との間の直線的な関係をモデル化します。重回帰分析では、複数の入力変数を考慮し、目的変数との間の直線的な関係をモデル化します。
線形回帰のモデルは、以下のような形式を持ちます:
y = b0 + b1x1 + b2x2 + … + bn*xn
ここで、yは目的変数、x1、x2、…、xnは入力変数、b0、b1、b2、…、bnは回帰係数です。モデルの目的は、回帰係数を推定し、入力変数と目的変数の間の最適な線形関係を捉えることです。
線形回帰モデルのパラメータ推定には、最小二乗法(Ordinary Least Squares)などの手法が使用されます。最小二乗法は、実際の目的変数とモデルの予測値との差の二乗和を最小化するように回帰係数を調整します。
線形回帰は、連続的な数値の予測や変数間の関係の把握に適しています。また、説明変数と目的変数の間の直線的な関係を仮定するため、データが線形的である場合に有効です。
コード例
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import numpy as np
# トレーニングデータの準備
X_train = np.array([[1], [2], [3], [4], [5]])
y_train = np.array([2, 4, 6, 8, 10])
# 線形回帰モデルの作成
model = LinearRegression()
# モデルのトレーニング
model.fit(X_train, y_train)
# 予測
X_test = np.array([[6], [7]])
y_pred = model.predict(X_test)
# 結果の表示
print("予測結果:", y_pred)
# トレーニングデータに対する平均二乗誤差(MSE)の計算
y_train_pred = model.predict(X_train)
mse = mean_squared_error(y_train, y_train_pred)
print("トレーニングデータのMSE:", mse)
上記のコードでは、単純な一次関数の線形回帰を行っています。トレーニングデータとして、入力変数X_train
と目的変数y_train
を定義し、LinearRegression
モデルを作成しています。
fit
メソッドを使用して、モデルをトレーニングします。その後、predict
メソッドを使用して新しいデータ(X_test
)に対する予測を行います。
最後に、トレーニングデータに対して平均二乗誤差(MSE)を計算して表示しています。MSEは、予測値と実際の値の差の二乗の平均を表す評価指標です。