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.
well I actually need this now... I'll call the class normalization::Spearman