geneating high dimensioal banana shaped data sets or any artificial data sets
2 views (last 30 days)
Show older comments
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
0 Comments
Answers (2)
John D'Errico
on 13 Jul 2015
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.
Image Analyst
on 13 Jul 2015
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]);

See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!