主成分分析(PCA)とは?次元削減の基本と使い方をやさしく解説|統計自主学習⑮

はじめに

データ分析や機械学習では、
「特徴量(説明変数)が多すぎる」問題に直面することがよくあります。

特徴量が多いと、

  • モデルが複雑になりすぎる
  • 計算コストが増える
  • 過学習しやすくなる

これを防ぐための基本的なテクニックが、
「次元削減(Dimensionality Reduction)」です。

この記事では、次元削減の代表的な手法である
主成分分析(PCA:Principal Component Analysis)について解説します!

🔹 統計自主学習シリーズまとめページはこちら
【初心者向け】統計自主学習シリーズまとめ


次元削減とは?

次元削減とは、
たくさんある特徴量を、できるだけ情報を失わずに少ない数にまとめることです。

  • 元のデータの「本質的な情報」だけを抜き出す
  • 不要なノイズを減らして、シンプルなデータにする

次元削減を行うと、

  • 可視化しやすくなる
  • モデルが軽くなり、汎化性能(新しいデータへの強さ)が向上する

主成分分析(PCA)とは?

PCA(Principal Component Analysis)は、
データの分散(ばらつき)を最大限に保ちながら、新しい軸を作る方法です。

簡単に言うと、

  • もともとの特徴量を「情報量が多い順に並び替える」
  • 最初の数個だけを使って、データをコンパクトに表現する

PCAの考え方

  1. データのばらつき(分散)が一番大きい方向に新しい軸(第1主成分)を取る
  2. そこから直交する方向に、第2主成分、第3主成分…を取っていく
PCAを説明する画像

PCAのメリット・デメリット

メリット

  • データを圧縮できる
  • 可視化(2次元や3次元)しやすくなる
  • モデルの学習時間が短くなる
  • 過学習のリスクが減る

デメリット

  • 主成分はもともとの特徴量の意味を持たない(解釈しにくい)
  • 非線形な構造(曲がった構造)には弱い

PCAのPython実装例

実際にPythonでPCAを使ってみましょう!

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

# データ読み込み
iris = load_iris()
X = iris.data
y = iris.target

# PCAで2次元に圧縮
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# 結果を可視化
plt.figure(figsize=(8,6))
plt.scatter(X_pca[:,0], X_pca[:,1], c=y, cmap='viridis')
plt.xlabel('第1主成分')
plt.ylabel('第2主成分')
plt.title('PCAによるIrisデータの2次元化')
plt.colorbar(label='クラス')
plt.show()

主成分分析でよく見る指標:寄与率

PCAでは、「各主成分がどれだけ元のデータを説明できるか」を示す
寄与率(explained variance ratio)が重要です。

pythonコピーする編集するprint(pca.explained_variance_ratio_)

例えば、
第1主成分が70%、第2主成分が20%を説明できるなら、
合計90%の情報を2つの軸で表現できている、という意味になります。


まとめ

  • 主成分分析(PCA)は、データの分散を最大限に保ちながら次元を減らす手法
  • 情報をなるべく失わずに、データをコンパクトに表現できる
  • 可視化や過学習防止に役立つが、解釈の難しさに注意
  • Pythonでは簡単にPCAを使える!

✅ 次回は、さらに一歩進んで、
クラスタリング(教師なし学習)入門にも挑戦していきましょう!

【あわせて読みたい】

🔹 次におすすめの記事

クラスタリングとは?教師なし学習の基本をやさしく解説

🔹 関連記事
「正規分布とは?現実世界と機械学習での使われ方・特徴をやさしく解説」

主要6モデルをやさしく解説!線形回帰・ロジスティック回帰・KNN・SVM・決定木・ランダムフォレストとは?

分類問題の基礎!混同行列・精度・再現率・F1スコアの正しい使い方

なぜ標準化・正規化でモデルの精度が上がるのか?実例と一緒に解説

🔹 統計自主学習シリーズまとめページはこちら
【初心者向け】統計自主学習シリーズまとめ

コメント

タイトルとURLをコピーしました