Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

gencfeatures

分類用の自動特徴量エンジニアリングの実行

R2021a 以降

    説明

    関数 gencfeatures では、特徴量エンジニアリング プロセスを機械学習ワークフローのコンテキストで自動化できます。表形式の学習データを分類器に渡す前に、gencfeatures を使用してデータ内の予測子から新しい特徴量を作成できます。返されたデータを使用して分類器に学習させます。

    gencfeatures を使用すると、datetimeduration やさまざまな int 型など、ほとんどの分類器の学習関数でサポートされないデータ型の変数から特徴量を生成できます。結果の特徴量には、これらの学習関数でサポートされるデータ型が含まれています。

    生成された特徴量について詳しく確認するには、返された FeatureTransformer オブジェクトの関数 describe を使用します。学習セットと同じ特徴変換をテスト セットに適用するには、FeatureTransformer オブジェクトの関数 transform を使用します。

    [Transformer,NewTbl] = gencfeatures(Tbl,ResponseVarName,q) は、自動特徴量エンジニアリングを使用して Tbl 内の予測子から q 個の特徴量を作成します。Tbl 内の変数 ResponseVarName は応答と見なされ、この変数からは新しい特徴量を作成しないものと仮定されます。gencfeatures は、FeatureTransformer オブジェクト (Transformer) と変換された特徴量が格納された新しい table (NewTbl) を返します。

    既定では、gencfeatures は、生成された特徴量を二項応答変数をもつ解釈可能な線形モデルの学習に使用するものと仮定します。マルチクラス応答変数があり、バギング アンサンブルの精度を向上させるために特徴量を生成する場合は、TargetLearner="bag" を指定します。

    [Transformer,NewTbl] = gencfeatures(Tbl,Y,q) は、ベクトル Y が応答変数であると仮定し、Tbl 内の変数から新しい特徴量を作成します。

    [Transformer,NewTbl] = gencfeatures(Tbl,formula,q) は、説明モデル formula を使用して、Tbl 内の応答変数と Tbl 内の新しい特徴量の作成に使用する予測子のサブセットを判別します。

    [Transformer,NewTbl] = gencfeatures(___,Name=Value) では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、想定される学習器のタイプ、新しい特徴量の選択方法、変換されたデータの標準化方法を変更できます。

    すべて折りたたむ

    自動特徴量エンジニアリングを使用して新しい特徴量を生成します。生成された特徴量を使用して線形分類器に学習させます。生成された特徴量と学習させたモデルの関係を解釈します。

    patients データ セットを読み込みます。変数のサブセットから table を作成します。テーブルの最初の数行を表示します。

    load patients
    Tbl = table(Age,Diastolic,Gender,Height,SelfAssessedHealthStatus, ...
        Systolic,Weight,Smoker);
    head(Tbl)
        Age    Diastolic      Gender      Height    SelfAssessedHealthStatus    Systolic    Weight    Smoker
        ___    _________    __________    ______    ________________________    ________    ______    ______
    
        38        93        {'Male'  }      71           {'Excellent'}            124        176      true  
        43        77        {'Male'  }      69           {'Fair'     }            109        163      false 
        38        83        {'Female'}      64           {'Good'     }            125        131      false 
        40        75        {'Female'}      67           {'Fair'     }            117        133      false 
        49        80        {'Female'}      64           {'Good'     }            122        119      false 
        46        70        {'Female'}      68           {'Good'     }            121        142      false 
        33        88        {'Female'}      64           {'Good'     }            130        142      true  
        40        82        {'Male'  }      68           {'Good'     }            115        180      false 
    

    Tbl の変数から新しい特徴量を 10 個生成します。応答として変数 Smoker を指定します。gencfeatures では、既定では新しい特徴量をバイナリ線形分類器の学習に使用すると見なします。

    rng("default") % For reproducibility
    [T,NewTbl] = gencfeatures(Tbl,"Smoker",10)
    T = 
      FeatureTransformer with properties:
    
                         Type: 'classification'
                TargetLearner: 'linear'
        NumEngineeredFeatures: 10
          NumOriginalFeatures: 0
             TotalNumFeatures: 10
    
    
    NewTbl=100×11 table
        zsc(Systolic.^2)    eb8(Diastolic)    q8(Systolic)    eb8(Systolic)    q8(Diastolic)    zsc(kmd9)    zsc(sin(Age))    zsc(sin(Weight))    zsc(Height-Systolic)    zsc(kmc1)    Smoker
        ________________    ______________    ____________    _____________    _____________    _________    _____________    ________________    ____________________    _________    ______
    
             0.15379              8                6                4                8           -1.7207        0.50027            0.19202               0.40418            0.76177    true  
             -1.9421              2                1                1                2          -0.22056        -1.1319            -0.4009                2.3431             1.1617    false 
             0.30311              4                6                5                5           0.57695        0.50027             -1.037              -0.78898            -1.4456    false 
            -0.85785              2                2                2                2           0.83391         1.1495             1.3039               0.85162          -0.010294    false 
            -0.14125              3                5                4                4             1.779        -1.3083           -0.42387              -0.34154            0.99368    false 
            -0.28697              1                4                3                1           0.67326         1.3761           -0.72529               0.40418             1.3755    false 
              1.0677              6                8                6                6          -0.42521         1.5181           -0.72529               -1.5347            -1.4456    true  
             -1.1361              4                2                2                5          -0.79995         1.1495            -1.0225                1.2991             1.1617    false 
             -1.1361              3                2                2                3          -0.80136        0.46343             1.0806                1.2991             -1.208    false 
            -0.71693              5                3                3                6           0.37961       -0.51304            0.16741               0.55333            -1.4456    false 
             -1.2734              2                1                1                2            1.2572         1.3025             1.0978                1.4482          -0.010294    false 
             -1.1361              1                2                2                1             1.001        -1.2545            -1.2194                1.0008          -0.010294    false 
             0.60534              1                6                5                1          -0.98493       -0.11998             -1.211             -0.043252             -1.208    false 
              1.0677              8                8                6                8          -0.27307         1.4659             1.2168              -0.34154            0.24706    true  
             -1.2734              3                1                1                4           0.93395        -1.3633           -0.17603                1.0008          -0.010294    false 
              1.0677              7                8                6                8          -0.91396          -1.04            -1.2109              -0.49069            0.24706    true  
          ⋮
    
    

    T は新しいデータの変換に使用できる FeatureTransformer オブジェクトで、newTbl には Tbl のデータから生成された新しい特徴量が格納されます。

    生成された特徴量について詳しく確認するには、FeatureTransformer オブジェクトのオブジェクト関数 describe を使用します。たとえば、生成された最初の 2 つの特徴量を調べます。

    describe(T,1:2)
                               Type        IsOriginal    InputVariables                            Transformations
                            ___________    __________    ______________    _______________________________________________________________
    
        zsc(Systolic.^2)    Numeric          false         Systolic        power(  ,2)
                                                                           Standardization with z-score (mean = 15119.54, std = 1667.5858)
        eb8(Diastolic)      Categorical      false         Diastolic       Equal-width binning (number of bins = 8)
    

    newTbl の 1 つ目の特徴量は数値変数で、変数 Systolic の値を二乗してから、その結果を z スコアに変換して作成されています。newTbl の 2 つ目の特徴量はカテゴリカル変数で、変数 Diastolic の値を 8 個の同じ幅のビンにビン化して作成されています。

    生成された特徴量を使用して、正則化なしで線形分類器を当てはめます。

    Mdl = fitclinear(NewTbl,"Smoker",Lambda=0);

    Mdl の学習に使用された予測子の係数をプロットします。fitclinear では、モデルを当てはめる前にカテゴリカル予測子が展開されることに注意してください。

    p = length(Mdl.Beta);
    [sortedCoefs,expandedIndex] = sort(Mdl.Beta,ComparisonMethod="abs");
    sortedExpandedPreds = Mdl.ExpandedPredictorNames(expandedIndex);
    bar(sortedCoefs,Horizontal="on")
    yticks(1:2:p)
    yticklabels(sortedExpandedPreds(1:2:end))
    xlabel("Coefficient")
    ylabel("Expanded Predictors")
    title("Coefficients for Expanded Predictors")

    Figure contains an axes object. The axes object with title Coefficients for Expanded Predictors, xlabel Coefficient, ylabel Expanded Predictors contains an object of type bar.

    係数の絶対値が大きい予測子を特定します。

    bigCoefs = abs(sortedCoefs) >= 4;
    flip(sortedExpandedPreds(bigCoefs))
    ans = 1x7 cell
        {'zsc(Systolic.^2)'}    {'eb8(Systolic) >= 5'}    {'eb8(Diastolic) >= 3'}    {'q8(Diastolic) >= 3'}    {'q8(Systolic) >= 6'}    {'q8(Diastolic) >= 6'}    {'zsc(Height-Systolic)'}
    
    

    部分依存プロットを使用して、絶対値に関して大きな係数をもつレベルのカテゴリカル特徴量を解析できます。たとえば、q8(Diastolic) >= 3q8(Diastolic) >= 6 のレベルで係数の絶対値が大きくなっている変数 q8(Diastolic) の部分依存プロットを調べます。これらの 2 つのレベルは、予測スコアの目立った変化に対応します。

    plotPartialDependence(Mdl,"q8(Diastolic)",Mdl.ClassNames,NewTbl);

    Figure contains an axes object. The axes object with title Partial Dependence Plot, xlabel q8(Diastolic), ylabel Scores contains 2 objects of type line. These objects represent 0, 1.

    解釈可能な線形モデルのモデルの精度を向上させるために新しい特徴量を生成します。元のデータで学習させた線形モデルのテスト セットの精度と変換された特徴量で学習させた線形モデルのテスト セットの精度を比較します。

    ionosphere データ セットを読み込みます。予測子の行列 X を table に変換します。

    load ionosphere
    tbl = array2table(X);

    データを学習セットとテスト セットに分割します。観測値の約 70% を学習データとして使用し、観測値の約 30% をテスト データとして使用します。データの分割には cvpartition を使用します。

    rng("default") % For reproducibility of the partition
    cvp = cvpartition(Y,Holdout=0.3);
    
    trainIdx = training(cvp);
    trainTbl = tbl(training(cvp),:);
    trainY = Y(trainIdx);
    
    testIdx = test(cvp);
    testTbl = tbl(testIdx,:);
    testY = Y(testIdx);

    学習データを使用して新しい特徴量を 45 個生成します。返された FeatureTransformer オブジェクトを調べます。

    [T,newTrainTbl] = gencfeatures(trainTbl,trainY,45);
    T
    T = 
      FeatureTransformer with properties:
    
                         Type: 'classification'
                TargetLearner: 'linear'
        NumEngineeredFeatures: 45
          NumOriginalFeatures: 0
             TotalNumFeatures: 45
    
    

    生成された特徴量はいずれも、trainTbl 内の元の特徴量ではなく、設計された特徴量です。

    オブジェクト T に格納された変換をテスト データに適用します。

    newTestTbl = transform(T,testTbl);

    元の特徴量で学習させた線形分類器と新しい特徴量で学習させた線形分類器のテスト セットの性能を比較します。

    データを変換せずに線形モデルを当てはめます。混同行列を使用してモデルのテスト セット性能を確認します。

    originalMdl = fitclinear(trainTbl,trainY);
    originalPredictedLabels = predict(originalMdl,testTbl);
    cm = confusionchart(testY,originalPredictedLabels);

    Figure contains an object of type ConfusionMatrixChart.

    confusionMatrix = cm.NormalizedValues;
    originalTestAccuracy = sum(diag(confusionMatrix))/sum(confusionMatrix,"all")
    originalTestAccuracy = 0.8952
    

    変換されたデータで線形モデルを当てはめます。混同行列を使用してモデルのテスト セット性能を確認します。

    newMdl = fitclinear(newTrainTbl,trainY);
    newPredictedLabels = predict(newMdl,newTestTbl);
    newcm = confusionchart(testY,newPredictedLabels);

    Figure contains an object of type ConfusionMatrixChart.

    newConfusionMatrix = newcm.NormalizedValues;
    newTestAccuracy = sum(diag(newConfusionMatrix))/sum(newConfusionMatrix,"all")
    newTestAccuracy = 0.9238
    

    変換後のデータで学習させた線形分類器の方が、元のデータで学習させた線形分類器よりも性能が高くなっていることがわかります。

    バギング アンサンブル分類器に学習させる前に、gencfeatures を使用して新しい特徴量を設計します。新しいデータの予測の前に同じ特徴変換を新しいデータ セットに適用します。設計した特徴量を使用するアンサンブルのテスト セット性能と元の特徴量を使用するアンサンブルのテスト セット性能を比較します。

    標本ファイル CreditRating_Historical.dat を table に読み取ります。予測子データは、法人顧客リストの財務比率と業種の情報で構成されます。応答変数は、格付機関が割り当てた格付けから構成されます。データ セットの最初の数行をプレビューします。

    creditrating = readtable("CreditRating_Historical.dat");
    head(creditrating)
         ID      WC_TA     RE_TA     EBIT_TA    MVE_BVTD    S_TA     Industry    Rating 
        _____    ______    ______    _______    ________    _____    ________    _______
    
        62394     0.013     0.104     0.036      0.447      0.142        3       {'BB' }
        48608     0.232     0.335     0.062      1.969      0.281        8       {'A'  }
        42444     0.311     0.367     0.074      1.935      0.366        1       {'A'  }
        48631     0.194     0.263     0.062      1.017      0.228        4       {'BBB'}
        43768     0.121     0.413     0.057      3.647      0.466       12       {'AAA'}
        39255    -0.117    -0.799      0.01      0.179      0.082        4       {'CCC'}
        62236     0.087     0.158     0.049      0.816      0.324        2       {'BBB'}
        39354     0.005     0.181     0.034      2.597      0.388        7       {'AA' }
    

    変数 ID の各値は一意の顧客 ID であるため (つまり、length(unique(creditrating.ID))creditrating に含まれる観測値の数に等しい)、変数 ID は予測子としては適切ではありません。変数 ID を table から削除し、変数 Industrycategorical 変数に変換します。

    creditrating = removevars(creditrating,"ID");
    creditrating.Industry = categorical(creditrating.Industry);

    応答変数 Rating を順序 categorical 変数に変換します。

    creditrating.Rating = categorical(creditrating.Rating, ...
        ["AAA","AA","A","BBB","BB","B","CCC"],Ordinal=true);

    データを学習セットとテスト セットに分割します。観測値の約 75% を学習データとして使用し、観測値の約 25% をテスト データとして使用します。データの分割には cvpartition を使用します。

    rng("default") % For reproducibility of the partition
    c = cvpartition(creditrating.Rating,Holdout=0.25);
    trainingIndices = training(c); % Indices for the training set
    testIndices = test(c); % Indices for the test set
    creditTrain = creditrating(trainingIndices,:);
    creditTest = creditrating(testIndices,:);

    学習データを使用して、バギング アンサンブルの当てはめに使用する新しい特徴量を 40 個生成します。既定では、40 個の特徴量の中にバギング アンサンブルで予測子として使用できる元の特徴量が含まれます。

    [T,newCreditTrain] = gencfeatures(creditTrain,"Rating",40, ...
        TargetLearner="bag");
    T
    T = 
      FeatureTransformer with properties:
    
                         Type: 'classification'
                TargetLearner: 'bag'
        NumEngineeredFeatures: 34
          NumOriginalFeatures: 6
             TotalNumFeatures: 40
    
    

    オブジェクト T に格納された変換をテスト データに適用して newCreditTest を作成します。

    newCreditTest = transform(T,creditTest);

    元の特徴量で学習させたバギング アンサンブルと新しい特徴量で学習させたバギング アンサンブルのテスト セットの性能を比較します。

    元の学習セット creditTrain を使用してバギング アンサンブルに学習させます。元のテスト セット creditTest でモデルの精度を計算します。混同行列を使用して結果を可視化します。

    originalMdl = fitcensemble(creditTrain,"Rating",Method="Bag");
    originalTestAccuracy = 1 - loss(originalMdl,creditTest, ...
        "Rating",LossFun="classiferror")
    originalTestAccuracy = 0.7542
    
    predictedTestLabels = predict(originalMdl,creditTest);
    confusionchart(creditTest.Rating,predictedTestLabels);

    Figure contains an object of type ConfusionMatrixChart.

    変換後の学習セット newCreditTrain を使用してバギング アンサンブルに学習させます。変換後のテスト セット newCreditTest でモデルの精度を計算します。混同行列を使用して結果を可視化します。

    newMdl = fitcensemble(newCreditTrain,"Rating",Method="Bag");
    newTestAccuracy = 1 - loss(newMdl,newCreditTest, ...
        "Rating",LossFun="classiferror")
    newTestAccuracy = 0.7511
    
    newPredictedTestLabels = predict(newMdl,newCreditTest);
    confusionchart(newCreditTest.Rating,newPredictedTestLabels)

    Figure contains an object of type ConfusionMatrixChart.

    変換後のデータで学習させたバギング アンサンブルの方が元のデータで学習させたバギング アンサンブルよりも性能が高くなっていることがわかります。

    ガウス カーネルを使用したバイナリ サポート ベクター マシン (SVM) 分類器に学習させる前に、新しい特徴量を設計して検査します。その後、分類器のテスト セット性能を評価します。

    レーダー信号のデータを含む ionosphere データ セットを読み込みます。応答変数 Y はレーダー反射の品質を示し、g は品質が良好であり、b は品質が不良であることを示します。予測子と応答のデータを 1 つの table 変数に結合します。

    load ionosphere
    Tbl = array2table(X);
    Tbl.Y = Y;
    head(Tbl)
        X1    X2      X3          X4          X5          X6          X7          X8         X9         X10         X11        X12         X13        X14         X15         X16         X17         X18         X19         X20         X21         X22         X23         X24         X25         X26         X27         X28         X29         X30         X31         X32         X33         X34         Y  
        __    __    _______    ________    ________    ________    ________    ________    _______    ________    _______    ________    _______    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    ________    _____
    
        1     0     0.99539    -0.05889     0.85243     0.02306     0.83398    -0.37708          1      0.0376    0.85243    -0.17755    0.59755    -0.44945     0.60536    -0.38223     0.84356    -0.38542     0.58212    -0.32192     0.56971    -0.29674     0.36946    -0.47357     0.56811    -0.51171     0.41078    -0.46168     0.21266     -0.3409     0.42267    -0.54487     0.18641      -0.453    {'g'}
        1     0           1    -0.18829     0.93035    -0.36156    -0.10868    -0.93597          1    -0.04549    0.50874    -0.67743    0.34432    -0.69707    -0.51685    -0.97515     0.05499    -0.62237     0.33109          -1    -0.13151      -0.453    -0.18056    -0.35734    -0.20332    -0.26569    -0.20468    -0.18401     -0.1904    -0.11593    -0.16626    -0.06288    -0.13738    -0.02447    {'b'}
        1     0           1    -0.03365           1     0.00485           1    -0.12062    0.88965     0.01198    0.73082     0.05346    0.85443     0.00827     0.54591     0.00299     0.83775    -0.13644     0.75535     -0.0854     0.70887    -0.27502     0.43385    -0.12062     0.57528     -0.4022     0.58984    -0.22145       0.431    -0.17365     0.60436     -0.2418     0.56045    -0.38238    {'g'}
        1     0           1    -0.45161           1           1     0.71216          -1          0           0          0           0          0           0          -1     0.14516     0.54094     -0.3933          -1    -0.54467    -0.69975           1           0           0           1     0.90695     0.51613           1           1    -0.20099     0.25682           1    -0.32382           1    {'b'}
        1     0           1    -0.02401      0.9414     0.06531     0.92106    -0.23255    0.77152    -0.16399    0.52798    -0.20275    0.56409    -0.00712     0.34395    -0.27457      0.5294     -0.2178     0.45107    -0.17813     0.05982    -0.35575     0.02309    -0.52879     0.03286    -0.65158      0.1329    -0.53206     0.02431    -0.62197    -0.05707    -0.59573    -0.04608    -0.65697    {'g'}
        1     0     0.02337    -0.00592    -0.09924    -0.11949    -0.00763    -0.11824    0.14706     0.06637    0.03786    -0.06302          0           0    -0.04572     -0.1554    -0.00343    -0.10196    -0.11575    -0.05414     0.01838     0.03669     0.01519     0.00888     0.03513    -0.01535     -0.0324     0.09223    -0.07859     0.00732           0           0    -0.00039     0.12011    {'b'}
        1     0     0.97588    -0.10602     0.94601      -0.208     0.92806     -0.2835    0.85996    -0.27342    0.79766    -0.47929    0.78225    -0.50764     0.74628    -0.61436     0.57945    -0.68086     0.37852    -0.73641     0.36324    -0.76562     0.31898    -0.79753     0.22792    -0.81634     0.13659     -0.8251     0.04606    -0.82395    -0.04262    -0.81318    -0.13832    -0.80975    {'g'}
        0     0           0           0           0           0           1          -1          0           0         -1          -1          0           0           0           0           1           1          -1          -1           0           0           0           0           1           1           1           1           0           0           1           1           0           0    {'b'}
    

    データを学習セットとテスト セットに分割します。観測値の約 75% を学習データとして使用し、観測値の約 25% をテスト データとして使用します。データの分割には cvpartition を使用します。

    rng("default") % For reproducibility of the partition
    c = cvpartition(Tbl.Y,Holdout=0.25);
    trainTbl = Tbl(training(c),:);
    testTbl = Tbl(test(c),:);

    学習データを使用して、ガウス カーネルを使用したバイナリ SVM 分類器の当てはめに使用する特徴量を 50 個生成します。既定では、50 個の特徴量の中に SVM 分類器で予測子として使用できる元の特徴量が含まれます。さらに、gencfeatures は、近傍成分分析 (NCA) を使用して、設計された特徴量のセットを最も重要な予測子に絞り込みます。NCA 特徴選択手法は、ターゲットの学習器が "gaussian-svm" の場合にのみ使用できます。

    [Transformer,newTrainTbl] = gencfeatures(trainTbl,"Y",50, ...
        TargetLearner="gaussian-svm")
    Transformer = 
      FeatureTransformer with properties:
    
                         Type: 'classification'
                TargetLearner: 'gaussian-svm'
        NumEngineeredFeatures: 17
          NumOriginalFeatures: 33
             TotalNumFeatures: 50
    
    
    newTrainTbl=264×51 table
        zsc(X1)    zsc(X3)      zsc(X4)     zsc(X5)    zsc(X6)     zsc(X7)     zsc(X8)     zsc(X9)     zsc(X10)    zsc(X11)     zsc(X12)     zsc(X13)     zsc(X14)      zsc(X15)    zsc(X16)    zsc(X17)    zsc(X18)    zsc(X19)    zsc(X20)     zsc(X21)    zsc(X22)     zsc(X23)     zsc(X24)    zsc(X25)    zsc(X26)    zsc(X27)     zsc(X28)    zsc(X29)    zsc(X30)    zsc(X31)     zsc(X32)     zsc(X33)    zsc(X34)     zsc(X1.*X29)    zsc(X10.*X21)    zsc(X10.*X33)    zsc(X4+X6)    zsc(X5+X6)    zsc(X8+X21)    zsc(X1-X7)    zsc(kmc2)    zsc(kmc6)    q13(X3)    q12(X5)    q15(X6)    q13(X7)    q15(X21)    q14(X27)    eb8(X5)    eb8(X7)      Y  
        _______    ________    _________    _______    ________    ________    ________    ________    ________    _________    _________    ________    ___________    ________    ________    ________    ________    ________    _________    ________    _________    _________    ________    ________    ________    _________    ________    ________    ________    ________    __________    ________    _________    ____________    _____________    _____________    __________    __________    ___________    __________    _________    _________    _______    _______    _______    _______    ________    ________    _______    _______    _____
    
        0.35062     0.71387     -0.24103    0.48341    -0.19017     0.58078     -1.0063     0.97782    -0.26974       0.6391     -0.67348     0.31834        -1.1367     0.38853    -0.98325     0.75294    -0.77965      0.3598     -0.57266     0.38845     -0.60939    -0.012451    -0.80961     0.28949    -0.84597      -0.2517    -0.72759    -0.28242    -0.63852    0.080034       -1.0708    -0.31129       -1.046      -0.26816          0.25043        -0.038585        -0.3418        0.2362       -0.42505      -0.33933       1.0418       1.0355       12         8          7          9           9           6           7          7       {'g'}
        0.35062     0.72301     -0.18451    0.77158    -0.22962     0.91433    -0.49033     0.75792    -0.32357      0.42329     -0.20389     0.73252        -0.1965     0.29679    -0.13823     0.74354    -0.27428     0.64142     -0.10244      0.6146     -0.56742      0.09598    -0.12919     0.30176    -0.62944     0.094562    -0.28922    0.096446    -0.30619        0.41      -0.47923      0.4091      -0.8911       0.14996            0.214        -0.039539        -0.3295       0.42742        0.21888      -0.65367       0.5226      0.75088       13         12         6          13          10          8           8          8       {'g'}
        0.35062     0.72301      -1.1204    0.77158      1.9267     0.33603     -2.2596     -1.0149    -0.34873     -0.87362     -0.31257    -0.64512       -0.21349     -2.0888     0.17363     0.26338    -0.79564     -2.2123      -1.0155     -1.6745       1.8964     -0.63461     0.10334      1.0283      1.9591    -0.047978      1.9396      1.0838    -0.36052    -0.22117        1.9446      -1.294       2.1421        1.2396          0.19008        -0.061281         0.6801        1.8984        -3.5052      -0.10868      -1.5842       -1.337       13         12         15         7           2           7           8          7       {'b'}
        0.35062     -1.2136     -0.12242     -1.375    -0.49905     -1.1101    -0.48554    -0.72188     -0.2093     -0.80643     -0.44067    -0.64512       -0.21349    -0.61619    -0.48568    -0.61727    -0.20429    -0.77473    -0.040295    -0.50751     0.034923     -0.60903     0.12046    -0.62226     0.13548      -1.1087     0.28317     -0.7878    0.053398    -0.68758    -0.0072697    -0.67106      0.21145       -0.8259          0.19351        -0.061365       -0.49849       -1.3813       -0.90111        1.2542      -1.5842       -1.337       3          1          2          2           6           2           4          4       {'b'}
        0.35062     0.67519     -0.34656    0.66615    -0.69083      0.7698    -0.81803     0.69875    -0.92315      0.54191      -1.2868     0.61614        -1.2563     0.60599     -1.4924     0.32568     -1.3793     0.02881      -1.3967    0.052918      -1.5154    -0.097458     -1.4342    -0.29246     -1.4483     -0.78193     -1.3907     -0.5715     -1.5984    -0.76498       -1.5945    -0.93671      -1.8288      -0.58719        -0.089744         0.061186        -0.8284      0.032979       -0.60879      -0.51746       1.0418       1.0355       12         10         1          11          7           4           8          8       {'g'}
        -2.8413     -1.2599     -0.10917    -1.1812    -0.24013     0.91433     -2.2596     -1.0149    -0.34873      -2.6482      -2.3453    -0.64512       -0.21349    -0.54564    -0.14479       1.006      2.0324     -2.2123      -1.9207    -0.53738    -0.035976     -0.63461     0.10334      1.0283      2.1431      0.88773      1.9396    -0.65143    0.038853      1.1285        1.9446    -0.67031    -0.052094       -0.6754          0.19008        -0.061281       -0.27913       -1.0579        -2.3662       -2.5471      -1.5842       -1.337       3          3          6          13          5           14          5          8       {'b'}
        0.35062     0.65074     -0.27034    0.77158     -0.5507     0.91433    -0.67645     0.97782     -1.1087      0.76913      -1.1982     0.87871        -1.0489     0.84926     -1.1622      0.9786    -0.71297     0.78777      -1.2452     0.68706      -1.2068      0.53806     -1.1348     0.77353     -1.1281     0.067353     -1.1572    -0.21008     -1.2312     0.13174       -1.4278    0.078797       -1.663      -0.18832         -0.57784         -0.51689       -0.65574       0.20838        0.14089      -0.65367       1.0418       1.0355       11         12         2          13          10          7           8          8       {'g'}
        0.35062     -1.2969     -0.29857    -1.1812    -0.24013     -1.0948    -0.24765    -0.78637    -0.91197       -1.684      -1.0885    -0.64512       -0.21349      -1.065     0.70198     -1.2124      0.3075     0.44948        0.507    -0.53738    -0.035976     -0.63461     0.10334    -0.93558     0.13961     -0.64684    0.073011    -0.65143    0.038853     -0.3862       0.46286    -0.82839      0.78311       -0.6754          0.19008        0.0099774       -0.42709       -1.0579       -0.73858        1.2397      -1.5842       -1.337       2          3          6          3           5           4           5          5       {'b'}
        0.35062     0.72301     0.039848    0.77158    -0.63857     0.91433    -0.79731     0.97782     -1.2544      0.90098      -1.1531     0.90648        -1.2791     0.85418     -1.4394     0.83179     -1.3466     0.54942      -1.3441     0.61066      -1.5108      0.42766     -1.4494     0.27335     -1.5965      -0.1331     -1.4636    0.047912     -1.6238    -0.12466       -1.7462    -0.22743      -2.0084      0.096399         -0.66792         -0.38227       -0.48436       0.14844      -0.033402      -0.65367       1.0418       1.0355       13         12         1          13          10          7           8          8       {'g'}
        0.35062     0.72301       -1.323    0.77158     -2.4069     0.91433     -2.2596     0.97782     0.41213      0.90098      -1.1484     0.96723         1.8407     0.99753     -2.3384       1.006    -0.59315      1.0392      -1.7935      1.0877       1.8964       1.0494      2.0312      1.0283    -0.64265      0.88773     -1.0301      1.0838     -1.9482      1.1285       -1.9591      1.2557      -2.2463        1.2396           1.2105           1.1115        -2.9765       -1.0579       -0.73858      -0.65367       1.0418       1.0355       13         12         1          13          15          14          8          8       {'b'}
        0.35062     0.72301     0.056082    0.77158    -0.16603     0.91433    -0.35958     0.97782    -0.16462      0.90098     0.086893     0.96723        0.20409     0.99753     0.13566       1.006     0.21703      1.0392      0.60585      1.0877      0.82892       1.0494     0.90821      1.0283     0.56194      0.88773     0.78535      1.0075      1.0054      1.1285       0.62693      1.2557      0.97284        1.1554            0.437          0.22251      -0.090217       0.47081        0.79852      -0.65367       0.5226      0.75088       13         12         8          13          15          14          8          8       {'g'}
        0.35062    -0.24996      -2.2139    0.77158     0.33858     -1.1655     -2.2596     0.97782     -2.4496    -0.098384      -2.3453    -0.64512       -0.21349     -2.0888    -0.89643     -1.2213    0.076204      1.0392      -1.9207    -0.53738    -0.035976     -0.63461     0.10334    -0.96039      1.9896     -0.27735     0.59845    -0.65143    0.038853      1.1285       0.44533    -0.67031    -0.052094       -0.6754          0.19008        -0.061281        -1.4561       0.81505        -2.3662        1.3064      -1.5842       -1.337       5          12         11         2           5           6           8          4       {'b'}
        0.35062     0.71598     0.035661    0.77158    -0.26691     0.87035     -0.1974     0.90034    -0.30016       0.8881     -0.15385     0.79508    -0.00095871     0.90821    -0.02921     0.82498     0.22838     0.81324      0.23893     0.78923      0.19262      0.77433     0.38176     0.70892     0.43102      0.49084     0.36373     0.72129     0.34444     0.71304       0.30366     0.69599      0.21153       0.83955          0.24325       -0.0081697       -0.18761       0.40198        0.63077      -0.61223       0.5226      0.75088       12         12         4          12          11          10          8          8       {'g'}
        0.35062    0.069941    -0.052561    0.11987    -0.13112    0.054366      0.1298    -0.84005     0.36726       0.2554    -0.065971     0.35614       0.079956     0.66786    0.095978      0.3326     0.37109    -0.35253       0.8869     0.33835      0.37612      0.23129     0.53951      0.1531     0.63492     -0.15329     0.56409     0.10222     0.54169    0.050904       0.49615      1.2557      0.67277       0.15634          0.70752           1.0423       -0.14691     0.0012868        0.44389       0.15675       0.5226      0.75088       6          6          8          6           8           6           7          6       {'g'}
        -2.8413     0.72301      -2.3483    -1.1812    -0.24013     -1.0948    -0.24765     0.97782      1.7521      0.90098      -2.3453      -1.804         1.8407    -0.54564    -0.14479     -2.2295      2.0324      1.0392       2.0554     -2.1625       1.8964       1.0494      1.1877      -2.393      2.1431      0.88773      1.9396      1.0838     -1.9482      1.1285        1.9446      1.2557       2.1421       -0.6754          -2.6274           3.1769        -2.0283       -1.0579        -2.3662      -0.65367      0.92994      0.89071       13         3          6          3           1           14          5          5       {'b'}
        -2.8413     0.72301         2.13    -1.1812    -0.24013     -1.0948    -0.24765     -3.0077     -2.4496     -0.87362     -0.31257    -0.64512       -0.21349     -2.0888     -2.3384     -2.2295     -2.0271     -2.2123       2.0554     -2.1625       1.8964     -0.63461     0.10334    -0.68235     0.16583      0.88773     -1.7099     -2.3866      2.0259     -2.5037        1.9446     -2.5963       2.1421       -0.6754           3.0075           3.1769           1.47       -1.0579        -2.3662      -0.65367      -1.5842       -1.337       13         3          6          3           1           14          5          5       {'b'}
          ⋮
    
    

    既定では、gencfeatures は、元の特徴量を newTrainTbl に含める前に標準化します。trainTbl 内の元の変数 X2 は、定数値 0 をもつため newTrainTbl に含まれません。

    unique(trainTbl.X2)
    ans = 0
    

    設計された最初の 3 つの特徴量を検査します。設計された特徴量は、Transformer オブジェクトにおいて、元の 33 個の特徴量の後に格納されることに注意してください。散布図とヒストグラムの行列を使用して、設計された特徴量を可視化します。

    featIndex = 34:36; 
    describe(Transformer,featIndex)
                          Type      IsOriginal    InputVariables                           Transformations
                         _______    __________    ______________    ______________________________________________________________
    
        zsc(X1.*X29)     Numeric      false          X1, X29        X1 .* X29
                                                                    Standardization with z-score (mean = 0.35269, std = 0.5222)
        zsc(X10.*X21)    Numeric      false          X10, X21       X10 .* X21
                                                                    Standardization with z-score (mean = -0.067464, std = 0.35493)
        zsc(X10.*X33)    Numeric      false          X10, X33       X10 .* X33
                                                                    Standardization with z-score (mean = 0.018924, std = 0.30881)
    
    gplotmatrix(newTrainTbl{:,featIndex},[],newTrainTbl.Y,[], ...
        [],[],[],"grpbars", ...
        newTrainTbl.Properties.VariableNames(featIndex))

    Figure contains 9 axes objects. Axes object 1 with xlabel zsc(X1.*X29), ylabel zsc(X10.*X33) contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 2 with xlabel zsc(X10.*X21) contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 3 with xlabel zsc(X10.*X33) contains 2 objects of type line. Axes object 4 with ylabel zsc(X10.*X21) contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 5 contains 2 objects of type line. Axes object 6 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 7 with ylabel zsc(X1.*X29) contains 2 objects of type line. Axes object 8 contains 2 objects of type line. One or more of the lines displays its values using only markers Axes object 9 contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent g, b.

    プロットは設計された特徴量について詳しく確認するのに役立ちます。以下に例を示します。

    • 左上のプロットは、特徴量 zsc(X1.*X29) のヒストグラムです。この特徴量は、元の特徴量 X1X29 の標準化された要素単位の積で構成されます。このヒストグラムから、良好なレーダー反射に対応する値 (青) の分布が不良なレーダー反射に対応する値 (赤) の分布と異なっていることがわかります。たとえば、不良なレーダー反射に対応する zsc(X1.*X29) の値の多くは –1 から –0.5 までの間にあります。

    • 2 行目の 1 列目にあるプロットは、zsc(X1.*X29) の値 (x 軸方向) を zsc(X8.*X14) の値 (y 軸方向) と比較する散布図です。この散布図から、良好なレーダー反射に対応する zsc(X8.*X14) の値 (青) のほとんどが –1 より大きく、不良なレーダー反射に対応する zsc(X8.*X14) の値 (赤) の多くが 1 より小さいことがわかります。このプロットに含まれる情報は 1 行目の 2 列目にあるプロットと同じですが、座標軸が入れ替わっていることに注意してください。

    オブジェクト Transformer に格納された変換をテスト データに適用して newTestTbl を作成します。

    newTestTbl = transform(Transformer,testTbl);

    変換後の学習セット newTrainTbl を使用して、ガウス カーネルを使用した SVM 分類器に学習させます。関数 fitcsvm でカーネル関数に対応する適切なスケール値を特定します。変換後のテスト セット newTestTbl でモデルの精度を計算します。混同行列を使用して結果を可視化します。

    Mdl = fitcsvm(newTrainTbl,"Y",KernelFunction="gaussian", ...
        KernelScale="auto");
    testAccuracy = 1 - loss(Mdl,newTestTbl,"Y", ...
        LossFun="classiferror")
    testAccuracy = 0.9189
    
    predictedTestLabels = predict(Mdl,newTestTbl);
    confusionchart(newTestTbl.Y,predictedTestLabels)

    Figure contains an object of type ConfusionMatrixChart.

    SVM モデルは、ほとんどの観測値を正しく分類しています。つまり、ほとんどの観測値について、SVM モデルで予測されるクラスが真のクラス ラベルに一致しています。

    特徴量を生成して線形分類器に学習させます。関数 crossval を使用して、モデルの交差検証分類誤差を計算します。

    ionosphere データ セットを読み込み、予測子データが含まれている table を作成します。

    load ionosphere
    Tbl = array2table(X);

    層化 5 分割交差検証用に分割を無作為に作成します。

    rng("default") % For reproducibility of the partition
    cvp = cvpartition(Y,KFold=5);

    Tbl 内の元の特徴量で学習させた線形モデルについて、交差検証の分類損失を計算します。

    CVMdl = fitclinear(Tbl,Y,CVPartition=cvp);
    cvloss = kfoldLoss(CVMdl)
    cvloss = 0.1339
    

    カスタム関数 myloss (この例の終わりに掲載) を作成します。この関数は、学習データから 20 個の特徴量を生成し、学習セットと同じ変換をテスト データに適用します。その後、線形分類器を学習データに当てはめ、テスト セットの損失を計算します。

    メモ: この例のライブ スクリプト ファイルを使用している場合、関数 myloss は既にファイルの終わりに含まれています。それ以外の場合は、この関数を .m ファイルの終わりに作成するか、MATLAB® パス上のファイルとして追加する必要があります。

    Tbl 内の予測子から生成された特徴量で学習させた線形モデルについて、交差検証の分類損失を計算します。

    newcvloss = mean(crossval(@myloss,Tbl,Y,Partition=cvp))
    newcvloss = 0.0714
    
    function testloss = myloss(TrainTbl,trainY,TestTbl,testY)
    [Transformer,NewTrainTbl] = gencfeatures(TrainTbl,trainY,20);
    NewTestTbl = transform(Transformer,TestTbl);
    Mdl = fitclinear(NewTrainTbl,trainY);
    testloss = loss(Mdl,NewTestTbl,testY, ...
        LossFun="classiferror");
    end

    入力引数

    すべて折りたたむ

    元の特徴量。table として指定します。Tbl の各行は 1 つの観測値に、各列は 1 つの予測子変数に対応します。オプションとして、Tbl に応答変数用の列を 1 つ追加できます。文字ベクトルの cell 配列ではない cell 配列と複数列の変数は使用できませんが、datetimeduration およびさまざまな int 予測子変数は使用できます。

    • Tbl に応答変数が含まれている場合に Tbl 内の他のすべての変数から新しい特徴量を作成するには、ResponseVarName を使用して応答変数を指定します。

    • Tbl に応答変数が含まれている場合に Tbl 内の他の変数の一部のみから新しい特徴量を作成するには、formula を使用して式を指定します。

    • Tbl に応答変数が含まれていない場合は、Y を使用して応答変数を指定します。応答変数の長さと Tbl の行数は等しくなければなりません。

    データ型: table

    応答変数の名前。Tbl 内の変数の名前で指定します。

    ResponseVarName には文字ベクトルまたは string スカラーを指定しなければなりません。たとえば、応答変数 YTbl.Y として格納されている場合、'Y' として指定します。それ以外の場合、Tbl の列はすべて予測子として扱われ、Y から新しい特徴量が作成されることがあります。

    データ型: char | string

    特徴量の個数。正の整数スカラーとして指定します。たとえば、q1.5*size(Tbl,2) のように設定すると、元の特徴量の個数の約 1.5 倍に設定できます。

    データ型: single | double

    行に観測値を含む応答変数。数値ベクトル、logical ベクトル、文字配列、string 配列、文字ベクトルの cell 配列、または categorical ベクトルを指定します。Y および Tbl は同じ行数である必要があります。

    データ型: single | double | logical | string | cell | categorical

    応答変数および予測子変数サブセットの説明モデル。"Y~X1+X2+X3" という形式の文字ベクトルまたは string スカラーを指定します。この式では、Y は応答変数を、X1X2 および X3 は予測子変数を表します。

    Tbl 内の予測子変数のサブセットのみから新しい特徴量を作成するには、式を使用します。式を指定した場合、formula に現れない Tbl 内の変数からは特徴量は作成されません。

    式の変数名は Tbl の変数名 (Tbl.Properties.VariableNames) であり、有効な MATLAB® 識別子でなければなりません。関数 isvarname を使用して Tbl の変数名を検証できます。変数名が有効でない場合、関数 matlab.lang.makeValidName を使用してそれらを変換できます。

    データ型: char | string

    名前と値の引数

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

    例: gencfeatures(Tbl,"Response",10,TargetLearner="bag",FeatureSelection="oob") は、想定される学習器のタイプをバギング アンサンブル分類器、特徴量の選択方法を out-of-bag 予測子の重要度の手法と指定します。

    想定される学習器のタイプ。"linear""bag"、または "gaussian-svm" として指定します。このタイプのモデルの学習に使用されることを想定し、それに応じて新しい特徴量が作成および選択されます。

    想定されるモデル
    "linear"ClassificationLinear — バイナリ分類のみに対応。このモデルは、関数 fitclinear を使用して作成できます。
    "bag"ClassificationBaggedEnsemble — バイナリ分類とマルチクラス分類に対応。このモデルは、関数 fitcensemble を使用して Method="Bag" を指定することで作成できます。
    "gaussian-svm"ClassificationSVM (ガウス カーネルを使用) — バイナリ分類のみに対応。このモデルは、関数 fitcsvm を使用して KernelFunction="gaussian" を指定することで作成できます。予測性能が高いモデルを作成するには、KernelScale="auto" を指定します。

    既定では、TargetLearner"linear" であり、二項応答変数のみがサポートされます。マルチクラス応答変数があり、新しい特徴量を生成する場合は、TargetLearner"bag" に設定しなければなりません。

    例: TargetLearner="bag"

    Tbl 内の元の特徴量を新しい table NewTbl に含める方法。次の表のいずれかの値として指定します。

    説明
    "auto"

    この値は以下と等価です。

    • TargetLearner"linear" である場合は "select"

    • TargetLearner"bag" または "gaussian-svm" である場合は "include"

    "include"

    元の特徴量のうち、ターゲットの学習器で予測子として使用できる特徴量が含められます。次の特徴量は除外されます。

    • datetime 変数や duration 変数などの未サポート

    • すべてが欠損値である変数を含む定数値

    • NaN または Inf の値を含む数値 (TargetLearner"linear" または "gaussian-svm" の場合)

    • 欠損値を含むカテゴリカル (TargetLearner"linear" または "gaussian-svm" の場合)

    • すべての値が一意であるカテゴリカル

    • CategoricalEncodingLimit 値より多くのカテゴリをもつカテゴリカル

    "select"元の特徴量のうち、ターゲットの学習器でサポートされ、指定された特徴選択方法 (FeatureSelectionMethod) で重要と見なされる特徴量が含められます。
    "omit"元の特徴量は省略されます。

    名前と値の引数 TransformedDataStandardization で指定される標準化方法が NewTbl に含まれる元の特徴量に適用されることに注意してください。

    例: IncludeInputVariables="include"

    新しい特徴量の選択方法。次の表のいずれかの値として指定します。各種の変換を使用して生成される多くの特徴量の中から、この方法を使用して NewTbl に含める重要な特徴量が選択されます。

    説明
    "auto"

    この値は以下と等価です。

    • TargetLearner"linear" である場合は "lasso"

    • TargetLearner"bag" である場合は "oob"

    • TargetLearner"gaussian-svm" である場合は "nca"

    "lasso"

    LASSO 正則化 — TargetLearner"linear" の場合に使用可能

    特徴選択を実行するために、Regularization"lasso" として指定した fitclinear を使用します。関数 fitclinear で、正則化強度 (Lambda) のベクトルを使用して、係数 (Beta) が非ゼロの要求された数の特徴量をもつ線形近似が求められます。それらの重要な特徴量が NewTbl に含められます。

    "oob"

    並べ替えによる out-of-bag 予測子の重要度の推定 — TargetLearner"bag" の場合に使用可能

    特徴選択を実行するために、木のバギング アンサンブルを当てはめ、関数 oobPermutedPredictorImportance を使用してアンサンブル内の特徴量をランク付けします。ランクが上位の要求された数の特徴量が NewTbl に含められます。

    "nca"

    近傍成分分析 (NCA) — TargetLearner"gaussian-svm" の場合に使用可能

    特徴選択を実行するために、fscnca を使用して FeatureSelectionNCAClassification オブジェクトを当てはめ、特徴量を平均の重み (FeatureWeights) で並べ替えます。重みが大きいほど、特徴量の重要度が高いことを示します。要求された数の重要な特徴量が NewTbl に含められます。

    fscnca を使用するために、関数 gencfeatures は事前にカテゴリカル予測子を数値変数に変換します。カテゴリカル変数に順序が設定されていないか順序が設定されているかに応じて、関数は 2 つの異なる方式を使用してダミー変数を作成します。順序付けのないカテゴリカル変数の場合、gencfeatures は、そのカテゴリカル変数の各レベルについて 1 つずつダミー変数を作成します。順序付けされたカテゴリカル変数の場合、gencfeatures は、カテゴリの数よりも 1 つ少ないダミー変数を作成します。詳細については、ダミー変数の自動作成を参照してください。

    "mrmr"

    Minimum Redundancy Maximum Relevance (MRMR) — TargetLearner"linear""bag"、または "gaussian-svm" の場合に使用可能

    特徴選択を実行するために、fscmrmr を使用して特徴量をランク付けします。ランクが上位の要求された数の特徴量が NewTbl に含められます。

    各種の特徴選択手法の詳細については、特徴選択の紹介を参照してください。

    例: FeatureSelection="mrmr"

    変換されたデータの標準化方法。次の表のいずれかの値として指定します。この標準化方法は、設計済みの特徴量および元の特徴量の両方に適用されます。

    説明
    "auto"

    この値は以下と等価です。

    • TargetLearner"linear" または "gaussian-svm" である場合は "zscore"

    • TargetLearner"bag" である場合は "none"

    "zscore"平均が 0、標準偏差が 1 になるようにセンタリングしてスケーリング
    "none"生データを使用
    "mad"中央値が 0、中央絶対偏差が 1 になるようにセンタリングしてスケーリング
    "range"データの範囲を [0,1] にスケーリング

    例: TransformedDataStandardization="range"

    カテゴリカル予測子で許容される最大カテゴリ数。非負の整数スカラーとして指定します。指定した数を超えるカテゴリがカテゴリカル予測子に含まれている場合、gencfeatures はその予測子からは新しい特徴量を作成せず、新しい table NewTbl から予測子を除外します。既定値は、TargetLearner"linear" または "gaussian-svm" の場合は 50TargetLearner"bag" の場合は Inf です。

    例: CategoricalEncodingLimit=20

    データ型: single | double

    出力引数

    すべて折りたたむ

    設計された特徴量の変換器。FeatureTransformer オブジェクトとして返されます。設計された特徴量について詳しく確認するには、Transformer のオブジェクト関数 describe を使用します。同じ特徴変換を新しいデータ セットに適用するには、Transformer のオブジェクト関数 transform を使用します。

    生成された特徴量。table として返されます。各行が観測値に対応し、各列が生成された特徴量に対応します。Tbl に応答変数が含まれている場合、NewTbl にも応答変数が含まれます。この table を使用して、TargetLearner のタイプの分類モデルに学習させます。

    NewTbl には、元の特徴量、設計された特徴量 (特徴選択方法によるランク付けに応じて)、応答変数の順に、生成された特徴量が格納されます。

    ヒント

    • 既定では、TargetLearner"linear" または "gaussian-svm" の場合、数値予測子からの新しい特徴量の生成に z スコアが使用されます (TransformedDataStandardization を参照)。変換された特徴量の標準化のタイプは変更できます。ただし、"none" は指定せず、いずれかの標準化の方法を使用することを強くお勧めします。線形モデルおよび SVM モデルの当てはめは、標準化されたデータで最も適切に機能します。

    • 予測性能が高い SVM モデルを作成するには、特徴量を生成する際に、fitcsvm の呼び出しで KernelScale"auto" として指定します。このように指定すると、SVM カーネル関数に対応する適切なスケール値が特定されます。

    バージョン履歴

    R2021a で導入

    すべて展開する