生物学的データの視覚化テクニック – tSNE vs

著者: 禅とコンピュータープログラミングの芸術

1 はじめに

現在のインターネット時代がもたらした情報への最大の影響の 1 つは、生成される大量のデータです。特にバイオインフォマティクス分野の研究者は、大量のデータを収集し、さまざまな分析を行っています。現在、この分野の研究者は、データの特性を理解し、構造的な違いを発見するなどの目的で、複数の角度からデータを視覚化することが増えています。その中でも、t-SNE (t-Distributed Stochastic Neighbor Embedding) と PCA (Principal Component Analysis) は、一般的に使用される 2 つのデータ次元削減手法であり、高次元空間でデータセットの双極分布を表示するために使用されます。この記事では、この 2 つの関連する概念、長所と短所、およびそれらの選択と使用方法について詳しく説明します。また、実際の例とオープンソースのツールキット(Python 実装)に基づいて具体的な操作手順が示されており、読者はさまざまなアルゴリズムの効果を直感的に感じることができます。

2.基本的な概念と用語

2.1 データ表現と特徴抽出

通常、バイオインフォマティクス データは、サンプル数、マーカー遺伝子の数、その他の指標など、数百から数千に及ぶ高次元であることがよくあります。このため、このようなデータを扱う場合、従来の行列演算が非効率になります。データの次元を削減するには、特徴抽出または次元削減が必要です。たとえば、クラスタリング アルゴリズムを使用して複数のサンプルを異なるカテゴリに分割したり、線形判別分析 (LDA) などの次元削減手法を使用したりできます。特徴選択または特徴エンジニアリングは、最も価値のある特徴サブセットまたはサブスペースを決定するプロセスです。これはデータの前処理段階における重要なタスクです。

2.2 データの次元削減

データの次元削減は、コンピュータ分野で非常に人気のある分野です。その目的は、少量の教師なし手段を通じて高次元データを低次元表現に変換し、それによってデータ視覚化の目的を達成することです。簡単に言うと、データの次元削減により、複雑で理解しにくいデータがわかりやすいグラフィックに変換され、データ間の関係が理解しやすくなります。データの次元削減には、主成分分析 (PCA)、独立成分分析 (ICA)、カーネル主成分分析 (KPCA)、ローカル線形埋め込み (LLE)、スペクトル埋め込み (SE)、変換コーディング (TCA) など、多くの方法があります。 )、多様体学習など。一般的に使用されるものには、t-SNE、PCA、MDS、Isomap などが含まれます。

2.2.1 PCA

PCA は最も古く古典的な手法の 1 つです。これは、新しい座標軸としてデータの最大の分散を持つ方向を見つけ、最大の分散を維持するためにデータをこの座標軸に投影することを目的とした線形変換です。以下の図に示すように: 1 次元の直線 $y=x+1$ があり、データ点の周囲に曲線があるとします。すべてのデータ ポイントを可能な限りこの直線上に投影しようとすると、長距離では情報が失われる可能性があります。対照的に、データ ポイントを曲線に投影すると、一部の分散のみが失われます。PCA は曲線を見つけることで元のデータの情報を最大限に保持できます。PCA には、平均がゼロである、共分散が単位行列であるなど、いくつかの制限もあります。したがって、PCA は一般に非線形手法とみなされます。

2.2.2 t-SNE

t-SNE は、もう 1 つの一般的なデータ次元削減方法です。その基本的な考え方は、「確率近似」と呼ばれる分布関数を通じて、高次元空間のデータ ポイントを低次元空間の 2 次元位置にマッピングすることです。最大の特徴は、グローバル構造を維持でき、ローカル構造に敏感ではないことです。確率的近似の考え方は、すべての 2 次元の位置に対して、対応する高次元のデータ ポイントのセットがあるということです。これらの点セット間の関係を分析することにより、それらが低次元空間内でできるだけ近くに分布するようなマッピング関係を見つけることができます。以下の図に示すように: t-SNE 法は改良された PCA と見なすことができますが、確率論に基づいています。確率分布モデルとして多項式分布を使用し、2 つの高次元データ点間の類似性と距離分布も考慮します。したがって、大規模なデータの処理に適しています。ただし、PCA よりも複雑で計算コストが高くなります。したがって、t-SNE は通常、高次元データの視覚化にのみ使用されます。

