[PYTHON] Ingénierie des fonctionnalités pour l'apprentissage automatique à partir de la partie 3 Échelle collaborative de Google

introduction

Cet article traite de la mise à l'échelle et de la normalisation. Cet article est principalement basé sur "Ingénierie de la quantité de fonctionnalités pour l'apprentissage automatique". Veuillez vérifier si vous devenez.

Qu'est-ce que la mise à l'échelle?

La plage de données numériques qui peuvent être prises peut être fixée ou non. La plage qui peut être prise pour les données de comptage n'est fondamentalement pas déterminée, et dans le cas d'un modèle sensible à l'échelle des caractéristiques telles que la régression linéaire, l'apprentissage peut échouer en raison de valeurs aberrantes ou de différences d'échelle entre les caractéristiques. .. L'unification de l'échelle dans un tel cas est appelée mise à l'échelle. Il existe une mise à l'échelle Min-Max, une normalisation, une normalisation L2, etc. pour la mise à l'échelle, alors introduisons-les dans l'ordre. Si vous souhaitez en savoir plus sur la mise à l'échelle, veuillez consulter l'article ici.

Mise à l'échelle Min-Max

La mise à l'échelle Min-Max définit la valeur minimale sur 0 et la valeur maximale sur 1. Si une valeur aberrante est incluse, la plage de valeurs normales pouvant être prises peut devenir trop étroite en raison de l'influence de la valeur aberrante, de sorte que la normalisation est essentiellement utilisée.

\tilde{x} = \frac{x - min(x)}{max(x) - min(x)}
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler

##Nombre aléatoire fixe
np.random.seed(100)
data_array = []
for i in range(1, 100):
  s = np.random.randint(0, i * 10, 10)
  data_array.extend(s)
data_array.extend(np.zeros(100))
data = pd.DataFrame({'Listen Count': data_array})

print(data.max()) # 977.0
print(data.min()) # 0

scaler = MinMaxScaler()
data_n = scaler.fit_transform(data)
data_n = pd.DataFrame(data_n)

print(data_n.max()) ## 1.0
print(data_n.min()) ## 0

Standardisation

En normalisation, la moyenne est de 0 et la variance de 1. Lorsque la quantité d'entités d'origine est une distribution normale La quantité d'entités normalisées est une distribution normale standard.

\tilde{x} = \frac{x - mean(x)}{sqrt(var(x))}
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler

##Nombre aléatoire fixe
np.random.seed(100)
data_array = []
for i in range(1, 100):
  s = np.random.randint(0, i * 10, 10)
  data_array.extend(s)
data_array.extend(np.zeros(100))
data = pd.DataFrame({'Listen Count': data_array})

scaler = StandardScaler()
data_n = scaler.fit_transform(data)
data_n = pd.DataFrame({'Listen Count': data_n.ravel()})

print(data_n.var()) ##1.000918
print(data_n.mean()) ##6.518741e-17

Normalisation L2

La normalisation L2 normalise la quantité de caractéristiques en la divisant par la norme L2.

\tilde{x} = \frac{x}{||x||_2} \\
||x||_2 = \sqrt{x_1^2 + x_2^2+ ...+x_m^2 }
import numpy as np
import pandas as pd
from sklearn.preprocessing import normalize

##Nombre aléatoire fixe
np.random.seed(100)
data_array = []
for i in range(1, 100):
  s = np.random.randint(0, i * 10, 10)
  data_array.extend(s)
data_array.extend(np.zeros(100))
data = pd.DataFrame({'Listen Count': data_array})

##Normalisation L2
data_l2_normalized = normalize([data['Listen Count']],norm='l2')
data_l2 = pd.DataFrame({'Listen Count': data_l2_normalized.ravel()})

print(np.linalg.norm(data_l2_normalized,ord=2)) ## 0.999999999

finalement

Je pense publier une vidéo sur l'informatique sur YouTube. S'il vous plaît, abonnez-vous à la chaîne et donnez-nous une note élevée, car cela vous motivera à mettre à jour Youtube et Qiita. YouTube: https://www.youtube.com/channel/UCywlrxt0nEdJGYtDBPW-peg Twitter: https://twitter.com/tatelabo

Recommended Posts

