Main Content

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

FeatureSelectionNCAClassification クラス

近傍成分分析 (NCA) を使用する分類用の特徴選択

説明

FeatureSelectionNCAClassification オブジェクトには、近傍成分分析 (NCA) モデルのデータ、あてはめの情報、特徴量の重み、その他のパラメーターが格納されます。fscnca は、NCA を対角的に適用して特徴量の重みを学習し、FeatureSelectionNCAClassification オブジェクトのインスタンスを返します。この関数は、特徴量の重みを正則化することにより特徴選択を実現します。

構築

FeatureSelectionNCAClassification オブジェクトを作成するには、fscnca を使用します。

プロパティ

すべて展開する

NaN または Inf 値を削除した後で学習データ (X および Y) に含まれている観測値の数。スカラーとして格納されます。

データ型: double

モデルの学習に使用されたモデル パラメーター。構造体として格納されます。

ModelParameters のフィールドには、ドット表記を使用してアクセスできます。

たとえば、mdl という名前の FeatureSelectionNCAClassification オブジェクトの場合、mdl.ModelParameters.LossFunction を使用して LossFunction の値にアクセスできます。

データ型: struct

このモデルの学習に使用された正則化パラメーター。スカラーとして格納されます。n 個の観測値がある場合、NCA モデルの汎化誤差を最小化する最良の Lambda の値は 1/n の整数倍であると考えられます。

データ型: double

このモデルのあてはめに使用した手法の名前。次のいずれかとして格納されます。

  • 'exact' — すべてのデータを使用してあてはめを実行します。

  • 'none' — あてはめを行いません。fscnca を呼び出すときに指定した特徴量の重みの初期値を使用して NCA モデルの汎化誤差を評価する場合に、このオプションを使用します。

  • 'average' — データをサブセットに分割し、exact 法を使用して各分割をあてはめ、特徴量の重みの平均を返します。名前と値のペアの引数 NumPartitions を使用して分割数を指定できます。

このモデルのあてはめに使用したソルバーの名前。次のいずれかとして格納されます。

  • 'lbfgs' — メモリ制限 Broyden-Fletcher-Goldfarb-Shanno (LBFGS) アルゴリズム

  • 'sgd' — 確率的勾配降下 (SGD) アルゴリズム

  • 'minibatch-lbfgs' — LBFGS アルゴリズムをミニバッチに適用した確率的勾配降下

'lbfgs' ソルバーと 'minibatch-lbfgs' ソルバーの、勾配ノルムに対する収束の相対許容誤差。正のスカラー値として格納されます。

データ型: double

最適化の最大反復回数。正の整数値として格納されます。

データ型: double

ソルバーが 'sgd' または 'minibatch-lbfgs' である場合の最大通過回数。1 回の通過ごとに、データ内の観測値がすべて処理されます。

データ型: double

'sgd' ソルバーと 'minibatch-lbfgs' ソルバーの初期学習率。正の実数スカラーとして格納されます。学習率は、InitialLearningRate について指定された値から始まって反復ごとに減衰します。

fscnca を呼び出すときの初期学習率の自動調整を制御するには、名前と値のペアの引数 NumTuningIterations および TuningSubsetSize を使用します。

データ型: double

詳細レベル インジケーター。非負の整数として格納されます。利用可能な値は以下のとおりです。

  • 0 — 収束概要なし

  • 1 — 勾配のノルムと目的関数の値を収束概要に含める

  • 1 より大きい値 - あてはめアルゴリズムに応じた、より多くの収束情報。'minibatch-lbfgs' ソルバーを使用する場合に詳細レベルを 1 より大きい値にすると、中間的なミニバッチ LBFGS のあてはめによる反復ログが収束情報に含まれます。

データ型: double

特徴量の重みの初期値。正の実数スカラーによる p 行 1 列のベクトルとして格納されます。p は X 内の予測子の個数です。

データ型: double

特徴量の重み。実数スカラーによる p 行 1 列のベクトルとして格納されます。p は X 内の予測子の個数です。

FitMethod'average' である場合、FeatureWeights は p 行 m 列の行列になります。m は、fscnca を呼び出すときに名前と値のペアの引数 'NumPartitions' で指定した分割数です。

FeatureWeights(k) の絶対値は予測子 k の重要度の尺度です。FeatureWeights(k) の値が 0 に近い場合、予測子 kY 内の応答に影響を与えません。

データ型: double