2.3 可視化技術

データ視覚化テクノロジーは、データをグラフィック表現の形式で表示する手段です。大きく分けて静止画と動画の2種類があります。静的グラフィックスでは、固定された視覚シンボルを使用してデータが表示されますが、動的グラフィックスでは、アニメーション、インタラクション、ドラッグ アンド ドロップなどを通じて変化する画像が表示されます。通常、静的な図は高レベルの抽象的なデータを表すために使用され、動的図は詳細な微視的なデータを表すために使用されます。一般的な静的チャートには、散布図、棒グラフ、ヒート マップ、ツリー チャート、レーダー チャート、バイオリン チャート、ローズ チャート、等高線チャートなどが含まれます。一般的な動的図には、球面図、パスカル曲面図、流れ場図、等高線図、移行図などが含まれます。

2.4 データセットの例

2.4.1 UCI ヒトマイクロアレイ データセット

UCI ヒューマン マイクロアレイ データセット (HMD) は、国立科学財団によって開発されたヒトの重要な遺伝子マーカーのデータセットです。元のデータは 66 個の重要な遺伝子の発現データ、合計 7653 個のサンプルであり、各サンプルには 458 個のマーカー遺伝子の発現データが含まれています。このデータセットの目的は、ヒトの遺伝子発現データに対するさまざまな機械学習アルゴリズムのパフォーマンスをテストすることです。

2.4.2 乳がん細胞の遺伝子発現データ

Breast Cancer Cell Expression Dataset は、欧州核医学機関と UCSD が共同で収集した乳がん細胞発現データ セットで、205 のサンプルと合計約 145,000 の RNA-Seq 遺伝子発現配列データが含まれています。ターゲット変数はがんの発生率です。このデータセットは主に、クラスタリング、分類、回帰、異常検出などのアルゴリズムをテストするために使用されます。

3. コアアルゴリズムの原則と具体的な操作手順

3.1 PCA

PCA、主成分分析。PCA は、分散が最大となる方向を新しい座標軸として見つけるために使用される統計手法です。まず、データ セットの特徴ベクトルが新しい空間に変換され、特徴ベクトルの長さに応じて配置され、最初のいくつかの特徴ベクトルに大きな影響を与える特徴がより多くの空間を占めるようになります。次に、データがこの新しい座標系に投影されて、新しいデータ ポイントのセットが取得されます。このデータ ポイントのセットは、元のデータ ポイントと同じ位置にありますが、長さと方向が異なります。したがって、データを 2 次元に圧縮することができ、各次元のデータはデータの最大分散を反映できます。PCA アルゴリズムの具体的な手順は次のとおりです。

3.1.1 データの標準化

標準化は PCA の重要な準備ステップであり、その目的は、データの分散が 1、つまり各特徴の分散が同じであることを保証することです。具体的な方法は、平均を引いて標準偏差で割る、つまり z=(x-μ)/σ です。

3.1.2 共分散行列の計算

共分散行列 C は、2 つの確率変数 X と Y の間の線形関係を表します。C は n n の行列です。n はデータセット内のサンプル数です。2 つの変数間に線形関係がある場合、対応する Cij は大きくなり、そうでない場合は小さくなります。C(i,j)=E[(Xi-E[X]) (Yj-E[Y])]

3.1.3 分散寄与率を解く

説明された分散比は各特徴ベクトルの分散寄与度を表しており、分散寄与度が最も大きい方向が座標軸になると考えられます。分散の和は 1 であるため、各特徴ベクトルの分散寄与率も 1/n になります。

