predict
構文
説明
は、予測子データ Ypred
= predict(mdl
,XNew
)XNew
と MultinomialRegression
モデル オブジェクト mdl
についての予測されたクラス ラベルを返します。
[___] = predict(___,
では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、Name=Value
)probs
で確率推定を返す確率のタイプを指定できます。
例
標本データ セット fisheriris
を読み込みます。
load fisheriris
列ベクトル species
には、3 種類のアヤメの種 (setosa、versicolor、virginica) が格納されています。行列 meas
には、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) が格納されています。
関数cvpartition
を使用して、種類と測定値のデータを学習データとテスト データに分割します。関数training
を使用して、学習データの行のインデックスを取得します。
n = length(species);
partition = cvpartition(n,'Holdout',0.05);
idx_train = training(partition);
学習データの行のインデックスを使用して学習データを作成し、測定値の行列と種類のラベルのベクトルを作成します。
meastrain = meas(idx_train,:); speciestrain = species(idx_train,:);
学習データを使用して多項回帰モデルを当てはめます。
mdl = fitmnr(meastrain,speciestrain)
mdl = Multinomial regression with nominal responses Value SE tStat pValue _______ ______ ________ __________ (Intercept_setosa) 86.305 12.541 6.8817 5.9158e-12 x1_setosa -1.0728 3.5795 -0.29971 0.7644 x2_setosa 23.846 3.1238 7.6336 2.2835e-14 x3_setosa -27.289 3.5009 -7.795 6.4409e-15 x4_setosa -59.58 7.0214 -8.4855 2.1472e-17 (Intercept_versicolor) 42.637 5.2214 8.1659 3.1906e-16 x1_versicolor 2.4652 1.1263 2.1887 0.028619 x2_versicolor 6.6808 1.474 4.5325 5.829e-06 x3_versicolor -9.4292 1.2946 -7.2837 3.248e-13 x4_versicolor -18.286 2.0833 -8.7775 1.671e-18 143 observations, 276 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 302.0378, p-value = 1.5168e-60
mdl
は、ノミナル多項回帰モデルをデータに当てはめた結果を含む多項回帰モデル オブジェクトです。meas
の各予測子の係数統計量が table 出力に表示されます。既定では、virginica
が fitmnr
で基準カテゴリとして使用されます。
関数test
を使用して、テスト データの行のインデックスを取得します。テスト データの行のインデックスを使用してテスト データを作成し、測定値の行列と種類のラベルのベクトルを作成します。
idx_test = test(partition); meastest = meas(idx_test,:); speciestest = species(idx_test,:);
meastest
の測定値について、アヤメの種類を予測します。
speciespredict = predict(mdl,meastest)
speciespredict = 7×1 cell
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'versicolor'}
{'versicolor'}
speciespredict
の予測を speciestest
のカテゴリ名と比較します。
speciestest
speciestest = 7×1 cell
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'versicolor'}
{'versicolor'}
出力から、meastest
の測定値について、アヤメの種類がモデルで正確に予測されていることがわかります。
標本データ セット carbig
を読み込みます。
load carbig
変数 Acceleration
および Displacement
には、自動車の加速度と排気量のデータがそれぞれ格納されています。変数 Cylinders
には、それぞれの自動車のエンジンに搭載された気筒の数のデータが格納されています。
関数table
を使用して、自動車のデータの変数から table を作成します。
tbl = table(Acceleration,Displacement,Cylinders,VariableNames=["Acceleration","Displacement","Cylinders"])
tbl=406×3 table
Acceleration Displacement Cylinders
____________ ____________ _________
12 307 8
11.5 350 8
11 318 8
12 304 8
10.5 302 8
10 429 8
9 454 8
8.5 440 8
10 455 8
8.5 390 8
17.5 133 4
11.5 350 8
11 351 8
10.5 383 8
11 360 8
10 383 8
⋮
Cylinders
のデータには固有の順序があります。Acceleration
と Displacement
を予測子変数、Cylinders
を応答として使用して、順序多項回帰モデルを当てはめます。
mdl = fitmnr(tbl,"Cylinders",ModelType="ordinal");
mdl
は、順序多項回帰モデルをデータに当てはめた結果を含む多項回帰モデル オブジェクトです。
加速度が 16 でエンジン排気量が 80 の自動車について、応答カテゴリ、累積カテゴリ確率、および 99% 信頼区間の範囲を予測します。
[cylinderspredict,cumprobs,lower,upper] = predict(mdl,[16 80],Alpha=0.01,ProbabilityType="cumulative")
cylinderspredict = 4
cumprobs = 1×4
0.0792 1.0000 1.0000 1.0000
lower = 1×4
0.0787 1.0000 1.0000 1.0000
upper = 1×4
0.0798 1.0000 1.0000 1.0000
出力から、予測された応答カテゴリは 4 であることがわかります。ベクトル cumprobs
は Cylinders
の各カテゴリの累積確率を示します。この予測のベースとなっているカテゴリ確率を確認するには、カテゴリ確率を計算します。
[~,catprobs] = predict(mdl,[16 80])
catprobs = 1×5
0.0792 0.9208 0.0000 0.0000 0.0000
ベクトル catprobs
で最も確率が高いのは 2 番目の値です。Cylinders
のカテゴリの順序付きリストを表示します。
mdl.ClassNames
ans = 5×1
3
4
5
6
8
出力から、2 番目のカテゴリは 4 気筒の自動車に対応することがわかります。したがって、カテゴリ確率が最も高いカテゴリは 4
です。
入力引数
多項回帰モデル オブジェクト。関数 fitmnr
で作成される MultinomialRegression
モデル オブジェクトとして指定します。
新しい予測子の入力値。table または n 行 p 列の行列として指定します。ここで、n は予測する観測値の数、p は mdl
の当てはめに使用された予測子変数の数です。
XNew
が table の場合、mdl
の当てはめに使用されたすべての予測子の名前を含める必要があります。予測子の名前はmdl.PredictorNames
プロパティで確認できます。XNew
が行列の場合、推定された係数と同じ数の列を含める必要があります。推定された係数の数はmdl.NumPredictors
プロパティで確認できます。XNew
を行列として指定できるのは、mdl.PredictorNames
のすべての名前が数値予測子を参照する場合のみです。
例: predict(mdl,[6.2 3.4; 5.9 3.0])
は、2 つの予測子のモデル mdl
を点 p1 = [6.2 3.4]
および p2 = [5.9 3.0]
において評価します。
データ型: single
| double
| table
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: [
は、確率推定の信頼水準を 99%、そのタイプを累積と指定します。Ypred
,probs
,lower
,upper
] = predict(model,X,Alpha=0.01,ProbabilityType="cumulative")
確率推定の有意水準。範囲 (0,1) のスカラー値として指定します。信頼区間の信頼水準は 100(1 − α)% です。Alpha
の既定値は 0.05
で、推定値の 95% 信頼区間を返します。
例: Alpha=0.01
データ型: single
| double
probs
で返す確率推定のタイプ。次のオプションのいずれかとして指定します。
オプション | 説明 |
---|---|
"category" (既定の設定) | 各応答カテゴリについての個別の確率を計算します。 |
"cumulative" | 各応答カテゴリについての累積確率を計算します。 |
"conditional" | 各応答カテゴリについての条件付き確率を計算します。 |
例: ProbabilityType="conditional"
データ型: char
| string
出力引数
代替機能
バージョン履歴
R2023a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)