[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 3: Exploration et visualisation des données

Dès le début du tutoriel

Analyse Python en base de données pour les développeurs SQL

Étape précédente

Étape 2: importer des données vers SQL Server à l'aide de PowerShell

L'étape suivante

Étape 4: Extraction de fonctionnalités des données à l'aide de T-SQL

Étape 3: Exploration et visualisation des données

Le développement de solutions de science des données implique généralement une exploration et une visualisation de données intensives. Dans cette étape, vous explorerez les exemples de données et générerez des graphiques. En outre, vous apprendrez à sérialiser des objets graphiques en Python et à désérialiser et créer des tracés.

[!NOTE] Ce tutoriel montre uniquement le modèle de classification binomiale. Il est également possible de construire d'autres modèles tels que la classification par régression et la classification polynomiale.

Confirmation des données

L'ensemble de données d'origine fournit l'identifiant de taxi et le dossier de conduite dans des fichiers séparés, mais se joint à medallion, hack_license et pickup_datetime comme clés pour rendre les exemples de données plus faciles à utiliser. Les enregistrements utilisés sont échantillonnés à 1% du nombre original d'enregistrements. L'ensemble de données échantillonné comprend 1 703 957 lignes et 23 colonnes.

** Identificateur de taxi **

** Dossier de conduite et fiche tarifaire **

――Chaque dossier de conduite comprend le lieu et l'heure d'embarquement et de débarquement, ainsi que la distance parcourue.

Créer des tracés en Python dans T-SQL

La visualisation est importante pour comprendre la distribution des données et des valeurs aberrantes, et Python fournit de nombreux packages pour la visualisation des données. Le module matplotlib comprend de nombreuses fonctionnalités pour créer des histogrammes, des graphiques en nuage de points, des moustaches et d'autres graphiques d'exploration de données.

Dans cette section, vous apprendrez à travailler avec des tracés à l'aide de procédures stockées. Ici, le tracé est traité comme des données de type varbinary.

Stocker le tracé en tant que type de données varbinary

Le package ** RevoScalePy ** de la bibliothèque Python inclus dans SQL Server 2017 Machine Learning Services est équivalent au package RevoScaleR de la bibliothèque R. Cet exemple utilise rxHistogram pour tracer un histogramme basé sur les données de résultat d'une requête Transact-SQL. Enveloppez-le dans une procédure stockée PlotHistogram pour en faciliter l'utilisation.

Cette procédure stockée renvoie un objet de dessin Python sérialisé sous la forme d'un flux de données varbinary. Vous ne pouvez pas afficher les données binaires directement, mais vous pouvez utiliser le code Python sur le client pour désérialiser les données binaires et enregistrer le fichier image sur l'ordinateur client.

Définir une procédure stockée SerializePlots

La procédure stockée «SerializePlots» est définie dans SQL Server à l'étape 2: Importer des données vers SQL Server à l'aide de PowerShell (http://qiita.com/qio9o9/items/98df36982f1fbecdf5e7).

  1. Dans l'Explorateur d'objets de Management Studio, développez Programmation> Procédures stockées.

  2. Cliquez avec le bouton droit de la souris sur SerializePlots et sélectionnez Modifier pour ouvrir le script Transact-SQL dans une nouvelle fenêtre de requête.

    
    CREATE PROCEDURE [dbo].[SerializePlots]
    AS
    BEGIN
      SET NOCOUNT ON;
      DECLARE @query nvarchar(max) =
      N'SELECT cast(tipped as int) as tipped, tip_amount, fare_amount FROM [dbo].[nyctaxi_sample]'
      EXECUTE sp_execute_external_script
      @language = N'Python',
      @script = N'
    import matplotlib
    matplotlib.use("Agg")
    import matplotlib.pyplot as plt
    import pandas as pd
    import pickle
    
    fig_handle = plt.figure()
    plt.hist(InputDataSet.tipped)
    plt.xlabel("Tipped")
    plt.ylabel("Counts")
    plt.title("Histogram, Tipped")
    plot0 = pd.DataFrame(data =[pickle.dumps(fig_handle)], columns =["plot"])
    plt.clf()
    
    plt.hist(InputDataSet.tip_amount)
    plt.xlabel("Tip amount ($)")
    plt.ylabel("Counts")
    plt.title("Histogram, Tip amount")
    plot1 = pd.DataFrame(data =[pickle.dumps(fig_handle)], columns =["plot"])
    plt.clf()
    
    plt.hist(InputDataSet.fare_amount)
    plt.xlabel("Fare amount ($)")
    plt.ylabel("Counts")
    plt.title("Histogram, Fare amount")
    plot2 = pd.DataFrame(data =[pickle.dumps(fig_handle)], columns =["plot"])
    plt.clf()
    
    plt.scatter( InputDataSet.fare_amount, InputDataSet.tip_amount)
    plt.xlabel("Fare Amount ($)")
    plt.ylabel("Tip Amount ($)")
    plt.title("Tip amount by Fare amount")
    plot3 = pd.DataFrame(data =[pickle.dumps(fig_handle)], columns =["plot"])
    plt.clf()
    
    OutputDataSet = plot0.append(plot1, ignore_index=True).append(plot2, ignore_index=True).append(plot3, ignore_index=True)
    ',
                                     @input_data_1 = @query
      WITH RESULT SETS ((plot varbinary(max)))
    END
    
    GO
    
    

Sortie de données varbinary sous forme de fichier image

  1. Exécutez la requête suivante dans Management Studio.

    EXEC [dbo].[SerializePlots]
    

    sqldev-python-step3-1-gho9o9.png

  2. Modifiez la chaîne de connexion dans le script Python DeserializeSavePlots.py dans les fichiers téléchargés en fonction de votre environnement, puis exécutez-la.

** Pour l'authentification SQL Server **

```python:DeserializeSavePlots
import pyodbc
import pickle
import os
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER={SERVER_NAME};DATABASE={DB_NAME};UID={USER_NAME};PWD={PASSOWRD}')
cursor = cnxn.cursor()
cursor.execute("EXECUTE [dbo].[SerializePlots]")
tables = cursor.fetchall()
for i in range(0, len(tables)):
    fig = pickle.loads(tables[i][0])
    fig.savefig(str(i)+'.png')
print("The plots are saved in directory: ",os.getcwd())
```

** Pour l'authentification Windows **

```Python:DeserializeSavePlots.py
import pyodbc
import pickle
import os
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER={SERVER_NAME};DATABASE={DB_NAME};Trusted_Connection=yes;')
cursor = cnxn.cursor()
cursor.execute("EXECUTE [dbo].[SerializePlots]")
tables = cursor.fetchall()
for i in range(0, len(tables)):
    fig = pickle.loads(tables[i][0])
    fig.savefig(str(i)+'.png')
print("The plots are saved in directory: ",os.getcwd())
```

> [!NOTE]

Faites correspondre la version d'exécution Python sur le serveur et le client. Faites également correspondre la version de la bibliothèque Python telle que matplotlib utilisée par le client avec le serveur ou créez-en une version supérieure.

  1. Si la connexion réussit, le résultat suivant s'affiche.

    sqldev-python-step3-2-gho9o9.png

  2. Quatre fichiers sont créés dans le répertoire de travail Python.

Affiche le nombre de jetons obtenus et le nombre non obtenu. sqldev-python-step3-3-1-gho9o9.png

Affiche la distribution des quantités de jetons. sqldev-python-step3-3-2-gho9o9.png

Affiche la répartition des tarifs. sqldev-python-step3-3-3-gho9o9.png

Il s'agit d'un diagramme de dispersion avec le tarif sur l'axe des x et le montant de la puce sur l'axe des y. sqldev-python-step3-3-4-gho9o9.png

Lien

L'étape suivante

Étape 4: Extraction de fonctionnalités des données à l'aide de T-SQL

Étape précédente

Étape 2: importer des données vers SQL Server à l'aide de PowerShell

Dès le début du tutoriel

Analyse Python en base de données pour les développeurs SQL

La source

Step 3: Explore and Visualize the Data

Article connexe

Machine Learning Services with Python

Recommended Posts

[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 3: Exploration et visualisation des données
[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 1: Télécharger des exemples de données
[Didacticiel d'analyse Python en base de données avec SQL Server 2017]
[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 2: importer des données dans SQL Server à l'aide de PowerShell
[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 6: Utilisation du modèle
[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 4: Extraction de fonctionnalités de données à l'aide de T-SQL
[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 5: Formation et enregistrement des modèles à l'aide de T-SQL
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Analyse de données avec python 2
Analyse de données avec Python
Un beau dessin graphique avec Python -seaborn facilite l'analyse et la visualisation des données Partie 1
Un beau dessin graphique avec Python -seaborn facilite l'analyse et la visualisation des données Partie 2
Visualisez facilement vos données avec Python seaborn.
Construction de pipeline de données avec Python et Luigi
Visualisation et analyse des informations de localisation des données Twitter Stava
Analyse des tweets avec Python, Mecab et CaboCha
Recommandation d'Altair! Visualisation des données avec Python
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Acquisition et visualisation des données de capteurs pour la croissance des plantes avec Intel Edison et Python
Analyse de données python
Implémentez "Data Visualization Design # 3" avec pandas et matplotlib
Lancer un serveur Web avec Python et Flask
[CGI] Exécutez le programme Python du serveur avec Vue.js + axios et obtenez les données de sortie
Créez rapidement un tableau de bord d'analyse de données Python avec Streamlit et déployez-le sur AWS
Analyse des données financières par pandas et leur visualisation (2)
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
Analyse des données financières par pandas et leur visualisation (1)
Note de lecture: Introduction à l'analyse de données avec Python
Construction d'un environnement d'analyse de données avec Python (notebook IPython + Pandas)
Vue d'ensemble et astuces de Seaborn avec visualisation de données statistiques
Défiez l'analyse des composants principaux des données textuelles avec Python
[Ingénierie de contrôle] Visualisation et analyse du contrôle PID et de la réponse par étapes
Un serveur qui fait écho aux données POSTées avec flask / python
[Tutoriel PyTorch ⑦] Visualisation des modèles, des données et de la formation avec Tensorboard
Étudiez l'échange de données Java et Python avec Apache Arrow
Accès ODBC à SQL Server depuis Linux avec Python
Bibliothèques de visualisation de données Python
Présentation de l'analyse de données python
Analyse vocale par python
Visualisation des données avec les pandas
Modèle d'analyse de données Python
[Tutoriel Python] Structure des données
Analyse vocale par python
Serveur local avec python
Visualisation de la logistique avec Python
Créez un arbre de décision à partir de zéro avec Python et comprenez-le (3. Bibliothèque d'analyse de données édition Pandas)
"Analyse des séries chronologiques de mesure des données économiques et financières" Résolution du problème de fin de chapitre avec Python
J'ai essayé la même analyse de données avec kaggle notebook (python) et PowerBI en même temps ①
Analyse et partage faciles avec re: dash, un outil de visualisation de données open source Partie 1-Installation
écran et écran partagé avec connexion python et ssh au serveur distant
Effectuer une analyse isocurrent des canaux en eau libre avec Python et matplotlib
Accédez au serveur SQL de l'hôte avec python27 / pyodbc sur le conteneur
20200329_Introduction à l'analyse de données avec Python 2nd Edition Personal Summary
Débarrassez-vous des données sales avec Python et les expressions régulières
Résolvez le livre en spirale (algorithme et structure de données) avec python!
Essayez d'extraire la table de données d'Azure SQL Server avec pyodbc
Créer un environnement Python et transférer des données vers le serveur
<Python> Construisez un serveur dédié pour l'analyse des données Jupyter Notebook