1. 合成数据集生成与预处理
n_samples = 1000;
rng(42);
datasets = struct();
datasets.blobs = [make_blobs(n_samples,5,1.0,1,0)];
datasets.moons = [make_moons(n_samples,0.1,1)];
datasets.circles = [make_circles(n_samples,0.05,0.5,1)];
datasets.spiral = spiral_data(n_samples);
datasets.random = rand(n_samples,2);
X_list = cell(1,5);
y_list = cell(1,5);
for i = 1:5
X_list{
i} = datasets.(['blobs','moons','circles','spiral','random]){
i};
y_list{
i} = datasets.(['blobs','moons','circles','spiral','random]){
i}.Y;
end
2. t-SNE降维核心实现
tsne_opts = struct(...
'NumDimensions',2,...
'Perplexity',30,...
'LearnRate',200,...
'NumIterations',1000,...
'Algorithm','barnes-hut');
results = cell