how to normalize statistics for a radar chart

后端 未结 2 421
礼貌的吻别
礼貌的吻别 2021-01-06 18:30

I\'m using raphaelJS to draw a \"radar chart\" to display statistical data. For each axis it should accept values between 0 and 10.

For example, the vales of a polyg

相关标签:
2条回答
  • 2021-01-06 19:19

    Transforming your data to logaritmic scale is not an option?

    That way a few extreme value would not distort/crowd the other values. Just compute the common/natural logarithm of the values of your array (e.g. see w3school page on it), and feed those to the chart API.

    0 讨论(0)
  • 2021-01-06 19:23

    As suggested by @daroczig, log-transformation of the data is the way to go. I just wanted to add that there are many types of transformation you can perform.

    Perhaps an example might help in this. I will be using the Parallel Coordinates visualization to illustrate the example, but the same concepts should apply for Radar Chart. All experiments are performed in MATLAB.

    Consider the Fisher Iris dataset, it contains 150 instances where each point has 4 dimensions. If we add an outlier point outside the range of normal values, we get:

    org-vs-outlier

    As expected, the plot gets scaled to accommodate the new point, but as a result we loose the detailed view we had before.

    The answer is to normalize the data by applying some kind of transformation. The following shows a comparison of four different transformations:

    • Min/Max normalization:

      x_new = (x-min)/(max-min), so that x_new in [0,1]

    • z-standarization:

      x_new = (x-mean)/std, where x_new ~ N(0,1)

    • softmax normalization with logistic sigmoid:

      x_new = 1/(1+exp(-(x-mean)/std)), and x_new in [0,1]

    • energy normalization:

      x_new = x / ||x||, such that x_new in [0,1] (make each point a unit vector)

    minmax-standarize-softmax-energy

    0 讨论(0)
提交回复
热议问题