FeatureSelectionNCARegression
近傍成分分析 (NCA) を使用する回帰用の特徴選択
説明
FeatureSelectionNCARegression
には、近傍成分分析 (NCA) モデルのデータ、当てはめの情報、特徴量の重み、その他のモデル パラメーターが格納されます。fsrnca
は、NCA を対角的に適用して特徴量の重みを学習し、FeatureSelectionNCARegression
オブジェクトのインスタンスを返します。この関数は、特徴量の重みを正則化することにより特徴選択を実現します。
作成
FeatureSelectionNCARegression
オブジェクトを作成するには、fsrnca
を使用します。
プロパティ
NCA のプロパティ
ModelParameters
— モデル パラメーター
構造体
この プロパティ は読み取り専用です。
モデルの学習に使用したモデル パラメーター。構造体として指定します。
ModelParameters
のフィールドには、ドット表記を使用してアクセスできます。
たとえば、mdl
という名前の FeatureSelectionNCARegression オブジェクトの場合、mdl.ModelParameters.LossFunction
を使用して LossFunction
の値にアクセスできます。
データ型: struct
Lambda
— 正則化パラメーター
スカラー
この プロパティ は読み取り専用です。
このモデルの学習に使用した正則化パラメーター。スカラーとして指定します。n 個の観測値がある場合、NCA モデルの汎化誤差を最小化する最良の Lambda
の値は 1/n の整数倍であると考えられます。
データ型: double
FitMethod
— このモデルの当てはめに使用した手法の名前
'exact'
| 'none'
| 'average'
この プロパティ は読み取り専用です。
このモデルの当てはめに使用した当てはめ手法の名前。次のいずれかとして指定します。
'exact'
— すべてのデータを使用して当てはめを実行します。'none'
— 当てはめを行いません。fsrnca
を呼び出すときに指定した特徴量の重みの初期値を使用して NCA モデルの汎化誤差を評価する場合に、このオプションを使用します。'average'
— データをサブセットに分割し、exact
法を使用して各分割を当てはめ、特徴量の重みの平均を返します。名前と値の引数NumPartitions
を使用して分割数を指定できます。
Solver
— このモデルの当てはめに使用したソルバーの名前
'lbfgs'
| 'sgd'
| 'minibatch-lbfgs'
この プロパティ は読み取り専用です。
このモデルの当てはめに使用したソルバーの名前。次のいずれかとして指定します。
'lbfgs'
— メモリ制限 Broyden-Fletcher-Goldfarb-Shanno (LBFGS) アルゴリズム'sgd'
— 確率的勾配降下 (SGD) アルゴリズム'minibatch-lbfgs'
— LBFGS アルゴリズムをミニバッチに適用した確率的勾配降下
GradientTolerance
— 勾配ノルムに対する収束の相対許容誤差
正のスカラー
この プロパティ は読み取り専用です。
'lbfgs'
ソルバーと 'minibatch-lbfgs'
ソルバーの勾配ノルムに対する収束の相対許容誤差。正のスカラー値として指定します。
データ型: double
IterationLimit
— 最適化の最大反復回数
正の整数
この プロパティ は読み取り専用です。
最適化の最大反復回数。正の整数値として指定します。
データ型: double
PassLimit
— 最大通過回数
正の整数
この プロパティ は読み取り専用です。
'sgd'
ソルバーと 'minibatch-lbfgs'
ソルバーの最大通過回数。正の整数として指定します。1 回の通過ごとに、データ内の観測値がすべて処理されます。
データ型: double
InitialLearningRate
— 初期学習率
正の実数のスカラー
この プロパティ は読み取り専用です。
'sgd'
ソルバーと 'minibatch-lbfgs'
ソルバーの初期学習率。正の実数スカラーとして指定します。学習率は、InitialLearningRate
について指定された値から始まって反復ごとに減衰します。
fsrnca
を呼び出すときの初期学習率の自動調整を制御するには、NumTuningIterations
および TuningSubsetSize
を使用します。
データ型: double
Verbose
— 詳細レベル インジケーター
非負の整数
この プロパティ は読み取り専用です。
詳細レベル インジケーター。非負の整数として指定します。利用可能な値は以下のとおりです。
0 — 収束概要なし
1 — 勾配のノルムと目的関数の値を収束概要に含める
1 より大きい値 - 当てはめアルゴリズムに応じた、より多くの収束情報。
'minibatch-lbfgs'
ソルバーを使用する場合に詳細レベルを 1 より大きい値にすると、中間的なミニバッチ LBFGS の当てはめによる反復ログが収束情報に含まれます。
データ型: double
InitialFeatureWeights
— 特徴量の重みの初期値
正の実数スカラーによる p 行 1 列のベクトル
この プロパティ は読み取り専用です。
特徴量の重みの初期値。p 行 1 列の正の実数スカラーのベクトルとして指定します。p は X
内の予測子の数です。
データ型: double
FeatureWeights
— 特徴量の重み
数値ベクトル | 数値行列
この プロパティ は読み取り専用です。
特徴量の重み。p 行 1 列の数値ベクトルまたは p 行 m 列の数値行列として指定します。ここで、p はカテゴリカル変数用にダミー変数が作成された後の予測子変数の数です (詳細については、ExpandedPredictorNames
を参照)。
FitMethod
が 'average'
である場合、FeatureWeights
は p 行 m 列の行列になります。m は、fsrnca
を呼び出すときに名前と値の引数 NumPartitions
で指定した分割数です。
FeatureWeights(k)
の絶対値は予測子 k
の重要度の尺度です。FeatureWeights(k)
の値が 0 に近い場合、予測子 k
は Y
内の応答に影響を与えません。
データ型: double
FitInfo
— 当てはめの情報
構造体
この プロパティ は読み取り専用です。
当てはめの情報。次のフィールドをもつ構造体として指定します。
フィールド名 | 意味 |
---|---|
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
他の回帰のプロパティ
NumObservations
— 学習データに含まれている観測値の数
スカラー
この プロパティ は読み取り専用です。
NaN
または Inf
値を削除した後の学習データ (X
および Y
) に含まれている観測値の数。スカラーとして指定します。
データ型: double
Mu
— 予測子の平均
p 行 1 列のベクトル | []
この プロパティ は読み取り専用です。
予測子の平均。学習データが標準化されている場合、p 行 1 列のベクトルとして指定します。この場合、predict
メソッドでは、Mu
の対応する要素を各列から減算することにより、予測子行列 X
をセンタリングします。
学習時にデータが標準化されていない場合、Mu
は空になります。
データ型: double
Sigma
— 予測子の標準偏差
p 行 1 列のベクトル | []
この プロパティ は読み取り専用です。
予測子の標準偏差。学習データが標準化されている場合、p 行 1 列のベクトルとして指定します。この場合、predict
メソッドは予測子行列 X
を、Mu
を使用したデータのセンタリング後にその各列を Sigma
の対応する要素で除算することにより、スケーリングします。
学習時にデータが標準化されていない場合、Sigma
は空になります。
データ型: double
X
— 予測子の値
n 行 p 列の行列
この プロパティ は読み取り専用です。
このモデルの学習に使用した予測子の値。n 行 p 列の行列として指定します。n は学習データに含まれている観測値の数、p は予測子変数の数です。
データ型: double
Y
— 応答値
サイズ n の数値ベクトル
この プロパティ は読み取り専用です。
このモデルの学習に使用した応答値。サイズ n の数値ベクトルとして指定します。n は観測値の数です。
データ型: double
W
— 観測値の重み
サイズ n の数値ベクトル
この プロパティ は読み取り専用です。
このモデルの学習に使用した観測値の重み。サイズ n の数値ベクトルとして指定します。観測値の重みの合計は n です。
データ型: double
CategoricalPredictors
— カテゴリカル予測子のインデックス
正の整数のベクトル | []
この プロパティ は読み取り専用です。
カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors
には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p です。p はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]
) になります。
データ型: single
| double
ResponseName
— 応答変数名
文字ベクトル
この プロパティ は読み取り専用です。
応答変数名。文字ベクトルを指定します。
データ型: char
PredictorNames
— 予測子変数名
一意な文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
予測子データに現れる順序で並んでいる予測子変数名。一意の文字ベクトルの cell 配列として指定します。PredictorNames
の長さは、予測子変数として使用される学習データ X
に含まれている変数の数と等しくなります。
データ型: cell
ExpandedPredictorNames
— 展開された予測子名
一意な文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
展開された予測子名。一意の文字ベクトルの cell 配列として指定します。
モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNames
には展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNames
は PredictorNames
と同じです。
データ型: cell
オブジェクト関数
loss | 学習した特徴量の重みの精度をテスト データに対して評価 |
predict | 近傍成分分析 (NCA) 回帰モデルの使用による応答の予測 |
refit | 回帰用の近傍成分分析 (NCA) モデルの再当てはめ |
selectFeatures | Select important features for NCA classification or regression |
例
FeatureSelectionNCARegression
オブジェクトの調査
標本データを読み込みます。
load imports-85
最初の 15 列には連続予測子変数が、16 列目には応答変数 (自動車の価格) が含まれています。近傍成分分析モデル用の変数を定義します。
Predictors = X(:,1:15); Y = X(:,16);
回帰用の近傍成分分析 (NCA) モデルを当てはめて、関連する特徴量を判別します。
mdl = fsrnca(Predictors,Y);
返された NCA モデル mdl
は FeatureSelectionNCARegression
オブジェクトです。このオブジェクトには、学習データ、モデルおよび最適化に関する情報が格納されています。このオブジェクトのプロパティ (特徴量の重みなど) には、ドット表記を使用してアクセスできます。
特徴量の重みをプロットします。
plot(mdl.FeatureWeights,"o") xlabel("Feature Index") ylabel("Feature Weight") grid on
無関係な特徴量の重みはゼロになります。fsrnca
を呼び出すときに Verbose=1
オプションを指定すると、最適化の情報がコマンド ラインに表示されます。目的関数と反復回数をプロットして最適化プロセスを可視化することもできます。
plot(mdl.FitInfo.Iteration,mdl.FitInfo.Objective,"o-") grid on xlabel("Iteration Number") ylabel("Objective")
ModelParameters
プロパティは、モデルに関する詳細情報が含まれている struct
です。このプロパティのフィールドには、ドット表記を使用してアクセスできます。たとえば、データが標準化されているかどうかを調べます。
mdl.ModelParameters.Standardize
ans = logical
0
0
は、NCA モデルを当てはめる前にデータが標準化されていないことを意味します。各予測子のスケールが非常に異なる場合は、fsrnca
を呼び出すときに名前と値の引数 Standardize=true
を使用して予測子を標準化することができます。
バージョン履歴
R2016b で導入
参考
predict
| fsrnca
| refit
| loss
| selectFeatures
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)