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.293 12.541 6.8807 5.9554e-12 x1_setosa -1.0621 3.5795 -0.29673 0.76667 x2_setosa 23.851 3.1238 7.6352 2.2556e-14 x3_setosa -27.266 3.5009 -7.7883 6.7894e-15 x4_setosa -59.671 7.0214 -8.4985 1.921e-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 = 7x1 cell
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'versicolor'}
{'versicolor'}
speciespredict
の予測を speciestest
のカテゴリ名と比較します。
speciestest
speciestest = 7x1 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
です。
入力引数
mdl
— 多項回帰モデル オブジェクト
MultinomialRegression
モデル オブジェクト
多項回帰モデル オブジェクト。関数 fitmnr
で作成される MultinomialRegression
モデル オブジェクトとして指定します。
XNew
— 新しい予測子の入力値
テーブル | n 行 p 列の行列
新しい予測子の入力値。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")
Alpha
— 確率推定の有意水準
0.05
(既定値) | (0,1) の範囲のスカラー値
確率推定の有意水準。範囲 (0,1) のスカラー値として指定します。信頼区間の信頼水準は 100(1 − α)% です。Alpha
の既定値は 0.05
で、推定値の 95% 信頼区間を返します。
例: Alpha=0.01
データ型: single
| double
ProbabilityType
— 確率推定のタイプ
"category"
(既定値) | "cumulative"
| "conditional"
probs
で返す確率推定のタイプ。次のオプションのいずれかとして指定します。
オプション | 説明 |
---|---|
"category" (既定の設定) | 各応答カテゴリについての個別の確率を計算します。 |
"cumulative" | 各応答カテゴリについての累積確率を計算します。 |
"conditional" | 各応答カテゴリについての条件付き確率を計算します。 |
例: ProbabilityType="conditional"
データ型: char
| string
出力引数
Ypred
— 予測応答カテゴリ
categorical 配列 | 文字配列 | logical ベクトル | 数値ベクトル | 文字ベクトルの cell 配列
予測応答カテゴリ。categorical 配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として返されます。Ypred
のデータ型は mdl.ClassNames
と同じです。
probs
— 確率推定
数値行列
応答カテゴリの確率推定。数値行列として返されます。probs
の各列は、mdl.ClassNames
の同じインデックスのエントリに対応します。
upper
— 信頼区間の上限
数値行列
probs
の確率推定についての信頼区間の上限。数値行列として返されます。
lower
— 信頼区間の下限
数値行列
probs
の確率推定についての信頼区間の下限。数値行列として返されます。
代替機能
バージョン履歴
R2023a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)