主要内容

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

顺序

カスタム基準を使用した逐次特徴選択

構文

inmodel=顺序FS(有趣,X,y)
inmodel=顺序FS(有趣,X,Y,Z,…)
[inmodel,history]=顺序FS(fun,X,…)
[]=顺序FS(。。。,参数1,瓦尔1,参数2,瓦尔2,...)

説明

inmodel=顺序FS(有趣,X,y)は、データ行列Xから特徴的なサブセットを選択します。そして、予測に改善が見られなくなるまで連続して特徴を選択し、Yのデータを最大限予測します。Xの行は観測値に対応し、列は変数または特徴量に対応します。YXの各観測値に対する応答値の列ベクトルまたはクラス ラベルです。XYの行数は同じでなければなりません。享乐は、特徴量の選択と停止時期の決定に使用される規準を定義する関数への関数ハンドルです。出力inmodelは最終的に選択された特徴量を示す 必然的ベクトルです。

顺序は、空の特徴セットから開始して、まだ選択されていない特徴を 1.つずつ連続的に追加して候補特徴のサブセットを作成します。候補特徴のサブセットのそれぞれについて、顺序享乐を繰り返し呼び出し 10分割交差検証を実行します。この呼び出しでは、XYの異なる学習 サブセット (XTRAIN)、およびXYの検定サブセット (克斯特伊泰斯特) を次のように使用します。

标准=乐趣(XTRAIN、ytrain、XTEST、ytest)

XTRAINにはXYの行の同じサブセットが含まれ、克斯特伊泰斯特には行の相補サブセットが含まれます。XTRAIN克斯特には、現在の候補特徴セットに対応するXの列から受け取ったデータが含まれます。

享乐は呼び出されるごとに、スカラー値标准を必ず返します。通常、享乐ではXTRAINを使用してモデルの学習またはあてはめを行い、そのモデルを使用して克斯特の値を予測し、伊泰斯特からのそれらの予測値の何らかの距離の尺度、つまり"損失"を返します。与えられた候補特徴セットに対する交差検証計算では、顺序享乐からの戻り値を総和し、それをテスト観測総数で割ります。そしてこの平均値を使用して、候補特徴サブセットのそれぞれを評価します。

一般的な損失測定値には、回帰モデルの二乗誤差の総和 (この場合、顺序は平均二乗誤差を計算)、および分類モデルの誤分類された観測総数 (この場合、顺序は誤分類率を計算) が含まれます。

メモ

顺序享乐がすべての検定セットについて返した値の総和を、テストの観測総数で割ります。したがって、享乐はその出力値をテストの観測総数で割る必要はありません。

候補特徴サブセットのそれぞれについて平均の标准値を計算した後、顺序は平均規準値を最小にする候補特徴サブセットを選択します。このプロセスは、特徴量を追加してもそれ以上規準値が減少しなくなるまで続けられます。

inmodel=顺序FS(有趣,X,Y,Z,…)は、XYZ, ...など、入力変数の数に制限はありません。.顺序XYZなどに特別の解釈をせず、Xの列にある特徴だけを選択します。列ベクトルの場合も行列の場合も、すべてのデータ入力は同じ行数でなければなりません。顺序は、XYZ, ... の学習サブセットとテスト サブセットを使用して次のように享乐を呼び出します。

标准=乐趣(XTRAIN,YTRAIN,ZTRAIN,…,XTEST,YTEST,ZTEST,…)

顺序は、XTRAINZTRAIN、...,克斯特伊泰斯特ZTESTなどを作成しますが、そのためにXYZなどの行のサブセットを選択します。.享乐はスカラー値标准を返さなければなりませんが、その値の計算はどのような方法で行ってもかまいません。必然的ベクトルinmodelの要素はXの列に対応し、最終的に選択された特徴量を示します。

[inmodel,history]=顺序FS(fun,X,…)は、各ステップにおいて選択された特徴に関する情報を返します。历史はスカラー構造体で、次のフィールドがあります。

  • 暴击— 各ステップにおいて計算される規準値を含むベクトル。

  • 在里面— ステップで選択された特徴量を、行にもつ 必然的行列。

[]=顺序FS(。。。,参数1,瓦尔1,参数2,瓦尔2,...)は、次の表に示すオプション パラメーターの名前と値のペアを指定します。

