5

MATLAB で個別のセルの行をどのように分類しますか?

現時点では、次のように単一の列を分類できます。

training = [1;0;-1;-2;4;0;1]; % this is the sample data.
target_class = ['posi';'zero';'negi';'negi';'posi';'zero';'posi'];
% target_class are the different target classes for the training data; here 'positive' and 'negetive' are the two classes for the given training data

% Training and Testing the classifier (between positive and negative)
test = 10*randn(25, 1); % this is for testing. I am generating random numbers.
class  = classify(test,training, target_class, 'diaglinear')  % This command classifies the test data depening on the given training data using a Naive Bayes classifier

上記とは異なり、分類したい:

        A   B   C
Row A | 1 | 1 | 1 = a house

Row B | 1 | 2 | 1 = a garden

MATLAB サイトのコード例を次に示します。

nb = NaiveBayes.fit(training, class)
nb = NaiveBayes.fit(..., 'param1', val1, 'param2', val2, ...)

param1val1などが何であるかわかりません。誰でも助けることができますか?

4

1 に答える 1

3

これは、ドキュメントから改変された例です。

%# load data, and shuffle instances order
load fisheriris
ord = randperm(size(meas,1));
meas = meas(ord,:);
species = species(ord);

%# lets split into training/testing
training = meas(1:100,:);         %# 100 rows, each 4 features
testing = meas(101:150,:);        %# 50 rows
train_class = species(1:100);     %# three possible classes
test_class = species(101:150);

%# train model
nb = NaiveBayes.fit(training, train_class);

%# prediction
y = nb.predict(testing);

%# confusion matrix
confusionmat(test_class,y)

この場合の出力は、2 つの誤分類されたインスタンスでした。

ans =
    15     0     1
     0    20     0
     1     0    13

これで、分類子のあらゆる種類のオプション (言及したパラメーター/値) をカスタマイズできます。それぞれの説明については、ドキュメントを参照してください。

たとえば、ガウス分布またはノンパラメトリック カーネル分布から選択して特徴をモデル化できます。また、クラスの事前確率を指定することもできます。これは、トレーニング インスタンスから推定するか、等しい確率を想定する必要があります。

于 2012-07-01T09:41:08.403 に答える