-2

我有 2 个变量 pat 和 target.Pat 变量由 2 行和 500 列组成。目标变量 1*500。pat 变量包含 500 个模式,编码为 2D 特征向量 x = [x1 x2]T 。第二个变量(目标)是一个包含 500 个标签的向量,将模式分配给两个类 w0 或 w1 之一

我想在matlab中使用贝叶斯分类规则。像x1|w0,x1|w1和x2|w0,x2|w1。x1 和 x2 与 pat 变量相关 w0 和 w1 与目标变量相关。我想用 hist 命令显示 x1|w0, x1|w1 和 x2|w0, x2|w1。如何在 matlab 中使用直方图显示贝叶斯规则?是否有可能将直方图标准化为从 0 到 1 的范围?

4

1 回答 1

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')
于 2013-04-30T03:48:44.687 回答