Main Content

近傍成分分析 (NCA) 特徴選択

近傍成分分析 (NCA) は、特徴量を選択するためのノンパラメトリックな手法であり、回帰および分類アルゴリズムの予測精度を最大化することを目的とします。Statistics and Machine Learning Toolbox™ の関数 fscnca および fsrnca は、正則化がある NCA 特徴選択を実行することにより、目的関数を最小化するための特徴量の重みを学習します。目的関数では、leave-one-out 分類または回帰の平均損失を学習データに対して評価します。

分類の場合の NCA 特徴選択

学習セットに n 個の観測値が含まれているマルチクラス分類問題について考えます。

S={(xi,yi),i=1,2,,n},

ここで、xip は特徴ベクトル、yi{1,2,,c} はクラス ラベル、c はクラスの数です。目的は、特徴ベクトルを受け入れて f:p{1,2,,c}f(x) の真のラベル y に対する予測 x を行う分類器の学習です。

次のようなランダム化された分類器があるとします。

  • x の ‘基準点’ として点 Ref(x)S から無作為に選択する。

  • 基準点 Ref(x) のラベルを使用して x にラベルを付ける。

この方法は、次の点 x の最近傍になるように基準点が選択される 1-NN 分類器の方法に似ています。NCA では基準点は無作為に選択され、S のすべての点は何らかの確率で基準点として選択され得ます。点 P(Ref(x)= xj|S)xj の基準点として S から選択される確率 x は、次のような距離関数 xj で測定した場合に xdw に近いほど大きくなります。

dw(xi,xj)=r=1pwr2|xirxjr|,

wr は特徴量の重みです。次のように仮定します。

P(Ref(x)= xj|S)k(dw(x,xj)),

ここで、kdw(x,xj) が小さい場合に大きい値になると仮定される何らかのカーネル関数または類似度関数です。[1]で提案されているように、次のようになっているとします。

k(z)=exp(zσ),

x の基準点は S から選択されるので、すべての j について P(Ref(x)= xj|S) を合計すると必ず 1 になります。したがって、次のように記述できます。

P(Ref(x)= xj|S)=k(dw(x,xj))j=1nk(dw(x,xj)).

次に、このランダム化された分類器の leave-one-out 適用について考えます。つまり、学習セット S から点 (xi,yi) を除外した Si のデータを使用して xi のラベルを予測します。点 xjxi の基準点として選択される確率は次のようになります。

pij=P(Ref(xi)= xj|Si)=k(dw(xi,xj))j=1,jink(dw(xi,xj)).

正しい分類の平均 leave-one-out 確率は、ランダム化された分類器が pi を使用して観測値 i を正しく分類する確率 Si です。

pi=j=1,jinP(Ref(xi)=xj|Si)I(yi=yj)=j=1,jinpijyij,

ここで

