1 | %GENRIVER Generate 2D 2-class River data
|
---|
2 | %
|
---|
3 | % A = GENRIVER(N,L,S)
|
---|
4 | %
|
---|
5 | % INPUT
|
---|
6 | % N Number of objects in each of the classes (default: [50 50])
|
---|
7 | % L Length of the river, default: L = 1 (i.e. 2 bends)
|
---|
8 | % S Width of uniform class distribution on the river borders,
|
---|
9 | % default: S = 1;
|
---|
10 | %
|
---|
11 | % OUTPUT
|
---|
12 | % A Generated dataset
|
---|
13 | %
|
---|
14 | % Generate a separable 'bending river'-like 2D dataset of two classes.
|
---|
15 | % Class priors are equal.
|
---|
16 | %
|
---|
17 | % EXAMPLE
|
---|
18 | % repset = genriver([10 10],4);
|
---|
19 | % trainset = genriver([],4);
|
---|
20 | % w = proxm(repset,'d');
|
---|
21 | % v = w*fisherc(trainset*w);
|
---|
22 | % figure; scatterd(trainset); plotc(v)
|
---|
23 | %
|
---|
24 | % SEE ALSO
|
---|
25 | % DATASETS, PRDATASETS
|
---|
26 |
|
---|
27 | % Copyright: A. Harol, R.P.W. Duin, r.p.w.duin@prtools.org
|
---|
28 | % Faculty EWI, Delft University of Technology
|
---|
29 | % P.O. Box 5031, 2600 GA Delft, The Netherlands
|
---|
30 |
|
---|
31 | function a = genriver(N,len,s,d)
|
---|
32 |
|
---|
33 | prtrace(mfilename);
|
---|
34 |
|
---|
35 | if nargin < 4, d = 0; end
|
---|
36 | if nargin < 3, s = 1; end
|
---|
37 | if nargin < 2 | isempty(len), len = 1; end
|
---|
38 | if nargin < 1 | isempty(N), N = [50 50]; end
|
---|
39 |
|
---|
40 | p = [0.5 0.5];
|
---|
41 | N = genclass(N,p);
|
---|
42 | x1=len*2*pi*rand(1,N(1));
|
---|
43 | x2=sin(x1)+(s*rand(size(x1)))+d;
|
---|
44 | d1 = dataset([x1',x2'],ones(size(x1')));
|
---|
45 | x3=len*2*pi*rand(1,N(2));
|
---|
46 | x4 = sin(x3)+(-s+s*rand(size(x3)))-d;
|
---|
47 | d2 = dataset([x3',x4'],2*ones(size(x3')));
|
---|
48 | a = setprior([d1;d2],p);
|
---|
49 |
|
---|
50 | return
|
---|