2012-08-18 2 views
0

Мой алгоритм имеет три входных параметра:как построить комбинацию из трех параметров

param1 in {0.1, 0.5, 1.0, 90, 95, +inf} 
param2 in {10, 20, 30, 40, 60, 80, 100} 
param3 in {0.01, 0.05, 0.10} 

я побежал тесты для всех комбинаций этих входных значений, что приводит к различной мощности. Выходные значения равны двум: # of rejected samples, # of non-rejected samples. Ясно, что сумма дает общее количество выборок.

Как я могу построить все это, чтобы получить визуальное подтверждение того, какие параметры дают максимальную фракцию # of non-rejected samples/total # of samples?

Я мог бы использовать matplotlib, но я не знаю, как действовать, когда задействовано более одного параметра.

+0

Построение многомерных данных всегда является проблемой. Уменьшение размерности является общей методикой. Другой - визуализировать его как куб данных. –

ответ

1

В любом случае у вас есть результаты в трехмерном массиве. до тех пор, пока param1 имеет разумное количество элементов, я бы использовал imshow следующим образом:

max_val = 2000 
plot_shape=(3,3) 
for n, img in enumerate(data_cube): 
    ax = subplot(plot_shape[0], plot_shape[1], n+1) 
    title('Results for Param3=%0.3f'%param3[n]) 
    ax.set_xticks(range(len(params3))) 
    ax.set_xticklabels([str(x) for x in params3]) 
    ax.set_yticks(range(len(params2))) 
    ax.set_yticklabels([str(x) for x in params2]) 
    xlabel('param3') 
    ylabel('param2') 
    imshow(img, vmin=0, vmax=max_val) 
+0

Спасибо, Карл. Однако я не понимаю ваш код. Что такое data_cube? где были мои параметры? У меня есть результаты по разным образцам для всех комбинаций параметров, упомянутых выше (значения указаны именно так) –

+1

data_cube - это трехмерный массив, содержащий результаты для каждой комбинации ваших параметров. Первое измерение отображает параметр 1, второе - param2, а третье - param3. Я добавлю несколько ярлыков и, возможно, это прояснит ситуацию. –

Смежные вопросы