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
Ebben a gyakorlatban hozzon létre egy adatbázist, amely adatokat tárol az Írisz virág adatkészletéből és modelljeiből ugyanazon adatok alapján. Az Írisz-adatok az R- és Python-disztribúciókban is megtalálhatók, és az SQL machine learninghez készült gépi tanulási oktatóanyagokban használatosak.
A gyakorlat elvégzéséhez rendelkeznie kell az SQL Server Management Studio (SSMS) vagy egy másik olyan eszközzel, amely T-SQL-lekérdezéseket képes futtatni.
Az adatkészletet használó oktatóanyagok és rövid útmutatók a következők:
Az adatbázis létrehozása
Indítsa el az SQL Server Management Studiót, és nyisson meg egy új lekérdezési ablakot.
Hozzon létre egy új adatbázist ehhez a projekthez, és módosítsa a Lekérdezés ablak környezetét az új adatbázis használatára.
CREATE DATABASE irissql GO USE irissql GOAdjon hozzá néhány üres táblát: egyet az adatok tárolásához, egyet pedig a betanított modellek tárolásához. A iris_models táblázat más gyakorlatokban létrehozott szerializált modellek tárolására szolgál.
Az alábbi kód létrehozza a betanítási adatok tábláját.
DROP TABLE IF EXISTS iris_data; GO CREATE TABLE iris_data ( id INT NOT NULL IDENTITY PRIMARY KEY , "Sepal.Length" FLOAT NOT NULL, "Sepal.Width" FLOAT NOT NULL , "Petal.Length" FLOAT NOT NULL, "Petal.Width" FLOAT NOT NULL , "Species" VARCHAR(100) NOT NULL, "SpeciesId" INT NOT NULL );Futtassa a következő kódot a betanított modell tárolásához használt tábla létrehozásához. A Python-modellek SQL Serveren való mentéséhez szerializálni kell őket, és egy varbinary(max) típusú oszlopban kell tárolni őket.
DROP TABLE IF EXISTS iris_models; GO CREATE TABLE iris_models ( model_name VARCHAR(50) NOT NULL DEFAULT('default model') PRIMARY KEY, model VARBINARY(MAX) NOT NULL ); GOA modell tartalma mellett általában más hasznos metaadatokhoz is hozzáadhat oszlopokat, például a modell nevét, a betanítás dátumát, a forrásalgoritmust és paramétereket, a forrásadatokat stb. Egyelőre egyszerűnek tartjuk, és csak a modell nevét használjuk.
A táblázat feltöltése
A beépített Írisz-adatokat R-ből vagy Pythonból is beszerezheti. A Python vagy az R használatával betöltheti az adatokat egy adatkeretbe, majd beszúrhatja az adatbázis egyik táblájába. A betanítási adatok külső munkamenetből táblázatba való áthelyezése többlépéses folyamat:
- Tervezzen meg egy tárolt eljárást, amely megszerzi a kívánt adatokat.
- Hajtsa végre a tárolt eljárást az adatok tényleges lekéréséhez.
- Hozzon létre egy INSERT utasítást, ahová a beolvasott adatokat menteni kell.
Python-integrációval rendelkező rendszereken hozza létre a következő tárolt eljárást, amely Python-kóddal tölti be az adatokat.
CREATE PROCEDURE get_iris_dataset AS BEGIN EXEC sp_execute_external_script @language = N'Python', @script = N' from sklearn import datasets iris = datasets.load_iris() iris_data = pandas.DataFrame(iris.data) iris_data["Species"] = pandas.Categorical.from_codes(iris.target, iris.target_names) iris_data["SpeciesId"] = iris.target ', @input_data_1 = N'', @output_data_1_name = N'iris_data' WITH RESULT SETS (("Sepal.Length" float not null, "Sepal.Width" float not null, "Petal.Length" float not null, "Petal.Width" float not null, "Species" varchar(100) not null, "SpeciesId" int not null)); END; GOA kód futtatásakor a "Parancsok sikeresen befejeződött" üzenetet kell kapnia. Mindez azt jelenti, hogy a tárolt eljárás az Ön specifikációinak megfelelően lett létrehozva.
Alternatív megoldásként az R-integrációval rendelkező rendszereken hozzon létre egy R-t használó eljárást.
CREATE PROCEDURE get_iris_dataset AS BEGIN EXEC sp_execute_external_script @language = N'R', @script = N' library(RevoScaleR) data(iris) iris$SpeciesID <- c(unclass(iris$Species)) iris_data <- iris ', @input_data_1 = N'', @output_data_1_name = N'iris_data' WITH RESULT SETS (("Sepal.Length" float not null, "Sepal.Width" float not null, "Petal.Length" float not null, "Petal.Width" float not null, "Species" varchar(100) not null, "SpeciesId" int not null)); END; GOA tábla tényleges feltöltéséhez futtassa a tárolt eljárást, és adja meg azt a táblát, amelyben az adatokat meg kell írni. Futtatáskor a tárolt eljárás végrehajtja a Python- vagy R-kódot, amely betölti a beépített Írisz-adatkészletet, majd beszúrja az adatokat a iris_data táblába.
INSERT INTO iris_data ("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species", "SpeciesId") EXEC dbo.get_iris_dataset;Ha még nem ismeri a T-SQL-t, vegye figyelembe, hogy az INSERT utasítás csak új adatokat ad hozzá; nem ellenőrzi a meglévő adatokat, és nem törli és újraépíti a táblát. Ha nem szeretne több másolatot kapni ugyanazon adatokról egy táblában, először futtassa ezt az utasítást:
TRUNCATE TABLE iris_data. A T-SQL TRUNCATE TABLE utasítás törli a meglévő adatokat, de megőrzi a tábla szerkezetét.
Adatok lekérdezése
Érvényesítési lépésként futtasson egy lekérdezést az adatok feltöltésének megerősítéséhez.
Az Object Explorer Adatbázisok területén kattintson a jobb gombbal az irissql-adatbázisra , és indítsa el az új lekérdezést.
Futtasson néhány egyszerű lekérdezést:
SELECT TOP(10) * FROM iris_data; SELECT COUNT(*) FROM iris_data;
Következő lépések
Az alábbi rövid útmutatóban létrehoz egy gépi tanulási modellt, és menti egy táblába, majd a modell használatával előrejelzett eredményeket hoz létre.