Main Content

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

横梁

机械学习モデルの交差検证

    说明

    CVMdl= Crossval(MDL.的)は,学校済みモデル(MDL.)から,交差検证され(分析)机构学院モデル(CVMdl的)を返します。既定では、横梁は学習データに対して 10 分割交差検証を使用します。

    CVMdl= Crossval(MDL.名称,价值的)は,加加の交差オプションをします。名称と値のは,分别

    すべて折りたたむ

    ionosphereデータセットを読み込みます。このデータセットには、レーダー反射についての 34 個の予測子と、不良 ('b'的)または良好 ('g'的)という 351 個の二項反応が含まれています。

    加载ionosphereRNG(1);% For reproducibility

    サポートサポートマシン(SVM)分类器に习ますますせます。

    svmmodel = fitcsvm(x,y,'Standardize',真的,'ClassNames',{'b''g'});

    svmmodel.は学習させたClassificationSVM分類器です。'b'は阴性のクラス,'g'は阳性のです。

    10分分交差交差ををしてて交差検证しますますますますます。

    CVSVMMODEL = Crossval(SVMModel)
    cvsvmmodel = classificationededmodel crossvalidatedmodel:'svm'predictornames:{1x34 cell} racatectename:'y'numobservations:351 kfold:10分区:[1x1 cvpartition] classnames:{'b'g'} scoreTransform:'无'属性,方法

    cvsvmmodel.ClassificationPartitionedModel.交差検证分类器です。

    1. データを同じサイズの10个のセットににするににする。

    2. 9 個のセットに対して SVM 分類器に学習をさせる。

    3. 手顺1¼2をK.4.

    4. 各分子について泛について化含量を料含量する。

    cvsvmmodel.。Trained内の最初のモデルを表示します。

    FirstModel.= CVSVMModel.Trained{1}
    FirstModel.= CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' Alpha: [78x1 double] Bias: -0.2209 KernelParameters: [1x1 struct] Mu: [1x34 double] Sigma: [1x34 double] SupportVectors: [78x34 double] SupportVectorLabels: [78x1 double] Properties, Methods

    FirstModel.は10个の学习さた分享器のうち最初のものです。これこれCompactClassificationSVM分類器です。

    cvsvmmodel.kfoldloss.に渡すと、汎化誤差を推定できます。

    既定交差検证のホールドアウト标标で指定し标既定ではははではははででででででで横梁は10分类交差検证交差,交差検证しますたとえば,交差検证し他たとえば,异なる検证はます。

    ionosphereデータセットを読み込みます。このデータセットには、レーダー反射についての 34 個の予測子と、不良 ('b'的)または良好 ('g'的)という 351 個の二項反応が含まれています。

    加载ionosphere

    安定させるため、最初の 2 つの予測子を削除します。

    x = x(:,3:结束);RNG('default');% For reproducibility

    予测子Xとクラス ラベルyを使用して,単纯ベイズ分類器に学習させます。クラス名を指定することが推奨されます。'b'は陰性クラスで、'g'は阳性クラスです。fitcnbは,各予测子が条件付き正规分布に従うと仮定しています。

    MDL.= fitcnb(X,Y,'ClassNames',{'b''g'});

    MDL.は学習させたClassificationNaiveBayes分類器です。

    30%のホールドアウト标本を指定て,分析器を交差検证ます。

    cvmdl = crossval(mdl,'Holdout',0.3)
    CVMdl = ClassificationPartitionedModel CrossValidatedModel: 'NaiveBayes' PredictorNames: {1x32 cell} ResponseName: 'Y' NumObservations: 351 KFold: 1 Partition: [1x1 cvpartition] ClassNames: {'b' 'g'} ScoreTransform: 'none' Properties, Methods

    CVMdlは,交差検证した単纯ベイズベイズ分类器ClassificationPartitionedModel.です。

    70% のデータを使用して学習させた分類器のプロパティを表示します。

    TrainedModel= CVMdl.Trained{1}
    TrainedModel= CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell} Properties, Methods

    TrainedModelCompactClassificaiveBayes.分類器です。

    CVMdlkfoldloss.に渡して、汎化誤差を推定します。

    kfoldloss(cvmdl)
    ans = 0.2095

    標本外の誤分類誤差は約 21% です。

    上位5つの重要な予测を选択て,泛化误差を减らし。

    idx = fscmrmr(x,y);xnew = x(:,idx(1:5));

    新しい予測子向けに単純ベイズ分類器の学習を行います。

    mdlnew = fitcnb(xnew,y,'ClassNames',{'b''g'});

    30% のホールドアウト標本を指定して新しい分類器を交差検証し、汎化誤差を推定します。

    cvmdlnew = crossval(mdlnew,'Holdout',0.3); kfoldLoss(CVMdlnew)
    ANS = 0.1429.

    标本外のの分误差が约21%から约14%まで减ってい。

    Fitrgam.を使用して回帰一般化加法モデル (GAM) に学習させ、横梁とホールドアウトオプションを使して検证済みgamを作物成し。そのその,kfold.Predictをを用し,学校分享到値に対して习をせたモデルして,検证分享観测の応答をしますの応答予测します。

    patientsデータセットを読み込みます。

    加载patients

    予测子阶数(年龄DiastolicSmoker重量性别SelfAssessedHealthStatus的)と応答変数 (收缩系统的)を格納する table を作成します。

    tbl = table(Age,Diastolic,Smoker,Weight,Gender,SelfAssessedHealthStatus,Systolic);

    予测子の線形項が格納されている GAM に学習させます。

    mdl = fitrgam(tbl,'Systolic');

    MDL.RegressionGAMモデルオブジェクトです。

    30%のホールドアウト标本を指定し,モデルを交差検证ます。

    RNG('default'的)% For reproducibilitycvmdl = crossval(mdl,'Holdout',0.3)
    cvmdl = regrestionpartitionedgam crossvalidatedmodel:'gam'predictornames:{1x6 cell} categoricalpricictors:[3 5 6] racatectename:'systolic'numobservations:100 kfold:1分区:[1x1 cvpartition] numtrainedperfold:[1x1 struct] randeretransform:'无'属性, 方法

    关节有关部横梁は那ホールドアウト オプションを使用してRegressionPartitionedGAMモデルオブジェクトのCVMdlを作成します。交差検証時は、以下の手順が実行されます。

    1. 30%のデータをを作品为ににしてデータとしてし,残りのデータを使使しモデルに习をせるせる。

    2. コンパクトな学習済みモデルを交差検証済みモデル オブジェクトRegressionPartitionedGAMTrainedプロパティに格式する。

    名称とと値引数'横穿''CVPartition''KFold'または'忽略'を使用すると,别の交差検证の设定を选択できます。

    kfold.Predictを使用して検証分割観測値の応答を予測します。この関数は、学習分割観測値に対して学習をさせたモデルを使用して、検証分割観測値の応答を予測します。この関数では、学習分割観測値にが割り当てられます。

    YFIT = KFOLDPREDICT(CVMDL);

    検证分类観测値のインデックスをして,観测値のインデックス,観测観测された応答値予测された応答値ががさた応答いるいるいるいるいるいるいるいるいるいるいるいるいるいるいるいるいるますtの最初ののます表示し

    idx = find(〜isnan(yfit));t =表(IDX,TBL.SYSTOLIC(IDX),YFIT(IDX),。。。'VariableNames',{'Obseraction Index''Observed Value''预测值'}); head(t)
    ans=8×3表Obseraction Index Observed Value Predicted Value _________________ ______________ _______________ 1 124 130.22 6 121 124.38 7 130 125.26 12 115 117.05 20 125 121.82 22 123 116.99 23 114 107 24 128 122.52

    検証分割観測値の回帰誤差 (平均二乗誤差) を計算します。

    L = kfoldLoss(CVMdl)
    L = 43.8715.

    入力引数

    すべて折りたたむ

    机械学习モデル。完全な回帰または分類モデル オブジェクトとして指定します。サポートされるモデルは次の表に記載されています。

    回帰モデルオブジェクト

    モデル 完全な回帰モデルオブジェクト
    一般化加法モデル RegressionGAM
    ニューラルネットワークモデル 回归翁网络网络

    分享モデルオブジェクト

    モデル 完全な分享モデルオブジェクト
    一般化加法モデル ClassificationGAM
    k最近最近傍 ClassificationKNN
    単纯ベイズモデル ClassificationNaiveBayes
    ニューラルネットワークモデル ClassIciationneuralNetwork.
    1クラスおよびバイナリ分享用ののベクター ClassificationSVM

    名前と値のペアの引数

    オプションの名称,价值Nameは数名で,价值は対応する値です。Nameは引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueNのように,复数の名前とのペアののを,任意の顺番で指定でき。

    例:Crossval(MDL,'Kfold',3)は,3つの分类を検证済みモデルモデル使使ことを指定します。

    交差交差分享。CVPartition.で作成したCVPartition.分享到。分享到は,交差検证のと,学校セットおよびタイプとのをを指定ます。

    指定できる名前と値の引数は、'CVPartition''Holdout''KFold''忽略'の4 つのうちのいずれかのみです。

    例:CVP = CVPartition(500,'Kfold',5)をを使し,500个の観测値に対する5分割交差検证について作用为なこの场をます。'CVPartition',cvpを使用して交差検証済みモデルを指定できます。

    (0,1)の范囲のますとしてししますしししししししししししししししししししし'扑腾',pを指定した場合、以下の手順が実行されます。

    1. p*100% のデータを無作為に選択して検証データとして確保し、残りのデータを使用してモデルに学習をさせる。

    2. コンパクトな学习済みモデルをを交差検证済みモデルのTrainedプロパティに格式する。MDL.に対応するコンパクトなオブジェクトがない場合、Trainedにには完全なオブジェクトオブジェクト格式される

    指定できる名前と値の引数は、'CVPartition''Holdout''KFold''忽略'の4 つのうちのいずれかのみです。

    例:'Holdout',0.1

    データ型:double|single

    交差検证済みモデルで使用する分割の数0.1より大きい正の整数値として指定します。'kfold',kを指定した場合、以下の手順が実行されます。

    1. データを無作為にK.個のセットに分割する。

    2. 各セットについて,そのセットを検定データとしてし,他のK.– 1个のセットを使使しモデルに习习ささせる。

    3. K.个のコンパクトな学习习済みを,交差検证済みモデルのTrainedプロパティに含まれているK.行 1 列の cell ベクトルに格納する。MDL.に対応するコンパクトなオブジェクトがない場合、Trainedにには完全なオブジェクトオブジェクト格式される

    指定できる名前と値の引数は、'CVPartition''Holdout''KFold''忽略'の4 つのうちのいずれかのみです。

    例:'kfold',5

    データ型:single|double

    休假 - of-nothmonの交差検证フラグ。'在'または'off'として指定します。'忽略'那'在'を指定したた合,n个の観测値(nは,モデルのnumobservations.プロパティで指定される、欠損観測値を除外した観測値の個数) のそれぞれについて以下の手順が実行されます。

    1. いずれかの観測値を検証データとして確保し、他の n - 1 個の観測値を使用してモデルに学習をさせる。

    2. n个のコンパクトなな习済みモデルを,交差検证済みモデルのTrainedプロパティに含まれている n 行 1 列の cell ベクトルに格納する。MDL.に対応するコンパクトなオブジェクトがない場合、Trainedにには完全なオブジェクトオブジェクト格式される

    指定できる名前と値の引数は、'CVPartition''Holdout''KFold''忽略'の4 つのうちのいずれかのみです。

    例:'忽略'那'在'

    出力数

    すべて折りたたむ

    交差検証された機械学習モデル。入力モデルMDL.に応じて、次の表の交差検証された (分割された) モデル オブジェクトのいずれかとして返されます。

    回帰モデルオブジェクト

    モデル 回帰モデル(MDL.的) 交差検证済みモデル(Compactmdl.的)
    一般化加法モデル RegressionGAM RegressionPartitionedGAM
    ニューラルネットワークモデル 回归翁网络网络 回归排球菌的模型

    分享モデルオブジェクト

    モデル 分類モデル (MDL.的) 交差検证済みモデル(Compactmdl.的)
    一般化加法モデル ClassificationGAM Classificationededgam.
    k最近最近傍 ClassificationKNN ClassificationPartitionedModel.
    単纯ベイズモデル ClassificationNaiveBayes ClassificationPartitionedModel.
    ニューラルネットワークモデル ClassIciationneuralNetwork. ClassificationPartitionedModel.
    1クラスおよびバイナリ分享用ののベクター ClassificationSVM ClassificationPartitionedModel.

    ヒント

    • 关节有关部kfold.kfold.Predictkfoldloss.などのCVMdlのプロパティを使使使用し,交差検证データに対するMDL.の予测性能を评価します。

    • 名称とと値引数'KFold'または'Holdout'を使用して,层化区分で分割した分类器を返します。

    • cvp =CVPartition.(n,'KFold',k)を使用して,CVPartition.オブジェクトcvpを作成します。名前と値の引数'CVPartition',cvpを使用して,非層化区分で分割した分類器を返します。

    代替機能

    モデルに学习をさせせから交差検证を代わり代わりに,关关节を使使用'横穿''CVPartition''Holdout''忽略''KFold'のいずれかを指定することにより、交差検証済みモデルを直接作成できます。

    拡張機能

    R2012Aで导入