支持向量机吧 关注:173贴子:264
  • 4回复贴,共1

SVM【分类问题】,season1.episode1,数据准备。

只看楼主收藏回复

svm是有超平面划分,从简单xy轴来看,就是平面上的直线。
>>最基本的,先从平面上直线划分两类问题开始。
>>最最开始的,先有数据。
用matlab来生产数据
用matlab搜索mixture expert,参考了里面部分代码。
如下。在窗口粘贴代码或者新建脚本 script 运行即可
miu1 =[1 2];
sigma1 = [2 0 ; 0 0.5];
miu2 =[-3 -5];
sigma2 = [1 0 ; 0 1];
type1 = mvnrnd(miu1,sigma1,1000);
type2 =mvnrnd(miu2,sigma2,1000);
lable1 = ones(length(type1),1);
lable2 = ones(length(type2),1);
type1 = [type1 lable1];
type2 = [type2 lable2];
% generated two type for classification
hold on;
scatter(type1(:,1),type1(:,2));
scatter(type2(:,1),type2(:,2),'fill');
fulldata = [type1;type2];
trainPercentage = 80;
trainNumber = trainPercentage* length(fulldata) / 100;
testNumber = size(fulldata,1) - trainNumber;
trainSamples = [];
for i = 1: trainNumber
id = randi(length(fulldata),1);
trainSamples = [trainSamples;fulldata(id,:)];
fulldata(id,:) = [];
end
testSamples = fulldata;
%splited fulldata into testSamples and trainSamples
上面代码生成了‘两团’正反例子,合并后为完整数据集
随机抽样80%,然后后用20%进行测试。


IP属地:天津1楼2013-12-30 23:03回复
    episode 2 preview:
    创建直线模型,寻找合适的直线参数,进行分类。


    IP属地:天津2楼2013-12-30 23:05
    回复
      注释:随机抽样算法参考 时间复杂度O(n) 数据结构 c / c++ 外国那本中文版。
      类似 List,数据集在此是变长数组了,start:
      数据集
      for(i = 0 ; i < n ; i ++)
      {
      随机号 为 1~ 样本集长度
      训练集.add(样本集[随机]);
      样本集[随机].remove();
      }
      测试集 = 数据集


      IP属地:天津3楼2013-12-30 23:11
      收起回复
        可不可以加qq聊聊关于数据库的问题


        4楼2014-02-27 09:06
        回复