2013-04-29 2 views
-2

У меня есть переменная pat и target.Pat, состоящая из 2 строк и 500 столбцов. Переменная 1 * 500. переменная pat содержит 500 шаблонов, кодированных как векторные векторы объектов x = [x1 x2] T. Вторая переменная (цель) представляет собой вектор 500 меток, назначающих шаблоны одному из двух классов: w0 или w1Классификация Байеса в гистограмме Matlab?

Я хочу использовать правило классификации байесов в matlab. Подобно тому, что x1 | w0, x1 | w1 и x2 | w0, x2 | w1. x1 и x2, связанные с переменной pat w0 и w1, относящиеся к целевой переменной. Я хочу показать x1 | w0, x1 | w1 и x2 | w0, x2 | w1 с помощью команды hist. Как я могу показать правило байтов в matlab с гистограммой? Есть ли возможная нормализация гистограмм в диапазоне от 0 до 1?

+0

не обескураживаемы путями голосования. Не могли бы вы более четко объяснить, что вы пробовали? – Memming

+0

Я не уверен, как вычислить, что вы хотите показать, но как только у вас есть значения, возможно, «bar» поможет вам отобразить их? Кроме того, можете ли вы просто делить на максимальный элемент для нормализации? – nhowe

ответ

0

Что-то вроде этого?

clear all; close all; clc; 
format compact 

pat=rand(2,500); %500 samples with 2 features each 
target=rand(1,500)>0.5; %w0 and w1 assignments 

edges=[0:0.1:1]; 
pat1_w0=histc(pat(1,target==0),edges); %x1|w0 
pat1_w0=pat1_w0/sum(pat1_w0); %normalize 

pat2_w0=histc(pat(2,target==0),edges); %x2|w0 
pat2_w0=pat2_w0/sum(pat1_w0); %normalize 

pat1_w1=histc(pat(1,target==1),edges); %x1|w1 
pat1_w1=pat1_w1/sum(pat1_w0); %normalize 

pat2_w1=histc(pat(2,target==1),edges); %x2|w1 
pat2_w1=pat2_w1/sum(pat1_w0); %normalize 

figure 
hold on 
bar(pat1_w0,'r') %insert whatever variable here to graph 
bar(pat2_w0,'g') 
bar(pat1_w1,'b') 
bar(pat2_w1,'y')