yij=I(yi=yj)={1ifyi=yj,0otherwise.

ランダム化された分類器を使用した正しい分類の平均 leave-one-out 確率は、次のように記述できます。

F(w)=1ni=1npi.

F(w) の右辺は重みベクトル w に依存します。近傍成分分析の目標は、F(w) に関して w を最大化することです。[1]で紹介されているように、fscnca は正則化された目標関数を使用します。

F(w)=1ni=1npiλr=1pwr2=1ni=1n[j=1,jinpijyijλr=1pwr2]Fi(w)=1ni=1nFi(w),

ここで、λ は正則化パラメーターです。正則化項により、w の重みの多くは 0 になります。

pij のカーネル パラメーター σ として 1 を選択すると、重みベクトル w を求める問題は、与えられた λ に対する次のような最小化問題として表すことができます。

w^=argminwf(w)=argminw1ni=1nfi(w),

ここで、f(w) = -F(w) および fi(w) = -Fi(w) です。

ここで

1ni=1nj=1,jinpij=1,

また、目的関数に定数を加算しても最小値の引数は変化しないことに注意してください。したがって、定数 1 を加算して目的関数を書き直すことができます。

w^=argminw{1+f(w)}=argminw{1ni=1nj=1,jinpij1ni=1nj=1,jinpijyij+λr=1pwr2}=argminw{1ni=1nj=1,jinpij(1yij)+λr=1pwr2}=argminw{1ni=1nj=1,jinpijl(yi,yj)+λr=1pwr2},

ここで、損失関数は次のように定義されます。

l(yi,yj)={1ifyiyj,0otherwise.

最小値の引数は、分類誤差を最小化する重みベクトルです。fscnca の呼び出しで名前と値のペアの引数 LossFunction を使用することでカスタムな損失関数が指定できます。

回帰の場合の NCA 特徴選択

関数 fsrnca は、回帰用に修正された NCA 特徴選択を実行します。n 個の観測値が与えられています。

S={(xi,yi),i=1,2,,n},

分類問題との違いは、応答値 yi が連続的であるということだけです。この場合、目標は与えられた学習セット S に対する応答 y の予測です。

次のようなランダム化された回帰モデルがあるとします。

  • x の ‘基準点‘ として点 (Ref(x)) を S から無作為に選択する。

  • x における応答値を基準点 Ref(x) の応答値と等しい値に設定する。

この場合も、点 xjx の基準点として S から選択される確率 P(Ref(x)= xj|S) は次のようになります。

P(Ref(x)= xj|S)=k(dw(x,xj))j=1nk(dw(x,xj)).

次に、このランダム化された回帰モデルの leave-one-out 適用について考えます。つまり、学習セット S から点 (xi,yi) を除外した Si のデータを使用して xi の応答を予測します。点 xjxi の基準点として選択される確率は次のようになります。

pij=P(Ref(xi)= xj|Si)=k(dw(xi,xj))j=1,jink(dw(xi,xj)).

xi の、ランダム化された回帰モデルが予測する応答値を y^i、実際の応答を yi とします。また、y^iyi の相違を測定する損失関数を l:2 とします。すると、l(yi,y^i) の平均値は次のようになります。

li=E(l(yi,y^i)|Si)=j=1,jinpijl(yi,yj).

正則化項を加算すると、最小化のための目的関数は次のようになります。

f(w)=1ni=1nli+λr=1pwr2.

回帰の場合の NCA 用の既定の損失関数 l(yi,yj) は平均絶対偏差ですが、fsrnca を呼び出すときに名前と値のペアの引数 LossFunction を使用すると、カスタム関数を含め、他の損失関数を指定できます。

標準化の影響

正則化項により、無関係な予測子の重みがゼロになります。分類用または回帰用の NCA の目的関数では、すべての重みについて正則化パラメーターは λ の 1 つだけです。これは、重みの大きさが互いに比較可能であることを必要とします。xi の特徴ベクトル S のスケールが異なる場合、別スケールの重みとなり、無意味になる可能性があります。この状況を回避するには、NCA の適用前に、ゼロ平均と単位標準偏差をもつように予測子を標準化します。予測子は、fscnca または fsrnca の呼び出し時に名前と値のペアの引数 'Standardize',true を使用して標準化できます。

正則化パラメーターの値の選択

正則化パラメーターの値は通常、独立のテスト セットにおけるランダム化された NCA 分類器または回帰モデルの精度の計算によって選択する必要があります。単一のテスト セットではなく交差検証を使用する場合は、交差検証分割全体で平均損失が最小になる λ の値を選択します。例については、分類に NCA を使用して特徴量を判別するための正則化パラメーターの調整回帰用の NCA の正則化パラメーターの調整を参照してください。

参照

[1] Yang, W., K. Wang, W. Zuo. "Neighborhood Component Feature Selection for High-Dimensional Data." Journal of Computers. Vol. 7, Number 1, January, 2012.

参考

| | |

関連するトピック