2014.2.15 - 贷款预测第四天

Posted on 2014-02-18 17:07  SnakeHunt2012  阅读(157)  评论(0)    收藏  举报

今天主要就是写了两个观察特征的画图函数,一个是用于观察一个变量的分布的,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