Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Sql Server 2016 (13.x) és újabb verziók
felügyelt Azure SQL-példány
Az ötrészes oktatóanyag-sorozat harmadik részében megtanulhatja, hogyan hozhat létre funkciókat nyers adatokból egy Transact-SQL függvény használatával. Ezután meghívja ezt a függvényt egy SQL-ben tárolt eljárásból, hogy létrehozhasson egy táblát, amely tartalmazza a funkcióértékeket.
Ebben a cikkben a következőket fogja megismerni:
- Egyéni függvény módosítása az utazási távolság kiszámításához
- A funkciók mentése másik egyéni függvény használatával
Az első részben telepítette az előfeltételeket, és visszaállította a mintaadatbázist.
A második részben áttekintette a mintaadatokat, és létrehozott néhány diagramot.
A negyedik részben betölti a modulokat, és meghívja a szükséges függvényeket a modell létrehozásához és betanítása egy SQL Server által tárolt eljárás használatával.
Az ötödik részben megtanulhatja, hogyan lehet üzembe helyezni a negyedik részben betanított és mentett modelleket.
Az ötödik részben megtanulhatja, hogyan lehet üzembe helyezni a negyedik részben betanított és mentett modelleket.
Tudnivalók a szolgáltatásfejlesztésről
Több adatfeltárás után összegyűjtött néhány megállapítást az adatokból, és készen áll a funkciófejlesztésre. Az elemzési modellek létrehozásának kritikus lépése, hogy értelmes funkciókat hozzon létre a nyers adatokból.
Ebben az adatkészletben a távolságértékek a jelentett mérőtávolságon alapulnak, és nem feltétlenül a földrajzi távolságot vagy a ténylegesen megtett távolságot jelölik. Ezért ki kell számítania a felvételi és a kiszállási pontok közötti közvetlen távolságot, az NYC Taxi adatkészlet forrásában elérhető koordináták felhasználásával. Ezt a Haversine képlet használatával teheti meg egy egyéni Transact-SQL függvényben.
Egy egyéni T-SQL-függvényt, az fnCalculateDistance függvényt fogja használni a távolság kiszámításához a Haversine képlet használatával, és egy második egyéni T-SQL-függvényt( fnEngineerFeatures) használva hozzon létre egy táblázatot, amely tartalmazza az összes funkciót.
A teljes folyamat a következő:
A számításokat végrehajtó T-SQL-függvény létrehozása
A függvény meghívása a funkcióadatok létrehozásához
A szolgáltatásadatok mentése táblázatba
Utazás távolságának kiszámítása az fnCalculateDistance használatával
Az oktatóanyag előkészítése során az fnCalculateDistance függvényt le kellett töltenie és regisztrálnia kellett az SQL Serverrel. Szánjon egy percet a kód áttekintésére.
A Management Studióban bontsa ki a Programozhatóság, a Függvények , majd a Skaláris értékű függvények elemet.
Kattintson a jobb gombbal az fnCalculateDistance elemre, és válassza a Módosítás lehetőséget a Transact-SQL szkript új lekérdezési ablakban való megnyitásához.
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 GOA függvény skaláris értékű függvény, amely egyetlen előre definiált adatértéket ad vissza.
A szélességi és hosszúsági értékeket bemenetként fogadja, amelyeket az utazás felvételi és leadási helyszíneiről szerez be. A Haversine képlet radiánokká alakítja a helyeket, és ezekkel az értékekkel kiszámítja a két hely közötti mérföldekben kifejezett közvetlen távolságot.
A funkciók létrehozása az fnEngineerFeatures használatával
Ha a számított értékeket egy olyan táblához szeretné hozzáadni, amely a modell betanításához használható, egy másik függvényt, az fnEngineerFeatures függvényt fogja használni. Az új függvény meghívja a korábban létrehozott T-SQL-függvényt, az fnCalculateDistance függvényt a pick-up és a legördülő helyek közötti közvetlen távolság lekéréséhez.
Szánjon egy percet az egyéni T-SQL-függvény, a fnEngineerFeatures kódjának áttekintésére, amelyet az útmutató előkészítése során létre kellett volna hoznia.
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 ) GOEz a táblaértékű függvény, amely több oszlopot használ bemenetként, és több funkcióoszlopot tartalmazó táblát ad ki.
Ennek a függvénynek az a célja, hogy új funkciókat hozzon létre a modell létrehozásához.
Annak ellenőrzése érdekében, hogy ez a függvény működik-e, használja azoknak az utaknak a földrajzi távolságának kiszámítására, ahol a mért távolság nullával egyenlő volt, de a felvételi és lerakási helyek eltérőek voltak.
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 DESCMint látható, a mérő által jelentett távolság nem mindig felel meg a földrajzi távolságnak. Ezért olyan fontos a funkciófejlesztés. Ezekkel a továbbfejlesztett adatfunkciókkal gépi tanulási modelleket taníthat be R használatával.
Következő lépések
Ebben a cikkben a következőt találja:
- Egyéni függvény módosítása az utazási távolság kiszámításához
- A funkciók mentése másik egyéni függvény használatával