パラメーター
“cv”

特徴サブセットの各候補に対する規準を計算するために使用する検定方法。

  • この値が正の整数Kの場合、顺序は層別化をしないK分割交差検証を使用します。

  • この値がCVD分区クラスのオブジェクトの場合、他の形式の交差検証を指定できます。

  • この値が“重新替代”の場合、元のデータは学習データ、検定データの区別なしに享乐に渡され、規準を計算します。

  • この値が“没有”の場合、顺序は検定セットと学習セットを分割せずに、标准=乐趣(X,Y,Z,…)という形式で享乐を呼び出します。

既定値は10で、層別化をしない 10分割交差検証になります。

いわゆる"ラッパー法"では、学習アルゴリズムを実装する関数享乐を使用します。通常これらのメソッドは、交差検証を適用して特徴量を選択します。いわゆる"フィルター法"では、データの特性 (相関など) を評価して特徴量を選択する関数享乐を使用します。

“麦克雷普斯”

交差検証用のモンテカルロ反復回数を示す正の整数。既定値は1.です。“cv”値が“重新替代”または“没有”の場合、この値は1.でなければなりません。

“方向”

連続探索の方向。既定の設定は“前进”です。値“向后”は初期の候補集合を指定します。この集合は、すべての特徴量と、規準値が増加しなくなるまで連続的に特徴量を削除するアルゴリズムとを含みます。

“keepin”

含まれなければならない特徴量を指定する 必然的ベクトル、または列番号のベクトル。既定値は空です。

“禁止”

除外されなければならない特徴量を指定する 必然的ベクトル、または列番号のベクトル。既定値は空です。

“nfeatures”

顺序が停止条件とする特徴量の数。inmodelにはこの数の特徴量が正確に含まれます。既定値は空で、顺序は規準の局所的最小値が見つかった時点で停止します。値が空でない場合は、“选项”“MaxIter”“托尔芬”の値がオーバーライドされます。

“零模式”

ヌル モデル (Xからの特徴量を含まないモデル) を特徴の選択と历史出力に含めるかどうかを示す論理値。既定の設定は错误的です。

“选项”

斯塔塞特が作成した、反復連続探索アルゴリズムのオプション構造体。

顺序は、以下の斯塔塞特のパラメーターを使用します。

  • 陈列— アルゴリズムで表示される情報量。既定の設定は“关”です。

  • 马克西特— 許容される最大反復回数。既定の設定はInfです。

  • 托尔芬— 目的関数値の終了許容誤差。既定の設定は、“方向”“前进”の場合は1e-6“方向”“向后”の場合は0です。

  • 托尔泰芬— 目的関数の許容誤差として絶対値または相対値のいずれかを指定します。既定の設定は“rel”です。

  • 使用并行— 並列計算する場合は符合事实的に設定します。既定値は错误的です。

  • 使用子流— 再生成可能な方法で並列計算する場合は符合事实的に設定します。既定値は错误的です。再現性のある計算を行うには、溪流をサブストリームを許可する型、“mlfg6331_64”または“mrg32k3a”に設定します。

  • 溪流兰德斯特朗オブジェクトまたはそのようなオブジェクトで構成される 单间牢房配列。溪流を指定しないと、顺序には既定のストリームが使用されます。

並列計算を行うには、并行计算工具箱™ が必要です。

ノイズのある特徴量を分類するために逐次特徴選択を実行します。

加载Fisherris rng(“默认值”)%以获得再现性X=randn(150,10);X(:,[1 3 5 7])=MEA;y=物种;c=Cv(y,'k',10);opts=statset('Display','iter');fun=@(XT,yT,XT,yT)损失(fitcecoc(XT,yT),XT,yT);[fs,history]=sequentialfs(fun,X,y,'cv',c,'options',opts)开始前向顺序特征选择:包含初始列:无不能包含的列:无步骤1,添加列5,标准值0.002667步骤2,添加列7,标准值0.0022222步骤3,添加列1,标准值0.00177778步骤4,添加列3,标准值0.000888889包含的最终列:1 3 5 7 fs=1×10逻辑数组1 0 1 0 0 0 0 0历史=带字段的结构:In:[4×10逻辑]标准:[0.0027 0.0022 0.0018 8.8889e-04]历史。In ans=4×10逻辑数组0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0

拡張機能

R2008aで導入