あてはめの情報。次のフィールドをもつ構造体として格納されます。

フィールド名意味
Iteration反復のインデックス
Objective最小化対象の正則化された目的関数
UnregularizedObjective最小化対象の正則化されていない目的関数
Gradient最小化対象の正則化された目的関数の勾配
  • 分類の場合、UnregularizedObjective は学習データに対する NCA 分類器の leave-one-out 精度の負数を表します。

  • 回帰の場合、UnregularizedObjective は NCA 回帰モデルを使用して予測された応答と真の応答の間の leave-one-out 損失を表します。

  • 'lbfgs' ソルバーの場合、Gradient は最終的な勾配です。'sgd' ソルバーと 'minibatch-lbfgs' ソルバーの場合、Gradient は最終的なミニバッチの勾配です。

  • FitMethod'average' の場合、FitInfo は m 行 1 列の構造体配列になります。m は、名前と値のペアの引数 'NumPartitions' で指定される分割数です。

FitInfo のフィールドには、ドット表記を使用してアクセスできます。たとえば、mdl という名前の FeatureSelectionNCAClassification オブジェクトの場合、mdl.FitInfo.Objective を使用して Objective フィールドにアクセスできます。

データ型: struct

予測子の平均。学習データが標準化されている場合、p 行 1 列のベクトルとして格納されます。この場合、predict メソッドでは、Mu の対応する要素を各列から減算することにより、予測子行列 X をセンタリングします。

学習時にデータが標準化されていない場合、Mu は空になります。

データ型: double

予測子の標準偏差。学習データが標準化されている場合、p 行 1 列のベクトルとして格納されます。この場合、predict メソッドは予測子行列 X を、Mu を使用したデータのセンタリング後にその各列を Sigma の対応する要素で除算することにより、スケーリングします。

学習時にデータが標準化されていない場合、Sigma は空になります。

データ型: double

このモデルの学習に使用した予測子の値。n 行 p 列の行列として格納されます。n は学習データに含まれている観測値の個数、p は予測子変数の個数です。

データ型: double

このモデルの学習に使用した応答値。サイズ n の数値ベクトルとして格納されます。n は観測値の個数です。

データ型: double

このモデルの学習に使用した観測値の重み。サイズ n の数値ベクトルとして格納されます。観測値の重みの合計は n です。

データ型: double

メソッド

loss学習した特徴量の重みの精度を検定データに対して評価
predict近傍成分分析 (NCA) 分類器の使用による応答の予測
refit分類用の近傍成分分析 (NCA) モデルの再あてはめ

すべて折りたたむ

標本データを読み込みます。

load ionosphere

このデータセットには 34 個の連続予測子が含まれています。応答変数はレーダーの反射で、b (不良) または g (良好) というラベルが付いています。

分類用の近傍成分分析 (NCA) モデルをあてはめて、関連する特徴量を判別します。

mdl = fscnca(X,Y);

返された NCA モデル mdlFeatureSelectionNCAClassification オブジェクトです。このオブジェクトには、学習データ、モデルおよび最適化に関する情報が格納されています。このオブジェクトのプロパティ (特徴量の重みなど) には、ドット表記を使用してアクセスできます。

特徴量の重みをプロットします。

figure()
plot(mdl.FeatureWeights,'ro')
xlabel('Feature Index')
ylabel('Feature Weight')
grid on

Figure contains an axes. The axes contains an object of type line.

無関係な特徴量の重みはゼロになります。fscnca を呼び出すときに 'Verbose',1 オプションを指定すると、最適化の情報がコマンド ラインに表示されます。目的関数と反復回数をプロットして最適化プロセスを可視化することもできます。

figure
plot(mdl.FitInfo.Iteration,mdl.FitInfo.Objective,'ro-')
grid on
xlabel('Iteration Number')
ylabel('Objective')

Figure contains an axes. The axes contains an object of type line.

ModelParameters プロパティは、モデルに関する詳細情報が含まれている struct です。このプロパティのフィールドには、ドット表記を使用してアクセスできます。たとえば、データが標準化されているかどうかを調べます。

mdl.ModelParameters.Standardize
ans = logical
   0

0 は、NCA モデルをあてはめる前にデータが標準化されていないことを意味します。各予測子のスケールが非常に異なる場合は、fscnca を呼び出すときに名前と値のペアの引数 'Standardize',1 を使用して予測子を標準化することができます。

コピーのセマンティクス

値。値のクラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

R2016b で導入