3.1.4 異なる次元の分散寄与率を比較する

k 次元を決定した後、私たちがしなければならないことは、最大の寄与率を持つ k 個の固有ベクトルを見つけることです。これらの k 個の固有ベクトルが座標軸を構成するからです。相互検証を通じて、最適な k 値を見つけることができます。最後に、元のデータを投影して、k 次元特徴空間内の新しいサンプル点のセットを取得します。

3.2 t-SNE

t-SNE (t-Distributed Stochastic Neighbor Embedding) は、非線形次元削減テクノロジーです。その基本的な考え方は、各高次元データ点 xi に対して、隣接するデータ点 xj を見つけ、それらの間の距離 (KL 発散) はガウス分布に従うというものです。したがって、xi の k 個の近傍点 yj を見つけることができ、これらの k yj は xi のガウス分布を構成します。t-SNE の具体的な操作手順は次のとおりです。

3.2.1 サンプルの標準化

データを正規化する目的は、過度に大きな勾配によってトレーニングが困難になるのを防ぐことです。

3.2.2 KL ダイバージェンスの計算

KLダイバージェンス、カルバック・ライブラーダイバージェンス。2 つの確率分布 P と Q の差を測定します。Dkl(P||Q)=∑pilog(pi/qi) として定義されます。

3.2.3 ガウス分布のフィッティング

ガウス分布をフィッティングすると、データ サンプル間の類似性を取得でき、サンプルのガウス分布を確率分布モデルとして使用して、サンプル間の確率関係を把握できます。

3.2.4 サンプル分布の高次元空間へのマッピング

確率分布間の関係をマッピングに使用し、標本分布を高次元空間にマッピングします。最後に、低次元空間内のデータ点が生成されます。

3.3 Python プログラミングの例

scikit-learn ライブラリの t-SNE と PCA を使用して、t-SNE と PCA のコードを実装し、2 つのアルゴリズムの効果を比較できます。

3.3.1 依存ライブラリのインストール

!pip install sklearn matplotlib pandas seaborn

3.3.2 scikit-learn を使用した t-SNE の実装

from sklearn.manifold import TSNE
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

data = pd.read_csv('breast_cancer_expression.txt', sep='\t')   #读取数据

X = data[['Gene' + str(i) for i in range(1, 10)]]    #获取特征值

tsne = TSNE(random_state=42)   #实例化t-SNE对象

transformed_X = tsne.fit_transform(X)   #进行转换

plt.scatter(transformed_X[:, 0], transformed_X[:, 1], c=data['target'])   #绘制散点图

plt.xlabel("Dimension 1")
plt.ylabel("Dimension 2")

plt.show()  

操作結果:

この例では、t-SNE が 2 種類のサンプルを効果的に分離できることがわかります。ただし、データセットやパラメーター設定が異なると結果が異なる場合があります。さらに、結果をより明確にするために、学習率、初期化方法、反復回数などの調整など、手動で調整したパラメーターを追加できます。

3.3.3 scikit-learn を使用した PCA の実装

from sklearn.decomposition import PCA
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

data = pd.read_csv('human_microarray_gene_expression.txt', sep='\t') 

X = data[['Gene' + str(i) for i in range(1, 459)]].values   #获取特征值

pca = PCA(n_components=2)   #实例化PCA对象

transformed_X = pca.fit_transform(X)   #进行转换

plt.scatter(transformed_X[:, 0], transformed_X[:, 1], alpha=.3)   #绘制散点图

plt.xlabel("Dimension 1")
plt.ylabel("Dimension 2")

plt.show() 

操作結果:

PCA の結果はデー​​タの構造を視覚的に表現することが難しく、各点のサイズが分散を表していることがわかります。さらに、PCA は完全な非線形変換ではないため、データの局所構造をうまく捕捉できない可能性があります。

おすすめ

転載: blog.csdn.net/universsky2015/article/details/133566278