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: [300×1 double]
LabelScores: [300×3 double]
ClassNames: [1 2 3]
ResponseName: 'Y'
CategoricalPredictors: []
Learner: [1×1 classreg.learning.classif.CompactClassificationECOC]
Properties, Methods
新しいデータの観測値をランダムに 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 個です。
入力引数
半教師あり自己学習分類器。fitsemiself によって返される SemiSupervisedSelfTrainingModel オブジェクトとして指定します。
分類対象の予測子データ。数値行列または table を指定します。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
出力引数
予測クラス ラベル。categorical 配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として返されます。label のデータ型は当てはめられたクラス ラベル Mdl.FittedLabels と同じで、その長さは X の行数と等しくなります。
予測クラス スコア。数値行列として返されます。score のサイズは m 行 K 列です。m は X の観測値 (行) の数、K は Mdl.ClassNames のクラスの数です。
score(m,k) はクラス k に属する X の観測値 m の尤度です。高いスコア値は尤度が高いことを示します。スコア値の範囲は、基となる分類器 Mdl.Learner によって異なります。
バージョン履歴
R2020b で導入
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)