LLE (局所的線形埋め込み) は、基礎となる非線形フィーチャ構造の本質的な幾何学的特性を維持しながら、データを元の高次元空間から低次元表現に変換するように設計された教師なしアプローチです。 LLE は、いくつかの重要なステップで動作します。
- まず、最近傍グラフを構築して、これらの局所的な関係をキャプチャします。次に、各データ ポイントの重み値を最適化し、隣接するポイントの線形結合としてポイントを表現する際の再構成誤差を最小限に抑えることを目指します。この重み行列は、ポイント間の接続の強さを反映します。
- 次に、LLE は次のことを見つけてデータの低次元表現を計算します。 固有ベクトル 重み行列から導出された行列の。これらの固有ベクトルは、縮小された空間内で最も関連性の高い方向を表します。ユーザーは出力空間に必要な次元を指定でき、LLE はそれに応じて上位固有ベクトルを選択します。
例として、次のことを考えてみましょう。 スイスロールデータセット 、高次元空間では本質的に非線形です。この場合、LLE は、この複雑な構造を低次元の平面に投影し、変換プロセス全体を通じてその独特の幾何学的特性を維持するように機能します。
目次
LLE アルゴリズムの数学的実装
LLE の重要な考え方は、局所的に各データ ポイントの近くで、データがほぼ線形部分空間上に存在するということです。 LLE は、これらのローカルな線形関係を維持しながら、データを展開またはアンロールしようとします。
LLE アルゴリズムの数学的概要は次のとおりです。
最小化: 
Java8の機能
対象: 
どこ:
- バツ私は i 番目のデータ点を表します。
- でijデータ点 x の再構成誤差を最小化する重みです。私隣人を使って。
ローカルな関係を維持しながら、データの低次元表現を見つけることを目的としています。 LLE の数式では、各データ ポイントの再構成誤差を、データ ポイントの重み付き合計として表すことによって最小限に抑えます。 k 番の最近傍 ' 貢献。この最適化には、各データ ポイントの重みの合計が 1 になるという制約が適用されます。 Locally Linear Embedding (LLE) は、機械学習とデータ分析で使用される次元削減手法です。高次元データを低次元空間にマッピングする際に、データ ポイント間のローカルな関係を維持することに重点を置いています。ここでは、LLE アルゴリズムとそのパラメーターについて説明します。
局所線形埋め込みアルゴリズム
LLE アルゴリズムはいくつかのステップに分類できます。
- 近隣地域の選択: 高次元空間内の各データ ポイントについて、LLE はその k 最近傍を識別します。 LLE では、各データ ポイントが近傍のデータ ポイントの線形結合によって適切に近似できると仮定しているため、このステップは非常に重要です。
- ウェイトマトリックスの構築: LLE は、各データ ポイントの一連の重みを計算して、隣接するデータ ポイントの線形結合として表現します。これらの重みは、再構成エラーが最小限になるように決定されます。これらの重みを見つけるには、線形回帰がよく使用されます。
- グローバル構造の保存: 重み行列を構築した後、LLE は、局所的な線形関係を最もよく保存するデータの低次元表現を見つけることを目的としています。これは、コスト関数を最小化する各データ ポイントの低次元空間内の座標セットを求めることによって行われます。これ コスト関数 各データ ポイントがその近傍によってどの程度適切に表現できるかを評価します。
- 出力の埋め込み: 最適化プロセスが完了すると、LLE はデータの最終的な低次元表現を提供します。この表現は、データの次元を削減しながら、データの本質的な構造を捉えます。
LLE アルゴリズムのパラメータ
LLE には、その動作に影響を与えるいくつかのパラメーターがあります。
- k (近傍数): このパラメータは、重み行列を構築するときに考慮される最近傍の数を決定します。 k が大きくなると、より大域的な関係がキャプチャされますが、ノイズが発生する可能性があります。 k が小さいと、局所的な関係に焦点が当てられますが、外れ値に敏感になる可能性があります。 k に適切な値を選択することは、アルゴリズムを成功させるために不可欠です。
- 出力空間の次元: データがマップされる低次元空間の次元を指定できます。これは多くの場合、問題の要件と、計算の複雑さと情報の保存との間のトレードオフに基づいて選択されます。
- 距離メトリック: LLE は、距離メトリックに基づいてデータ ポイント間の近接性を定義します。一般的な選択肢には、ユークリッド距離、マンハッタン距離、またはカスタム定義の距離関数が含まれます。距離メトリックの選択は結果に影響を与える可能性があります。
- 正則化 (オプション): 場合によっては、過剰適合を防ぐために正則化項がコスト関数に追加されます。正則化は、ノイズの多いデータを扱う場合、または近傍データの数が多い場合に役立ちます。
- 最適化アルゴリズム (オプション): LLE は、次のような最適化手法をよく使用します。 特異値分解 (SVD) または固有ベクトル法を使用して、低次元表現を見つけます。これらの最適化方法には、調整可能な独自のパラメーターがある場合があります。
LLE (局所線形埋め込み) 構造解析における大幅な進歩を表し、ローカルな密度モデリング技術を超えています。 PCA または因子分析器の混合。密度モデルの限界は、構造多様体全体にわたって観察を埋め込むことができる一連のグローバル座標を一貫して確立できないことにあります。したがって、元のデータセットの低次元投影を生成するなどのタスクには不適切であることがわかります。これらのモデルは、以下の図に示すように、線形特徴の識別のみに優れています。ただし、LLE に固有の機能である複雑な曲線パターンを捕捉するには至っていません。
LLE による計算効率の向上。 LLE は、スパース行列の処理により優れた計算効率を提供し、他のアルゴリズムを上回ります。
SQLで複数のテーブルから選択する
局所線形埋め込みの実装
ライブラリのインポート
Python3
#importing Libraries> import> numpy as np> import> matplotlib.pyplot as plt> from> sklearn.datasets>import> make_swiss_roll> from> sklearn.manifold>import> LocallyLinearEmbedding> |
>
>
コードは、numpy などの必要なライブラリをインポートすることから始まります。 matplotlib.pyplot 、sklearn.datasets の make_swiss_roll、および LocallyLinearEmbedding から sklearn.manifold 。
合成データセットの生成 (スイスロール)
Python3
# Code for Generating a synthetic dataset (Swiss Roll)> n_samples>=> 1000> # Define the number of neighbors for LLE> n_neighbors>=> 10> X, _>=> make_swiss_roll(n_samples>=>n_samples)> |
>
>
scikit-learn の make_swiss_roll 関数を使用して、スイス ロールに似た合成データセットを生成します。
制御構造Python
n_samples は、生成するデータ ポイントの数を指定します。
n_neighbors は、LLE アルゴリズムで使用される近傍の数を定義します。
ローカル線形埋め込み (LLE) の適用
Python3
# Including Locally Linear Embedding> lle>=> LocallyLinearEmbedding(n_neighbors>=>n_neighbors, n_components>=>2>)> X_reduced>=> lle.fit_transform(X)> |
>
>
LLE アルゴリズムのインスタンスは LocallyLinearEmbedding を使用して作成されます。 n_neighbors パラメーターは、埋め込みプロセス中に考慮する近傍の数を決定します。
次に、LLE アルゴリズムは、次の式を使用して元のデータ X に適合されます。 フィットトランスフォーム 方法。このステップでは、データセットを 2 次元 (n_components=2) に縮小します。
元のデータと縮小されたデータの視覚化
Python3
# Code for Visualizing the original Versus reduced data> plt.figure(figsize>=>(>12>,>6>))> plt.subplot(>121>)> plt.scatter(X[:,>0>], X[:,>1>], c>=>X[:,>2>], cmap>=>plt.cm.Spectral)> plt.title(>'Original Data'>)> plt.xlabel(>'Feature 1'>)> plt.ylabel(>'Feature 2'>)> plt.subplot(>122>)> plt.scatter(X_reduced[:,>0>], X_reduced[:,>1>], c>=>X[:,>2>], cmap>=>plt.cm.Spectral)> plt.title(>'Reduced Data (LLE)'>)> plt.xlabel(>'Component 1'>)> plt.ylabel(>'Component 2'>)> plt.tight_layout()> plt.show()> |
>
>
出力:
局所的線形埋め込み
gimpの色変更
2 番目のサブプロット では、LLE から取得された縮小データ (X_reduced) が元のデータと同様の方法で視覚化されます。データ ポイントの色は、元のデータの 3 番目の特徴 (X[:, 2]) によって決まります。 plt.tight_layout() 関数は、サブプロット間の適切な間隔を確保するために使用されます。
LLEの利点
ローカル線形埋め込み (LLE) として知られる次元削減方法には、データの処理と視覚化に多くの利点があります。 LLE の主な利点は次のとおりです。
- 現地構造物の保存 : LLE は、データ内のローカルな関係または構造を維持することに優れています。近くのデータ点間のペアごとの距離を維持することで、非線形多様体の固有の幾何学形状をうまく捕捉します。
- 非線形性の処理 : LLE には、次のような線形手法とは対照的に、データ内の非線形パターンと構造をキャプチャする機能があります。 主成分分析 (PCA)。複雑な、曲がった、またはねじれたデータセットを扱う場合、これは特に役立ちます。
- 次元削減 : LLE は、データの基本的な特性を維持しながら、データの次元を下げます。特に高次元のデータセットを扱う場合、この削減によりデータの表示、探索、分析がより簡単になります。
LLEの欠点
- 次元の呪い :LLEで体験できるのは、 次元の呪い 他の多くの次元削減アプローチと同様に、非常に高次元のデータを使用する場合。ローカルな相互作用をキャプチャするために必要な近傍の数は次元が増加するにつれて増加し、アプローチの計算コストが増加する可能性があります。
- メモリと計算要件 : 大きなデータセットの場合、LLE の一部として重み付けされた隣接行列を作成すると、メモリが大量に消費される可能性があります。固有値分解ステージも、大きなデータセットの場合、計算負荷が高くなる可能性があります。
- 外れ値とノイズのあるデータ : LLE は、異常や不安定なデータ ポイントの影響を受けやすくなります。埋め込みの品質が影響を受け、局所的な線形関係が外れ値によって歪む可能性があります。