geneating high dimensioal banana shaped data sets or any artificial data sets

hi i do need to generate high dimensional banana shaped data sets in my thesis , actually i need to evaluate my classification algorithm with different type of artificial data sets in high dimensional space (for example 20D ), my prof has demanded me to generate 20D banana shaped data sets, in two classes which have no overlapping but are distributed in each other like the image below
<<
>> I have no clue how to do this, is there any one who can help me kindly?
thanks in advance

Answers (2)

You need to decide what it means to have that shape. In a high number of dimensions, there are a huge number of possible "banana-like" shapes.
Start with a simple Gaussian set of data, in the appropriate number of dimensions. Then transform it.

1 Comment

thank you very much for your answer , actually i don't know how to put Gaussian data sets to gather till they get a banana shaped form in two classes without overlapping!

Sign in to comment.

Like this, for one example in 3D:
numPoints = 1000;
z = rand(1,numPoints);
x = 0.07 * rand(1,numPoints) + 0.5;
y = 0.08 * rand(1,numPoints);
% Make Z follow a quadratic
stretchFactor = -4*(z-0.5).^2+0.5;
x = x .* stretchFactor;
scatter3(x,y,z, '.');
xlabel('X', 'FontSize', fontSize);
ylabel('Y', 'FontSize', fontSize);
zlabel('Z', 'FontSize', fontSize);
xlim([0,1]);
ylim([0,1]);
zlim([0,1]);

1 Comment

thank you very much for the answer i used what you wrote to generate those data in a pic i put above , my problem is when dimension gets more than 3 how to define quadratics, i mean for example how to do a similar thing like these lines (% Make Z follow a quadratic stretchFactor = -4*(z-0.5).^2+0.5; x = x .* stretchFactor;)

Sign in to comment.

Asked:

on 12 Jul 2015

Edited:

on 16 Jul 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!