第3章 数学的基礎(線形代数基礎)
DS検定の線形代数(内積・行列の積・逆行列・固有値)
DS検定(リテラシーレベル)の公式スキルチェックリストには、線形代数基礎として、内積、行列の積、逆行列、固有ベクトルと固有値、テンソルの5項目があります。このページは、買い物の合計金額や2×2の連立方程式など小さな数字で、5項目を順に計算します。用語を文章で覚えるより、2×2の計算を一度手で追うほうが、問題文の意味を読み取りやすくなります。
数学が久しぶりで、内積と行列の積の違いや、逆行列の役割が曖昧な人向けの内容です。
金額や行列の数値はすべて架空です。出題を予想するものではありません。
この記事の目次
公式情報の確認
試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。 当サイトの一次情報確認日: 2026-10-02。
試験の出題範囲・実施要項は変動するため、受験前に公式情報を確認してください。
結論
- 内積は、2つのベクトルから1つの数を作る計算で、線形式(単価×数量の合計など)を1つ表せる
- 行列の積は、内積を並べた計算で、複数の線形式をまとめて表せる。(n, k)と(k, m)の積は(n, m)になる
- 逆行列は、かけると単位行列になる行列。連立方程式 A x = b は、x = A⁻¹ b で解ける
- 固有値は、A v = λ v を満たす非ゼロのベクトルvに対応するλ。向きを変えず、長さだけをλ倍にする方向を表す
- テンソルは、次元数・軸・形状で捉える。reshapeは要素数が合うときだけでき、ブロードキャストは末尾の次元から比べる
内積で線形式を表す
公式スキルチェックリストのNo.1は、ベクトルの内積の計算方法を理解し、線形式をベクトルの内積で表現できることを★1つ星の項目としています。
3つの商品の単価が(120円、80円、200円)、買う数量が(2個、3個、1個)のとき、合計金額は、対応する要素を掛けて足した値です。
120×2 + 80×3 + 200×1 = 240 + 240 + 200 = 680円
単価のベクトルと数量のベクトルの内積が680で、結果はベクトルではなく1つの数です。「重み×特徴量の合計」という機械学習の線形モデルも、この形です。
行列の積で複数の線形式を表す
No.2は、行列同士、および行列とベクトルの計算を正しく理解し、複数の線形式を行列の積で表現できることを挙げています。
同じ3商品を、2つの店で買うとします。店Aの単価は(120、80、200)、店Bの単価は(110、90、210)で、数量は(2、3、1)です。単価を行にして並べた2×3の行列に、数量の3×1の列ベクトルを掛けます。
| 行 | 内積の計算 | 合計 |
|---|---|---|
| 店A | 120×2 + 80×3 + 200×1 = 240 + 240 + 200 | 680円 |
| 店B | 110×2 + 90×3 + 210×1 = 220 + 270 + 210 | 700円 |
形は(2, 3)と(3, 1)の積なので、結果は(2, 1)で、680円と700円の2つの値です。NumPy公式文書も、(n, k)と(k, m)の積の出力は(n, m)で、各要素は左行列の行と右行列の列の積和だと説明しています。左の列の数と右の行の数が同じでないと、行列の積は計算できません。
数量のパターンを2つ((2、3、1)と(1、0、4))に増やして3×2の行列にすると、結果は(2, 2)で、1列目が680円と700円、2列目が920円(120+800)と950円(110+840)になります。
逆行列で連立方程式を解く
No.3は、逆行列の定義と、逆行列を求めて行列表記された連立方程式が解けることの理解を挙げています。NumPy公式文書は、逆行列を、a @ ainv が単位行列になる行列と定義しています。
次の連立方程式で確かめます。
- 2x + y = 5
- x + 3y = 10
- 行列で書くと、Aは1行目が(2, 1)、2行目が(1, 3)の行列で、b = (5, 10)。式は A x = b
- 2×2の行列で、1行目が(a, b)、2行目が(c, d)のとき、逆行列は「1÷(ad−bc)」に、1行目が(d, −b)、2行目が(−c, a)の行列を掛けたものです。ここではad−bc = 2×3 − 1×1 = 5
- 逆行列は「1÷5」に、1行目が(3, −1)、2行目が(−1, 2)の行列を掛けたもの
- x = A⁻¹ b = (1÷5) × (3×5 − 1×10、 −1×5 + 2×10) = (1÷5) × (5、15) = (1、3)
- 検算:2×1 + 3 = 5、1 + 3×3 = 10 で、両方の式が成り立つ
ad−bcが0の行列には、逆行列がありません。NumPy公式文書も、特異行列と判定されるとエラーになると説明しています。
固有値と固有ベクトルの意味
No.4は、固有ベクトルおよび固有値の意味の理解を挙げています。NumPy公式文書は、正方行列Aについて、非ゼロのベクトルvが A v = λ v を満たすとき、λをAの固有値、vをλに対応する右固有ベクトルとしています。
1行目が(2, 1)、2行目が(1, 2)の行列Aで、等式が成り立つかを確かめます。
- v = (1, 1)のとき、A v = (2×1+1×1、 1×1+2×1) = (3, 3) = 3 × (1, 1)。固有値は3
- v = (1, −1)のとき、A v = (2−1、 1−2) = (1, −1) = 1 × (1, −1)。固有値は1
固有ベクトルは、Aを掛けても向きが変わらず、長さだけがλ倍になる方向です。固有値の和は3+1=4で、Aの対角成分の和2+2=4と一致します。なお、対角成分以外がすべて0の行列(対角行列)では、対角成分がそのまま固有値になります。たとえば対角成分が2と3なら、固有値は2と3で、確認がもっとも簡単です。
テンソルの形状・転置・ブロードキャスト
No.5は、テンソルの基本概念(次元数、軸、形状)と、深層学習で使う代表的な操作(転置、リシェイプ、インデックシング、ブロードキャストなど)の理解を挙げています。テンソルは、数、ベクトル、行列を、軸の数を増やして一般化した呼び方です。
NumPy公式文書によると、reshapeはデータを変えずに、互換性のある新しい形状で配列を返し、新しい形状の各次元の積が元の総要素数と一致する必要があります。ブロードキャストは、形状を末尾の次元から左へ比べ、2つの次元が等しいか、どちらかが1のときに互換になります。条件を満たさなければエラーです。
| 操作 | 結果と理由 |
|---|---|
| reshape:12個を(3, 4)から(2, 6)へ | 個数の積が12のまま。(3×4)=(2×6)=12なので可能 |
| reshape:12個を(5, 3)へ | 5×3=15で12と合わないため不可 |
| 転置:(3, 4)の配列 | (4, 3)になる(行と列を入れ替える) |
| ブロードキャスト:(3, 1)と(1, 4)の足し算 | 末尾の1と4は互換、次の3と1も互換。結果は(3, 4) |
| ブロードキャスト:(3, 2)と(3,)の足し算 | 末尾の2と3が等しくも1でもないため、エラー |
形状の問題は、各次元の数を書き出して、掛け算と末尾からの比較をするだけで解けます。
問題文から読み取る
このページの計算例から導いた読み方です。出題を予想するものではありません。
- 「対応する要素を掛けて足す」「結果が1つの数」とあれば、内積
- 「(n, k)と(k, m)」「行と列の積和」とあれば、行列の積で、結果は(n, m)
- 「A x = b を x について解く」「かけると単位行列」とあれば、逆行列(ad−bcが0なら存在しない)
- 「A v = λ v」「向きが変わらない」とあれば、固有ベクトルと固有値
- 「形状」「軸」「要素数が合わない」「末尾の次元から比べる」とあれば、reshapeかブロードキャスト
DS検定の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
よくある質問
DS検定で線形代数はどこまで必要ですか?
公式スキルチェックリストの線形代数基礎は5項目で、すべて★1つ星です。ベクトルの内積、行列の積、逆行列と連立方程式、固有ベクトルと固有値の意味、テンソルの基本概念(次元数・軸・形状)と代表的な操作の理解が挙げられています。このページの2×2程度の計算を手で追えるかが目安です。
内積と行列の積は何が違いますか?
内積は2つのベクトルから1つの数を作る計算です。行列の積は、左の行列の行と右の行列の列の内積を並べて、新しい行列を作る計算です。左が(n, k)、右が(k, m)なら、結果は(n, m)になります。
どんな行列でも逆行列はありますか?
ありません。NumPy公式文書は、逆行列を a @ ainv が単位行列になる行列と定義し、特異行列と判定されるとエラーになると説明しています。2×2の行列では、ad−bcが0のとき逆行列はありません。
固有値は、計算できないと解けませんか?
意味の理解が項目の中心です。公式スキルチェックリストは、固有ベクトルと固有値の意味を理解していることを項目としています。A v = λ v を満たす非ゼロのベクトルvとλだ、と説明でき、与えられた値で等式が成り立つか確かめられれば、意味の理解の目安になります。
reshapeで形が合わないとどうなりますか?
エラーになります。NumPy公式文書は、reshapeはデータを変えずに新しい形状で返すものと説明し、新しい形状の各次元の積は元の総要素数と一致する必要があるとしています。12個の配列を(5, 3)にしようとすると、15個ぶん必要になるため合いません。
