公開日: 04/01/2021

特異値分解

特異値分解(SVD; Singular Value Decomposition)は、アソシエーション分析とは異なった枠組みで、互いに関連性のあるアイテムを特定します。この分析では、トランザクション- アイテムの行列が特異値分解され、元の行列が少数の次元に要約されます。それらの結果から、類似のトランザクションや類似のアイテムを見出すことができます。「アソシエーション分析」プラットフォームでの特異値分解分析は、相関行列に対して主成分分析(PCA; Principal Component Analysis)を行うのと同等です。

行がトランザクションに、列がアイテムに対応する行列を、ここではトランザクション- アイテム行列と呼びます。トランザクション- アイテム行列は、0 と1だけを要素に持ちます。トランザクション- アイテム行列では、あるアイテムがあるトランザクションに出現している場合は、それらに対応する行と列の要素を1にします。出現していない場合は、その要素を0にします。トランザクション- アイテム行列における要素は、1よりも0になっているものが多いです。そのような行列を、「疎な行列(sparse matrix)」と言います。

部分的な特異値分解は、USVの3つの行列を使って、列が標準化されたトランザクション- アイテム行列を近似します。4つの行列には、次のような関係があります。これらの行列の関係は、次のとおりです。

トランザクション-アイテム行列 U * S * V

ここで、nTranを、トランザクション- アイテム行列の行数(トランザクション数)とします。nItemを、トランザクション- アイテム行列の列数(アイテムの個数)とします。また、nVecを、指定した特異ベクトルの次元数とします。このとき、nVecは、min(nTran, nItem)以下でなければなりません。Uは、トランザクション- アイテム行列の左特異ベクトルを含むnVec行列です。Sは、nVec次の対角行列です。このSの対角成分は、トランザクション-アイテム行列の特異値になっています。Vは、nVec x nItem行列です。Vの行(またはVの列)は右特異ベクトルです。

右特異ベクトルは、一緒に生じているパターンが似ているアイテムを反映します。同じトランザクションに出 現することの多いアイテムが3つあった場合、特異値分解によって得られる右特異ベクトルVでは、これらの3つのアイテムに対する値が大きくなります。また、左特異ベクトルUは、各トランザクションが、上記のようなアイテム空間に射影されたものです。

特異値分解は、間接的な関係も捉えます。同じトランザクションに一緒に出現することのない2つのアイテムがあり、ただし、それら2つは第3のアイテムと一緒には出現しているとします。特異値分解はその間接的な関係を近似的に捉えることができます。2つのトランザクションに直接的には共通のアイテムはなくとも、間接的に関係している共通のアイテムが含まれている場合、特異値分解プロットにおいてそれらのトランザクションは近い位置にプロットされます。

トランザクションデータを特異値分解によって低次元のベクトル空間に変換することで、クラスター分析・分類・回帰分析などが適用できるようになります。[保存]オプションによって特異ベクトルがデータテーブルに出力されるので、それらを他のJMPプラットフォームで分析できます。

トランザクション-アイテム行列は、特異値分解が実行される前に中心化および尺度化され、nTran - 1で除算されます。この分析は、トランザクション-アイテム行列の相関行列に対して主成分分析を適用することと同等です。なお、特異値分解を解くアルゴリズムでは、トランザクション-アイテム行列が疎(sprase)であることを利用しています。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).