[PYTHON] Prétraitement dans l'apprentissage automatique 2 Acquisition de données

Aidemy 2020/10/29

introduction

Bonjour, c'est Yope! Je suis une école littéraire croustillante, mais j'étais intéressé par les possibilités de l'IA, alors je suis allé à l'école spécialisée en IA "Aidemy" pour étudier. Je voudrais partager les connaissances acquises ici avec vous, et je les ai résumées dans Qiita. Je suis très heureux que de nombreuses personnes aient lu l'article de synthèse précédent. Merci! Ceci est le deuxième article de prétraitement pour l'apprentissage automatique. Ravi de vous rencontrer.

Quoi apprendre cette fois ・ Acquisition de données depuis Excel ・ Acquisition des données de la base de données

Acquisition de données depuis Excel

Lecture des données

-La première chose à faire dans le prétraitement des données est __ "Lire les données" __. -Les sources de données qui lisent des données comprennent __ "fichiers", "bases de données", "sites Web" __, etc., et cette fois nous traiterons des fichiers Excel et de l'acquisition de données à partir de bases de données, qui sont souvent lues. ..

-Lire les données d'Excel avec pandas. -Comme vous l'avez appris dans "Data Handling 2", utilisez __pd.read_excel () __ pour lire les fichiers Excel.

Combiner des données Excel

-__ Lorsque vous souhaitez traiter les données organisées en plusieurs feuilles comme une seule donnée , vous devez effectuer __ combinaison de données comme prétraitement. -A titre d'exemple, il est envisageable de combiner la feuille A de données produit et la feuille B de données de vente dans le sens horizontal. -Utiliser __pd.merge (gauche, droite, on =) __ pour cette fusion. -Les arguments "gauche" et "droite" spécifient la feuille à joindre sur le côté gauche / droit, et "on" spécifie le nom de la colonne utilisée pour la jointure.

