0
$\begingroup$

I'm using a GA to find the best set of parameters to maximize a fitness function. I want to draw a fitness landscape to visualize the effectiveness of the algorithm. The fitness function, calculated using a DNN, has 8 input variables. The landscape I want to plot is 3 dimensional (x,y,fitness). What data should I assign to the x and y axes? Or should I avoid such a plot entirely? Which other types of plots would be better?

$\endgroup$
2
  • $\begingroup$ Can you clarify what you mean by "The landscape I want to plot is 3 dimensional"? Why is it 3d? How can we know what you should assign to x and y, if we don't actually know what these axes are supposed to represent in your context? Are your individuals 2d points? If yes, then having a 3d fitness landscape may make sense. $\endgroup$
    – nbro
    Commented Jul 18, 2023 at 10:26
  • $\begingroup$ @nbro the individuals have 8 dimensions. Thats why I wasn't sure how to plot them on 2 axis. Thank you, $\endgroup$ Commented Jul 18, 2023 at 21:52

1 Answer 1

1
$\begingroup$

I understood your question as being "I have a fitness function based on 8 parameters" how can I display that graphically.

Visualising a multi-dimensional landscape is a hard problem. If you convert it to some kind of 3d plot you are inevitably losing information. It would help to consider what you are actually trying to achieve by doing so. Do you have a practical use for the plot or is it just a bright shiny.

If you want to show something specific such as how one algorithm is better than another, you may be better off trying to visualise something else entirely. Commonly you can look at the average fitness over time instead.

A better algorithm is typically one that increases fitness more quickly and/or with fewer resources.

So you could plot fitness by time by population with different coloured lines for each algorithm variation say.

That said if you really want to visualise the fitness landscape:

There a some useful information on or linked to the wikipedia page on Fitness_landscapes

You could also try:

Dimensionality Reduction

You could try [dimensionality reduction](Dimensionality reduction) to reduce the number of parameters down to something you can plot.

Identify dimensions with the most interesting properties

Look at which dimensions have the most intersting changes over time

Plot individual dimensions

Create multiple plots for different interesting pairs fo dimensions

Innovate ways to plot other dimensions

Why stick with 3D? Consider using:

  • colour
  • size
  • texture

Make your model interactive

Look here and elsewhere for inspiration

Why not provide a way of controlling which dimensions are displayed and how.

$\endgroup$
3
  • $\begingroup$ Can you explain why plotting a 3d fitness landscape (the OP's problem) is a hard problem? Because it shouldn't. If the individuals have more than 2 dimensions, then yes I agree that you may need some dimensionality reduction. So, I think you should address the OP's problem directly too in this answer. In any case, they don't explain what x and y are. It's unclear if their individuals are 2d points or not (probably yes). $\endgroup$
    – nbro
    Commented Jul 18, 2023 at 14:01
  • $\begingroup$ I understood the individuals as having 8 dimensions. $\endgroup$ Commented Jul 18, 2023 at 15:30
  • $\begingroup$ thank you this makes sense. I kind of knew it wouldn't really make sense to try as 8 is not the same as 2. Ill go with the option to use multiple plots. It is mostly to generate something shiny, a figure which makes the whole objective of the algorithm easy to understand. $\endgroup$ Commented Jul 18, 2023 at 21:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .