このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
fsulaplacian
ラプラシアン スコアを使用して教師なし学習の特徴量をランク付け
説明
は、ラプラシアン スコアを使用してidx
= fsulaplacian(X
)X
の特徴量 (変数) をランク付けします。関数はidx
を返します。これには特徴量の重要度順に並べ替えられた特徴量のインデックスが含まれます。idx
を使用して、教師なし学習用の重要な特徴量を選択できます。
では、1 つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば、idx
= fsulaplacian(X
,Name,Value
)'NumNeighbors',10
を指定すると、10 個の最近傍を使用して類似度グラフを作成できます。
例
重要度を基準とした特徴量のランク付け
標本データを読み込みます。
loadionosphere
重要度に基づいて特徴量をランク付けします。
[idx,scores] = fsulaplacian(X);
特徴量の重要度スコアの棒グラフを作成します。
bar(scores(idx)) xlabel('Feature rank') ylabel('Feature importance score')
上位 5 つの最も重要な特徴量を選択します。X
におけるこれらの特徴量の列を求めます。
idx(1:5)
ans =1×515 13 17 21 19
X
の 15 列目が、最も重要な特徴量です。
指定された類似度行列を使用した特徴量のランク付け
フィッシャーのアヤメのデータセットから類似度行列を計算し、類似度行列を使用して特徴量をランク付けします。
フィッシャーのアヤメのデータセットを読み込みます。
loadfisheriris
既定のユークリッド距離計量で関数pdist
とsquareform
を使用して、meas
に含まれている観測値の各ペア間の距離を求めます。
D = pdist(meas); Z = squareform(D);
類似度行列を作成し、これが対称であることを確認します。
S = exp(-Z.^2); issymmetric(S)
ans =logical1
特徴量をランク付けします。
idx = fsulaplacian(meas,'Similarity',S)
idx =1×43 4 1 2
類似度行列S
を使用したランク付けは、'NumNeighbors'
をsize(meas,1)
として指定することによるランク付けと同じです。
idx2 = fsulaplacian(meas,'NumNeighbors',size(meas,1))
idx2 =1×43 4 1 2
入力引数
X
—入力データ
数値行列
入力データ。n 行 p 列の数値行列を指定します。X
の行は観測値 (点) に、列は特徴量に対応します。
NaN
はX
の欠損データとして扱われ、最低 1 つのNaN
を含むX
の任意の行を無視します。
データ型:single
|double
名前と値の引数
例:'NumNeighbors',10,'KernelScale','auto'
は、最近傍の個数を 10 に、カーネル スケール係数を'auto'
に指定します。
オプションのName,Value
引数のコンマ区切りペアを指定します。Name
は引数名で、Value
は対応する値です。Name
は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN
のように、複数の名前と値のペアの引数を、任意の順番で指定できます。
相似
—類似度行列
[]
(空の行列)(既定値) |対称行列
類似度行列。'Similarity'
と n 行 n 列の対称行列から構成されるコンマ区切りのペアとして指定します。n は観測値の個数です。類似度行列 (または隣接行列) は、データ点間の局所的な近傍関係をモデル化することで入力データを表します。類似度行列内の値は、類似度グラフ内で接続しているノード (データ点) 間のエッジ (または接続) を表します。詳細は、類似度行列を参照してください。
'Similarity'
の値を指定する場合、別の名前と値のペアの引数を指定することはできません。'Similarity'
の値を指定しない場合、別の名前と値のペアの引数によって指定されたオプションを使用して類似度行列の計算が行われます。
データ型:single
|double
Distance
—距離計量
文字ベクトル|string スカラー|関数ハンドル
距離計量。'Distance'
と次の表で説明されている文字ベクトル、string スカラーまたは関数ハンドルから構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
'euclidean' |
ユークリッド距離 (既定) |
'seuclidean' |
標準化されたユークリッド距離。観測値間の各座標差は、 |
'mahalanobis' |
|
'cityblock' |
市街地距離 |
'minkowski' |
ミンコフスキー距離。既定の指数は 2 です。名前と値のペアの引数 |
'chebychev' |
チェビシェフ距離 (最大座標差) |
的余弦 |
1 から、ベクトルとして扱われる観測間の夾角の余弦を減算 |
'correlation' |
1 から、観測値間の標本相関を減算 (値の系列として処理) |
'hamming' |
ハミング距離 (異なる座標の比率) |
'jaccard' |
1 からジャカード係数 (異なる非ゼロ座標の比率) を減算 |
'spearman' |
1 から観測値間の標本スピアマン順位相関係数を減算 (値の系列として処理) |
@ |
カスタム距離関数のハンドル。距離関数の形式は次のようになります。 functionD2 = distfun(ZI,ZJ)% calculation of distance...
データがスパースでない場合、通常は関数ハンドルではなく組み込みの距離を使用する方が高速に距離を計算できます。 |
詳細は、距離計量を参照してください。
'seuclidean'
、'minkowski'
または'mahalanobis'
距離計量を使用する場合、追加の名前と値のペアの引数'Scale'
、'P'
または'Cov'
をそれぞれ指定して、距離計量を制御することができます。
例:'Distance','minkowski','P',3
は、指数3
のミンコフスキー距離計量を使用することを指定します。
P
—ミンコフスキー距離計量の指数
2
(既定値) |正のスカラー
ミンコフスキー距離計量の指数。'P'
と正のスカラー値をコンマで区切って指定します。
この引数は、'Distance'
が'minkowski'
である場合のみ有効です。
例:'P',3
データ型:single
|double
Cov
—マハラノビス距離計量の共分散行列
cov(X,'omitrows')
(既定値) |正定値行列
マハラノビス距離計量の共分散行列。'Cov'
と正定値行列から構成されるコンマ区切りのペアとして指定します。
この引数は、'Distance'
が'mahalanobis'
である場合のみ有効です。
例:'Cov',eye(4)
データ型:single
|double
Scale
—標準化されたユークリッド距離計量のスケール係数
性病(X, omitnan)
(既定値) |非負値の数値ベクトル
標準化されたユークリッド距離計量のスケール係数。'Scale'
と非負値の数値ベクトルから構成されるコンマ区切りのペアとして指定します。
X
の各次元 (列) には対応するScale
の値があるので、Scale
の長さは p (X
の列数) です。fsulaplacian
は、X
の各次元について、Scale
内の対応する値を使用して、観測値の差を標準化します。
この引数は、'Distance'
が'seuclidean'
である場合のみ有効です。
データ型:single
|double
NumNeighbors
—最近傍の個数
log(size(X,1))
(既定値) |正の整数
類似度グラフの作成に使用される最近傍の個数。'NumNeighbors'
と正の整数で構成されるコンマ区切りのペアとして指定します。
例:'NumNeighbors',10
データ型:single
|double
KernelScale
—スケール係数
1
(既定値) |'auto'
|正のスカラー
カーネルのスケール係数。'KernelScale'
と'auto'
または正のスカラーで構成されるコンマ区切りのペアとして指定します。距離を類似度測定に変換するために、スケール係数が使用されます。詳細は、類似度グラフを参照してください。
'auto'
オプションは、'euclidean'
および'seuclidean'
の距離計量でのみサポートされます。'auto'
を指定した場合、ヒューリスティック手法を使用して適切なスケール係数が選択されます。このヒューリスティック手法では副標本抽出を使用するので、呼び出すたびに推定値が変化する可能性があります。結果を再現するには、fsulaplacian
を呼び出す前にrng
を使用して乱数シードを設定します。
例:'KernelScale','auto'
出力引数
詳細
類似度グラフ
類似度グラフは、X
のデータ点間の局所的な近傍関係を無向グラフとしてモデル化します。グラフ内のノードはデータ点を表し、無向のエッジはデータ点間の接続を表します。
任意の 2 つのノード i および j 間のペアワイズ距離 Disti,jが正である (またはあるしきい値よりも大きい) 場合、類似度グラフはエッジ[2]を使用して 2 つのノードを接続します。2 つのノード間のエッジは、ペアワイズ類似度 Si,jによって重み付けされます。ここで、指定されたカーネル スケール σ の値に対して です。
fsulaplacian
は、最近傍法を使用して類似度グラフを作成します。関数は、最近傍であるX
内の点を接続します。'NumNeighbors'
を使用して、最近傍の個数を指定します。
類似度行列
類似度行列は、類似度グラフの行列表現です。n 行 n 列の行列 には、類似度グラフで接続しているノード間のペアワイズ類似度の値が含まれます。グラフの類似度行列は、隣接行列とも呼ばれます。
類似度グラフのエッジが無向であるため、類似度行列は対称です。Si,j= 0
の値は、類似度グラフのノード i と j が接続していないことを意味します。
次数行列
次数行列 Dgは、類似度行列S の行を合計することで得られる n 行 n 列の対角行列です。つまり、Dgの i 番目の対角要素は です。
アルゴリズム
ラプラシアン スコア
関数fsulaplacian
は、最近傍の類似度グラフから取得したラプラシアン スコア[1]を使用して特徴量をランク付けします。
fsulaplacian
は、次のようにscores
の値を計算します。
X
内の各データ点に対して、最近傍法を使用して局所的な近傍を定義し、近傍内のすべての点 i および j のペアワイズ距離 を求めます。カーネル変換 を使用して距離を類似度行列S に変換します。ここで σ は、名前と値のペアの引数
'KernelScale'
によって指定されるカーネルのスケール係数です。各特徴量をその平均を削除することでセンタリングします。
ここで xrは r 番目の特徴量、Dgは次数行列であり、 です。
各特徴量のスコア srを計算します。
[1]がラプラシアン スコアを
のように定義していることに注意してください。ここで L は Dgと S の間の差として定義されているラプラシアン行列です。関数fsulaplacian
は、scores
のスコア値にこの方程式の 2 つ目の項のみを使用するため、大きいスコア値が重要な予測子を示します。
ラプラシアン スコアを使用した特徴量の選択は、値
の最小化と一致します。ここで、xirは r 番目の特徴量の i 番目の観測値を表します。この値を最小化することは、アルゴリズムでは大きな分散をもつ特徴量が推奨されることを示します。また、アルゴリズムは、類似性グラフの 2 つのデータ点の間にエッジがある場合のみ、重要な特徴量の 2 つのデータ点が近いと仮定します。
参照
[1] He, X., D. Cai, and P. Niyogi. "Laplacian Score for Feature Selection." NIPS Proceedings. 2005.
[2]Von Luxburg, U. “A Tutorial on Spectral Clustering.” Statistics and Computing Journal. Vol.17, Number 4, 2007, pp. 395–416.
バージョン履歴
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select:.
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina(Español)
- Canada(English)
- United States(English)
Europe
- Belgium(English)
- Denmark(English)
- Deutschland(Deutsch)
- España(Español)
- Finland(English)
- France(Français)
- Ireland(English)
- Italia(Italiano)
- Luxembourg(English)
- Netherlands(English)
- Norway(English)
- Österreich(Deutsch)
- Portugal(English)
- Sweden(English)
- Switzerland
- United Kingdom(English)