多変量データの関係性を調べる際、2次元や3次元程度に次元を削減してデータの関連性を調べる方法として主成分分析(PCA)がよく用いられます。
しかし近年、次元削減の方法としてUMAP、t-SNEという手法が脚光を浴びています。これらは非線形な次元削減手法であり、線形な次元削減方法である主成分分析ではうまくデータ構造を表現できないときでも有効であると言われています。
これらの手法も次元削減方法なので、多次元のデータを2次元や3次元に削減してデータのパターンを視覚的に調べられます。
機械学習の分野でも、UMAPやt-SNEは次元削減の目的で広く利用されています。例えば、画像認識、テキスト分類、遺伝子解析など、様々な用途で有効です。
ちょうどJMP Proには「多変量埋め込み」というプラットフォームがあり、UMAP、t-SNEの手法を搭載しています。
t-SNEを用いたサンプルのグループ化の例
本ブログでは、スペクトルデータを使用して、主成分分析、UMAP、t-SNEの手法を用いて次元を削減し、データの関連性を視覚化します。その際、ラベルを持っているデータを上手く分離できているかどうかを調べてみます。
使用するスペクトルデータ
今回使用するのは、オリーブオイルの中赤外スペクトルデータです。*
サンプリングにより60種類のオリーブオイルのスペクトルが収集されています。各サンプルには原産国(Country)の情報が付加されています。この多変量のスペクトルのデータから、原産国(Greece, Italy, Portugal, Spain)を分類できるかを調べます。
機械学習では、原産国の情報は「ラベル」に相当し、教師ありのデータになります。この後の分析では、ラベル通りに分類できるかが焦点になります。
「グラフビルダー」を使って、原産国ごとにスペクトルをグラフ化しました。各波数に関する強度を示しており、特定の波数でピークが見られるものや、強度の変動の大きいものや小さいものなど、各国のスペクトルの特徴や他国との違いを視覚的に確認できます。
*データの出典:
Data for: Spectra Data Classification with Kernel Extreme Learning - Mendeley Data
主成分分析による次元削減
まずは、このスペクトルデータについて主成分分析(PCA)を実施し、最初の2成分をスコアプロットで視覚化します。
570の波数における強度を測定しているので、570次元を2次元に削減しています。
スコアプロットをみると、異なるプロット点が多くオーバーラップしており、オリーブオイルの原産国をうまく分離できていないことがわかります。主成分分析で行う次元削減は線形な変換に基づいているため、データが非線形に分布している場合は、データの構造をうまく捉えられないことがあります。
UMAP、t-SNEによる次元削減
今度は、オリーブオイルのデータに対してUMAP,、t-SNEをを実施します。
JMP Proでは、[分析] > [多変量] > [多変量埋め込み] を選択します。
- 起動ダイアログで、連続尺度の列(この例では波数における強度を示す570列)を [Y,列]に指定します。
- オプションとして手法、次元削減後の次元などを選択できます。
- 「手法」で [UMAP]か [t-SNE]を選択することができます。デフォルトは[UMAP]です。
- 「次元削減後の次元」を選択できます。デフォルトは"2" (2次元)です。
これらの操作でUMAP、t-SNEの双方を実行したときのプロットを示します(左下:UMAP , 右下: t-SNE)。
主成分分析のスコアプロットと比較すると、オリーブオイルの原産国をある程度分離できていることがわかります。特にオレンジ色のSpainと他の原産国とほぼ明確に識別できています。
次に「次元削減後の次元」を3にして、3次元で視覚化してみましょう。「多変量埋め込み」のレポートでは、三次元プロットが表示されます。このプロットでカーソルをドラッグすることで動かすことができ、3次元目も含めてうまく分類されているかを考察できます。
t-SNEの2次元のプロットでは、オレンジ色のSpain以外の分類がうまくできていませんでしたが、3次元プロットでは緑色(Italy)、赤色(Greece)、青色(Portugal)をある程度分類できています。
UMAP、t-SNEともに非線形の次元削減手法であり、高次元空間で近いデータ点同士の関係を低次元でも維持できるように次元を削減します。そのため、データを視覚的にグループ分けする方法として非常に優れています。
ただし、主成分分析は負荷量プロットなどのレポートから軸の解釈を行いますが、UMAP、t-SNEの手法ではデータ(サンプル)間の関係やグループに分ける、パターンを見つけることに主眼をおいており、軸の意味解釈は難しいことがあります。
例えば、上記のUMAPのプロットで、オレンジ色のSpainのデータが右下に多くプロットされますが、2次元座標の右下に位置することが何を示すのか規定するのは難しいです。
UMAPとt-SNEの比較
UMAPはt-SNEに比べて計算速度が速いとされています。またパラメータの調整もUMAPの方が簡単だと言われています。
実際、今回のスペクトルデータの例において、t-SNEをデフォルトのパラメータ設定で実行すると収束計算に関する警告が表示されました。メッセージに記載されているように、収束規準を緩め(1e-8⇒1e-4)、最大反復回数を増やす(1000⇒10000)ことにより解決しました。
UMAPとt-SNEを比較すると、総じてUMAPの方が優れていると言われていますが、実務上はUMAPとt-SNEのどちらも試してみて結果を比較するのが良いでしょう。ただし、t-SNEの場合は大規模データを扱う際、計算に時間がかかる可能性があり、場合によってパラメータの調整が必要になることがあります。
by 増川 直裕(JMP Japan)
Naohiro Masukawa - JMP User Community
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.