数学
線形代数の基礎 - ベクトルと行列
データサイエンスに必要な線形代数の基礎知識として、ベクトルと行列の基本演算を解説します。
なぜ線形代数が重要なのか
機械学習やデータサイエンスの多くのアルゴリズムは、線形代数の概念に基づいています。データの表現、変換、次元削減など、あらゆる場面で活用されます。
ベクトルの基本
ベクトルは、数値の順序付きリストです。n次元ベクトルはn個の成分を持ちます。
import numpy as np
# ベクトルの定義
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# ベクトルの加算
print(a + b) # [5, 7, 9]
# 内積(ドット積)
print(np.dot(a, b)) # 32
行列の基本演算
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# 行列の積
print(A @ B)
# [[19 22]
# [43 50]]
# 転置行列
print(A.T)
# [[1 3]
# [2 4]]
# 逆行列
print(np.linalg.inv(A))
固有値と固有ベクトル
行列Aに対して、以下を満たすベクトルvとスカラーλを探します:
Av = \lambda v
eigenvalues, eigenvectors = np.linalg.eig(A)
print("固有値:", eigenvalues)
print("固有ベクトル:", eigenvectors)
固有値分解は、主成分分析(PCA)の基礎となる概念です。
まとめ
- ベクトルと行列はデータの数学的表現
- NumPyを使えばPythonで簡単に線形代数の計算が可能
- 固有値・固有ベクトルは次元削減や特徴抽出に不可欠