主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

tsne

t分布型確率的近傍埋め込み

説明

Y= tsne (Xは,Xの高次元の行の2次元埋め込みの行列を返します。

Y= tsne (X名称,值は1つ以上の名前と値のペアの引数によって指定されたオプションを使用して,埋め込みを修正します。

Y损失) = tsne (___は,任意の入力引数について,データXとその埋め込みYをモデル化する同時分布の間のカルバック・ライブラーダイバージェンスも返します。

すべて折りたたむ

フィッシャーのアヤメのデータセットには,アヤメの4次元測定値および対応する種への分類が格納されています。tsneを使用して次元を削減することにより,このデータを可視化します。

负载fisheririsrng默认的%的再现性Y = tsne(量);gscatter (Y (: 1), Y(:, 2),物种)

图中包含一个坐标轴。轴线包含3个线型对象。这些物品代表着维珍卡。

各種の距離計量を使用して,フィッシャーのアヤメのデータにおける種の分離をより良好にします。

负载fisheririsrng (“默认”%的再现性Y = tsne(量,“算法”“准确”“距离”“mahalanobis”);次要情节(2,2,1)gscatter (Y (: 1), Y(:, 2),物种)标题(“Mahalanobis”)提高(“默认”为了公平比较Y = tsne(量,“算法”“准确”“距离”的余弦);次要情节(2 2 2)gscatter (Y (: 1), Y(:, 2),物种)标题(的余弦)提高(“默认”为了公平比较Y = tsne(量,“算法”“准确”“距离”“chebychev”);次要情节(2,2,3)gscatter (Y (: 1), Y(:, 2),物种)标题(“Chebychev”)提高(“默认”为了公平比较Y = tsne(量,“算法”“准确”“距离”“欧几里得”);次要情节(2,2,4)gscatter (Y (: 1), Y(:, 2),物种)标题(“欧几里得”

图中包含4个轴。标题为Mahalanobis的轴1包含3个类型为line的对象。这些物品代表着维珍卡。标题为余弦的轴2包含3个类型为line的对象。这些物品代表着维珍卡。标题为Chebychev的轴3包含3个类型为line的对象。这些物品代表着维珍卡。标题为欧几里德的轴4包含3个类型为line的对象。这些物品代表着维珍卡。

この場合,コサイン,チェビシェフおよびユークリッド距離計量でクラスターが適切に分離されています。しかし,マハラノビス距離計量では適切に分離されません。

tsneは,エントリが含まれている入力データ行を削除します。したがって,プロットを行う前に,このような行を分類データから削除しなければなりません。

たとえば,フィッシャーのアヤメのデータでいくつかのランダムなエントリをに変更します。

负载fisheririsrng默认的%的再现性meas(rand(size(meas)) < 0.05) = NaN;

tsneを使用して4次元データを2次元に埋め込みます。

Y = tsne(量,“算法”“准确”);
警告:在X或'InitialY'值中NaN缺失值的行将被删除。

埋め込みから除去された行数を調べます。

长度(物种)长度(Y)
ans = 22

値が含まれていないの行を特定することにより,結果のプロットを準備します。

goodrows =没有(任何(isnan(量),2));

値が含まれていないの行に対応する物种の行のみを使用して,結果をプロットします。

gscatter (Y (: 1), Y(:, 2),物种(goodrows))

图中包含一个坐标轴。轴线包含3个线型对象。这些物品代表着维珍卡。

フィッシャーのアヤメのデータについて2次元と3次元の両方の埋め込みを求め,各埋め込みの損失を比較します。3次元の埋め込みの方が,元のデータに一致する自由度が大きいので,損失が小さくなると考えられます。

负载fisheririsrng默认的%的再现性(Y,亏损)= tsne(量,“算法”“准确”);rng默认的为了公平比较(Y2, loss2) = tsne(量,“算法”“准确”“NumDimensions”3);流('2-D嵌入损失%g, 3-D嵌入损失%g.\n'、损失、loss2)
二维嵌入损失0.124191,三维嵌入损失0.0990884。

予想どおり3次元の埋め込みの方が損失が小さくなっています。

埋め込みを表示します。RGBカラー(1 0 0)(0 1 0)および(0 0 1)を使用します。

3次元プロットに分类コマンドを使用して種を数値に変換してから,次のように関数稀疏的を使用して数値をRGBカラーに変換します。vが正の整数1、2または3から成るベクトルで種のデータに対応する場合,以下のコマンド

稀疏(1:元素个数(v), v, 1(大小(v)))

は,行が種のRGBカラーであるスパース行列になります。

gscatter (Y (: 1), Y(:, 2),物种,眼(3))标题(“二维嵌入”

图中包含一个坐标轴。标题为2d Embedding的轴包含3个类型为line的对象。这些物品代表着维珍卡。

图v =双(属(种));c =全(稀疏(1:元素个数(v), v,(大小(v))的元素个数(v), 3));scatter3 (Y2 (:, 1), Y2 (:, 2), Y2(:, 3), 15日,c,“填充”)标题(“3 d嵌入”)视图(-50 8)

图中包含一个坐标轴。标题为3-D Embedding的轴包含一个散点类型的对象。

入力引数

すべて折りたたむ

データ点。n列の行列を指定します。各行は1つの次元の点です。

tsneは,埋め込みを作成する前に,値が含まれている行をXから削除します。南入力データと結果のプロットを参照してください。

データ型:|

名前と値のペアの引数

オプションの名称,值引数のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:Y = tsne (X,“算法”,“准确”,“NumPCAComponents”,50)
アルゴリズムの制御

すべて折りたたむ

tsneアルゴリズム。“barneshut”または“准确”を指定します。“准确”アルゴリズムは,元の空間と埋め込まれた空間の間の分布のカルバック・ライブラーダイバージェンスを最適化します。“barneshut”アルゴリズムは,データの行数が多い場合に近似最適化をより高速に実行し,メモリ使用量を削減します。

メモ

“barneshut”アルゴリズムの場合,tsneknnsearchを使用して最近傍を求めます。

例:“准确”

距離計量。次のいずれかを指定します。距離計量の定義については,pdistを参照してください。

  • “欧几里得”——ユークリッド距離。

  • “seuclidean”——標準化されたユークリッド距離。Xの行とクエリ行列の行の間の各座標差は,S =性病(X, omitnan)から算出される標準偏差の対応する要素で除算することによりスケーリングされます。

  • “cityblock”——市街地距離。

  • “chebychev”——チェビシェフ距離。これは最大座標差です。

  • 闵可夫斯基的——指数2のミンコフスキー距離。これはユークリッド距離と同じです。

  • “mahalanobis”——正定値共分散行列X (X, omitrows)を使用して計算されたマハラノビス距離。

  • 的余弦- 1から,ベクトルとして扱われる観測間の夾角の余弦を引きます。

  • “相关”- 1から,一連の値として扱われる観測間の標本線形相関係数を引きます。

  • “枪兵”- 1から,一連の値として扱われる観測間の標本スピアマン順位相関係数を引きます。

  • “汉明”——ハミング距離。異なる座標の比率です。

  • “jaccard”- 1からジャカード係数(異なる非ゼロ座標の比率)を引きます。

  • カスタム距離関数-を使用して指定された距離関数(@distfunなど)。詳細は,詳細を参照してください。

どの場合も,tsneはペアワイズ距離の二乗を使用してXの同時分布におけるガウスカーネルを計算します。

例:“mahalanobis”

データ内の自然なクラスターのサイズ。1以上のスカラー値を指定します。

強調が大きくなると,tsneが学習するYの結合確率が大きくなり,Yのクラスター間に比較的大きい空間が作成されます。tsneは,最初の99回の最適化反復で強調を使用します。

最適化の初期段階でカルバック・ライブラーダイバージェンスの値が増加する場合は,強調を小さくしてください。tsneの設定を参照してください。

例:10

データ型:|

出力Yの次元。正の整数を指定します。通常は、NumDimensions2または3.に設定します。

例:3.

データ型:|

PCAの次元削減。非負の整数を指定します。tsneは,高次元データを埋め込む前に,関数主成分分析を使用してデータの次元をNumPCAComponentsに削減します。NumPCAComponents0の場合,tsneはPCAを使用しません。

例:50

データ型:|

各点の局所的近傍の有効数。正のスカラーを指定します。t-SNEアルゴリズムを参照してください。

パープレキシティが大きくなると,tsneはより多くの点を最近傍として使用します。データセットが大きい場合は,困惑の値を大きくします。一般的な困惑の値の範囲は,550です。Barnes-Hutアルゴリズムでは,tsneは最近傍の個数として分钟(3 *困惑,n - 1)を使用します。tsneの設定を参照してください。

例:10

データ型:|

入力データの正規化。または真正的を指定します。真正的の場合,tsneは標準偏差で列を除算することによりXのセンタリングとスケーリングを行います。

スケールが異なる特徴量がXに含まれている場合は,“标准化”真正的に設定します。これは,学習プロセスは最近傍を基本とすることから,スケールの大きい特徴量がスケールの小さい特徴量の寄与を無効化する可能性があるためです。

例:真正的

データ型:逻辑

最適化の制御

すべて折りたたむ

初期の埋め込み点。nNumDimensions列の実数行列を指定します。nXの行数です。tsneの最適化アルゴリズムでは,これらの点を初期値として使用します。

データ型:|

最適化プロセスの学習率。正のスカラーを指定します。通常は、One hundred.1000の値を設定します。

LearnRateが小さすぎる場合,適切ではない局所的最小値にtsneが収束する可能性があります。LearnRateが大きすぎる場合,最適化の初期段階でカルバック・ライブラーダイバージェンスが減少するのではなく増加する可能性があります。tsneの設定を参照してください。

例:1000

データ型:|

反復表示の頻度。正の整数を指定します。名前と値のペア详细的0ではない場合,tsneは反復がNumPrint回行われるたびに反復表示を返します。名前と値のペア选项に空ではない“OutputFcn”エントリが含まれている場合,反復がNumPrint回行われるたびに出力関数が実行されます。

例:20.

データ型:|

最適化オプション。“麦克斯特”“OutputFcn”および“TolFun”というフィールドが含まれている構造体を指定します。statsetまたは结构体を使用して,“选项”を作成します。

  • “麦克斯特”——最適化反復の最大回数を指定する正の整数。既定の設定:1000

  • “OutputFcn”- - - - - -NumPrint回の最適化反復ごとに呼び出す関数を1つ以上指定する関数ハンドルまたはその细胞配列。構文の詳細は,t-SNEの出力関数を参照してください。既定の設定:[]

  • “TolFun”——最適化の停止条件。カルバック・ライブラーダイバージェンスの勾配のノルムが“TolFun”より小さくなると,最適化が終了します。既定の設定:1平台以及

例:选择= statset(麦克斯特,500)

データ型:结构体

Barnes-Hutのトレードオフパラメーター。0 ~ 1のスカラーを指定します。値を大きくすると最適化が高速になりますが,精度は低下します。算法“barneshut”の場合のみ適用されます。

例:0.1

データ型:|

反復表示。01または2を指定します。详细的0ではない場合,tsneはカルバック・ライブラーダイバージェンスおよびその勾配のノルムの概要テーブルをNumPrint回の反復ごとに出力します。

详细的2の場合,tsneはガウスカーネルの分散も出力します。tsneは,これらのカーネルをXの結合分布の計算で使用します。最小の分散と最大の分散でスケールが大きく異なる場合,Xを再スケーリングすると結果がより適切になる可能性があります。

例:2

データ型:|

出力引数

すべて折りたたむ

埋め込み点。nNumDimensions列の行列として返されます。各行は1つの埋め込み点を表します。nは,データXエントリが含まれていない行の数です。南入力データと結果のプロットを参照してください。

モデル化された入力分布と出力分布の間のカルバック・ライブラーダイバージェンス。非負のスカラーとして返されます。詳細は,t-SNEアルゴリズムを参照してください。

詳細

すべて折りたたむ

カスタム距離関数

カスタム距離関数の構文は次のとおりです。

函数ZJ D2 = distfun(子)

tsneZJをカスタム関数に渡し,カスタム関数が距離を計算します。

  • は,XまたはYの1行が含まれている1行n列のベクトルです。

  • ZJは複数行のXまたはYを含むm行n列の行列です。

カスタム関数では,m行1列の距離のベクトルD2を返します。D2のj番目の要素は,観測値およびZJ (j,:)の間の距離です。

ヒント

データがスパースではない場合,組み込みの距離関数の方が関数ハンドルより高速です。

アルゴリズム

tsneは,相対的な類似度が元の高次元点の類似度に似ている一連の埋め込み点を低次元空間内に構築します。埋め込み点は,元のデータのクラスタリングを示します。

大まかに説明すると,このアルゴリズムは,元の点がガウス分布に由来し,埋め込み点がスチューデントのt分布に由来するとしてそれぞれをモデル化します。そして,埋め込み点を移動することにより,これらの2つの分布の間におけるカルバック・ライブラーダイバージェンスを最小化しようとします。

詳細は,t-SNEを参照してください。

R2017aで導入