Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
usługi Azure SQL Managed Instance
W tym ćwiczeniu utwórz bazę danych do przechowywania danych z zestawu danych i modeli Iris flower na podstawie tych samych danych. Zestaw danych Iris jest uwzględniany zarówno w dystrybucjach R i Pythona, i jest używany w samouczkach dotyczących uczenia maszynowego SQL.
Aby ukończyć to ćwiczenie, należy mieć program SQL Server Management Studio (SSMS) lub inne narzędzie, które może uruchamiać zapytania T-SQL.
Samouczki i szybkie starty używające tego zestawu danych obejmują następujące elementy:
Tworzenie bazy danych
Uruchom program SQL Server Management Studio i otwórz nowe okno Zapytanie .
Utwórz nową bazę danych dla tego projektu i zmień kontekst okna Zapytania , aby użyć nowej bazy danych.
CREATE DATABASE irissql GO USE irissql GODodaj puste tabele: jedną do przechowywania danych i jedną do przechowywania wytrenowanych modeli. Tabela iris_models służy do przechowywania serializowanych modeli generowanych w innych ćwiczeniach.
Poniższy kod tworzy tabelę dla danych treningowych.
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 );Uruchom następujący kod, aby utworzyć tabelę używaną do przechowywania wytrenowanego modelu. Aby zapisać modele języka Python (lub R) w programie SQL Server, muszą być serializowane i przechowywane w kolumnie typu varbinary(max).
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 ); GOOprócz zawartości modelu zazwyczaj można również dodawać kolumny dla innych przydatnych metadanych, takich jak nazwa modelu, data jego wytrenowania, algorytm źródłowy i parametry, dane źródłowe itd. Na razie zachowamy prostotę i użyjemy tylko nazwy modelu.
Wypełnianie tabeli
Wbudowane dane dotyczące irysów można uzyskać z języka R lub języka Python. Za pomocą języka Python lub R można załadować dane do ramki danych, a następnie wstawić je do tabeli w bazie danych. Przenoszenie danych treningowych z sesji zewnętrznej do tabeli jest procesem wieloetapowym:
- Zaprojektuj procedurę składowaną, która pobiera wymagane dane.
- Uruchom procedurę składowaną, aby pobrać dane.
- Skonstruuj instrukcję INSERT, aby określić miejsce zapisania pobranych danych.
W systemach z integracją języka Python utwórz następującą procedurę składowaną, która używa kodu języka Python do załadowania danych.
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; GOPo uruchomieniu tego kodu powinien zostać wyświetlony komunikat "Polecenia zostały ukończone pomyślnie". Oznacza to, że procedura składowana została utworzona zgodnie ze specyfikacjami.
Alternatywnie w systemach z integracją języka R utwórz procedurę, która używa języka R.
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; GOAby faktycznie wypełnić tabelę, uruchom procedurę składowaną i określ tabelę, w której mają być zapisywane dane. Po uruchomieniu procedura składowana wykonuje kod języka Python lub R, który ładuje wbudowany zestaw danych Iris, a następnie wstawia dane do tabeli iris_data .
INSERT INTO iris_data ("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species", "SpeciesId") EXEC dbo.get_iris_dataset;Jeśli dopiero zaczynasz korzystać z języka T-SQL, pamiętaj, że instrukcja INSERT dodaje tylko nowe dane; nie będzie sprawdzać istniejących danych ani usuwać i ponownie kompilować tabelę. Aby uniknąć pobierania wielu kopii tych samych danych w tabeli, możesz najpierw uruchomić następującą instrukcję:
TRUNCATE TABLE iris_data. Instrukcja T-SQL TRUNCATE TABLE usuwa istniejące dane, ale zachowuje strukturę tabeli bez zmian.
Zapytaj dane
W ramach kroku weryfikacji uruchom zapytanie, aby potwierdzić przekazanie danych.
W Eksploratorze obiektów w obszarze Bazy danych kliknij prawym przyciskiem myszy bazę danych irissql i uruchom nowe zapytanie.
Uruchom kilka prostych zapytań:
SELECT TOP(10) * FROM iris_data; SELECT COUNT(*) FROM iris_data;
Dalsze kroki
W poniższym szybkim starcie utworzysz model uczenia maszynowego, zapiszesz go w tabeli, a następnie użyjesz modelu do wygenerowania przewidywanych wyników.