0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】Pythonで学ぶ回帰分析入門

Posted at

はじめに

image.png

機械学習やデータ分析を始めると、「売上を予測したい」「今後の気温や株価を予測したい」といった、「連続値を予測」する場面に出会うことがよくあります。そんなときに使える基本手法が「回帰分析」です。
本記事では、回帰分析の概念から、Python(scikit-learn)を用いた簡単なサンプルコードの説明までを行います。これから回帰分析を始めたい方の一助になれば幸いです。


回帰分析とは

image.png

  • 目的
    ある「数値(連続値)」を予測する手法。売上や株価、温度、家賃などを予測したい場合に用いられる。

  • 考え方

    • 説明変数」と呼ばれる予測の根拠となるデータ(特徴量)と、「目的変数」と呼ばれる予測したい値がある。
    • データを学習して、両者の関係をできるだけ正確に捉える関数(モデル)を作る。
  • なぜ重要か

    • 将来の値を定量的に予測できるため、意思決定や計画立案に役立つ。
    • 特徴量の影響度を把握することで、どの要素が結果に大きく影響しているか分析できる。

回帰分析の種類

image.png

代表的な手法として、以下が挙げられます。

  1. 単回帰分析

    • 説明変数が1つの場合。最も基本的な線形回帰モデル。
    • 例:「勉強時間(説明変数)」から「テストの点数(目的変数)」を予測する。
  2. 重回帰分析

    • 説明変数が複数ある場合。実際のビジネスや研究ではこちらを使う方が多い。
    • 例:「広告費・出店エリア・客足」など複数の要素から「売上」を予測する。
  3. 多項式回帰

    • 説明変数を2次式や3次式などの形でモデル化する場合。非線形な関係を捉えたいときに使われる。
  4. その他の回帰

    • リッジ回帰、Lasso回帰、Elastic Net回帰などの「正則化回帰」
    • ランダムフォレスト回帰、XGBoost、LightGBMなどのアンサンブル手法
    • ニューラルネットワークを使った深層学習ベースの回帰
    • データや目的に応じて使い分けるのがポイント。

【実践】Python(scikit-learn)で回帰分析をやってみよう

ここでは、scikit-learnに含まれている「California Housing Dataset」を使って住宅価格を予測する例を紹介します。

mermaid-diagram-2025-01-30-221903.png

1. 必要なライブラリの準備

pip install numpy pandas scikit-learn

2. データ読み込みと前処理

import numpy as np
import pandas as pd
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split

housing = fetch_california_housing()
X = pd.DataFrame(housing.data, columns=housing.feature_names)
y = housing.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

3. モデルの学習と予測

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

4. モデルの評価

from sklearn.metrics import mean_squared_error, r2_score

mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
r2 = r2_score(y_test, y_pred)

print("RMSE:", rmse)
print("R^2 :", r2)

image.png

まとめ

image.png

  • 回帰分析は「数値を予測」したいときに用いられる、機械学習の基本手法。
  • Python(scikit-learn)を使えば、数行のコードで実装・評価が可能。
  • データや用途に合わせて、単回帰・重回帰・正則化回帰・アンサンブルなど、多様な手法を試すことで精度向上が期待できる。

本記事では、線形回帰の基礎的なサンプルを紹介しました。機械学習で回帰を扱う第一歩として、ぜひ自分のデータセットを使って試してみてください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?