web-dev-qa-db-fra.com

Normaliser une fonctionnalité dans ce tableau

C’est devenu une question assez frustrante, mais j’ai posé la question lors des discussions de Coursera et elles n’aideront pas. Ci-dessous la question:

enter image description here

Je me suis trompé 6 fois maintenant. Comment normaliser la fonctionnalité? Les indices sont tout ce que je demande.

Je suppose que x_2 ^ (2) est la valeur 5184, sauf si j'ajoute la colonne x_0 de 1, qu'ils ne mentionnent pas mais qu'il mentionne certainement dans les conférences lorsqu'il parle de créer la matrice de conception X. ^ (2) serait la valeur 72. En supposant que l'un ou l'autre ait raison (je joue à un jeu de devinettes), que dois-je utiliser pour le normaliser? Il parle de 3 façons différentes de normaliser les cours: l’une en utilisant la valeur maximale, l’autre avec la plage/différence entre max et min, et l’autre en écart type: ils veulent une réponse correcte aux centièmes . Lequel dois-je utiliser? C'est tellement déroutant.

46
bjd2385

... utilise à la fois mise à l'échelle de la fonction (divisée par le} _ "max-min", ou la plage d'une caractéristique) et moyenne normalisation.

Donc, pour toute caractéristique individuelle f:

f_norm = (f - f_mean) / (f_max - f_min)

par exemple. pour x2 (examen de mi-parcours) ^ 2 = {7921, 5184, 8836, 4761}

> x2 <- c(7921, 5184, 8836, 4761)
> mean(x2)
 6676
> max(x2) - min(x2)
 4075
> (x2 - mean(x2)) / (max(x2) - min(x2))
 0.306  -0.366  0.530 -0.470

D'où norm (5184) = 0,366

(en utilisant le langage R, qui est excellent pour vectoriser des expressions comme celle-ci)

Je conviens que c'est déroutant qu'ils utilisent la notation x2 (2) pour signifier x2 (norme) ou x2 '


EDIT: en pratique, tout le monde appelle la fonction intégrée scale(...) , qui fait la même chose.

41
smci

Il demande de normaliser la deuxième fonctionnalité dans la deuxième colonne en utilisant à la fois la normalisation et la normalisation des fonctionnalités. Donc,

(5184 - 6675.5) / 4075 = -0.366

4
user6552158

J'ai eu le même problème, dans mon cas, le problème était que j'utilisais en moyenne la valeur maximale x2 (8836) moins la valeur minimale x2 (4761) divisée par deux au lieu de la somme de chaque valeur x2 divisée par le nombre d'exemples .

0
jordileft

"Je suppose que x_2 ^ (2) est la valeur 5184" est-ce parce que c'est le deuxième élément de la liste et que l'on utilise l'indice _2? x_2 est juste une identité de variable en maths, elle s'applique à toutes les lignes de la liste. Notez que le résultat brut de l’examen à mi-parcours le plus élevé (c’est-à-dire celui qui n’est pas carré) est réduit au test final et que le résultat brut à mi-parcours le plus faible augmente le plus pour le résultat de l’examen final. Thêta est une valeur fixe, un coefficient. Par conséquent, votre normalisation des valeurs x_1 et x_2 doit devenir quelque part (EDIT: non négatif, inférieur à 1) afin de permettre ce comportement. J'espère que cela vous donnera une base de départ en identifiant le point pivot.

0
roganjosh

Habituellement, nous normalisons tous qu’ils aient une moyenne nulle et qu’ils se situent entre [-1, 1].

Vous pouvez le faire facilement en divisant par le maximum de la valeur absolue, puis en supprimant la moyenne des échantillons.

0
Royi

Je suis ce cours en ce moment et une erreur très triviale que j'ai commise la première fois que j'ai répondu à cette question était d'utiliser une virgule au lieu d'un point dans la réponse, puisque je le faisais à la main et que dans mon pays, nous utilisons des virgules pour indiquer les décimales. Ex: (0,52 au lieu de 0,52)

Donc, dans la deuxième fois, j'ai essayé dot et fonctionne bien.

0
Everton Carneiro