Opened 15 years ago

Closed 15 years ago

## #437 closed request (fixed)

# Rank Normalization

Reported by: | Peter | Owned by: | Peter |
---|---|---|---|

Priority: | major | Milestone: | yat 0.5 |

Component: | normalizer | Version: | trunk |

Keywords: | Cc: |

### Description (last modified by )

needs #439

This a normalization that works on 1D containers, for example, a Vector.

The short story is to replace each value with its rank, i.e., the smallest value is replaced with 0, the next smallest is replaced with 1/N (where N is number of elements in the Container), et cetera.

In the weighted case, the rank naturally translates to sum(w_i)/sum(w) where the first sum runs over elements for which x_i<x. Possibly one could add half the values of the weights corresponding to x_i=x just for symmetry reasons (and make the corresponding modification in the unweighted case)

### Change History (9)

### comment:1 Changed 15 years ago by

Milestone: | yat 0.x+ → yat 0.5 |
---|---|

Status: | new → assigned |

### comment:2 Changed 15 years ago by

Description: | modified (diff) |
---|

### comment:3 Changed 15 years ago by

### comment:6 Changed 15 years ago by

Resolution: | → fixed |
---|---|

Status: | assigned → closed |

### comment:7 Changed 15 years ago by

Resolution: | fixed |
---|---|

Status: | closed → reopened |

I think we should add half the equal weights as mentioned in description. This will cost some speed, but I think it is worth it. See this weighted example in which the NaNs? have w=0

1 2 2 NaN 4 NaN

that currently is transformed to

0 0 1/3 NaN 2/3 NaN

but with in modified version we will get

1/6 1/2 1/2 NaN 5/6 NaN

which I think makes more sense, because the only value in second column should not be biased to lower (or upper) end.

**Note:**See TracTickets for help on using tickets.

well I actually need this now... I'll call the class normalization::Spearman