predict
説明
例
ラベル付けされたデータとラベル付けされていないデータで学習させたモデルを使用した新しいデータの分類
ラベル付けされたデータとラベル付けされていないデータの両方を使用して、SemiSupervisedSelfTrainingModel
オブジェクトに学習させます。学習済みのモデルを使用して新しいデータにラベルを付けます。
ラベル付けされたデータの観測値をランダムに 15 個生成し、その観測値が 5 個ずつ 3 つのクラスに属するようにします。
rng('default') % For reproducibility labeledX = [randn(5,2)*0.25 + ones(5,2); randn(5,2)*0.25 - ones(5,2); randn(5,2)*0.5]; Y = [ones(5,1); ones(5,1)*2; ones(5,1)*3];
ラベル付けされていないデータの観測値を追加でランダムに 300 個生成し、各クラスに 100 個ずつ属するようにします。
unlabeledX = [randn(100,2)*0.25 + ones(100,2); randn(100,2)*0.25 - ones(100,2); randn(100,2)*0.5];
半教師あり自己学習法を使用して、ラベル付けされていないデータにラベルを当てはめます。関数 fitsemiself
は SemiSupervisedSelfTrainingModel
オブジェクトを返します。このオブジェクトの FittedLabels
プロパティにはラベル付けされていないデータに当てはめられたラベルが、LabelScores
プロパティには関連するラベル スコアが含まれます。
Mdl = fitsemiself(labeledX,Y,unlabeledX)
Mdl = SemiSupervisedSelfTrainingModel with properties: FittedLabels: [300x1 double] LabelScores: [300x3 double] ClassNames: [1 2 3] ResponseName: 'Y' CategoricalPredictors: [] Learner: [1x1 classreg.learning.classif.CompactClassificationECOC]
新しいデータの観測値をランダムに 150 個生成し、各クラスに 50 個ずつ属するようにします。検証のために、新しいデータの真のラベルを追跡します。
newX = [randn(50,2)*0.25 + ones(50,2); randn(50,2)*0.25 - ones(50,2); randn(50,2)*0.5]; trueLabels = [ones(50,1); ones(50,1)*2; ones(50,1)*3];
SemiSupervisedSelfTrainingModel
オブジェクトの関数 predict
を使用して、新しいデータのラベルを予測します。混同行列を使用して、真のラベルを予測ラベルと比較します。
predictedLabels = predict(Mdl,newX); confusionchart(trueLabels,predictedLabels)
newX
内の 150 個の観測値のうち、誤りのラベルが付けられた観測値はわずか 8 個です。
入力引数
Mdl
— 半教師あり自己学習分類器
SemiSupervisedSelfTrainingModel
オブジェクト
半教師あり自己学習分類器。fitsemiself
によって返される SemiSupervisedSelfTrainingModel
オブジェクトとして指定します。
X
— 分類対象の予測子データ
数値行列 | テーブル
分類対象の予測子データ。数値行列またはテーブルを指定します。X
の各行は 1 つの観測値に対応し、各列は 1 つの変数に対応します。
行列データ (fitsemiself
の呼び出しにおける X
と UnlabeledX
) を使用して Mdl
に学習させる場合、X
を数値行列として指定します。
X
の列に含まれている変数の順序は、Mdl
に学習させた予測子変数の順序と同じでなければなりません。インデックスが
Mdl.CategoricalPredictors
と一致するX
の予測子は、カテゴリカル予測子として扱われます。
表形式データ (fitsemiself
の呼び出しにおける Tbl
と UnlabeledTbl
) を使用して Mdl
に学習させる場合、X
をテーブルとして指定します。
X
内のすべての予測子変数は変数名およびデータ型が、Mdl
に学習させた (Mdl.PredictorNames
に格納されている) 変数と同じでなければなりません。ただし、X
の列の順序がTbl
の列の順序に対応する必要はありません。また、Tbl
とX
に追加の変数 (応答変数など) を含めることができますが、predict
はこれらを無視します。predict
は、文字ベクトルの cell 配列ではない cell 配列や複数列の変数をサポートしません。
データ型: single
| double
| table
出力引数
label
— 予測クラス ラベル
categorical 配列 | 文字配列 | logical ベクトル | 数値ベクトル | 文字ベクトルの cell 配列
予測クラス ラベル。categorical 配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として返されます。label
のデータ型は当てはめられたクラス ラベル Mdl.FittedLabels
と同じで、その長さは X
の行数と等しくなります。
score
— 予測クラス スコア
数値行列
予測クラス スコア。数値行列として返されます。score
のサイズは m 行 K 列です。m は X
の観測値 (行) の数、K は Mdl.ClassNames
のクラスの数です。
score(m,k)
はクラス k
に属する X
の観測値 m
の尤度です。高いスコア値は尤度が高いことを示します。スコア値の範囲は、基となる分類器 Mdl.Learner
によって異なります。
バージョン履歴
R2020b で導入
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)