このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
sequentialfs
カスタム基準を使用した逐次特徴選択
構文
説明
は、tf
= sequentialfs(fun
,X
,y
)y
を予測するうえで重要な X
内の特徴量のサブセットを選択します。この関数は X
と y
を使用して 10 分割交差検証の無作為な非層化区分を定義してから、関数 fun
で計算される交差検証予測基準値に基づいて逐次的に特徴量を選択します。初期特徴セットに特徴量は含まれません。sequentialfs
は、各反復で 1 つずつセットに特徴量を追加し、特徴量を追加しても終了許容誤差の値を超えて基準値が低下しなくなるまで続けます。出力 tf
は、選択された特徴量を示す logical ベクトルです。詳細については、アルゴリズムを参照してください。
では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、再帰的特徴消去 (RFE) を実行するには tf
= sequentialfs(___,Name,Value
)"Direction","backward"
と指定します。初期特徴セットにすべての特徴量が含まれます。sequentialfs
は、各反復で 1 つずつセットから特徴量を削除し、特徴量を削除しても予測基準が低下しなくなるまで続けます。
例
前方特徴選択
ラッパー タイプを使用した前方逐次特徴選択を実行して、重要な特徴量を検出します。
fisheriris
データセットを読み込みます。
load fisheriris
データ セットの変数を表示します。
whos
Name Size Bytes Class Attributes meas 150x4 4800 double species 150x1 18100 cell
行列 meas
に、150 本の 3 種のアヤメの花についての 4 つの測定値が格納されています。変数 species
には、それぞれの花の種類がリストされています。
予測子データ X
と応答データ y を指定します。X
を定義して 4 つの測定値と 6 つの確率変数を含めます。測定変数を列 1、3、5、および 7 に配置します。
rng("default") % For reproducibility X = randn(150,10); X(:,[1 3 5 7])= meas; y = species;
学習データ (XTrain
および yTrain
) とテスト データ (XTest
および yTest
) の 4 つの入力を受け取る無名関数の関数ハンドル myfun
を定義します。この無名関数は、学習データを使用して分類モデルに学習させ、テスト データでの学習済みモデルの損失値を返します。
myfun = @(XTrain,yTrain,XTest,yTest) ...
size(XTest,1)*loss(fitcecoc(XTrain,yTrain),XTest,yTest);
分類モデル オブジェクトの関数 loss
は平均損失値を返しますが、sequentialfs
は、それに加えて myfun
から返される基準値の合計をテスト観測値の総数で除算します。そのため、損失値にテスト観測値の数を乗算した値を無名関数で返さなければなりません。
層化 10 分割交差検証用に分割を無作為に作成します。
cv = cvpartition(y,"KFold",10);
関数 sequentialfs
を使用して、myfun
から返される基準値に基づいて X
の重要な特徴量を逐次的に選択します。層化区分 cv
を使用するように指定し、各反復で特徴選択プロセスに関する情報を表示するように反復オプションを設定します。
opts = statset("Display","iter"); tf = sequentialfs(myfun,X,y,"CV",cv,"Options",opts);
Start forward sequential feature selection: Initial columns included: none Columns that can not be included: none Step 1, added column 7, criterion value 0.04 Step 2, added column 5, criterion value 0.0333333 Step 3, added column 1, criterion value 0.0266667 Step 4, added column 3, criterion value 0.0133333 Final columns included: 1 3 5 7
sequentialfs
で列 1、3、5、および 7 にある重要な予測子が正しく検出されています。
後方特徴選択
ラッパー タイプを使用した後方逐次特徴選択、つまり再帰的特徴消去 (RFE) を実行して、重要な特徴量を検出します。
hald
データセットを読み込みます。これは、セメントの硬化熱に対してセメントの組成が与える影響を測定したデータです。
load hald
このデータセットには、変数 ingredients
および heat
が含まれています。行列 ingredients
には、セメントに含まれている 4 種類の化学物質の組成率が格納されています。ベクトル heat
には、各セメント標本に対する 180 日後の硬化熱の値が格納されています。
関数 sequentialfs
を使用して、myfun
から返される基準値に基づいて後方逐次特徴選択を実行します。補助関数 myfun
のコードについては、この例の最後に示してあります。名前と値の引数 Direction
を "backward"
と指定して初期特徴セットにすべての特徴量を含め、各反復で 1 つずつ特徴量を逐次的に除外します。各反復で特徴選択プロセスに関する情報を表示するように反復オプションを設定します。
rng("default") % For reproducibility opts = statset("Display","iter"); tf = sequentialfs(@myfun,ingredients,heat, ... "Direction","backward","Options",opts);
Start backward sequential feature selection: Initial columns included: all Columns that must be included: none Step 1, used initial columns, criterion value 13.9777 Step 2, removed column 3, criterion value 6.76384 Final columns included: 1 2 4
sequentialfs
で ingredients
の特徴量から 3 つ目の変数が除外されています。
補助関数
関数 myfun
は、学習データ (XTrain
および yTrain
) とテスト データ (XTest
および yTest
) の 4 つの入力を受け取ります。この関数は、学習データを使用して回帰モデルに学習させ、テスト データでの学習済みモデルの二乗誤差の合計を返します。
function criterion = myfun(XTrain,yTrain,XTest,yTest) mdl = fitrlinear(XTrain,yTrain); predictedYTest = predict(mdl,XTest); e = yTest - predictedYTest; criterion = e'*e; end
フィルター タイプ特徴選択
特徴量の相関係数に基づいてフィルター タイプ特徴選択を実行します。
carsmall
データセットを読み込みます。
load carsmall
6 つの変数を含む特徴量行列 X
を作成します。
X = [Acceleration Cylinders Displacement ...
Horsepower Model_Year Weight];
関数corr
を使用して、X
内の特徴量の各ペアについてのペアワイズ線形相関係数を計算します。名前と値の引数 Rows
を "pairwise"
と指定し、2 列の相関係数の各計算で NaN
を含むすべての行をペア単位で除外します。
corr(X,"Rows","pairwise")
ans = 6×6
1.0000 -0.6473 -0.6947 -0.6968 0.4843 -0.4879
-0.6473 1.0000 0.9512 0.8622 -0.6053 0.8844
-0.6947 0.9512 1.0000 0.9134 -0.5779 0.8895
-0.6968 0.8622 0.9134 1.0000 -0.6082 0.8733
0.4843 -0.6053 -0.5779 -0.6082 1.0000 -0.4964
-0.4879 0.8844 0.8895 0.8733 -0.4964 1.0000
高い相関がある特徴量が X
に含まれています。たとえば、2 つ目と 3 つ目の特徴量 (Cylinders
と Displacement
) の相関は 0.9512 です。
関数 sequentialfs
を使用して、相関値に基づいて X
内の特徴量をランク付けします。関数 sequentialfs
を呼び出すときに次のようにオプションを指定します。
補助関数
mycorr
を使用して、相関係数行列の非対角要素の最大絶対値を返します。この補助関数のコードについては、この例の最後に示してあります。"Direction","backward"
および"NullModel",true
を指定して、すべての特徴量を含む初期特徴セットからsequentialfs
を開始し、セットから一度に 1 つずつすべての特徴量を除外します。"CV","none"
を指定して、交差検証なしで特徴選択を実行します。各反復で特徴選択プロセスに関する情報を表示するように反復オプションを設定します。
opts = statset("Display","iter"); [~,history] = sequentialfs(@mycorr,X, ... "Direction","backward","NullModel",true, ... "CV","none","Options",opts);
Start backward sequential feature selection: Initial columns included: all Columns that must be included: none Step 1, used initial columns, criterion value 0.951167 Step 2, removed column 3, criterion value 0.884401 Step 3, removed column 6, criterion value 0.862164 Step 4, removed column 4, criterion value 0.647346 Step 5, removed column 2, criterion value 0.484253 Step 6, removed column 1, criterion value 0 Step 7, removed column 5, criterion value 0 Final columns included: none
sequentialfs
は、特徴選択プロセスに関する情報が格納された 2 つのフィールド (In
と Crit
) をもつ構造体配列 history
を返します。In
フィールドには、行 i
が反復 i
で選択された特徴量を示す logical 行列が格納されます。行のエントリ true
(logical 1
) は、対応する特徴量が反復後の特徴セットに含まれることを示します。
history.In
ans = 7x6 logical array
1 1 1 1 1 1
1 1 0 1 1 1
1 1 0 1 1 0
1 1 0 0 1 0
1 0 0 0 1 0
0 0 0 0 1 0
0 0 0 0 0 0
Crit
フィールドには、各反復で計算された基準値が格納されます。
history.Crit
ans = 1×7
0.9512 0.8844 0.8622 0.6473 0.4843 0 0
最後の 2 つの基準値がゼロになっているのは、関数 mycorr
は入力に含まれる特徴量が 2 つより少ないと 0 を返すためです。
除外された特徴量のインデックスを In
フィールドの行列から抽出します。
p = size(X,2); idx = NaN(1,p); for i = 1 : p idx(i) = find(history.In(i,:)~=history.In(i+1,:)); end idx
idx = 1×6
3 6 4 2 1 5
基準値が 0.8 未満の一連の特徴量を検出します。
threshold = 0.8; iter_last_exclude = find(history.Crit(2:end)<threshold,1); idx_selected = idx(iter_last_exclude+1:end)
idx_selected = 1×3
2 1 5
選択された特徴量の相関係数行列を計算します。
corr(X(:,idx_selected),"Rows","pairwise")
ans = 3×3
1.0000 -0.6473 -0.6053
-0.6473 1.0000 0.4843
-0.6053 0.4843 1.0000
非対角要素の絶対値がしきい値の 0.8 を下回っています。
補助関数
関数 mycorr
は、特徴量が列に格納された行列を受け取り、相関係数行列の非対角要素の最大絶対値を返します。非対角要素は、入力データ内の 2 つの異なる特徴量の間の相関です。そのため、少なくとも 2 つの異なる特徴量が入力データに含まれていないと mycorr
はゼロを返します。
function criterion = mycorr(X) if size(X,2) < 2 criterion = 0; else p = size(X,2); R = corr(X,"Rows","pairwise"); R(logical(eye(p))) = NaN; criterion = max(abs(R),[],"all"); end end
table 内の特徴量の選択
関数onehotencode
およびtable2array
を使用して、数値変数とカテゴリカル変数の両方を含む table を配列に変換します。その後、関数 sequentialfs
を使用して配列から重要な特徴量を選択します。
carbig
データセットを読み込みます。
load carbig
このデータ セットには、ガロンあたりの走行マイル数 (MPG
)、生産国 (Origin
)、気筒数 (Cylinders
) など、自動車のいくつかの側面について記述する変数が含まれています。それ以外の変数を使用して MPG
の回帰モデルを作成できます。
table 内の予測子データ tblX
を指定し、応答データ y
を指定します。
tblX = table(Acceleration,Cylinders,Displacement, ...
Horsepower,Model_Year,Weight,Origin);
y = MPG;
tblX
内の変数は、変数 Origin
以外はすべて数値です。
関数 onehotencode
を使用して、変数 Origin
を one-hot 符号化します。
tblOrigin = table(categorical(string(Origin))); tblOrigin = onehotencode(tblOrigin);
変数 Origin
を tblX
から削除し、符号化された値を tblX
に追加します。
tblX.Origin = []; tblX = [tblX tblOrigin];
table tblX
を配列に変換します。
X = table2array(tblX);
学習データ (XTrain
および yTrain
) とテスト データ (XTest
および yTest
) の 4 つの入力を受け取る無名関数の関数ハンドル myfun
を定義します。この無名関数は、学習データを使用して回帰モデルに学習させ、テスト データでの学習済みモデルの損失値を返します。
myfun = @(XTrain,yTrain,XTest,yTest) ...
size(XTest,1)*loss(fitrtree(XTrain,yTrain),XTest,yTest);
回帰モデル オブジェクトの関数 loss
は平均二乗誤差 (MSE) を返しますが、sequentialfs
は、それに加えて myfun
から返される基準値の合計をテスト観測値の総数で除算します。そのため、損失値にテスト観測値の数を乗算した値を無名関数で返さなければなりません。
関数 sequentialfs
を使用して、myfun
から返される基準値に基づいて X
の重要な特徴量を逐次的に選択します。
rng("default") % For reproducibility tf = sequentialfs(myfun,X,y);
選択された特徴量の変数名を表示します。
tblX.Properties.VariableNames(tf)'
ans = 6x1 cell
{'Cylinders' }
{'Displacement'}
{'Model_Year' }
{'Weight' }
{'Germany' }
{'Italy' }
入力引数
fun
— 特徴選択基準を計算する関数
関数ハンドル
特徴選択基準を計算する関数。関数ハンドルとして指定します。
sequentialfs
は、候補特徴セットのそれぞれについて、次のように関数 fun
を繰り返し呼び出して交差検証基準値を計算します。
sequentialfs
は、名前と値の引数CV
で定義される各分割 (学習データ セットとテスト データ セットのグループ) について、関数fun
を呼び出して分割の基準値を取得します。sequentialfs
は、基準値の合計をテスト観測値の総数で除算します。
X
と y
を指定する場合、関数 fun
は次の形式でなければなりません。
criterion = fun(XTrain,yTrain,XTest,yTest)
関数
fun
は学習データ (XTrain
およびyTrain
) とテスト データ (XTest
およびyTest
) を受け入れます。XTrain
とXTest
には現在の候補特徴セットに対応するX
の列のサブセットが含まれます。関数
fun
はスカラー値criterion
を返します。一般に、
fun
は、学習データ (XTrain
、yTrain
) を使用してモデルに学習させ、XTest
の応答値を予測し、yTest
と比較した予測値の損失を返します。一般的な損失測定値には、回帰モデルの二乗誤差の合計や分類モデルの誤分類された観測値の数があります。たとえば、関数
myFun
を次のように定義し、fun
を@myFun
として指定できます。function criterion = myFun(XTrain,yTrain,XTest,yTest) mdl = fitcsvm(XTrain,yTrain); predictedYTest = predict(mdl,XTest); criterion = sum(~strcmp(yTest,predictedYTest)); end
あるいは、無名関数の関数ハンドル
myFunHandle
を次のように定義し、fun
をmyFunHandle
として指定できます。myFunHandle = @(XTrain,yTrain,XTest,yTest) ... loss(fitcsvm(XTrain,yTrain),XTest,yTest)*size(XTest,1);
sequentialfs
は、fun
から返される基準値の合計をテスト観測値の総数で除算します。そのため、fun
では、損失値をテスト観測値の数で除算してはなりません。分類オブジェクトまたは回帰オブジェクトの関数loss
は平均の損失値を返します。そのため、fun
では、損失値にテスト観測値の数を乗算した値を返さなければなりません。二乗誤差の合計または誤分類された観測値の数を返すように関数fun
を定義すると、交差検証基準値はそれぞれ平均二乗誤差または誤分類率になります。
X1,...,XN
を指定する場合、sequentialfs
は X1
からのみ特徴量を選択します。X1,...,XN
について、それ以外に何らかの解釈を加えることはありません。この場合も、関数 fun
は次の形式でなければなりません。
criterion = fun(X1Train,⋯,XNTrain,X1Test,⋯,XNTest)
関数
fun
は学習データ (X1Train
,…,XNTrain
) とテスト データ (X1Test
,…,XNTest
) を受け入れます。X1Train
とX1Test
には現在の候補特徴セットに対応するX1
の列のサブセットが含まれます。関数
fun
はスカラー値criterion
を返します。
データ型: function_handle
X1,...,XN
— 入力データ
行列
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
例: KeepIn=[1 0 0 0],KeepOut=[0 0 0 1]
は、最初の特徴量を常に含め、最後の特徴量を常に除外します。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: "KeepIn",[1 0 0 0],"KeepOut",[0 0 0 1]
CV
— 交差検証オプション
10 (既定値) | 正の整数 | cvpartition
オブジェクト | "resubstitution"
| "none"
それぞれの候補特徴サブセットの基準を計算する交差検証オプション。正の整数、cvpartition
オブジェクト、"resubstitution"
、または "none"
として指定します。
それぞれの候補特徴サブセットについて、sequentialfs
は、この引数で指定された分割を使用して、関数 fun
から返される基準値を交差検証します。
正の整数
k
—sequentialfs
でk
分割交差検証の無作為な非層化区分を使用します。cvpartition
オブジェクト —sequentialfs
でcvpartition
オブジェクトで指定される分割を使用します。層化区分、ホールドアウト検証の分割、または leave-one-out 交差検証の分割を指定できます。詳細については、cvpartition
を参照してください。"resubstitution"
—sequentialfs
で入力データを分割しません。学習セットとテスト セットの両方に元のすべての観測値が含まれます。たとえば、X
とy
を指定する場合、sequentialfs
はfun
をcriterion = fun(X,y,X,y)
として呼び出します。"none"
—sequentialfs
で基準値を検証しません。学習セットとテスト セットを分割せずに、fun
をcriterion = fun(X,y)
として呼び出します。
例: "CV","none"
MCReps
— 交差検証用のモンテカルロ反復回数
1
(既定値) | 正の整数
交差検証用のモンテカルロ反復回数。正の整数として指定します。
1
より大きい正の整数を指定すると、sequentialfs
は、それぞれの候補特徴サブセットについて、指定された反復回数にわたって交差検証の計算を繰り返します。
CV
が "none"
、"resubstitution"
、または "resubstitution"
タイプの cvpartition
オブジェクトの場合、MCReps
は 1
でなければなりません。
例: "MCReps",10
データ型: single
| double
Direction
— 連続探索の方向
"forward"
(既定値) | "backward"
連続探索の方向。"forward"
または "backward"
として指定します。
"forward"
— 初期特徴セットに特徴量を含めず、関数sequentialfs
で特徴量を逐次的にセットに追加します。"backward"
— 初期特徴セットにすべての特徴量を含め、関数sequentialfs
で特徴量を逐次的にセットから削除します。つまり、関数sequentialfs
は再帰的特徴消去 (RFE) を実行します。
例: "Direction","backward"
データ型: char
| string
KeepIn
— 含める特徴量
[]
(既定値) | logical ベクトル | 正の整数のベクトル
含める特徴量。[]
、logical ベクトル、または正の整数のベクトルとして指定します。
既定では、sequentialfs
は特徴選択プロセスですべての特徴量を調べます。この引数を使用して含める特徴量を指定すると、sequentialfs
はその特徴量を候補特徴セットに常に含めます。logical ベクトルのエントリ true
または正の整数のベクトルのインデックス値は、対応する特徴量を出力引数 tf
に含める必要があることを示します。
例: "KeepIn",[1 0 0 0]
データ型: logical
KeepOut
— 除外する特徴量
[]
(既定値) | logical ベクトル | 正の整数のベクトル
除外する特徴量。[]
、logical ベクトル、または正の整数のベクトルとして指定します。
既定では、sequentialfs
は特徴選択プロセスですべての特徴量を調べます。この引数を使用して除外する特徴量を指定すると、sequentialfs
はその特徴量を候補特徴セットから除外します。logical ベクトルのエントリ true
または正の整数のベクトルのインデックス値は、対応する特徴量を出力引数 tf
で除外する必要があることを示します。
例: "KeepOut",[0 0 0 1]
データ型: logical
NFeatures
— 選択する特徴量の数
[]
(既定値) | 正の整数
選択する特徴量の数。[]
または正の整数として指定します。
既定では、sequentialfs
は、名前と値の引数 Options
で指定された停止条件 (MaxIter
または TolFun
) のいずれかを関数が満たしたときに反復を停止します。名前と値の引数 NFeatures
を正の整数として指定すると、sequentialfs
は、指定された数の特徴を選択した時点で反復を停止します。この引数は他の反復オプションをオーバーライドします。
例: "NFeatures",2
データ型: single
| double
Options
— 反復と並列計算のオプション
statset("sequentialfs")
(既定値) | statset
によって返される構造体
反復と並列計算のオプション。statset
によって返される構造体として指定します。
次の表は、オプションのフィールドとその値の一覧です。
フィールド名 | フィールドの値 | 既定値 |
---|---|---|
Display | 表示のレベル。
| "off" |
MaxIter | 許容される最大反復回数。正の整数として指定 | Inf |
TolFun | 基準値の終了許容誤差。正のスカラーとして指定します。 | Direction が "forward" の場合は 1e-6 、Direction が "backward" の場合は 0 |
TolTypeFun | 基準値の終了許容誤差のタイプ。"abs" (絶対許容誤差) または "rel" (相対許容誤差) として指定します。 | "rel" |
UseParallel | 並列実行のフラグ。logical 1 (true ) または 0 (false ) として指定します。 | false |
UseSubstreams | 並列計算を再現可能な方法で実行するためのフラグ。logical 再現性のある計算を行うには、 | false |
Streams | 乱数ストリーム。 | MATLAB® の既定の乱数ストリーム |
並列計算を行うには、Parallel Computing Toolbox™ が必要です。
例: "Options",statset("Display","iter")
データ型: struct
出力引数
tf
— 選択された特徴量
logical ベクトル
選択された特徴量。logical ベクトルとして返されます。エントリ true
(logical 1
) は、対応する特徴量が選択されていることを示します。
history
— 特徴選択プロセスの履歴
構造体
特徴選択プロセスの履歴。In
フィールドと Crit
フィールドを含む構造体配列として返されます。
In
は、行i
が反復i
で選択された特徴量を示す logical 行列です。Crit
は、各反復で計算された基準値を格納するベクトルです。
詳細
特徴選択
特徴選択では、測定した特徴 (予測子変数) のサブセットのみを選択してモデルを作成することによりデータの次元を削減します。特徴選択アルゴリズムは、必要な、もしくは除外すべき特徴量、サブセットのサイズなどの制約のもとで、測定された応答を最適にモデル化する予測子のサブセットを探索します。
特徴選択アルゴリズムは次の 3 つの種類に分けることができます。
フィルター タイプ — フィルター タイプ特徴選択アルゴリズムは、特徴量の分散や特徴量の応答に対する関連度といった特徴量の特性によって特徴量の重要度を測定します。データの前処理ステップの一部として重要な特徴量を選択し、選択した特徴量を使用してモデルを学習させます。そのため、フィルター タイプ特徴選択は学習アルゴリズムとは無相関です。
ラッパー タイプ — ラッパー タイプ特徴選択アルゴリズムは、特徴量のサブセットを使用して学習を開始し、その後に選択基準を使用して特徴量を追加または削除します。選択基準は、特徴量を追加または削除することによるモデル性能の変化を直接測定します。アルゴリズムは、停止条件が達成されるまで学習とモデルの改善を繰り返します。
組み込み型 — 組み込み型特徴選択アルゴリズムは、モデルの学習プロセスの一部として特徴量の重要度を学習します。一度モデルを学習させると、学習済みモデルの中に特徴量の重要度が得られます。この種のアルゴリズムでは、特定の学習プロセスに対してうまく機能する特徴量が選択されます。
詳細については、特徴選択の紹介を参照してください。
アルゴリズム
sequentialfs
は、次の手順を実行して X
内の特徴量を逐次的に選択します。
n
個の観測値に対する 10 分割交差検証の無作為な非層化区分を定義します。ここで、n
はX
内の観測値の数です。選択された特徴セット
S
を空のセットとして初期化します。X
内の各特徴量 xi について、関数fun
を使用して交差検証基準値を計算します。基準値が最も小さい特徴量を
S
に追加します。X\S
内の各特徴量 xi について、候補特徴セットC
i をS
∪{xi} として定義します。fun
を使用してC
i の交差検証基準値を計算します。候補セット (
C
i) の中から、S
の基準値と比較して基準値を最も低下させるセットを選択します。選択した候補セットに対応する特徴量をS
に追加します。特徴量を追加しても終了許容誤差の値を超えて基準値が低下しなくなるまで、手順 5 と 6 を繰り返します。
特徴選択プロセスをカスタマイズするには、sequentialfs
の名前と値の引数を使用します。
交差検証オプションは、名前と値の引数
CV
およびMCReps
を使用して指定できます。ラッパー タイプ特徴選択の場合、それぞれの候補特徴セットの基準値を交差検証するように引数を指定します。モデルに学習させて学習済みモデルの基準値を返すように関数
fun
を定義できます。例については、前方特徴選択を参照してください。フィルター タイプ特徴選択の場合、交差検証はないため、
CV
を"none"
として指定し、関数fun
を使用して入力データの特性 (相関など) を測定します。例については、フィルター タイプ特徴選択を参照してください。
後方特徴選択、つまり再帰的特徴消去 (RFE) を実行するには、名前と値の引数
Direction
を"backward"
として指定します。sequentialfs
は、選択された特徴セットS
をすべての特徴量を含むセットとして初期化し、セットから一度に 1 つずつ特徴量を削除します。常に含める特徴量と常に除外する特徴量、最終的に選択される特徴セットに含める特徴量の数、および特徴量を含まないモデルを有効なオプションと見なすかどうかを指定できます。詳細については、名前と値の引数
KeepIn
、KeepOut
、NFeatures
、およびNullModel
を参照してください。反復と並列計算のオプションを指定するには、名前と値の引数
Options
を使用します。たとえば、Options,statset("TolFun",1e-2)
は、基準値の反復終了許容誤差を1e-2
に設定します。
拡張機能
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
並列実行するには、この関数を呼び出すときに名前と値の引数 Options
を指定し、statset
を使用してオプション構造体の UseParallel
フィールドを true
に設定します。
"Options",statset("UseParallel",true)
並列計算の詳細については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2008a で導入
参考
stepwiselm
| fscchi2
| fscmrmr
| fscnca
| fsrftest
| fsrmrmr
| fsrnca
| fsulaplacian
| relieff
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)