2017-07-17 3 views
0

J'utilise le prétraitement python pour mettre à l'échelle mes données. J'ai utilisé MinMaxScaler avec les paramètres de feature_range = (- 1, 1). Mais cela renvoie des données dans une plage de [-1,1]. J'ai besoin de données dans une gamme de (-1,1). Comment puis-je le faire?comment mettre à l'échelle des données dans une plage de (-1, 1) exclusif, au lieu d'inclure

+0

Je ne suis pas sûr de savoir comment ces plages sont différentes. Vous dites que vous avez besoin d'un tuple - (-1, 1) au lieu d'une liste - [-1, 1]? Vous pouvez utiliser le 'tuple (list)' pour convertir. –

+0

@MarkM la notation est l'ensemble mathématique inclusion '[]' et exclusion '()'. OP dit qu'il obtient des valeurs dans la plage '(-1,1)' inclusive, mais veut '' (-1,1) 'exclusif – MyStackRunnethOver

+0

Gotcha thanks @ 4o2 –

Répondre

0

Cela semble être une question bizarre, parce que dans l'échelle générale est inclusive - par définition, mise à l'échelle à (lower_bound, upper_bound) signifie la plus petite chose dans l'ensemble de données se mappé à lower_bound et le plus grand à upper_bound, donc il est un peu contradictoire de dire que vous Vous voulez une plage exclusive, car le "maximum" de la plage n'est pas mappé par quoi que ce soit dans les données.

C'est pourquoi il n'y a pas de fonctionnalité pour le faire - la mise à l'échelle d'une plage est toujours inclusive. J'examinerais soigneusement pourquoi vous avez besoin d'une mise à l'échelle exclusive, c'est-à-dire si vous le faites vraiment.

Cela dit, voici quelques idées, qui sont à la fois mathématiquement douteuse (ils introduiront une erreur):

1.) feature_range = (-1 + eps, 1 - eps): où eps = .000000000000001 ou un numéro convenablement petit. Rétrécissant la plage acceptable par un nombre arbitrairement petit se rapproche une gamme exclusive que le nombre eps approche 0.

2.)

for entry in data: 
    if entry is 1: 
     entry = entry - eps 
    else if entry is -1: 
     entry = entry + eps 

Ceci est d'autant plus mathématiquement douteuse car il sera artificiellement « push dans » les extrémités de votre distribution, mais il laissera la cartographie inchangée pour chaque valeur supérieure à (-1 + eps) et inférieure à (1 - eps).