今天主要就是写了两个观察特征的画图函数,一个是用于观察一个变量的分布的,0高度红色十字是正例,1高度行蓝色十字是反例,第一个参数是特征值,第二个是正反例标签,两个都是n*1的列向量:
function plotFeature(Feature, label)
pos = find(label == 1);
neg = find(label == 0);
figure;
hold on;
X_low = min([min(Feature(pos)), min(Feature(neg))]);
X_high = max([max(Feature(pos)), max(Feature(neg))]);
X_mean = (X_low + X_high) ./ 2;
X_range = X_high - X_low;
X_lo = X_low - 0.1 .* X_range;
X_hi = X_high + 0.1 .* X_range;
if X_lo == X_hi
X_lo = X_lo - 1;
X_hi = X_hi + 1;
X_range = X_range + 2;
end
Y_lo = -1;
Y_hi = 2;
% debug
fprintf("[%d %d %d %d]\n\n", X_lo, X_hi, Y_lo, Y_hi);
axis([X_lo, X_hi, Y_lo, Y_hi]);
plot(Feature(pos), ones(size(Feature(pos))), "r+");
plot(Feature(neg), zeros(size(Feature(neg))), "b+");
end
另一个是用来画两个特征的分布的,第一个参数是两个特征,维度是n*2,每列为一个特征,出来之后横轴是第一个特征,纵轴是第二个特征列。第二个参数是正反例标签,维度是n*1。出来之后蓝色圆圈代表正例,红色叉叉代表反例:
function plotFeatures(Feature, label)
pos = find(label == 1);
neg = find(label == 0);
figure;
hold on;
plot(Feature(pos, 1), Feature(pos, 2), "bo");
plot(Feature(neg, 1), Feature(neg, 2), "rx");
hold off;
end
最后还写了个保存图像的函数,输入是两个参数,第一个参数是图片的名字,第二个参数是希望保留的格式,我只写了两个格式,一个是“png”标量图,一个是“pdf”矢量图:
nction savePlot(str, type)
if type == "png"
print(str, "-dpng");
elseif type == "pdf"
print(str, "-dpdf");
end
hold off;
end
浙公网安备 33010602011771号