このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
1クラスおよびバイナリ分類用のサポートベクターマシン(SVM)分類器の学習
fitcsvm
は,低~中次元の予測子データセットにおける1クラスおよび2クラス(バイナリ)分類について,サポートベクターマシン(SVM)モデルに学習をさせるか,その交差検証を行います。fitcsvm
は,カーネル関数を使用する予測子データのマッピングをサポートし,逐次最小最適化(SMO),反復単一データアルゴリズム(ISDA)または二次計画法によるL1ソフトマージン最小化を目的関数最小化についてサポートします。
高次元データセット,つまり多数の予測子変数が含まれているデータセットに対するバイナリ分類の場合に線形SVMモデルに学習をさせるには,代わりにfitclinear
を使用します。
バイナリSVMモデルが結合されたマルチクラス学習の場合は,誤り訂正出力符号(ECOC)を使用します。詳細は,fitcecoc
を参照してください。
支持向量机回帰モデルに学習をさせる方法については,低~中次元の予測子データセットの場合はfitrsvm
,高次元データセットの場合はfitrlinear
を参照してください。
は,テーブルMdl
= fitcsvm (资源描述
,ResponseVarName
)资源描述
に格納されている標本データを使用して学習させたサポートベクターマシン(SVM)分類器Mdl
を返します。ResponseVarName
は1クラスまたは2クラス分類用のクラスラベルが含まれている资源描述
内の変数の名前です。
フィッシャーのアヤメのデータセットを読み込みます。がく片の長さと幅および観測済みのすべての setosa 種のアヤメを削除します。
负载fisheriris第1 = ~ strcmp(物种,“setosa”);X =量(第1 3:4);y =物种(第1);
処理済みのデータセットを使用してSVM分類器に学習させます。
SVMModel = fitcsvm (X, y)
SVMModel = ClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:{“癣”“virginica”}ScoreTransform:“没有一个”NumObservations: 100α:[24 x1双]偏见:-14.4149 KernelParameters: [1 x1 struct] BoxConstraints: x1双[100]ConvergenceInfo: [1 x1 struct] IsSupportVector: x1逻辑[100]解算器:SMO的属性,方法金宝app
SVMModel
は学習させたClassificationSVM
分類器です。SVMModel
のプロパティを表示します。たとえば,クラスの順序を確認するには、ドット表記を使用します。
classOrder = SVMModel。一会
classOrder =2 x1细胞{“癣”}{' virginica '}
最初のクラス(“多色的”
)は陰性のクラスで,2番目のクラス(“virginica”
)は陽性のクラスです。“类名”
名前と値のペアの引数を使用すると,学習中にクラスの順序を変更できます。
データの散布図をプロットし,サポートベクターを円で囲みます。
sv = SVMModel.金宝appSupportVectors;图gscatter (X (: 1), (:, 2), y)在情节(sv (: 1), sv (:, 2),“柯”,“MarkerSize”10)传说(“多色的”,“virginica”,“金宝app支持向量”)举行从
サポートベクターは,推定されたクラス境界の上または外側で発生する観測値です。
名前と値のペアの引数“BoxConstraint”
を使用して学習時のボックス制約を設定すると,境界(および結果的にサポートベクターの個数)を調整できます。
电离层
データセットを読み込みます。
负载电离层rng (1);%的再现性
放射基底関数を使用してSVM分類器に学習させます。本ソフトウェアを使用してカーネル関数のスケール値を検出します。予測子を標準化します。
SVMModel = fitcsvm (X, Y,“标准化”,真的,“KernelFunction”,“RBF”,...“KernelScale”,“汽车”);
SVMModel
は学習させたClassificationSVM
分類器です。
支持向量机分類器を交差検証します。既定では、10分割交差検証が使用されます。
CVSVMModel = crossval (SVMModel);
CVSVMModel
はClassificationPartitionedModel
交差検証分類器です。
標本外誤分類率を推定します。
classLoss = kfoldLoss (CVSVMModel)
classLoss = 0.0484
汎化率は約5%です。
すべてのアヤメを同じクラスに割り当てることにより,フィッシャーのアヤメのデータセットを変更します。修正したデータセットの外れ値を検出し,外れ値である観測値の比率が予想どおりであることを確認します。
フィッシャーのアヤメのデータセットを読み込みます。花弁の長さと幅を削除します。すべてのアヤメを同じクラスとして扱います。
负载fisheririsX =量(:,1:2);y = 1(大小(X, 1), 1);
修正したデータセットを使用してSVM分類器に学習させます。観測値のうち5%が外れ値であるとします。予測子を標準化します。
rng (1);SVMModel = fitcsvm (X, y,“KernelScale”,“汽车”,“标准化”,真的,...“OutlierFraction”, 0.05);
SVMModel
は学習させたClassificationSVM
分類器です。既定では、1クラス学習にはガウス カーネルが使用されます。
観測値と判定境界をプロットします。サポートベクターと外れ値の可能性がある値にフラグを設定します。
svInd = SVMModel.Is金宝appSupportVector;h = 0.02;%网格网格步长(X1, X2) = meshgrid (min (X (: 1)): h:马克斯(X (: 1))...min (X (:, 2)): h:马克斯(X (:, 2)));[~,分数]=预测(SVMModel (X1 (:), X2 (:)));scoreGrid =重塑(得分,大小(X1, 1),大小(X2, 2));图绘制(X (: 1), (:, 2),“k”。)举行在情节(X (svInd, 1), X (svInd, 2),“罗”,“MarkerSize”, 10)轮廓(X1, X2, scoreGrid) colorbar;标题(“{\bf虹膜离群点的一类支持向量机检测}”)包含(“花萼长度(厘米)”) ylabel (萼片宽(cm)的)传说(“观察”,“金宝app支持向量”)举行从
外れ値と他のデータとの境界は,等高線値が0
である場所で発生します。
交差検証データで負のスコアをもつ観測値のごく一部が,約5%であることを確認します。
CVSVMModel = crossval (SVMModel);[~, scorePred] = kfoldPredict (CVSVMModel);outlierRate =意味着(scorePred < 0)
outlierRate = 0.0467
fisheriris
データセットの散布図を作成します。プロット内のグリッドの座標をデータセットの分布から派生する新しい観測値として扱い,データセット内の3つのクラスのいずれかに座標を割り当てることによりクラスの境界を求めます。
フィッシャーのアヤメのデータセットを読み込みます。花弁の長さと幅を予測子として使用します。
负载fisheririsX =量(:,3:4);Y =物种;
データの散布図を調べます。
图gscatter (X (: 1), (:, 2), Y);甘氨胆酸h =;lims = [h。XLim h.YLim];%提取x和y轴的极限标题('{\bf虹膜测量散点图}');包含(“花瓣长度(厘米)”);ylabel (“花瓣宽度(cm)”);传奇(“位置”,“西北”);
データには3つのクラスが含まれており,そのうち1つは他のクラスから線形分離可能です。
各クラスに対して,以下を実行します。
観測値がクラスのメンバーであるかどうかを示す逻辑ベクトル(indx
)を作成します。
予測子データとindx
を使用してSVM分類器に学習させます。
分類器を细胞配列のセルに保存します。
クラスの順序を定義します。
SVMModels =细胞(3,1);类=独特(Y);rng (1);%的再现性为j = 1:numel(classes) indx = strcmp(Y,classes(j))); / /索引为每个分类器创建二进制类SVMModels {j} = fitcsvm (X, indx“类名”(虚假的真实),“标准化”,真的,...“KernelFunction”,“rbf”,“BoxConstraint”1);结束
SVMModels
は3行1列の细胞配列です。ここで,各セルにはClassificationSVM
分類器が格納されています。各セルで,陽性のクラスはそれぞれsetosa,杂色的,virginicaです。
プロット内で細かいグリッドを定義し,座標を学習データの分布からの新しい観測値として扱います。各分類器を使用して,この新しい測定値のスコアを推定します。
d = 0.02;[x1Grid, x2Grid] = meshgrid (min (X (: 1)): d:马克斯(X (: 1))...min (X (:, 2)): d:马克斯(X (:, 2)));xGrid = [x1Grid (:), x2Grid (:));N =大小(xGrid, 1);成绩= 0 (N,元素个数(类));为j = 1:numel(classes) [~,score] = predict(SVMModels{j},xGrid);分数(:,j) =分数(:,2);%第二列包含正面类得分结束
分数
の各行には3つのスコアが格納されています。スコアが最大の要素のインデックスは,新しいクラスの観測値の所属先となる可能性が最も高いと思われるクラスのインデックスです。
新しいそれぞれの観測値を,当該の観測値に最大スコアを設定する分類器に関連付けます。
[~, maxScore] = max(分数,[],2);
プロットの各領域の色は,対応する新しい観測値が属するクラスに基づいています。
图h(1:3) = gscatter(xGrid(:,1),xGrid(:,2),maxScore,...[0.1 0.5 0.5;0.5 0.1 0.5;0.5 0.5 0.1]);持有在h (6) = gscatter (X (: 1), (:, 2), Y);标题('{\bf虹膜分类区域}');包含(“花瓣长度(厘米)”);ylabel (“花瓣宽度(cm)”);传奇(h, {“setosa地区”,“杂色的地区”,“virginica地区”,...“观察setosa”,的观察到的多色的,“观察virginica”},...“位置”,“西北”);轴紧持有从
fitcsvm
を使用してハイパーパラメーターを自動的に最適化します。
电离层
データセットを読み込みます。
负载电离层
自動的なハイパーパラメーター最適化を使用して,5分割交差検証損失を最小化するハイパーパラメーターを求めます。再現性を得るために,乱数シードを設定し,“expected-improvement-plus”
の獲得関数を使用します。
rng默认的Mdl = fitcsvm (X, Y,“OptimizeHyperparameters”,“汽车”,...“HyperparameterOptimizationOptions”结构(“AcquisitionFunctionName”,...“expected-improvement-plus”))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | BoxConstraint | KernelScale | | |结果| | |运行时(观察)| (estim) | | ||=====================================================================================================| | 最好1 | | 0.20513 | 18.101 | 0.20513 | 0.20513 | 64.836 | 0.0015729 | | 2 |接受| 0.35897 | 0.1603 | 0.20513 | 0.21471 | 0.036335 | 5.5755 | | 3 |最好| 0.13105 | 6.959 | 0.13105 | 0.14133 | 0.0022147 | 0.0023957 | | | 0.35897 | 4 |接受0.15104 | 0.13105 | 0.13109 | 5.1259 | 98.62 | | 5 | Accept | 0.13675 | 13.415 | 0.13105 | 0.13111 | 0.0011599 | 0.0010098 | | 6 | Accept | 0.13675 | 2.9897 | 0.13105 | 0.13119 | 0.0010151 | 0.0059137 | | 7 | Accept | 0.1339 | 8.611 | 0.13105 | 0.13127 | 0.0010281 | 0.0027003 | | 8 | Accept | 0.13675 | 13.997 | 0.13105 | 0.13232 | 0.016269 | 0.0024597 | | 9 | Accept | 0.13105 | 11.708 | 0.13105 | 0.13137 | 0.0021526 | 0.0025081 | | 10 | Best | 0.12821 | 15.305 | 0.12821 | 0.12841 | 0.0086928 | 0.0010304 | | 11 | Accept | 0.12821 | 15.118 | 0.12821 | 0.12828 | 0.010039 | 0.0010077 | | 12 | Accept | 0.13675 | 15.368 | 0.12821 | 0.13162 | 0.0071238 | 0.0010245 | | 13 | Accept | 0.1339 | 14.852 | 0.12821 | 0.13179 | 0.0050166 | 0.0016385 | | 14 | Best | 0.11966 | 15.632 | 0.11966 | 0.12919 | 0.013746 | 0.0010181 | | 15 | Accept | 0.13105 | 16.907 | 0.11966 | 0.1294 | 0.025222 | 0.001012 | | 16 | Accept | 0.13105 | 17.926 | 0.11966 | 0.12958 | 0.024019 | 0.001013 | | 17 | Accept | 0.35897 | 0.22187 | 0.11966 | 0.12962 | 0.0010245 | 994.95 | | 18 | Accept | 0.13675 | 14.732 | 0.11966 | 0.12925 | 990.28 | 0.36736 | | 19 | Accept | 0.18234 | 18.276 | 0.11966 | 0.12917 | 949.33 | 0.082849 | | 20 | Accept | 0.1339 | 6.9508 | 0.11966 | 0.12914 | 979.17 | 1.3107 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstraint| KernelScale | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.14245 | 16.629 | 0.11966 | 0.13062 | 0.024598 | 0.0010041 | | 22 | Accept | 0.13675 | 11.697 | 0.11966 | 0.13058 | 907 | 0.70254 | | 23 | Accept | 0.35897 | 0.12748 | 0.11966 | 0.13062 | 999.82 | 995.02 | | 24 | Accept | 0.15385 | 0.12296 | 0.11966 | 0.13042 | 0.001002 | 0.30762 | | 25 | Accept | 0.12251 | 0.13769 | 0.11966 | 0.12275 | 0.0010105 | 0.056734 | | 26 | Accept | 0.1339 | 0.2236 | 0.11966 | 0.12251 | 0.021279 | 0.054708 | | 27 | Accept | 0.12821 | 0.13149 | 0.11966 | 0.12517 | 0.0010127 | 0.064566 | | 28 | Accept | 0.12821 | 0.19541 | 0.11966 | 0.12557 | 0.0010014 | 0.036667 | | 29 | Accept | 0.1339 | 0.12338 | 0.11966 | 0.12743 | 0.0010509 | 0.078319 | | 30 | Accept | 0.12251 | 0.18274 | 0.11966 | 0.12706 | 0.0030057 | 0.028009 |
__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:304.1292秒总目标函数计算时间:256.9533最佳观测可行点:BoxConstraint KernelScale _____________ ___________ 0.013746 0.0010181观测目标函数值= 0.11966估计目标函数值= 0.13091函数评价时间= 15.6316最佳估计可行点(根据模型):BoxConstraint KernelScale _____________ ___________ 0.0010105 0.056734估计的目标函数值= 0.12706估计的函数评价时间= 0.13624
Mdl = ClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:“没有一个”NumObservations: 351 HyperparameterOptimizationResults: [1 x1 BayesianOptimization]α:[117 x1双]偏见:-2.6521 KernelParameters: [1 x1 struct] BoxConstraints: x1双[351]ConvergenceInfo: [1 x1 struct] IsSupportVector:金宝app[351x1 logical] Solver: 'SMO'属性,方法
资源描述
- - - - - -標本データモデルを学習させるために使用する標本データ。テーブルとして指定します。资源描述
の各行は1つの観測値に,各列は1つの予測子変数に対応します。オプションとして,资源描述
に応答変数用の列を1つ追加できます。文字ベクトルの细胞配列ではない cell 配列と複数列の変数は使用できません。
资源描述
に応答変数が含まれている場合に资源描述
内の他の変数をすべて予測子として使用するには,ResponseVarName
を使用して応答変数を指定します。
资源描述
に応答変数が含まれている場合に资源描述
内の他の変数の一部のみを予測子として使用するには,公式
を使用して式を指定します。
资源描述
に応答変数が含まれていない場合は,Y
を使用して応答変数を指定します。応答変数の長さと资源描述
の行数は等しくなければなりません。
データ型:表格
ResponseVarName
- - - - - -応答変数名资源描述
内の変数の名前応答変数の名前。资源描述
内の変数の名前で指定します。
ResponseVarName
には文字ベクトルまたは字符串スカラーを指定しなければなりません。たとえば,応答変数Y
が资源描述。Y
として格納されている場合,“Y”
として指定します。それ以外の場合,モデルを学習させるときに、资源描述
の列はY
を含めてすべて予測子として扱われます。
応答変数は,绝对配列,文字配列,字符串配列,逻辑ベクトル,数値ベクトル,または文字ベクトルの细胞配列でなければなりません。Y
が文字配列である場合,応答変数の各要素は配列の1つの行に対応しなければなりません。
名前と値の引数一会
を使用してクラスの順序を指定することをお勧めします。
データ型:字符
|字符串
公式
- - - - - -応答変数および予測子変数サブセットの説明モデル応答変数および予測子変数サブセットの説明モデル。“Y ~ x1 + x2 + x3”
という形式の文字ベクトルまたは字符串スカラーを指定します。この形式では,Y
は応答変数を,x1
、x2
およびx3
は予測子変数を表します。
モデルに学習をさせるための予測子として资源描述
内の変数のサブセットを指定するには,式を使用します。式を指定した場合,公式
に現れない资源描述
内の変数は使用されません。
式の変数名は资源描述
の変数名(Tbl.Properties.VariableNames
)であり,有効なMATLAB®識別子でなければなりません。関数isvarname
を使用して资源描述
の変数名を検証できます。変数名が有効でない場合,関数matlab.lang.makeValidName
を使用してそれらを変換できます。
データ型:字符
|字符串
Y
- - - - - -クラスラベルX
- - - - - -予測子データ支持向量机分類器に学習させる予測子データ。数値の行列として指定します。
X
の各行は1つの観測値(インスタンスまたは例とも呼ばれます)に,各列は1つの予測子(特徴量とも呼ばれます)に対応します。
Y
の長さとX
の行数は等しくなければなりません。
予測子の名前をX
に表示される順序で指定するには,“PredictorNames”
名前と値のペアの引数を使用します。
データ型:双
|单
オプションの名称,值
引数のコンマ区切りペアを指定します。的名字
は引数名で,价值
は対応する値です。的名字
は引用符で囲まなければなりません。Name1, Value1,…,的家
のように,複数の名前と値のペアの引数を,任意の順番で指定できます。
fitcsvm (X, Y, KFold, 10日,“成本”,[0 2;1 0],“ScoreTransform”、“标志”)
は10分割交差検証を実行し,偽陰性の2倍のペナルティを偽陽性に適用し,符号関数を使用してスコアを変換します。
KernelFunction
- - - - - -カーネル関数“线性”
|“高斯”
|“rbf”
|多项式的
|関数名グラム行列の要素の計算に使用するカーネル関数。“KernelFunction”
とカーネル関数名から構成されるコンマ区切りのペアとして指定します。G (xj, xk)がグラム行列の要素(j, k)であるとします。ここでxjおよびxkはX
内の観測値jおよびkを表すp次元ベクトルです。サポートされるカーネル関数の名前および関数形式を次の表で説明します。
カーネル関数名 | 説明 | 式 |
---|---|---|
“高斯” または“rbf” |
ガウスまたは放射基底関数(RBF)カーネル(1クラス学習の場合の既定値) |
|
“线性” |
線形カーネル(2クラス学習の場合の既定値) |
|
多项式的 |
多項式カーネル。“PolynomialOrder”, を使用して多項式カーネルの順序(问 )を指定します。 |
|
独自のカーネル関数を設定することもできます。たとえば,“KernelFunction”、“内核”
を使用すると内核
が設定されます。値内核
は次の形式でなければなりません。
函数G =内核(U, V)
U
は,m行p列の行列です。列は予測子変数に,行は観測値に対応します。
V
はn行p列の行列です。列は予測子変数に,行は観測値に対応します。
G
は,U
とV
の行によるm行n列のグラム行列です。
kernel.m
は,MATLABパス上になければなりません。
カーネル関数には一般的な名前を使用しないようにしてください。たとえば,シグモイドカーネル関数には“乙状结肠”
ではなく“mysigmoid”
などの名前を使用します。
例:“KernelFunction”、“高斯”
データ型:字符
|字符串
KernelScale
- - - - - -カーネルスケールパラメーター1
(既定値) |“汽车”
|正のスカラーカーネルスケールパラメーター。“KernelScale”
と,“汽车”
または正のスカラーで構成される,コンマ区切りのペアとして指定します。予測子行列X
のすべての要素がKernelScale
の値で除算されます。その後,適切なカーネルノルムが適用され,グラム行列が計算されます。
“汽车”
を指定した場合,ヒューリスティック手法を使用して適切なスケール係数が選択されます。このヒューリスティック手法では副標本抽出を使用するので,呼び出すたびに推定値が変化する可能性があります。このため,結果を再現するには,学習の前にrng
を使用して乱数シードを設定します。
“KernelFunction”、“内核”
のようにKernelScale
と独自のカーネル関数を指定すると,エラーが発生します。内核
の内部でスケーリングを適用しなければなりません。
例:“KernelScale”、“汽车”
データ型:双
|单
|字符
|字符串
PolynomialOrder
- - - - - -多項式カーネル関数の次数3.
(既定値) |正の整数多項式カーネル関数の次数。“PolynomialOrder”
と正の整数から成るコンマ区切りのペアとして指定されます。
KernelFunction
が多项式的
ではない場合に“PolynomialOrder”
を設定すると,エラーがスローされます。
例:“PolynomialOrder”,2
データ型:双
|单
KernelOffset
- - - - - -カーネルオフセットパラメーターカーネルオフセットパラメーター。“KernelOffset”
と非負のスカラーで構成されるコンマ区切りのペアとして指定します。
KernelOffset
がグラム行列の各要素に追加されます。
既定値は以下のとおりです。
ソルバーがSMOの場合(つまり,“规划求解”、“SMO的
はを設定した場合)0
ソルバーがISDAの場合(つまり,“规划求解”、“ISDA的
はを設定した場合)0.1
例:“KernelOffset”,0
データ型:双
|单
标准化
- - - - - -予測子データを標準化するためのフラグ假
(既定値) |真正的
予測子データを標準化するためのフラグ。“标准化”
と真正的
(1
)または假
(0)
から構成されるコンマ区切りのペアとして指定します。
“标准化”,真的
を設定した場合,次のようになります。
例:“标准化”,真的
データ型:逻辑
解算器
- - - - - -最適化ルーチンISDA的
|“L1QP”
|SMO的
α
- - - - - -アルファ係数の初期推定値アルファ係数の初期推定値。“α”
と非負値の数値ベクトルから構成されるコンマ区切りのペアとして指定します。α
の長さはX
の行数と等しくなければなりません。
“α”
の各要素はX
の観測値に対応します。
“α”
は南
を格納できません。
“α”
を交差検証の名前と値のペアの引数(“CrossVal”
、“CVPartition”
、“坚持”
、“KFold”
または“Leaveout”
)のいずれかと同時に指定すると,エラーが返されます。
Y
に欠損値が含まれている場合は,欠損値に対応するすべての行をY
、X
および“α”
から削除してください。つまり,次のように入力します。
idx = ~ isundefined(分类(Y));: Y = Y (idx);X = X (idx:);α=α(idx);
Y
、X
およびα
をそれぞれ応答,予測子およびアルファの初期推定値として渡します。
既定値は,以下のとおりです。
1クラス学習の場合:0.5 * 1(大小(X, 1), 1)
2クラス学習の場合:0(大小(X, 1), 1)
例:“阿尔法”,0.1 *(大小(X, 1), 1)
データ型:双
|单
CacheSize
- - - - - -キャッシュサイズ1000
(既定値) |“最大”
|正のスカラーキャッシュサイズ。“CacheSize”
と“最大”
または正のスカラーで構成されるコンマ区切りのペアとして指定します。
CacheSize
が“最大”
の場合,n行n列のグラム行列を保持できる十分なメモリが確保されます。
CacheSize
が正のスカラーの場合,モデルの学習用にCacheSize
メガバイトのメモリが確保されます。
例:“CacheSize”、“最大”
データ型:双
|单
|字符
|字符串
ClipAlphas
- - - - - -アルファ係数をクリップするためのフラグ真正的
(既定値) |假
アルファ係数をクリップするためのフラグ。“ClipAlphas”
と真正的
または假
のいずれかから構成されるコンマ区切りのペアとして指定します。
観測値jのアルファ係数がαj,観測値jのボックス制約がCjであるとします(j = 1,…,n)。nは学習標本のサイズです。
値 | 説明 |
---|---|
真正的 |
各反復でαjが0またはCjに近い場合,MATLABでαjがそれぞれ0またはCjに設定されます。 |
假 |
最適化時にMATLABでアルファ係数は変更されません。 |
MATLABでは,学習済みのSVMモデルオブジェクトのα
プロパティに最終的なαの値が格納されます。
ClipAlphas
は,SMOとISDAの収束に影響を与える可能性があります。
例:“ClipAlphas”,假的
データ型:逻辑
ν
- - - - - -1クラス学習のνパラメーター0.5
(既定値) |正のスカラー1クラス学習のνパラメーター。“怒”
と正のスカラーから構成されるコンマ区切りのペアとして指定します。ν
は,0
より大きく1
以下でなければなりません。
ν
の設定により,学習例の大部分を陽性のクラスにするか,スコア関数の重みを最小限にするかのバランスを制御します。
例:“怒”,0.25
データ型:双
|单
NumPrint
- - - - - -最適化診断メッセージ出力の反復回数1000
(既定値) |非負の整数最適化診断メッセージ出力の反復回数。“NumPrint”
と非負の整数で構成されるコンマ区切りのペアとして指定します。
“详细”,1
とNumPrint, NumPrint
を指定すると,numprint
回反復するたびにSMOとISDAからのすべての最適化診断メッセージがコマンドウィンドウに表示されます。
例:“NumPrint”,500年
データ型:双
|单
OutlierFraction
- - - - - -学習データで想定される外れ値の比率0
(既定値) |区間(0,1)の数値スカラー学習データで想定される外れ値の比率。“OutlierFraction”
と区間(0,1)の数値スカラーから構成されるコンマ区切りのペアとして指定します。
OutlierFraction, OutlierFraction
を設定するとします。outlierfraction
は0より大きい値です。
2クラス学習では“ロバスト学習”が行われます。この方式では,最適化アルゴリズムが収束すると,観測値のうち100 *outlierfraction
%が削除されます。削除された観測値は,勾配の大きいものに対応します。
1クラス学習では,学習セットに負のスコアをもつ観測outlierfraction
など,適切なバイアス項が検出されます。
例:“OutlierFraction”,0.01
データ型:双
|单
RemoveDuplicates
- - - - - -重複する観測値を単一の観測値に置き換えるためのフラグ假
(既定値) |真正的
学習データ内の重複する観測値を単一の観測値に置き換えるためのフラグ。“RemoveDuplicates”
と真正的
または假
から構成されるコンマ区切りのペアとして指定します。
RemoveDuplicates
が真正的
の場合,fitcsvm
は学習データ内の重複する観測値を同じ値の単一の観測値に置き換えます。単一の観測値の重みは,削除された対応する重複の重みの合計に等しくなります(权重
を参照)。
ヒント
多数の重複する観測値がデータセットに含まれている場合は,“RemoveDuplicates”,真的
を指定すると収束時間が大幅に短くなる可能性があります。
データ型:逻辑
详细的
- - - - - -詳細レベル0
(既定値) |1
|2
詳細レベル。“详细”
と0
、1
または2
から構成されるコンマ区切りのペアとして指定します。详细的
の値は,コマンドウィンドウに表示され構造体としてMdl.ConvergenceInfo.History
に保存される最適化情報の量を制御します。
次の表は,使用できる詳細レベルオプションの一覧です。
値 | 説明 |
---|---|
0 |
収束情報の表示や保存は行われません。 |
1 |
診断メッセージが表示され,numprint 回の反復ごとに収束基準が保存されます。ここで,numprint は名前と値のペアの引数“NumPrint” の値です。 |
2 |
診断メッセージが表示され,1回の反復ごとに収束基準が保存されます。 |
例:“详细”,1
データ型:双
|单
CategoricalPredictors
- - - - - -カテゴリカル予測子のリスト“所有”
カテゴリカル予測子のリスト。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
正の整数のベクトル | ベクトルの各エントリは,カテゴリカル変数が含まれている予測子データの列に対応するインデックス値です。インデックス値の範囲は1 ~
|
逻辑ベクトル |
|
文字行列 | 行列の各行は予測子変数の名前です。名前はPredictorNames のエントリに一致しなくてはなりません。文字行列の各行が同じ長さになるように、名前を余分な空白で埋めてください。 |
文字ベクトルの细胞配列または字符串配列 | 配列の各要素は予測子変数の名前です。名前はPredictorNames のエントリに一致しなくてはなりません。 |
“所有” |
すべての予測子がカテゴリカルです。 |
既定では,予測子データがテーブル(资源描述
)内にある場合,fitcsvm
は,その変数が逻辑ベクトル,直言ベクトル,文字配列,字符串配列または文字ベクトルの细胞配列のいずれかである場合に,変数を直言であると見なします。予測子データが行列(X
)である場合,fitcsvm
はすべての予測子が連続的であると見なします。他の予測子をカテゴリカル予測子として指定するには,名前と値の引数“CategoricalPredictors”
を使用してそれらを指定します。
特定されたカテゴリカル予測子に対して,fitcsvm
はカテゴリカル変数に順序が設定されていないか順序が設定されているかに応じて,2つの異なる方式を使用してダミー変数を作成します。順序付けのないカテゴリカル変数の場合,fitcsvm
は,そのカテゴリカル変数の各レベルについて1つずつダミー変数を作成します。順序付けされたカテゴリカル変数の場合,fitcsvm
は,カテゴリの数よりも1つ少ないダミー変数を作成します。詳細については,ダミー変数の自動作成を参照してください。
例:“CategoricalPredictors”、“所有”
データ型:单
|双
|逻辑
|字符
|字符串
|细胞
一会
- - - - - -学習に使用するクラスの名前学習に使用するクラスの名前。分类配列、文字配列、string 配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として指定します。一会
のデータ型は资源描述
内の応答変数またはY
と同じでなければなりません。
一会
が文字配列の場合,各要素は配列の1つの行に対応しなければなりません。
一会
の使用目的は次のとおりです。
学習時のクラスの順序を指定する。
クラスの順序に対応する入力または出力引数の次元の順序を指定する。たとえば,成本
の次元の順序や预测
によって返される分類スコアの列の順序を指定するために一会
を使用します。
学習用にクラスのサブセットを選択する。たとえば,Y
に含まれているすべての異なるクラス名の集合が{' a ', ' b ', ' c '}
であるとします。クラス“一个”
および“c”
のみの観測値を使用してモデルに学習をさせるには,“类名”,{' a ', ' c '}
を指定します。
一会
の既定値は,资源描述
内の応答変数またはY
に含まれているすべての異なるクラス名の集合です。
例:“类名”,{' b ', ' g '}
データ型:分类
|字符
|字符串
|逻辑
|单
|双
|细胞
成本
- - - - - -誤分類のコスト誤分類のコスト。“成本”
と正方行列または構造体配列から構成されるコンマ区切りのペアとして指定します。
2クラス学習の場合,コスト行列を指定すると,そのコスト行列で指定されているペナルティが組み込まれ,事前確率が更新されます。この結果,コスト行列は既定の状態にリセットされます。BoxConstraint
、成本
、之前
、标准化
および权重
の関係とアルゴリズム動作についての詳細は,アルゴリズムを参照してください。
既定値は,以下のとおりです。
1クラス学習の場合:成本= 0
2クラス学習では,我~ = j
の場合は成本(i, j) = 1
、我=我
の場合は成本(i, j) = 0
です。
例:“成本”,(0,1,2,0)
データ型:双
|单
|结构体
PredictorNames
- - - - - -予測子変数名予測子変数名。一意な名前の字符串配列または一意な文字ベクトルの细胞配列として指定します。PredictorNames
の機能は,学習データの提供方法によって決まります。
X
とY
を指定した場合,PredictorNames
を使用してX
内の予測子変数に名前を割り当てることができます。
PredictorNames
内の名前の順序は,X
の列の順序に一致しなければなりません。つまり,PredictorNames {1}
はX (: 1)
の名前,PredictorNames {2}
はX (:, 2)
の名前であり,他も同様です。また,大小(X, 2)
と元素个数(PredictorNames)
は等しくなければなりません。
既定ではPredictorNames
は{x1, x2,…}
です。
资源描述
を指定する場合,PredictorNames
を使用して学習に使用する予測子変数を選択できます。つまり,fitcsvm
は,学習中にPredictorNames
の予測子変数と応答変数のみを使用します。
PredictorNames
はTbl.Properties.VariableNames
のサブセットでなければならず,応答変数の名前を含めることはできません。
既定では,すべての予測子変数の名前がPredictorNames
に格納されます。
“PredictorNames”
と公式
の両方ではなく,いずれか一方を使用して学習用の予測子を指定することをお勧めします。
例:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
データ型:字符串
|细胞
之前
- - - - - -事前確率“经验”
(既定値) |“统一”
|数値ベクトル|構造体配列各クラスの事前確率。“之前”
と次の表の値から構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
“经验” |
クラスの事前確率は,Y のクラスの相対的頻度です。 |
“统一” |
クラスの事前確率はいずれも1 / K (Kはクラス数)となります。 |
数値ベクトル | ベクトルの各要素はクラスの事前確率です。Mdl。ClassNames に従って要素を並べ替えるか,一会 名前と値のペアの引数を使用して順序を指定します。要素は合計が1 になるように正規化されます。 |
構造体 | 構造体
|
2クラス学習の場合,コスト行列を指定すると,そのコスト行列で指定されているペナルティが組み込まれ,事前確率が更新されます。BoxConstraint
、成本
、之前
、标准化
および权重
の関係とアルゴリズム動作についての詳細は,アルゴリズムを参照してください。
例:结构(“类名”,{{setosa,杂色的,‘virginica}}, ClassProbs, 1:3)
データ型:字符
|字符串
|双
|单
|结构体
ResponseName
- - - - - -応答変数名“Y”
(既定値) |文字ベクトル|字符串スカラー応答変数名。文字ベクトルまたは字符串スカラーとして指定します。
Y
を指定した場合,“ResponseName”
を使用して応答変数の名前を指定できます。
ResponseVarName
または公式
を指定した場合,“ResponseName”
を使用することはできません。
例:“ResponseName”、“响应”
データ型:字符
|字符串
ScoreTransform
- - - - - -スコア変換“没有”
(既定値) |“doublelogit”
|“invlogit”
|“ismax”
|分对数的
|関数ハンドル|……スコア変換。文字ベクトル,弦スカラー,または関数ハンドルとして指定します。
次の表は,使用可能な文字ベクトルおよび字符串スカラーをまとめています。
値 | 説明 |
---|---|
“doublelogit” |
1 / (1 + e2 x) |
“invlogit” |
Log (x / (1 - x)) |
“ismax” |
最大のスコアをもつクラスのスコアを1に設定し,他のすべてのクラスのスコアを0に設定する |
分对数的 |
1 / (1 + e- x) |
“没有” または“身份” |
x(変換なし) |
“标志” |
x < 0のとき1 x = 0のとき0 x > 0のとき1 |
“对称” |
2 x - 1 |
“symmetricismax” |
最大のスコアをもつクラスのスコアを1に設定し,他のすべてのクラスのスコアを1に設定する |
“symmetriclogit” |
2 / (1 + e- x) - 1 |
MATLAB関数またはユーザー定義関数の場合は,スコア変換用の関数ハンドルを使用します。関数ハンドルは,行列 (元のスコア) を受け入れて同じサイズの行列 (変換したスコア) を返さなければなりません。
例:“ScoreTransform”、“分对数的
データ型:字符
|字符串
|function_handle
权重
- - - - - -観測値の重み资源描述
内の変数の名前観測値の重み。“重量”
と,正の値の数値ベクトルまたは资源描述
内の変数の名前から構成されるコンマ区切りのペアとして指定します。X
または资源描述
の各行に含まれている観測値は,权重
の対応する値で重み付けされます。权重
のサイズは,X
または资源描述
の行数と同じでなければなりません。
入力データをテーブル资源描述
として指定した場合,权重
は数値ベクトルが含まれている资源描述
内の変数の名前にすることができます。この場合,权重
には文字ベクトルまたは字符串スカラーを指定しなければなりません。たとえば,重みベクトルW
が资源描述。W
として格納されている場合,' W '
として指定します。それ以外の場合,モデルに学習をさせるときに、资源描述
の列はW
を含めてすべて予測子または応答変数として扱われます。
既定の設定では,权重
は(
です。n
, 1)n
はX
または资源描述
の観測値数です。
合計が各クラスの事前確率の値と等しくなるように权重
が正規化されます。BoxConstraint
、成本
、之前
、标准化
および权重
の関係とアルゴリズム動作についての詳細は,アルゴリズムを参照してください。
データ型:双
|单
|字符
|字符串
メモ
交差検証の名前と値のペアの引数を名前と値のペアの引数“OptimizeHyperparameters”
と同時に使用することはできません。“OptimizeHyperparameters”
の場合の交差検証は,名前と値のペアの引数“HyperparameterOptimizationOptions”
を使用することのみによって変更できます。
CrossVal
- - - - - -交差検証分類器を学習させるためのフラグ“关闭”
(既定値) |“上”
CVPartition
- - - - - -交差検証分割[]
(既定値) |cvpartition
分割オブジェクト交差検証分割。cvpartition
で作成したcvpartition
分割オブジェクトとして指定します。分割オブジェクトは,交差検証のタイプと、学習セットおよび検証セットのインデックス付けを指定します。
交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition
、坚持
、KFold
、Leaveout
の4つのうちのいずれかのみです。
例:本量利= cvpartition(500年,“KFold”,5)
500年を使用して個の観測値に対する5分割交差検証について無作為な分割を作成するとします。この場合,“CVPartition”,本量利
を使用して交差検証済みモデルを指定できます。
坚持
- - - - - -ホールドアウト検証の対象データの比率ホールドアウト検証に使用されるデータの比率。(0,1)の範囲のスカラー値として指定します。‘坚持’,p
を指定した場合,以下の手順が実行されます。
p * 100
%のデータを無作為に選択して検証データとして確保し,残りのデータを使用してモデルに学習をさせる。
コンパクトな学習済みモデルを交差検証済みモデルの训练有素的
プロパティに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition
、坚持
、KFold
、Leaveout
の4つのうちのいずれかのみです。
例:“坚持”,0.1
データ型:双
|单
KFold
- - - - - -分割の数10
(既定値) |1より大きい正の整数値交差検証済みモデルで使用する分割の数。1より大きい正の整数値として指定します。KFold, k
を指定した場合,以下の手順が実行されます。
データを無作為にk
個のセットに分割する。
各セットについて,そのセットを検定データとして確保し,他のk
- 1個のセットを使用してモデルに学習をさせる。
k
個のコンパクトな学習済みモデルを,交差検証済みモデルの训练有素的
プロパティに含まれているk
行1列の细胞ベクトルに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition
、坚持
、KFold
、Leaveout
の4つのうちのいずれかのみです。
例:“KFold”,5
データ型:单
|双
Leaveout
- - - - - -分析法の交差検証のフラグ“关闭”
(既定値) |“上”
分析法の交差検証のフラグ。“上”
または“关闭”
として指定します。“Leaveout”,“上”
を指定した場合,n個の観測値(nはモデルのNumObservations
プロパティで指定される,欠損観測値を除外した観測値の個数)のそれぞれについて以下の手順が実行されます。
いずれかの観測値を検証データとして確保し,他のn - 1個の観測値を使用してモデルに学習をさせる。
n個のコンパクトな学習済みモデルを,交差検証済みモデルの训练有素的
プロパティに含まれているn行1列の细胞ベクトルに格納する。
交差検証済みモデルの作成で指定できる名前と値の引数は,CVPartition
、坚持
、KFold
、Leaveout
の4つのうちのいずれかのみです。
例:“Leaveout”,“上”
DeltaGradientTolerance
- - - - - -勾配差分の許容誤差SMO(逐次最小最適化)またはISDA(反復単一データアルゴリズム)により取得された上位の違反値と下位の違反値の間に存在する,勾配差分の許容誤差。“DeltaGradientTolerance”
と非負のスカラーで構成されるコンマ区切りのペアとして指定します。
DeltaGradientTolerance
が0
の場合,最適化収束を確認するために,勾配差分の許容誤差を使用しません。
既定値は,以下のとおりです。
ソルバーがSMOの場合(たとえば,“规划求解”、“SMO的
を設定した場合なはど)1 e - 3
ソルバーがISDAの場合(たとえば,“规划求解”、“ISDA的
を設定した場合なはど)0
例:依照“DeltaGradientTolerance”,1
データ型:双
|单
GapTolerance
- - - - - -実行可能性ギャップの許容誤差0
(既定値) |非負のスカラーSMOまたはISDAにより取得された実行可能性ギャップの許容誤差。“GapTolerance”
と非負のスカラーで構成されるコンマ区切りのペアとして指定します。
GapTolerance
が0
の場合,最適化収束の確認には,実行可能性ギャップの許容誤差を使用しません。
例:依照“GapTolerance”,1
データ型:双
|单
IterationLimit
- - - - - -数値最適化反復の最大回数1 e6
(既定値) |正の整数数値最適化反復の最大回数。“IterationLimit”
と正の整数値で構成されるコンマ区切りのペアとして指定します。
最適化ルーチンが正常に収束したかどうかに関係なく,学習済みのモデルが返されます。Mdl。C在vergenceInfo
に収束情報が格納されます。
例:“IterationLimit”,1 e8
データ型:双
|单
KKTTolerance
- - - - - -カルーシュ・キューン・タッカー相補性条件の違反許容誤差马(カルーシュ・キューン・タッカー)相補性条件の違反許容誤差。“KKTTolerance”
と非負のスカラーで構成されるコンマ区切りのペアとして指定します。
KKTTolerance
が0
の場合,最適化収束の確認に実行可能性の马相補性条件の違反許容誤差は使用されません。
既定値は,以下のとおりです。
ソルバーがSMOの場合(たとえば,“规划求解”、“SMO的
を設定した場合なはど)0
ソルバーがISDAの場合(たとえば,“规划求解”、“ISDA的
を設定した場合なはど)1 e - 3
例:依照“KKTTolerance”,1
データ型:双
|单
ShrinkagePeriod
- - - - - -アクティブセットの縮小間の反復数0
(既定値) |非負の整数アクティブセットの縮小間の反復回数。“ShrinkagePeriod”
と非負の整数から構成されるコンマ区切りのペアとして指定します。
“ShrinkagePeriod”,0
を設定すると,アクティブセットは縮小されません。
例:“ShrinkagePeriod”,1000年
データ型:双
|单
OptimizeHyperparameters
- - - - - -最適化するパラメーター“没有”
(既定値) |“汽车”
|“所有”
|使用可能パラメーター名の字符串配列または细胞配列|optimizableVariable
オブジェクトのベクトル最適化するパラメーター。“OptimizeHyperparameters”
と次のいずれかの値から構成されるコンマ区切りのペアとして指定します。
“没有”
——最適化を行いません。
“汽车”
- - - - - -{“BoxConstraint”、“KernelScale”}
を使用します。
“所有”
——すべての使用可能パラメーターを最適化します。
使用可能パラメーター名の字符串配列または细胞配列。
optimizableVariable
オブジェクトのベクトル。通常はhyperparameters
の出力です。
最適化では,パラメーターを変化させることにより,fitcsvm
の交差検証損失(誤差)を最小化しようとします。交差検証損失の詳細については,分類損失を参照してください。交差検証のタイプおよびその他の最適化の側面を制御するには,名前と値のペアの引数HyperparameterOptimizationOptions
を使用します。
メモ
“OptimizeHyperparameters”
の値は,他の名前と値のペアの引数を使用して設定した値より優先されます。たとえば,“OptimizeHyperparameters”
を“汽车”
に設定すると,“汽车”
の値が適用されます。
fitcsvm
では,以下のパラメーターを使用できます。
BoxConstraint
- - - - - -fitcsvm
は,既定では範囲(1 e - 3, 1 e3)
の対数スケールで,正の値を探索します。
KernelScale
- - - - - -fitcsvm
は,既定では範囲(1 e - 3, 1 e3)
の対数スケールで,正の値を探索します。
KernelFunction
- - - - - -fitcsvm
は,“高斯”
、“线性”
および多项式的
で探索します。
PolynomialOrder
- - - - - -fitcsvm
は,範囲(2、4)
の整数値を探索します。
标准化
- - - - - -fitcsvm
は,“真正的”
と“假”
で探索します。
既定以外のパラメーターを設定するには,既定以外の値が含まれているoptimizableVariable
オブジェクトのベクトルを渡します。以下に例を示します。
负载fisheririsparams = hyperparameters (“fitcsvm”量,物种);参数(1)。范围=(1的军医,1 e6);
OptimizeHyperparameters
の値として参数个数
を渡します。
既定では,コマンドラインに反復表示が表示され,最適化のハイパーパラメーターの個数に従ってプロットが表示されます。最適化とプロットにおける目的関数は,回帰の場合はLog(1 +交叉验证损失),分類の場合は誤分類率です。反復表示を制御するには,名前と値のペアの引数“HyperparameterOptimizationOptions”
の详细的
フィールドを設定します。プロットを制御するには,名前と値のペアの引数“HyperparameterOptimizationOptions”
のShowPlots
フィールドを設定します。
たとえば,支持向量机分類器の最適化を参照してください。
例:“汽车”
HyperparameterOptimizationOptions
- - - - - -最適化のオプション最適化のオプション。“HyperparameterOptimizationOptions”
と構造体から構成されるコンマ区切りのペアとして指定します。この引数を指定すると,名前と値のペアの引数OptimizeHyperparameters
の効果が変化します。この構造体のフィールドは,すべてオプションです。
フィールド名 | 値 | 既定の設定 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
オブジェクト関数のランタイムによって最適化が異なるので,名前に |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
目的関数評価の最大的数。 | “bayesopt” または“randomsearch” の場合は30. 、“gridsearch” の場合はグリッド全体 |
MaxTime |
制限時間。正の実数を指定します。制限時間の単位は, |
正 |
NumGridDivisions |
“gridsearch” における各次元の値の個数。値は、各次元の値の個数を表す正の整数のベクトル、またはすべての次元に適用されるスカラーが可能です。カテゴリカル変数の場合、このフィールドは無視されます。 |
10 |
ShowPlots |
プロットを表示するかどうかを示す論理値。真正的 の場合,最良の目的関数の値が反復回数に対してプロットされます。1つまたは2つの最適化パラメーターがあり,优化器 が“bayesopt” である場合,ShowPlots はパラメーターに対する目的関数のモデルのプロットも行います。 |
真正的 |
SaveIntermediateResults |
优化器 が“bayesopt” である場合に結果を保存するかどうかを示す論理値。真正的 の場合,“BayesoptResults” という名前のワークスペース変数が反復ごとに上書きされます。この変数はBayesianOptimization オブジェクトです。 |
假 |
详细的 |
コマンドラインへの表示。
詳細については, |
1 |
UseParallel |
ベイズ最適化を並列実行するかどうかを示す論理値。並列実行には并行计算工具箱™が必要です。並列でのタイミングに再現性がないため,並列ベイズ最適化で再現性のある結果が生成されるとは限りません。詳細については,並列ベイズ最適化を参照してください。 | 假 |
重新分区 |
反復ごとに交差検証を再分割するかどうかを示す論理値。 分割ノイズが考慮されるので,通常は |
假 |
以下の3つのフィールド名は1つだけ使用できます。 | ||
CVPartition |
cvpartition によって作成されるcvpartition オブジェクト。 |
交差検証フィールドが指定されていない場合“Kfold”,5 |
坚持 |
ホールドアウトの比率を表す範囲(0,1) のスカラー。 |
|
Kfold |
1より大きい整数。 |
例:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
データ型:结构体
Mdl
——学習済みのSVM分類モデルClassificationSVM
モデルオブジェクト|ClassificationPartitionedModel
交差検証済みモデルオブジェクト学習済みのSVM分類モデル。ClassificationSVM
モデルオブジェクトまたはClassificationPartitionedModel
交差検証済みモデルオブジェクトとして返されます。
以下の各名前と値のペアの引数のいずれかを設定する場合,Mdl
はClassificationPartitionedModel
交差検証分類器となります。KFold
、坚持
、Leaveout
、CrossVal
またはCVPartition
。それ以外の場合,Mdl
はClassificationSVM
分類器です。
Mdl
のプロパティを参照するには,ドット表記を使用します。たとえば,コマンドウィンドウにMdl。α
と入力すると,学習させたラグランジュ乗数が表示されます。
fitcsvm
は1クラスまたは2クラスの学習アプリケーションの場合にSVM分類器に学習をさせます。クラスが3つ以上あるデータを使用してSVM分類器を学習させるには,fitcecoc
を使用します。
fitcsvm
は,低~中次元のデータセットをサポートします。高次元データセットの場合は,代わりにfitclinear
を使用してください。
ボックス制約は,マージンに違反している観測値に課せられる最大ペナルティを制御するパラメーターであり,過適合の防止(正則化)に役立ちます。
ボックス制約の値を大きくすると,支持向量机分類器が割り当てるサポートベクターは少なくなります。ただし,ボックス制約の値を大きくすると,学習時間が長くなる場合があります。
n個のベクトルの組{x1. . xn;xj∊Rp}のグラム行列とは,n行n列の行列で,要素(j, k)はG (xj, xk) = <ϕ(xj),ϕ(xk) >(カーネル関数ϕを使用して変換された予測子の内積)として定義されます。
非線形SVMの場合,予測子データXの行を使用してグラム行列が形成されます。双対形式化によりX内の観測値の内積が,形成されるグラム行列の対応する要素に置き換えられます(“カーネルトリック”と呼ばれます)。この結果,分離超平面を求めるために,変換された予測子空間で非線形SVMが作用します。
马相補性条件は,最適な非線形計画法の解決に必要な最適化制約です。
SVMでは,すべてのj = 1,……nについてKKT 相補性条件は次のようになります。
ここで, であり,ϕはカーネル関数(グラム行列を参照),ξjはスラック変数です。クラスが完全に可分な場合、すべての j = 1,...,n に対して ξj= 0となります。
1クラス学習(教師なしSVM)は,(元の予測子空間ではない)高次元予測子空間の原点からデータを分離することを目的としており,外れ値の検出に使用されるアルゴリズムです。
このアルゴリズムはバイナリ分類のSVMのアルゴリズムと類似しています。目的は, に関して次の双対式を最小化することです。
これには,すべてのj = 1,……nについて と次の式を満たすという条件があります。
G (xj, xk)の値は,グラム行列の要素(j, k)です。
νの値が小さいとサポートベクターが少なくなるので,判定境界は起伏が少なく柔軟性が低いものとなります。νの値が大きいとサポートベクターが多くなるので,判定境界は起伏が多く柔軟性が高いものとなります。νの最適値は,データの複雑さを取り込めるだけの大きさがあり,過学習が発生しない程度に小さい値です。また0 <ν≤1です。
詳細は,[5]を参照してください。
サポートベクターは,α1,…,αnの厳密に正の推定値に対応する観測値です。
特定の学習セットに対して生成されるサポートベクターが少ないSVM分類器の方が推奨されます。
SVMバイナリ分類アルゴリズムでは,データを2つのクラスに分離する最適超平面が検索されます。クラスが可分な場合,最適超平面は周囲の“マージン”(観測値がない領域)を最大化します。これにより,陽性のクラスと陰性のクラスの境界が作成されます。クラスが不可分な場合でも目的は同じですが、クラスの境界の誤った側にあるすべての観測のマージンの長さに対し、アルゴリズムによりペナルティが課されます。
線形SVMスコア関数は次のようになります。
ここで
xは観測値です(X
の行に対応します)。
ベクトルβには超平面に直交するベクトルを定義する係数(Mdl。β
に対応)が含まれています。可分データの場合,最適なマージンの長さは
です。
bは(Mdl。偏见
に対応する)バイアス項です。
特定の係数に対するf (x)の根により超平面が定義されます。特定の超平面について,f (z)は点zから超平面までの距離です。
このアルゴリズムでは,陽性(y = 1)のクラスと陰性(y = 1)のクラスを分離したままマージンの最大長を求めます。
可分クラスの場合,目的はβおよびbに関して を最小化することです。これには,すべてのj = 1, . .nについてyjf (xj)≥1という条件があります。これが可分クラスの"主"問題の定式化です。
不可分クラスの場合,このアルゴリズムではスラック変数(ξj)を使用して,クラスのマージン境界を超える観測値の目的関数にペナルティを課します。クラスのマージン境界を超えない観測値ではξj= 0であり,そうでない場合はξj≥0です。
目的は,β,bおよびξjに関して を最小化することです。これには,すべてのj = 1, . .nおよび正のスカラーボックス制約Cについて および という条件があります。これは不可分クラスの主問題の定式化です。
このアルゴリズムでは,ラグランジュ乗数法を使用して目的関数を最適化します。これにより(Mdl。α
に対応する)n個の係数α1,…,αnが導入されます。線形SVMの双対形式化は次のようになります。
可分クラスの場合,α1,…,αnに関して次の式を最小化します。
これには,すべてのj = 1,……nについて ,αj≥0という条件とカルーシュ・キューン・タッカー(马)相補性条件が適用されます。
不可分クラスの場合,目的関数は可分クラスの場合と同じですが,すべてのj = 1, . .nについて という条件が加わります。
生成されるスコア関数は次のようになります。
はバイアスの推定値, はベクトル のj番目の推定値です(j = 1,…,n)。このように記述すると,主問題を定式化した結果,スコア関数はβの推定値の影響を受けなくなります。
SVMアルゴリズムでは, を使用して新しい観測値zを分類します。
場合によっては,非線形境界によってクラスが分離されます。“非線形SVM”は変換済み予測子空間で,最適な分離超平面を検索します。
非線形SVMの双対問題は,α1,…,αnに関して次のように定式化されます。
これには,すべてのj = 1, . .nについて , という条件と马相補性条件が適用されます。G (xk, xj)はグラム行列の要素です。生成されるスコア関数は次のようになります。
詳細は,サポートベクターマシンについて、[1]および[3]を参照してください。
データセットが大規模でない限り,常に予測子を標準化してください(标准化
を参照してください)。標準化を行うと,予測子を測定するスケールの影響を受けなくなります。
名前と値のペアの引数KFold
を使用して交差検証を行うことをお勧めします。この交差検証の結果により,支持向量机分類器の一般化の精度がわかります。
1クラス学習では,以下のようになります。
支持向量机分類器では,サポートベクターの密度が低い方が望ましい状態です。サポートベクターの数を少なくするには,BoxConstraint
を大きい値に設定します。この場合,学習時間が長くなります。
学習時間を最適にするには,使用しているコンピューターで許容されるメモリの制限値までCacheSize
を大きくします。
サポートベクターの個数が学習セット内の観測値数よりはるかに少ないと考えられる場合,名前と値のペアの引数“ShrinkagePeriod”
を使用してアクティブセットを縮小すると,収束を大幅に高速化することができます。“ShrinkagePeriod”,1000年
を指定することをお勧めします。
判定境界から離れている重複する観測値は,収束に影響を与えません。しかし,重複する観測値が判定境界の近くに少しでもあると,収束が大幅に遅くなる可能性があります。収束を高速化するには,次の場合に“RemoveDuplicates”,真的
を指定します。
多数の重複する観測値がデータセットに含まれている。
少数の重複する観測値が判定境界の近くにあると考えられる。
学習時に元のデータセットを維持するため,fitcsvm
は別々のデータセット,つまり元のデータセットおよび重複する観測値を除外したデータセットを一時的に格納しなければなりません。このため,重複がほとんど含まれていないデータセットの場合に真正的
を指定すると,fitcsvm
は元のデータの場合の2倍に近いメモリを消費します。
モデルに学習をさせた後で,新しいデータについてラベルを予測するC / c++コードを生成できます。C / c++コードの生成にはMATLAB编码器™が必要です。詳細については、コード生成の紹介を参照してください。
SVMバイナリ分類アルゴリズムの数学的定式化については,バイナリ分類のサポートベクターマシンとサポートベクターマシンについてを参照してください。
南
、<定义>
,空の文字ベクトル(''
),空の字符串(""
),および< >失踪
値は,欠損値を示します。fitcsvm
は,欠損応答に対応するデータ行全体を削除します。fitcsvm
は,重みの合計を計算するときに(以下の項目を参照),欠損している予測子が1つ以上ある観測値に対応する重みを無視します。これにより,平衡なクラスの問題で不平衡な事前確率が発生する可能性があります。したがって,観測値のボックス制約がBoxConstraint
に等しくならない可能性があります。
fitcsvm
は,重みまたは事前確率がゼロの観測値を削除します。
2クラス学習でコスト行列
(成本
を参照)を指定した場合,
で表されているペナルティを組み込むことにより,クラスの事前確率p (之前
を参照)がpcに更新されます。
具体的には,fitcsvm
は以下のステップを完了します。
を計算します。
更新された事前確率の合計が1になるようにpc*を正規化します。
Kはクラスの個数です。
コスト行列を既定値にリセットします。
事前確率がゼロのクラスに対応する観測値を学習データから削除します。
2クラス学習の場合,fitcsvm
は合計が1になるようにすべての観測値の重み(权重
を参照)を正規化します。その後,観測値が属しているクラスの更新後の事前確率に重みの合計が等しくなるように,正規化された重みを再度正規化します。つまり,クラスkの観測値jについて,重みの合計は次のようになります。
ここで,wjは観測値jの正規化された重み,pc kはクラスkの更新された事前確率(前の項目を参照)です。
2クラス学習の場合,fitcsvm
は学習データの各観測値にボックス制約を割り当てます。観測値jのボックス制約の式は,次のようになります。
ここでnは学習標本のサイズ,C0は初期のボックス制約(名前と値のペアの引数“BoxConstraint”
を参照),
は観測値jの重みの合計(前の項目を参照)です。
“标准化”,真的
と訛れと値のペアの引数“成本”
、“之前”
または“重量”
を設定した場合,fitcsvm
は対応する加重平均および加重標準偏差を使用して予測子を標準化します。つまり,fitcsvm
は以下を使用して予測子j (xj)を標準化します。
xjkは,予測子j(列)の観測値k(行)です。
p
は学習データで予期される外れ値の比率であり,OutlierFraction, p
を設定したと仮定します。
1クラス学習では,バイアス項の学習により,学習データの観測値のうち100p
%が負のスコアをもつようになります。
2クラス学習では“ロバスト学習”が行われます。この方式では,最適化アルゴリズムが収束すると,観測値のうち100p
%の削除が試行されます。削除された観測値は,勾配の大きいものに対応します。
予測子データにカテゴリカル変数が含まれている場合,一般にこれらの変数について完全なダミーエンコードが使用されます。各カテゴリカル変数の各レベルについて,1つずつダミー変数が作成されます。
PredictorNames
プロパティには,元の予測子変数名のそれぞれについて1つずつ要素が格納されます。たとえば,3.つの予測子があり、そのうちの 1 つは 3 つのレベルがあるカテゴリカル変数であるとします。この場合、PredictorNames
は元の予測子変数名が含まれている1行3列の文字ベクトルの细胞配列になります。
ExpandedPredictorNames
プロパティには,ダミー変数を含む予測子変数のそれぞれについて1つずつ要素が格納されます。たとえば,3.つの予測子があり、そのうちの 1 つは 3 つのレベルがあるカテゴリカル変数であるとします。この場合、ExpandedPredictorNames
は予測子変数および新しいダミー変数の名前が含まれている1行5列の文字ベクトルの细胞配列になります。
同様に,β
プロパティには,ダミー変数を含む各予測子について1つずつベータ係数が格納されます。
金宝appSupportVectors
プロパティには,ダミー変数を含むサポートベクターの予測子の値が格納されます。たとえば,m 個のサポート ベクターと 3 つの予測子があり、そのうちの 1 つは 3 つのレベルがあるカテゴリカル変数であるとします。この場合、金宝appSupportVectors
はn行5列の行列になります。
X
プロパティには,はじめに入力されたときの状態で学習データが格納され,ダミー変数は含まれません。入力がテーブルの場合,X
には予測子として使用した列のみが格納されます。
テーブルで予測子を指定した場合,いずれかの変数に順序付きのカテゴリが含まれていると,これらの変数について順序付きエンコードが使用されます。
k個の順序付きレベルが変数に含まれている場合,k - 1個のダミー変数が作成されます。j番目のダミー変数は、j までのレベルについては1、j + 1からkまでのレベルについては+1になります。
ExpandedPredictorNames
プロパティに格納されるダミー変数の名前は1番目のレベルを示し,値は+1になります。レベル2、3、……kの名前を含むk - 1個の追加予測子名がダミー変数について格納されます。
どのソルバーもL1ソフトマージン最小化を実装します。
1クラス学習の場合,次の条件を満たすラグランジュ乗数α1,…,αnが推定されます。
克里斯汀尼尼,N。c。肖-泰勒。支持向量机和其他基于核的学习方法简介。金宝app英国剑桥:剑桥大学出版社,2000年。
[2]球迷,R.-E。,林志信。陈,C.-J。林。使用二阶信息进行训练支持向量机的工作集选择金宝app机器学习研究杂志,2005年第6卷,1889-1918页。
Hastie, T., R. Tibshirani, J. Friedman。统计学习的要素,第二版。纽约:施普林格,2008年。
凯克曼V., T. -M。和M. Vogt。从大数据集训练核机的迭代单数据算法:理论与性能金宝app支持向量机:理论与应用。王力波主编,255-274。柏林:斯普林格出版社,2005年版。
Scholkopf, B., J. C. Platt, J. C. shaw - taylor, A. J. Smola, R. C. Williamson。"估算高维分布的支持度"金宝app神经第一版。,Vol. 13, Number 7, 2001, pp. 1443–1471.
[6] Scholkopf, B.和A. Smola。核学习:支持向量机,正则化,优化和超越,自适应金宝app计算和机器学习。麻省理工学院出版社,2002年。
ハイパーパラメーターの最適化を並列実行するには,この関数を呼び出すときに名前と値の引数“HyperparameterOptimizationOptions”、结构(UseParallel,真的)
を指定します。
並列的なハイパーパラメーターの最適化の詳細については,並列ベイズ最適化を参照してください。
並列計算の全般的な情報については,自動並列サポートを使用したMATLAB関数の実行(并行计算工具箱)を参照してください。
使用上の注意事項および制限事項:
“KernelFunction”
オプションではカスタムカーネルを指定しないでください。
“规划求解”
オプションはSMO的
のみに設定できます。
“OutlierFraction”
オプションはサポートされていません。
“α”
オプションでは,実行可能な開始点を指定しなければなりません。
“OptimizeHyperparameters”
オプションはサポートされていません。
1クラス分類はサポートされていません。ラベルには2つの異なるクラスが含まれていなければなりません。
詳細は,GPUでのMATLAB関数の実行(并行计算工具箱)を参照してください。
ClassificationSVM
|CompactClassificationSVM
|ClassificationPartitionedModel
|预测
|fitSVMPosterior
|rng
|quadprog
(优化工具箱)|fitcecoc
|fitclinear
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してください。WebブラウザーはMATLABコマンドをサポートしていません。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。