Ingénierie des fonctionnalités pour l'apprentissage automatique à partir de la partie 3 Échelle collaborative de Google
Ingénierie des fonctionnalités pour l'apprentissage automatique à partir de la partie 2 Conversion de Google Colaboratory-Logistic et conversion Box-Cox
Ingénierie des fonctionnalités pour l'apprentissage automatique à partir du 4e Google Colaboratory - Fonctionnalités interactives
Commencer avec l'apprentissage automatique Python
Ingénierie des fonctionnalités pour l'apprentissage automatique à partir de la partie 1 Google Colaboratory - Validation et discrimination des données de comptage
Prédire la demande de puissance avec l'apprentissage automatique, partie 2
Amplifiez les images pour l'apprentissage automatique avec Python
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
Unité 5 Ingénierie des fonctionnalités pour la sélection des fonctionnalités d'apprentissage automatique
Apprentissage automatique à partir de Python Personal Memorandum Part2
Apprentissage automatique à partir de Python Personal Memorandum Part1
[Python] Collectez des images avec Icrawler pour l'apprentissage automatique [1000 feuilles]
Machine learning facile avec AutoAI (partie 4) Jupyter Notebook
Reconstruction de l'environnement pour l'apprentissage automatique avec Miniconda (version Windows)
L'apprentissage automatique appris avec Pokemon
Ensemble de données pour l'apprentissage automatique
Prétraitement japonais pour l'apprentissage automatique
Vérification des performances du prétraitement des données pour l'apprentissage automatique (données numériques) (partie 2)
À propos de l'apprentissage avec Google Colab
Apprentissage automatique avec Python! Préparation
Pour ceux qui souhaitent démarrer l'apprentissage automatique avec TensorFlow2
Démineur d'apprentissage automatique avec PyTorch
Vérification des performances du prétraitement des données pour l'apprentissage automatique (données numériques) (partie 1)
Essayez le machine learning à la légère avec Kaggle
Recommandation de manga par machine learning Partie 1 Commençons par diviser sans penser à rien
Création d'un environnement Windows 7 pour une introduction à l'apprentissage automatique avec Python
Apprentissage automatique avec docker (42) Programmation PyTorch pour l'apprentissage en profondeur par Ian Pointer
[Tutoriel PyTorch ⑤] Apprentissage de PyTorch avec des exemples (Partie 2)
J'ai essayé l'apprentissage automatique avec liblinear
Apprentissage automatique par python (1) Classification générale
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2
Ingénierie de la quantité de fonctionnalités voyageant avec des variables de catégorie Pokémon-
SVM essayant l'apprentissage automatique avec scikit-learn
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
Détection des fonctionnalités OpenCV avec Google Colaboratory
Informations sur les réunions d'apprentissage automatique pour HRTech
[Tutoriel PyTorch ⑤] Apprentissage de PyTorch avec des exemples (Partie 1)
[Balisage recommandé pour l'apprentissage automatique # 4] Script d'apprentissage automatique ...?
Machine learning d'inspiration quantique avec des réseaux de tenseurs
Démarrez avec l'apprentissage automatique avec SageMaker
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
Ingénierie de quantité de fonctionnalités voyageant avec Pokemon-Version numérique
Premiers pas pour les débutants en apprentissage automatique (IA)
Sklearn de données déséquilibrées avec apprentissage automatique k-NN
Une introduction à OpenCV pour l'apprentissage automatique
Pourquoi Python est choisi pour l'apprentissage automatique
Une histoire sur l'apprentissage automatique avec Kyasuket
Méthode d'encodage à chaud "utilisable" pour l'apprentissage automatique
[Python] Conception d'applications Web pour l'apprentissage automatique
Une introduction à Python pour l'apprentissage automatique
Créer un environnement de développement pour l'apprentissage automatique
Construction d'environnement AI / Machine Learning avec Python
Classification EV3 x Pyrhon Machine Learning Partie 3
Kaggle: Introduction à l'ingénierie manuelle des fonctionnalités, partie 1
Acquisition de données à partir de l'API d'analyse avec l'application Web Client API Google pour python Partie 2
Alignez le nombre d'échantillons entre les classes de données pour l'apprentissage automatique avec Python
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitres 11 et 12 Introduction à Pandas Matplotlib
Prix des maisons Kaggle ① ~ Ingénierie des fonctionnalités ~
Note
Ingénierie de la quantité de fonctionnalités voyageant avec des variables de catégorie Pokémon-
Note
Note
Ingénierie de quantité de fonctionnalités voyageant avec Pokemon-Version numérique
Prédire la valeur par défaut des cartes de crédit Ingénierie de la quantité de fonctionnalités
Unité 5 Ingénierie des fonctionnalités pour la sélection des fonctionnalités d'apprentissage automatique
Kaggle: Introduction à l'ingénierie manuelle des fonctionnalités, partie 1