・ Code![Capture d'écran 2020-10-29 14.43.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/e487d03e-75a2-0ef9- 8df3-f855081f1d55.png)

・ Résultat![Capture d'écran 2020-10-29 14.43.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/963997fe-836e-c819- f87a-563a13a7143a.png)

Filtrage des données Excel

-Si vous souhaitez affiner les données (lignes) qui ont une chaîne de caractères spécifique à partir des données Excel lues ou combinées (feuille), utilisez __DataFlame.query ('colonne avec chaîne de caractères spécifiée> chaîne de caractères') __ Faire. -Si vous souhaitez spécifier plus d'une chaîne de caractères, passez-la dans une liste et changez la partie ">" du code ci-dessus en "==" ou "in".

-Par exemple, si vous souhaitez extraire des lignes avec product_ids 1 et 3 des données "df" lues par les pandas, procédez comme suit.

df.query('product_id == [1,3]')

Agrégation de données (regroupement)

-Il y a une colonne appelée «type» dans la fiche produit chargée «df», où les données appartiennent à l'une des «aliments» représentant la nourriture, «boisson» représentant les boissons et «sucré» représentant les bonbons. Et. -De ceux-ci, lorsque l'on veut connaître le nombre de __ données appartenant à "nourriture" __ etc., il est nécessaire d'agréger et de regrouper les données appartenant à "nourriture". -Pour le regroupement, utilisez __df.groupby ('nom de la colonne à grouper') __. -A ce moment, lors du regroupement par plusieurs colonnes, utilisez __ ('colonne 1', 'colonne 2']) __. -La forme des données renvoyées par cette méthode groupby est «objet GroupBy», et il est groupé à l'aide de méthodes telles que __count (), mean (), sum (), max () __. Il est possible d'obtenir le nombre de ces données. (Déjà appris dans le cours Pandas)

・ Dans cet exemple, vous pouvez procéder comme suit.

gb = df.groupby('type')
gb['food'].count()

Récupérer les données de la base de données

Lire les données de la base de données

-La lecture depuis la base de données se fait avec __pd.read_sql () __, mais la valeur passée en argument est spéciale. -Dans le premier argument, spécifiez la table et la colonne de la base de données à lire comme suit.

''' SELECT Colonne 1, Colonne 2 ("," n'est pas obligatoire dans la dernière colonne) FROM table '''

-Dans le deuxième argument, passez les informations de la base de données à connecter comme suit.

__sqla.create_engine ('connection database + driver name: // connection user name: password @ host name: port number / database name? charset = character code') __

-Le flux de lecture des données est décrit ci-dessous. (Les informations de la base de données sont fictives)

import sqalchemy as sqla
#Résumer les informations de la base de données
engine = sqla.create_engine('mysql+mysqldb://ngayope:ngayope@mysql-service:3307/database1?charset=utf8')
#À partir du tableau "produits" de la base de données "database1", "produit"_identifiant "et" produit_obtenir "nom"
pd.read_sql('''
SELECT
 product_id,
 product_name
FROM products
''',engine)

Joindre la table

-Vous pouvez également joindre les tables de la base de données avec pd.merge (gauche, droite, on =) comme dans Excel, mais dans le cas de la base de données, vous pouvez la rejoindre plus facilement. -Pour les jointures, utilisez SQL JOIN. -La méthode de jointure est décrite ci-dessous (lors de la jonction de la table B à la table A en utilisant la colonne 1 comme clé).

''' SELECT Tableau A. Colonne 1, Tableau B.Colonne 1 FROM Tableau A REJOIGNEZ le tableau B sur le tableau A. Colonne 1 = tableau B.Colonne 1 (décrire à ajouter) '''

Filtrage des données

-Utilisez la clause WHERE pour affiner __data. Lorsque vous l'utilisez, faites-le dans la même ligne que SELECT et FROM. ・ Si vous souhaitez affiner par plusieurs conditions, utilisez __ "OU" "ET" __. "ET" extrait les éléments qui remplissent toutes les conditions.

''' WHERE Nom de la table. Nom de la colonne = Valeur à extraire 1 OU Nom de la table. Nom de la colonne = Valeur à extraire 2 '''

・ Code jusqu'à ce point (les données indiquent la date de vente et le prix catalogue du produit)![Capture d'écran 2020-10-29 14.58.27.png](https: //qiita-image-store.s3.ap- nord-est-1.amazonaws.com/0/698700/f9e63923-93c6-3822-50d1-bb0b09407083.png)

・ Explication du code ci-dessus: __ "SELECT" __ spécifie les trois données à sortir cette fois. __ "FROM" __ spécifie mlprep_sales_products, qui est un tableau de "Quels produits ont été vendus", et __ "JOIN ON" __ combine cela avec mlprep_sales et mlprep_products. Enfin, dans __ "WHERE" __, seuls ceux dont la colonne "catalog_price" indiquant le prix catalogue de la table mlprep_products est égal ou supérieur à 200 sont extraits.

Agrégation de données

-J'ai expliqué la méthode en utilisant GroupBy de pandas, mais SQL a également la clause __GROUP BY __ qui a la même fonction, et les données peuvent être agrégées en utilisant cela. -Lors de l'agrégation des données, joignez les données si nécessaire, puis regroupez les données dans une table.

''' REJOIGNEZ le tableau B sur le tableau A. Colonne 1 = tableau B. Colonne 1 GROUP BY Colonnes agrégées '''

Sommaire

-Les données Excel lues sont _pd.read_excel () ___, la jointure des données est __pd.merge () __, le rétrécissement des données est __df.query () __, l'agrégation des données (regroupement) est __df.groupby () _ Faire avec _. -Lire les données de la base de données avec __pd.read_sql () __. -Pour le premier argument, spécifiez la table et la colonne à lire par __ "SELECT colonne FROM table" __. -De même, utilisez __ "JOIN" __ pour la liaison de données, __ "WHERE" __ pour le filtrage et __ "GROUP BY" __ pour l'agrégation. -Pour le deuxième argument, spécifiez les informations de la base de données résumées par __sqla.create_engine () __.

Cette fois, c'est fini. Merci d'avoir lu jusqu'à la fin.

Recommended Posts

Prétraitement dans l'apprentissage automatique 2 Acquisition de données
Python: prétraitement en machine learning: acquisition de données
Apprentissage automatique dans Delemas (acquisition de données)
Prétraitement dans l'apprentissage automatique 4 Conversion de données
Python: prétraitement dans l'apprentissage automatique: conversion de données
Prétraitement dans l'apprentissage automatique 1 Processus d'analyse des données
Python: prétraitement dans l'apprentissage automatique: présentation
Prétraitement dans l'apprentissage automatique 3 Données de valeur manquante / aberrante / de déséquilibre
Astuces de fourniture de données utilisant deque dans l'apprentissage automatique
[Python] Analyse de données, pratique du machine learning (Kaggle) -Prétraitement des données-
J'ai commencé l'apprentissage automatique avec le prétraitement des données Python
Python: prétraitement en machine learning: gestion des données manquantes / aberrantes / déséquilibrées
Ensemble de données pour l'apprentissage automatique
Prétraitement japonais pour l'apprentissage automatique
Apprentissage automatique dans Delemas (s'entraîner)
Utilisé en EDA pour l'apprentissage automatique
À propos du prétraitement des données des systèmes utilisant l'apprentissage automatique
Introduction à l'apprentissage automatique avec scikit-learn - De l'acquisition de données à l'optimisation des paramètres
Classification et régression dans l'apprentissage automatique
Apprentissage automatique
Vérification des performances du prétraitement des données pour l'apprentissage automatique (données numériques) (partie 1)
Recherche de semences aléatoires dans l'apprentissage automatique
Procédure d'apprentissage automatique de base: ② Préparer les données
Comment collecter des données d'apprentissage automatique
Sklearn de données déséquilibrées avec apprentissage automatique k-NN
[python] Techniques souvent utilisées dans l'apprentissage automatique
[Python] Première analyse de données / apprentissage automatique (Kaggle)
[Python] Enregistrement des résultats d'apprentissage (modèles) dans l'apprentissage automatique
[Mise à jour Ver1.3.1] J'ai créé une bibliothèque de prétraitement de données DataLiner pour l'apprentissage automatique
[Memo] Apprentissage automatique
Classification de l'apprentissage automatique
Exemple d'apprentissage automatique
Division des données de formation en apprentissage automatique et apprentissage / prédiction / vérification
Résumé des fonctions d'évaluation utilisées dans l'apprentissage automatique
Touchons une partie de l'apprentissage automatique avec Python
Prévision du cours de l'action à l'aide du Deep Learning [acquisition de données]
Histoire de l'analyse de données par apprentissage automatique
[Pour les débutants] Introduction à la vectorisation dans l'apprentissage automatique
Résumé du didacticiel d'apprentissage automatique
Apprentissage automatique sur le surapprentissage
Créez un environnement interactif pour l'apprentissage automatique avec Python
Apprentissage automatique ⑤ Résumé AdaBoost
Apprentissage automatique: supervisé - AdaBoost
Échantillonnage dans des données déséquilibrées
Outil MALSS (application) qui prend en charge l'apprentissage automatique en Python
Régression logistique d'apprentissage automatique
Défis d'apprentissage automatique de Coursera en Python: ex2 (retour logistique)
Comment diviser les données de formation en machine learning en variables objectives et autres dans Pandas
Outil MALSS (basique) qui prend en charge l'apprentissage automatique en Python
À propos des tests dans la mise en œuvre de modèles d'apprentissage automatique
Étudier l'apprentissage automatique ~ matplotlib ~
Régression linéaire d'apprentissage automatique
Mémo du cours d'apprentissage automatique
Bibliothèque d'apprentissage automatique dlib
Coursera Machine Learning Challenge en Python: ex1 (régression linéaire)
Prédiction de données chronologiques par AutoML (apprentissage automatique automatique)
Tentative d'inclusion du modèle d'apprentissage automatique dans le package python
Entropie croisée à revoir dans les devoirs de la semaine 2 de Coursera Machine Learning
Pré-traitement des données préfectorales
xgboost: modèle d'apprentissage automatique efficace pour les données de table