[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

Dès le début du tutoriel

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

Étape précédente

Étape 3: Recherche et visualisation des données

L'étape suivante

Étape 5: Formation et enregistrement d'un modèle à l'aide de T-SQL

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

Après avoir exploré les données, nous rassemblerons des informations à partir des données et passerons à l'ingénierie des fonctionnalités. Le processus d'extraction de caractéristiques à partir de données brutes est une étape importante dans la modélisation analytique avancée.

Dans cette étape, vous apprendrez à utiliser les fonctions Transact-SQL pour extraire des fonctionnalités à partir de données brutes. Appelez ensuite cette fonction à partir de la procédure stockée pour créer une table contenant les valeurs de fonctionnalité.

Définition des fonctions

Les valeurs de distance en mètres enregistrées dans les données d'origine peuvent ne pas représenter la distance géographique ou la distance de déplacement, de sorte que les coordonnées disponibles dans cet ensemble de données sont utilisées pour diriger la distance entre la position d'embarquement et la position de débarquement. Calculer. Pour ce faire, utilisez l'expression Haversine (https://en.wikipedia.org/wiki/Haversine_formula) dans votre fonction Transact-SQL personnalisée.

La fonction T-SQL fnCalculateDistance utilise l'expression Haversine pour calculer la distance, et la fonction T-SQL fnEngineerFeatures crée une table contenant toutes les caractéristiques.

Calculez la distance parcourue en utilisant fnCalculateDistance

La fonction T-SQL fnCalculateDistance 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> Fonctions> Fonctions de valeur scalaire.

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

    CREATE FUNCTION [dbo].[fnCalculateDistance](@Lat1 float, @Long1 float, @Lat2 float, @Long2 float)
    -- User-defined function that calculates the direct distance between two geographical coordinates
    RETURNS float
    AS
    BEGIN
      DECLARE @distance decimal(28, 10)
      -- Convert to radians
      SET @Lat1 = @Lat1 / 57.2958
      SET @Long1 = @Long1 / 57.2958
      SET @Lat2 = @Lat2 / 57.2958
      SET @Long2 = @Long2 / 57.2958
      -- Calculate distance
      SET @distance = (SIN(@Lat1) * SIN(@Lat2)) + (COS(@Lat1) * COS(@Lat2) * COS(@Long2 - @Long1))
      --Convert to miles
      IF @distance <> 0
      BEGIN
        SET @distance = 3958.75 * ATAN(SQRT(1 - POWER(@distance, 2)) / @distance);
      END
      RETURN @distance
    END
    GO
    

Enregistrer les valeurs des fonctionnalités à l'aide de fnEngineerFeatures

La fonction T-SQL fnEngineerFeatures 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> Fonctions> Fonctions de valeur de table.

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

fnEngineerFeatures est une fonction table qui prend plusieurs colonnes en entrée et renvoie plusieurs colonnes à valeur caractéristique. Le but de fnEngineerFeatures est de créer un jeu de valeurs de fonction à utiliser pour la construction de modèles. fnEngineerFeatures appelle fnCalculateDistance pour obtenir la distance linéaire entre la position d'embarquement et la position de débarquement.

```SQL:fnEngineerFeatures
CREATE FUNCTION [dbo].[fnEngineerFeatures](
@passenger_count int = 0,
@trip_distance float = 0,
@trip_time_in_secs int = 0,
@pickup_latitude float = 0,
@pickup_longitude float = 0,
@dropoff_latitude float = 0,
@dropoff_longitude float = 0)
RETURNS TABLE
AS
  RETURN
  (
  -- Add the SELECT statement with parameter references here
  SELECT
    @passenger_count AS passenger_count,
    @trip_distance AS trip_distance,
    @trip_time_in_secs AS trip_time_in_secs,
    [dbo].[fnCalculateDistance](@pickup_latitude,@pickup_longitude,@dropoff_latitude,@dropoff_longitude) AS direct_distance
  )
GO
```
  1. Pour vérifier l'opération, calculons la distance géographique pour l'enregistrement où la valeur de distance du compteur est mise à 0 même si la position d'embarquement et la position de descente sont différentes.

        SELECT tipped, fare_amount, passenger_count,(trip_time_in_secs/60) as TripMinutes,
        trip_distance, pickup_datetime, dropoff_datetime,
        dbo.fnCalculateDistance(pickup_latitude, pickup_longitude,  dropoff_latitude, dropoff_longitude) AS direct_distance
        FROM nyctaxi_sample
        WHERE pickup_longitude != dropoff_longitude and pickup_latitude != dropoff_latitude and trip_distance = 0
        ORDER BY trip_time_in_secs DESC
    

    sqldev-python-step4-1-gho9o9.png

Comme vous pouvez le voir, la distance indiquée par le compteur n'est pas toujours enregistrée comme une indication de distance géographique. Ce prétraitement en est une caractéristique, c'est pourquoi l'ingénierie est importante.

Dans l'étape suivante, vous apprendrez à utiliser ces fonctionnalités pour créer et entraîner des modèles d'apprentissage automatique à l'aide de Python.

Lien

L'étape suivante

Étape 5: Formation et enregistrement d'un modèle à l'aide de T-SQL

Étape précédente

Étape 3: Recherche et visualisation des données

Dès le début du tutoriel

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

La source

Step 4: Create Data Features using T-SQL

Article connexe

Machine Learning Services with Python

Recommended Posts

[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 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 1: Télécharger des exemples de données
[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
[Didacticiel d'analyse Python en base de données avec SQL Server 2017]
Analyse de données avec python 2
Analyse de données avec Python
Défiez l'analyse des composants principaux des données textuelles avec Python
Analyse de données à l'aide de pandas python
Exercice pratique d'analyse de données avec Python ~ 2016 New Coder Survey Edition ~
Recommandation d'analyse des données à l'aide de MessagePack
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Réécrivez le nœud de création de champ de SPSS Modeler avec Python. Extraction de caractéristiques à partir de données de capteurs de séries temporelles
Tutoriel de recommandation utilisant l'analyse d'association (implémentation python)
Recommandation d'Altair! Visualisation des données avec Python
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
Analyse des données de pratique Python Résumé de l'apprentissage que j'ai atteint environ 10 avec 100 coups
J'ai créé une fonction pour récupérer les données de la colonne de base de données par colonne en utilisant sql avec sqlite3 de python [sqlite3, sql, pandas]
Étude introductive sur Python-Sortie des données de vente à l'aide de tapple-
Analyse statique du code Python avec GitLab CI
Environnement enregistré pour l'analyse des données avec Python
Résumé des méthodes d'analyse de données statistiques utilisant Python qui peuvent être utilisées en entreprise
Analyse de données python
[python] Autour de la génération d'une chaîne de caractères XML sans utiliser to_sql () de pandas et de la mise à jour des données à l'aide de la fonction OPENXML dans la procédure stockée de SQL Server
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
Explication du concept d'analyse de régression à l'aide de python Partie 2
Obtenez des données Amazon RDS (PostgreSQL) à l'aide de SQL avec pandas
[OpenCV / Python] J'ai essayé l'analyse d'image de cellules avec OpenCV
Essayez de projeter la conversion d'image en utilisant OpenCV avec Python
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)
Calculer le coefficient de régression d'une analyse de régression simple avec python
Histoire de l'analyse d'image du fichier PDF et de l'extraction de données
Liste du code Python utilisé dans l'analyse de Big Data
Explication du concept d'analyse de régression à l'aide de Python Partie 1
Un serveur qui fait écho aux données POSTées avec flask / python
Analyse du squelette de plan avec Python (4) Gestion du déplacement forcé
Traiter les données csv avec python (traitement du comptage à l'aide de pandas)
Analyse des composants principaux à l'aide de python de nim avec nimpy
Explication du concept d'analyse de régression à l'aide de Python Extra 1
[Bases de la science des données] Collecte de données depuis RSS avec python
[Livre technique] Introduction à l'analyse de données avec Python -1 Chapitre Introduction-
Accès ODBC à SQL Server depuis Linux avec Python
Je connais? Analyse de données à l'aide de Python ou de choses que vous souhaitez utiliser quand vous le souhaitez avec numpy
"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