Hier a expliqué le traitement des ensembles de données avec les pandas, mais c'est une continuation.
En fait, dans Articles jusqu'à présent, la normalisation est apparue par hasard, mais je pense qu'elle n'a pas été expliquée correctement.
** Normaliser ** dans les statistiques consiste à transformer des données de différents critères selon certains critères pour en faciliter l'utilisation.
Par exemple, disons que vous avez 90 points en japonais et 70 points en mathématiques. Si vous comparez simplement les chiffres, vous obtiendrez de meilleures notes en japonais, mais que se passe-t-il si le score moyen en japonais est de 85 et le score moyen en mathématiques est de 55? L'avantage de la normalisation est que vous pouvez comparer des données avec différents critères de cette manière.
Généralement, cela signifie convertir les valeurs pour que la moyenne soit 0 et que la variance (et l'écart type) soit 1.
Cela peut être calculé à l'aide de la formule suivante.
Normalized(A(n)) = \frac {(A(n) - μ(A))} {\sigma(A)}
Autrement dit, soustrayez la moyenne et divisez par l'écart type. Il en résulte une moyenne de 0 et un écart type de 1.
Il est préférable de bouger vos mains et de tout voir. Faisons de même avec les pandas.
Commencez par diviser le bloc de données par la valeur totale dans le sens de la colonne et normaliser pour que la somme totale soit 1.
data.div(data.sum(1), axis=0)
(data - data.quantile(0.5).values) / (data.quantile(0.75)-data.quantile(0.25)).values
Logistic conversion consiste à créer une variable qui suit une distribution normale en prenant le logarithme de la variable qui suit une distribution normale logarithmique. C'est.
La conversion logistique facilite l'organisation et l'expression de petits nombres et de grands nombres.
Il peut être plus facile à comprendre s'il est exprimé en code.
data.apply(np.log)
Le taux de mouvement (taux d'augmentation) est une valeur numérique qui indique à quel point la valeur a changé par rapport à une certaine valeur standard.
pct_change () convertit la valeur de la trame de données en taux de déplacement. Le point à garder à l'esprit est que le premier nombre n'a pas de précédent, donc la vitesse de déplacement est NaN. Le taux de mouvement est également apparu avec désinvolture dans Article précédent.
data.T.pct_change().dropna(axis=0)
Comme je l'ai présenté hier, vous pouvez créer un tableau en supprimant les valeurs manquantes. Cependant, c'est un peu déroutant car la première valeur du graphique devient grande.
Ce n'est pas directement lié au traitement de l'ensemble de données, mais il serait pratique que les résultats des essais IPython puissent être exportés dans un fichier et enregistrés. Si vous avez effectué le bon essai, vous pouvez l'utiliser comme un script tel quel, et il sera plus réutilisable, comme l'extraction du code de l'historique de travail.
import readline
readline.write_history_file("history.py")
Cela enregistre l'historique du code que vous tapez dans IPython sous le nom history.py. C'est très pratique.
Cette fois également, nous avons résumé divers processus souvent utilisés lors du traitement des ensembles de données.
Recommended Posts