[In-Database Python Analysis Tutorial mit SQL Server 2017] Schritt 4: Feature-Extraktion von Daten mit T-SQL

Vom Anfang des Tutorials

In-Database Python-Analyse für SQL-Entwickler

Vorheriger Schritt

Schritt 3: Suchen und Visualisieren von Daten

Nächster Schritt

Schritt 5: Trainieren und Speichern eines Modells mit T-SQL

Schritt 4: Merkmalsextraktion von Daten mit T-SQL

Nachdem wir die Daten untersucht haben, werden wir einige Erkenntnisse aus den Daten sammeln und mit dem Feature-Engineering fortfahren. Der Prozess der Merkmalsextraktion aus Rohdaten ist ein wichtiger Schritt in der fortgeschrittenen analytischen Modellierung.

In diesem Schritt erfahren Sie, wie Sie mit Transact-SQL-Funktionen Features aus Rohdaten extrahieren. Rufen Sie dann diese Funktion aus der gespeicherten Prozedur auf, um eine Tabelle mit den Feature-Werten zu erstellen.

Funktionsdefinition

Die in den Originaldaten aufgezeichneten Werte für die Entfernungsmessung des Messgeräts stellen möglicherweise keine geografische Entfernung oder Fahrstrecke dar. Daher werden die in diesem Datensatz verfügbaren Koordinaten verwendet, um die Entfernung zwischen der Einstiegsposition und der Ausschiffungsposition zu bestimmen. Berechnen. Verwenden Sie dazu den Haversine-Ausdruck (https://en.wikipedia.org/wiki/Haversine_formula) in Ihrer benutzerdefinierten Transact-SQL-Funktion.

Die T-SQL-Funktion "fnCalculateDistance" verwendet den Haversine-Ausdruck, um die Entfernung zu berechnen, und die T-SQL-Funktion "fnEngineerFeatures" erstellt eine Tabelle mit allen Funktionen.

Berechnen Sie die zurückgelegte Strecke mit fnCalculateDistance

Die T-SQL-Funktion "fnCalculateDistance" wird in SQL Server in Schritt 2 definiert: Importieren von Daten mit PowerShell in SQL Server (http://qiita.com/qio9o9/items/98df36982f1fbecdf5e7).

  1. Erweitern Sie im Objekt-Explorer von Management Studio die Option Programmierung> Funktionen> Skalarwertfunktionen.

  2. Klicken Sie mit der rechten Maustaste auf "fnCalculateDistance" und wählen Sie "Ändern", um das Transact-SQL-Skript in einem neuen Abfragefenster zu öffnen.

    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
    

--Diese Funktion ist eine Skalarwertfunktion, die einen einzelnen Datenwert eines vordefinierten Typs zurückgibt.

Speichern Sie Feature-Werte mit fnEngineerFeatures

Die T-SQL-Funktion "fnEngineerFeatures" wird in SQL Server in Schritt 2 definiert: Importieren von Daten mit PowerShell in SQL Server (http://qiita.com/qio9o9/items/98df36982f1fbecdf5e7).

  1. Erweitern Sie im Objekt-Explorer von Management Studio die Option Programmierung> Funktionen> Tabellenwertfunktionen.

  2. Klicken Sie mit der rechten Maustaste auf "fnCalculateDistance" und wählen Sie "Ändern", um das Transact-SQL-Skript in einem neuen Abfragefenster zu öffnen.

fnEngineerFeatures ist eine Tabellenwertfunktion, die mehrere Spalten als Eingabe verwendet und mehrere Spalten mit Feature-Wert zurückgibt. Der Zweck von "fnEngineerFeatures" besteht darin, einen Feature-Wertesatz zu erstellen, der für die Modellbildung verwendet wird. fnEngineerFeatures ruft fnCalculateDistance auf, um den linearen Abstand zwischen der Einstiegsposition und der Ausschiffungsposition zu ermitteln.

```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. Berechnen wir zur Überprüfung des Betriebs die geografische Entfernung für den Datensatz, bei dem der Wert für die Entfernung des Messgeräts auf 0 gesetzt ist, obwohl die Einstiegsposition und die Ausstiegsposition unterschiedlich sind.

        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

Wie Sie sehen können, wird die vom Messgerät gemeldete Entfernung nicht immer als Hinweis auf die geografische Entfernung aufgezeichnet. Diese Vorbehandlung ist ein Merkmal dafür, weshalb Engineering wichtig ist.

Im nächsten Schritt lernen Sie, wie Sie mit diesen Funktionen maschinelle Lernmodelle mit Python erstellen und trainieren.

Verknüpfung

Nächster Schritt

Schritt 5: Trainieren und Speichern eines Modells mit T-SQL

Vorheriger Schritt

Schritt 3: Suchen und Visualisieren von Daten

Vom Anfang des Tutorials

In-Database Python-Analyse für SQL-Entwickler

Quelle

Step 4: Create Data Features using T-SQL

Verwandte Artikel

Machine Learning Services with Python

Recommended Posts

[In-Database Python Analysis Tutorial mit SQL Server 2017] Schritt 4: Feature-Extraktion von Daten mit T-SQL
[In-Database Python Analysis-Lernprogramm mit SQL Server 2017] Schritt 2: Importieren Sie Daten mit PowerShell in SQL Server
[In-Database Python Analysis-Lernprogramm mit SQL Server 2017] Schritt 6: Verwenden des Modells
[In-Database Python Analysis Tutorial mit SQL Server 2017] Schritt 1: Laden Sie Beispieldaten herunter
[In-Database Python Analysis Tutorial mit SQL Server 2017] Schritt 5: Training und Speichern von Modellen mit T-SQL
[In-Database Python Analysis Tutorial mit SQL Server 2017]
Datenanalyse mit Python 2
Datenanalyse mit Python
Fordern Sie die Hauptkomponentenanalyse von Textdaten mit Python heraus
Datenanalyse mit Python-Pandas
Praktische Übung zur Datenanalyse mit Python ~ 2016 New Coder Survey Edition ~
Empfehlung zur Datenanalyse mit MessagePack
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Schreiben Sie den Felderstellungsknoten von SPSS Modeler mit Python neu. Merkmalsextraktion aus Zeitreihensensordaten
Empfehlungs-Tutorial mit Assoziationsanalyse (Python-Implementierung)
Empfehlung von Altair! Datenvisualisierung mit Python
Datenanalyse beginnend mit Python (Datenvorverarbeitung - maschinelles Lernen)
Python-Übungsdatenanalyse Zusammenfassung des Lernens, dass ich ungefähr 10 mit 100 Schlägen getroffen habe
Ich habe eine Funktion zum Abrufen von Daten aus der Datenbank spaltenweise mithilfe von SQL mit SQLite3 von Python [SQLite3, SQL, Pandas] erstellt.
Einführungsstudie zur Python-Ausgabe von Verkaufsdaten mit tapple-
Statische Analyse von Python-Code mit GitLab CI
Aufgezeichnete Umgebung für die Datenanalyse mit Python
Zusammenfassung der statistischen Datenanalysemethoden mit Python, die im Geschäftsleben verwendet werden können
Datenanalyse Python
[python] Um eine XML-Zeichenfolge zu generieren, ohne to_sql () von Pandas zu verwenden, und um Daten mit der OPENXML-Funktion in der gespeicherten Prozedur von SQL Server zu aktualisieren
Datenanalyse zur Verbesserung von POG 1 ~ Web Scraping mit Python ~
Erläuterung des Konzepts der Regressionsanalyse mit Python Teil 2
Holen Sie sich Amazon RDS (PostgreSQL) -Daten mithilfe von SQL mit Pandas
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
Versuchen Sie, die Bildkonvertierung mit OpenCV mit Python zu projizieren
Lesehinweis: Einführung in die Datenanalyse mit Python
Aufbau einer Datenanalyseumgebung mit Python (IPython Notebook + Pandas)
Berechnen Sie den Regressionskoeffizienten der einfachen Regressionsanalyse mit Python
Geschichte der Bildanalyse von PDF-Dateien und Datenextraktion
Liste des Python-Codes, der bei der Big-Data-Analyse verwendet wird
Erläuterung des Konzepts der Regressionsanalyse mit Python Teil 1
Ein Server, der POST-Daten mit flask / python wiedergibt
Flugzeugskelettanalyse mit Python (4) Umgang mit erzwungener Verschiebung
Verarbeiten Sie CSV-Daten mit Python (Zählverarbeitung mit Pandas)
Hauptkomponentenanalyse mit Python von nim mit nimpy
Erläuterung des Konzepts der Regressionsanalyse mit Python Extra 1
[Grundlagen der Datenwissenschaft] Sammeln von Daten aus RSS mit Python
[Technisches Buch] Einführung in die Datenanalyse mit Python -1 Kapitel Einführung-
ODBC-Zugriff auf SQL Server von Linux mit Python
Ich kenne? Datenanalyse mit Python oder Dingen, die Sie mit numpy verwenden möchten, wenn Sie möchten
"Zeitreihenanalyse von Wirtschafts- und Finanzdaten messen" Das Problem am Ende des Kapitels mit Python lösen