refit
回帰用の近傍成分分析 (NCA) モデルの再当てはめ
説明
は、1 つ以上の名前と値の引数で指定された修正パラメーターを使用して、モデル mdlrefit = refit(mdl,Name=Value)mdl を再度当てはめます。
例
標本データを読み込みます。
load("robotarm.mat")robotarm データ セット (pumadyn32nm) は、ロボット アーム シミュレーターを使用して作成されており、7168 個の学習観測値、1024 個のテスト観測値、32 個の特徴量が含まれています [1]、[2]。これは、元のデータ セットを前処理したものです。データの前処理では、線形回帰近似を除外してから、すべての特徴量を単位分散に対して正規化しています。
特徴選択を行わずに汎化誤差を計算します。
nca = fsrnca(Xtrain,ytrain,FitMethod="none", ... Standardize=true); L = loss(nca,Xtest,ytest)
L = 0.9017
次に、この問題に特徴選択が必要であるかどうかを判断するため、モデルを再度当てはめ、 = 0 (正則化項なし) で特徴選択を行って予測損失を計算し、前の損失値と比較します。変更しない設定については、refit は初期モデル nca の設定を使用します。たとえば、nca に含まれている特徴量の重みが特徴量の重みの初期値として使用されます。
nca2 = refit(nca,FitMethod="exact",Lambda=0);
L2 = loss(nca2,Xtest,ytest)L2 = 0.1088
損失が小さくなったので、特徴選択が必要であることがわかります。
特徴量の重みをプロットします。
plot(nca2.FeatureWeights,"o")
通常は、正則化パラメーターを調整すると結果が改善されます。回帰用の NCA の正則化パラメーターの調整で説明されているように交差検証を使用して を調整した結果、最適な の値が 0.0035 になったとします。この の値と、ソルバーとして確率的勾配降下を使用して、nca モデルを再度当てはめます。予測損失を計算します。
nca3 = refit(nca2,FitMethod="exact",Lambda=0.0035, ... Solver="sgd"); L3 = loss(nca3,Xtest,ytest)
L3 = 0.0573
特徴量の重みをプロットします。
plot(nca3.FeatureWeights,"o")
正則化パラメーターを調整した結果、損失がさらに小さくなり、4 つの特徴量が関連することが識別されました。
参考文献
[1] Rasmussen, C. E., R. M. Neal, G. E. Hinton, D. van Camp, M. Revow, Z. Ghahramani, R. Kustra, and R. Tibshirani.The DELVE Manual, 1996, https://mlg.eng.cam.ac.uk/pub/pdf/RasNeaHinetal96.pdf
入力引数
分類用の近傍成分分析モデル。FeatureSelectionNCARegression オブジェクトとして指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: refit(mdl,Lambda=0.01) は、lambda 値を 0.01 にしてモデル mdl を再度当てはめます。
当てはめオプション
モデルの当てはめ方式。次のいずれかとして指定します。
"exact"— すべてのデータを使用して当てはめを実行します。"none"— 当てはめを行いません。fsrncaを呼び出すときに指定した特徴量の重みの初期値を使用して NCA モデルの汎化誤差を評価する場合に、このオプションを使用します。"average"— データをサブセットに分割し、exact法を使用して各分割を当てはめ、特徴量の重みの平均を返します。名前と値の引数NumPartitionsを使用して分割数を指定できます。
例: FitMethod="none"
正則化パラメーター。非負のスカラー値として指定します。
n 個の観測値がある場合、NCA モデルの汎化誤差を最小化する最適な Lambda の値は 1/n の整数倍であると考えられます。
例: Lambda=0.01
データ型: double | single
特徴量の重みを推定するソルバーのタイプ。次のいずれかとして指定します。
"lbfgs"— メモリ制限 BFGS (Broyden-Fletcher-Goldfarb-Shanno) アルゴリズム (LBFGS アルゴリズム)"sgd"— 確率的勾配降下"minibatch-lbfgs"— LBFGS アルゴリズムをミニバッチに適用した確率的勾配降下
例: Solver="minibatch-lbfgs"
特徴量の重みの初期値。p 行 1 列の正の実数スカラー値のベクトルとして指定します。
データ型: double | single
収束概要表示の詳細レベルのインジケーター。次のいずれかとして指定します。
0 — 収束概要なし
1 — 反復回数、勾配のノルム、目的関数の値を含む収束概要。
1 より大きい値 — 当てはめたアルゴリズムに応じたより多くの収束情報
ソルバー
"minibatch-lbfgs"を使用する場合に詳細レベルを 1 より大きい値にすると、中間的なミニバッチ LBFGS の当てはめによる反復ログが収束情報に含まれます。
例: Verbose=2
データ型: double | single
LBFGS またはミニバッチ LBFGS のオプション
ソルバーが lbfgs である場合の勾配ノルムに対する収束の相対許容誤差。正の実数スカラー値として指定します。
例: GradientTolerance=0.00001
データ型: double | single
SGD またはミニバッチ LBFGS のオプション
ソルバーが sgd である場合の初期学習率。正のスカラー値として指定します。
ソルバー タイプとして "sgd" を使用する場合、学習率は InitialLearningRate で指定された値から始まって反復ごとに減衰します。
例: InitialLearningRate=0.8
データ型: double | single
ソルバーが "sgd" (確率的勾配降下) である場合の最大通過回数。正の整数値として指定します。1 回通過するごとに、size(mdl.X,1) 個の観測値が処理されます。
例: PassLimit=10
データ型: double | single
SGD、LBFGS またはミニバッチ LBFGS のオプション
最大反復回数。正の整数を指定します。
例: IterationLimit=250
データ型: double | single
出力引数
分類用の近傍成分分析モデル。FeatureSelectionNCARegression オブジェクトとして返されます。結果を新しいモデルとして保存するか、mdl = refit(mdl,Name=Value) として既存のモデルを更新することができます。
バージョン履歴
R2016b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)