Main Content

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

FeatureSelectionNCARegression クラス

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

説明

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

構築

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

プロパティ

すべて展開する

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

データ型: double

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

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

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

データ型: struct

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

データ型: double

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

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

  • 'none' — 当てはめを行いません。fsrnca を呼び出すときに指定した特徴量の重みの初期値を使用して 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 について指定された値から始まって反復ごとに減衰します。

fsrnca を呼び出すときの初期学習率の自動調整を制御するには、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 は、fsrnca を呼び出すときに名前と値のペアの引数 '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 という名前の FeatureSelectionNCARegression オブジェクトの場合、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 imports-85

最初の 15 列には連続予測子変数が、16 列目には応答変数 (自動車の価格) が含まれています。近傍成分分析モデル用の変数を定義します。

Predictors = X(:,1:15);
Y = X(:,16);

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

mdl = fsrnca(Predictors,Y);

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

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

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

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

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

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

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

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

mdl.ModelParameters.Standardize
ans = logical
   0

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

コピーのセマンティクス

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

バージョン履歴

R2016b で導入