Het proces voor team gegevens wetenschap in actie-een Azure HDInsight Hadoop cluster op een gegevensset van 1 TB gebruikenThe Team Data Science Process in action - Using an Azure HDInsight Hadoop Cluster on a 1-TB dataset

In deze walkthrough wordt gedemonstreerd hoe u het team data Science-proces in een end-to-end-scenario met een Azure HDInsight Hadoop-cluster kunt gebruiken om een van de openbaar beschik bare Criteo -gegevens sets op te slaan, te verkennen, te bouwen en te bemonsteren.This walkthrough demonstrates how to use the Team Data Science Process in an end-to-end scenario with an Azure HDInsight Hadoop cluster to store, explore, feature engineer, and down sample data from one of the publicly available Criteo datasets. Er wordt gebruikgemaakt van Azure Machine Learning voor het bouwen van een binair classificatie model op basis van deze gegevens.It uses Azure Machine Learning to build a binary classification model on this data. Ook wordt uitgelegd hoe u een van deze modellen publiceert als een webservice.It also shows how to publish one of these models as a Web service.

Het is ook mogelijk om een IPython-notebook te gebruiken voor het uitvoeren van de taken die in dit overzicht worden weer gegeven.It is also possible to use an IPython notebook to accomplish the tasks presented in this walkthrough. Gebruikers die deze aanpak willen proberen, moeten het Criteo-overzicht raadplegen met behulp van een component ODBC-verbindings onderwerp.Users who would like to try this approach should consult the Criteo walkthrough using a Hive ODBC connection topic.

Beschrijving van de Criteo-gegevenssetCriteo Dataset Description

De Criteo-gegevens zijn een klik op een voor Spellings-dataset die 370 GB aan gzip gecomprimeerde TSV-bestanden (~ 1,3 TB niet-gecomprimeerd) is, met meer dan 4.300.000.000 records.The Criteo data is a click prediction dataset that is 370 GB of gzip compressed TSV files (~1.3 TB uncompressed), comprising more than 4.3 billion records. Het wordt opgehaald van 24 dagen aan geklikte gegevens die beschikbaar zijn gesteld door Criteo.It is taken from 24 days of click data made available by Criteo. Voor het gemak van gegevens wetenschappers zijn de gegevens die voor ons zijn beschikbaar om te experimenteren, uitgepakt.For the convenience of data scientists, the data available to us to experiment with has been unzipped.

Elke record in deze gegevensset bevat 40 kolommen:Each record in this dataset contains 40 columns:

  • de eerste kolom is een label kolom die aangeeft of een gebruiker op een add (waarde 1) klikt of niet op een (waarde 0)the first column is a label column that indicates whether a user clicks an add (value 1) or does not click one (value 0)
  • de volgende 13 kolommen zijn numeriek ennext 13 columns are numeric, and
  • laatste 26 zijn categorische kolommenlast 26 are categorical columns

De kolommen zijn geanonimiseerd en gebruiken een reeks genummerde namen: Kol1 (voor de kolom Label) naar Col40 (voor de laatste categorische kolom).The columns are anonymized and use a series of enumerated names: "Col1" (for the label column) to 'Col40" (for the last categorical column).

Hier volgt een fragment van de eerste 20 kolommen van twee waarnemingen (rijen) van deze gegevensset:Here is an excerpt of the first 20 columns of two observations (rows) from this dataset:

Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10 Col11 Col12 Col13 Col14 Col15 Col16 Col17 Col18 Col19 Col20

0 40 42 2 54 3 0 0 2 16 0 1 4448 4 1acfe1ee 1b2ff61f 2e8b2631 6faef306 c6fc10d3 6fcd6dcb

0 24 27 5 0 2 1 3 10064 9a8cb066 7a06385f 417e6103 2170fc56 acf676aa 6fcd6dcb

Er ontbreken waarden in de kolommen numeriek en categorische in deze gegevensset.There are missing values in both the numeric and categorical columns in this dataset. Een eenvoudige methode voor het afhandelen van de ontbrekende waarden wordt beschreven.A simple method for handling the missing values is described. Aanvullende details van de gegevens worden onderzocht wanneer ze worden opgeslagen in Hive-tabellen.Additional details of the data are explored when storing them into Hive tables.

Definitie: aantal aan /uit (plaats): deze waarde is het percentage klikken in de gegevens.Definition: Clickthrough rate (CTR): This metric is the percentage of clicks in the data. In deze Criteo-gegevensset bevindt de afdeling zich ongeveer 3,3% of 0,033.In this Criteo dataset, the CTR is about 3.3% or 0.033.

Voor beelden van voorspellings takenExamples of prediction tasks

Er zijn twee voor beelden van voorspellings problemen opgelost in deze walkthrough:Two sample prediction problems are addressed in this walkthrough:

  1. Binaire classificatie : Hiermee wordt voor speld of een gebruiker op een add:Binary classification : Predicts whether a user clicked an add:

    • Klasse 0: Nee klikkenClass 0: No Click
    • Klasse 1: Klik opClass 1: Click
  2. Regressie : voor spelt de kans op een AD-klik van de gebruikers functies.Regression : Predicts the probability of an ad click from user features.

Een HDInsight Hadoop-cluster voor data Science instellenSet Up an HDInsight Hadoop cluster for data science

Notitie

Deze stap is doorgaans een beheer taak.This step is typically an Admin task.

Stel uw Azure data Science-omgeving in voor het bouwen van predictive analytics oplossingen met HDInsight-clusters in drie stappen:Set up your Azure Data Science environment for building predictive analytics solutions with HDInsight clusters in three steps:

  1. Een opslag account maken: dit opslag account wordt gebruikt om gegevens op te slaan in Azure Blob Storage.Create a storage account: This storage account is used to store data in Azure Blob Storage. De gegevens die in HDInsight-clusters worden gebruikt, worden hier opgeslagen.The data used in HDInsight clusters is stored here.

  2. Azure HDInsight Hadoop clusters voor data Science aanpassen: met deze stap maakt u een Azure HDInsight Hadoop cluster met 64-bits Anaconda python 2,7 geïnstalleerd op alle knoop punten.Customize Azure HDInsight Hadoop Clusters for Data Science: This step creates an Azure HDInsight Hadoop cluster with 64-bit Anaconda Python 2.7 installed on all nodes. Er zijn twee belang rijke stappen (beschreven in dit onderwerp) om te volt ooien bij het aanpassen van het HDInsight-cluster.There are two important steps (described in this topic) to complete when customizing the HDInsight cluster.

    • Koppel het opslag account dat u in stap 1 hebt gemaakt met uw HDInsight-cluster wanneer het wordt gemaakt.Link the storage account created in step 1 with your HDInsight cluster when it is created. Dit opslag account wordt gebruikt voor toegang tot gegevens die in het cluster kunnen worden verwerkt.This storage account is used for accessing data that can be processed within the cluster.
    • Externe toegang tot het hoofd knooppunt van het cluster inschakelen nadat dit is gemaakt.Enable Remote Access to the head node of the cluster after it is created. Onthoud de externe toegangs referenties die u hier opgeeft (anders dan de referenties die zijn opgegeven tijdens het maken van het cluster): Voer de volgende procedures uit.Remember the remote access credentials you specify here (different from the credentials specified at cluster creation): complete the following procedures.
  3. Een Azure machine learning studio-werk ruimte (klassieke) maken: deze Azure machine learning-werk ruimte wordt gebruikt voor het bouwen van machine learning modellen na een eerste gegevens exploratie en-bemonstering op het HDInsight-cluster.Create an Azure Machine Learning Studio (classic) workspace: This Azure Machine Learning workspace is used for building machine learning models after an initial data exploration and down sampling on the HDInsight cluster.

Gegevens uit een open bare bron ophalen en gebruikenGet and consume data from a public source

U kunt de Criteo -gegevensset openen door op de koppeling te klikken, de gebruiks voorwaarden te accepteren en een naam op te geven.The Criteo dataset can be accessed by clicking on the link, accepting the terms of use, and providing a name. Hier wordt een moment opname weer gegeven:A snapshot is shown here:

Criteo-voor waarden accepteren

Klik op door gaan om te downloaden voor meer informatie over de gegevensset en de beschik baarheid ervan.Click Continue to Download to read more about the dataset and its availability.

De gegevens bevinden zich in een Azure Blob-opslag locatie: wasb://criteo@azuremlsampleexperiments.blob.core.windows.net/raw/ .The data resides in an Azure blob storage location: wasb://criteo@azuremlsampleexperiments.blob.core.windows.net/raw/. De wasb verwijst naar de locatie van Azure Blob Storage.The "wasb" refers to Azure Blob Storage location.

  1. De gegevens in deze Azure Blob-opslag bestaan uit drie submappen van ongecomprimeerde gegevens.The data in this Azure blob storage consists of three subfolders of unzipped data.

    1. De submap RAW/Count/ bevat de eerste 21 dagen aan gegevens-van dag _ 00 tot dag _ 20The subfolder raw/count/ contains the first 21 days of data - from day_00 to day_20
    2. De submap RAW/Train/ bestaat uit één dag van de gegevens, dag _ 21The subfolder raw/train/ consists of a single day of data, day_21
    3. De submap RAW/test/ bestaat uit twee dagen aan gegevens, dag _ 22 en dag _ 23The subfolder raw/test/ consists of two days of data, day_22 and day_23
  2. De onbewerkte gzip-gegevens zijn ook beschikbaar in de hoofdmap RAW/ als day_NN. gz, waarbij nn van 00 tot 23 loopt.The raw gzip data are also available in the main folder raw/ as day_NN.gz, where NN goes from 00 to 23.

Een alternatieve benadering voor het openen, verkennen en model leren van deze gegevens waarvoor geen lokale down loads nodig zijn, wordt verderop in dit overzicht uitgelegd wanneer u Hive-tabellen maakt.An alternative approach to access, explore, and model this data that does not require any local downloads is explained later in this walkthrough when we create Hive tables.

Meld u aan bij het cluster hoofd knooppuntLog in to the cluster headnode

Als u zich wilt aanmelden bij de hoofd knooppunt van het cluster, gebruikt u de Azure Portal om het cluster te vinden.To log in to the headnode of the cluster, use the Azure portal to locate the cluster. Klik op het pictogram HDInsight Elephant aan de linkerkant en dubbel klik vervolgens op de naam van uw cluster.Click the HDInsight elephant icon on the left and then double-click the name of your cluster. Ga naar het tabblad configuratie , dubbel klik op het pictogram verbinding maken aan de onderkant van de pagina en voer uw referenties voor externe toegang in wanneer u hierom wordt gevraagd, waarbij u naar de hoofd knooppunt van het cluster gaat.Navigate to the Configuration tab, double-click the CONNECT icon on the bottom of the page, and enter your remote access credentials when prompted, taking you to the headnode of the cluster.

Hier ziet u een typische eerste keer dat u zich aanmeldt voor de cluster hoofd knooppunt:Here is what a typical first login to the cluster headnode looks like:

Aanmelden bij cluster

Aan de linkerkant is de ' Hadoop-opdracht regel ', het paard van het verkennen van de gegevens.On the left is the "Hadoop Command Line", which is our workhorse for the data exploration. Let op twee nuttige Url's: "Hadoop-garen status" en "Hadoop-naam knooppunt".Notice two useful URLs - "Hadoop Yarn Status" and "Hadoop Name Node". De URL van de garen status toont de voortgang van de taak en de naam knooppunt-URL geeft details over de cluster configuratie.The yarn status URL shows job progress and the name node URL gives details on the cluster configuration.

U bent nu klaar om te beginnen met het eerste deel van het scenario: gegevens verkennen met behulp van Hive en gegevens ophalen die gereed zijn voor Azure Machine Learning.Now you are set up and ready to begin first part of the walkthrough: data exploration using Hive and getting data ready for Azure Machine Learning.

Hive-data base en-tabellen makenCreate Hive database and tables

Als u Hive-tabellen voor onze Criteo-gegevensset wilt maken, opent u de * Hadoop-opdracht regel _ op het bureau blad van het hoofd knooppunt en voert u de Hive-map in door de opdracht in te voerenTo create Hive tables for our Criteo dataset, open the * Hadoop Command Line _ on the desktop of the head node, and enter the Hive directory by entering the command

cd %hive_home%\bin

Notitie

Alle Hive-opdrachten uitvoeren in deze walkthrough van de Hive bin/directory-prompt.Run all Hive commands in this walkthrough from the Hive bin/ directory prompt. Dit zorgt ervoor dat er automatisch problemen met paden optreden.This takes care of any path issues automatically. U kunt de termen ' hive directory prompt ', ' hive bin/directory prompt ' en ' Hadoop-opdracht regel ' door elkaar gebruiken.You can use the terms "Hive directory prompt", "Hive bin/ directory prompt", and "Hadoop Command Line" interchangeably.

Notitie

Als u een Hive-query wilt uitvoeren, kan een van de volgende opdrachten altijd worden gebruikt:To execute any Hive query, one can always use the following commands:

cd %hive_home%\bin hive

Nadat de Hive-functie REPL wordt weer gegeven met het teken ' hive > ', knipt en plakt u de query om deze uit te voeren.After the Hive REPL appears with a "hive >"sign, simply cut and paste the query to execute it.

Met de volgende code wordt een data base ' Criteo ' gemaakt en worden vervolgens vier tabellen gegenereerd:The following code creates a database "criteo" and then generates four tables:

_ een tabel voor het genereren van aantallen die zijn gebouwd op dagen dag _ 00 tot en met dag _ 20,_ a table for generating counts built on days day_00 to day_20,

  • een tabel voor gebruik als de Train-gegevensset die is gebouwd op dag _ 21, ena table for use as the train dataset built on day_21, and
  • twee tabellen die moeten worden gebruikt als de test gegevens sets die respectievelijk op dag _ 22 en 23 zijn gebouwd _ .two tables for use as the test datasets built on day_22 and day_23 respectively.

Splits de gegevensset van de test in twee verschillende tabellen, omdat een van de dagen een feestdag is.Split the test dataset into two different tables because one of the days is a holiday. Het doel is om te bepalen of het model verschillen kan detecteren tussen een feestdag en een vrije dag vanaf het door lopen van de klik.The objective is to determine if the model can detect differences between a holiday and non-holiday from the click-through rate.

De voorbeeld script_-hive__criteo_database_en_Tables maken. HQL wordt hier weer gegeven voor het gemak:The script sample_hive_create_criteo_database_and_tables.hql is displayed here for convenience:

CREATE DATABASE IF NOT EXISTS criteo;
DROP TABLE IF EXISTS criteo.criteo_count;
CREATE TABLE criteo.criteo_count (
col1 string,col2 double,col3 double,col4 double,col5 double,col6 double,col7 double,col8 double,col9 double,col10 double,col11 double,col12 double,col13 double,col14 double,col15 string,col16 string,col17 string,col18 string,col19 string,col20 string,col21 string,col22 string,col23 string,col24 string,col25 string,col26 string,col27 string,col28 string,col29 string,col30 string,col31 string,col32 string,col33 string,col34 string,col35 string,col36 string,col37 string,col38 string,col39 string,col40 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE LOCATION 'wasb://criteo@azuremlsampleexperiments.blob.core.windows.net/raw/count';

DROP TABLE IF EXISTS criteo.criteo_train;
CREATE TABLE criteo.criteo_train (
col1 string,col2 double,col3 double,col4 double,col5 double,col6 double,col7 double,col8 double,col9 double,col10 double,col11 double,col12 double,col13 double,col14 double,col15 string,col16 string,col17 string,col18 string,col19 string,col20 string,col21 string,col22 string,col23 string,col24 string,col25 string,col26 string,col27 string,col28 string,col29 string,col30 string,col31 string,col32 string,col33 string,col34 string,col35 string,col36 string,col37 string,col38 string,col39 string,col40 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE LOCATION 'wasb://criteo@azuremlsampleexperiments.blob.core.windows.net/raw/train';

DROP TABLE IF EXISTS criteo.criteo_test_day_22;
CREATE TABLE criteo.criteo_test_day_22 (
col1 string,col2 double,col3 double,col4 double,col5 double,col6 double,col7 double,col8 double,col9 double,col10 double,col11 double,col12 double,col13 double,col14 double,col15 string,col16 string,col17 string,col18 string,col19 string,col20 string,col21 string,col22 string,col23 string,col24 string,col25 string,col26 string,col27 string,col28 string,col29 string,col30 string,col31 string,col32 string,col33 string,col34 string,col35 string,col36 string,col37 string,col38 string,col39 string,col40 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE LOCATION 'wasb://criteo@azuremlsampleexperiments.blob.core.windows.net/raw/test/day_22';

DROP TABLE IF EXISTS criteo.criteo_test_day_23;
CREATE TABLE criteo.criteo_test_day_23 (
col1 string,col2 double,col3 double,col4 double,col5 double,col6 double,col7 double,col8 double,col9 double,col10 double,col11 double,col12 double,col13 double,col14 double,col15 string,col16 string,col17 string,col18 string,col19 string,col20 string,col21 string,col22 string,col23 string,col24 string,col25 string,col26 string,col27 string,col28 string,col29 string,col30 string,col31 string,col32 string,col33 string,col34 string,col35 string,col36 string,col37 string,col38 string,col39 string,col40 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE LOCATION 'wasb://criteo@azuremlsampleexperiments.blob.core.windows.net/raw/test/day_23';

Al deze tabellen zijn extern, zodat u naar de Azure Blob Storage-locaties (wasb) kunt verwijzen.All these tables are external so you can point to their Azure Blob Storage (wasb) locations.

Er zijn twee manieren om een Hive-query uit te voeren:There are two ways to execute ANY Hive query:

  • Met behulp van de Hive-opdracht regel : de eerste is het uitgeven van de opdracht ' hive ' en het kopiëren en plakken van een query op de Hive-opdracht regel van de component repl:Using the Hive REPL command line : The first is to issue a "hive" command and copy and paste a query at the Hive REPL command line:

    cd %hive_home%\bin
    hive
    

    Nu kunt u op de REPL-opdracht regel de query knippen en plakken uitvoeren.Now at the REPL command line, cutting and pasting the query executes it.

  • Query's opslaan in een bestand en de opdracht uitvoeren : de tweede is om de query's op te slaan in een. HQL-bestand (voor beeld_Hive__Criteo_data base te maken_en_Tables. HQL) en voer de volgende opdracht uit om de query uit te voeren:Saving queries to a file and executing the command : The second is to save the queries to a '.hql' file (sample_hive_create_criteo_database_and_tables.hql) and then issue the following command to execute the query:

    hive -f C:\temp\sample_hive_create_criteo_database_and_tables.hql
    

Data Base en tabel maken bevestigenConfirm database and table creation

Bevestig vervolgens het maken van de data base met de volgende opdracht uit de Hive bin/directory prompt:Next, confirm the creation of the database with the following command from the Hive bin/ directory prompt:

hive -e "show databases;"

Dit geeft:This gives:

criteo
default
Time taken: 1.25 seconds, Fetched: 2 row(s)

Hiermee wordt het maken van de nieuwe Data Base, ' Criteo ' bevestigd.This confirms the creation of the new database, "criteo".

Als u wilt zien welke tabellen zijn gemaakt, geeft u de opdracht hier uit vanaf de Hive bin/directory prompt:To see what tables were created, simply issue the command here from the Hive bin/ directory prompt:

hive -e "show tables in criteo;"

Vervolgens ziet u de volgende uitvoer:You should then see the following output:

criteo_count
criteo_test_day_22
criteo_test_day_23
criteo_train
Time taken: 1.437 seconds, Fetched: 4 row(s)

Component gegevens verkennen inData exploration in Hive

U bent nu klaar om een aantal elementaire gegevens te verkennen in Hive.Now you are ready to do some basic data exploration in Hive. U begint met het tellen van het aantal voor beelden in de tabellen voor het trainen en testen van gegevens.You begin by counting the number of examples in the train and test data tables.

Aantal voor beelden van treinenNumber of train examples

De inhoud van de voor beeld-_hive_aantal_train_tabel_voor beelden. HQL worden hier weer gegeven:The contents of sample_hive_count_train_table_examples.hql are shown here:

SELECT COUNT(*) FROM criteo.criteo_train;

Dit resulteert in het volgende:This yields:

192215183
Time taken: 264.154 seconds, Fetched: 1 row(s)

U kunt ook een van de volgende opdrachten op de Hive bin/directory-prompt geven:Alternatively, one may also issue the following command from the Hive bin/ directory prompt:

hive -f C:\temp\sample_hive_count_criteo_train_table_examples.hql

Aantal test voorbeelden in de twee test gegevens setsNumber of test examples in the two test datasets

Tel nu het aantal voor beelden in de twee test gegevens sets.Now count the number of examples in the two test datasets. De inhoud van de voor beeld-_hive_aantal_criteo_test_dag_22_tabel_voor beelden. HQL zijn:The contents of sample_hive_count_criteo_test_day_22_table_examples.hql are here:

SELECT COUNT(*) FROM criteo.criteo_test_day_22;

Dit resulteert in het volgende:This yields:

189747893
Time taken: 267.968 seconds, Fetched: 1 row(s)

Op de gebruikelijke manier kunt u het script ook aanroepen vanuit de Hive bin/directory-prompt door de opdracht te geven:As usual, you may also call the script from the Hive bin/ directory prompt by issuing the command:

hive -f C:\temp\sample_hive_count_criteo_test_day_22_table_examples.hql

Ten slotte bekijkt u het aantal test voorbeelden in de test-gegevensset op basis van de dag _ 23.Finally, you examine the number of test examples in the test dataset based on day_23.

De opdracht die u hiervoor moet volgen, is vergelijkbaar met de voor beeld die wordt weer gegeven (Raadpleeg de voorbeeld_hive_aantal_criteo_test_dag_23_voor beelden. HQL):The command to do this is similar to the one shown (refer to sample_hive_count_criteo_test_day_23_examples.hql):

SELECT COUNT(*) FROM criteo.criteo_test_day_23;

Dit geeft:This gives:

178274637
Time taken: 253.089 seconds, Fetched: 1 row(s)

Label distributie in de Train-gegevenssetLabel distribution in the train dataset

De label distributie in de Train-gegevensset is van belang.The label distribution in the train dataset is of interest. Als u dit wilt zien, geeft u de inhoud van de voorbeeld_-hive_criteo_label_distributie_Table. HQL:To see this, show contents of sample_hive_criteo_label_distribution_train_table.hql:

SELECT Col1, COUNT(*) AS CT FROM criteo.criteo_train GROUP BY Col1;

Dit geeft de label distributie als resultaat:This yields the label distribution:

1       6292903
0       185922280
Time taken: 459.435 seconds, Fetched: 2 row(s)

Het percentage positieve labels ligt ongeveer 3,3% (consistent met de oorspronkelijke gegevensset).The percentage of positive labels is about 3.3% (consistent with the original dataset).

Histogram distributies van sommige numerieke variabelen in de Train-gegevenssetHistogram distributions of some numeric variables in the train dataset

U kunt de functie ' histogram numeriek ' van de Hive gebruiken _ om erachter te komen hoe de numerieke variabelen eruitzien.You can use Hive's native "histogram_numeric" function to find out what the distribution of the numeric variables looks like. Hier vindt u de inhoud van de voorbeeld_-hive_criteo_histogram_numeriek. HQL:Here are the contents of sample_hive_criteo_histogram_numeric.hql:

SELECT CAST(hist.x as int) as bin_center, CAST(hist.y as bigint) as bin_height FROM
    (SELECT
    histogram_numeric(col2, 20) as col2_hist
    FROM
    criteo.criteo_train
    ) a
    LATERAL VIEW explode(col2_hist) exploded_table as hist;

Dit resulteert in het volgende:This yields the following:

26      155878415
2606    92753
6755    22086
11202   6922
14432   4163
17815   2488
21072   1901
24113   1283
27429   1225
30818   906
34512   723
38026   387
41007   290
43417   312
45797   571
49819   428
53505   328
56853   527
61004   160
65510   3446
Time taken: 317.851 seconds, Fetched: 20 row(s)

Met de ZIJDELINGSe weer gave-combi natie in Hive kunt u een SQL-achtige uitvoer maken in plaats van de gebruikelijke lijst.The LATERAL VIEW - explode combination in Hive serves to produce a SQL-like output instead of the usual list. In deze tabel komt de eerste kolom overeen met het bin Center en de tweede naar de frequentie van de opslag locatie.In this table, the first column corresponds to the bin center and the second to the bin frequency.

Percentielen van sommige numerieke variabelen in de Train-gegevensset benaderenApproximate percentiles of some numeric variables in the train dataset

Het is ook belang rijke percentielen voor het berekenen van de geschatte waarden.Also of interest with numeric variables is the computation of approximate percentiles. Het systeem eigen percentiel van de component _ bevat dit voor ons.Hive's native "percentile_approx" does this for us. De inhoud van de voor beeld-_hive_criteo_geschatte_percentielen. HQL zijn:The contents of sample_hive_criteo_approximate_percentiles.hql are:

SELECT MIN(Col2) AS Col2_min, PERCENTILE_APPROX(Col2, 0.1) AS Col2_01, PERCENTILE_APPROX(Col2, 0.3) AS Col2_03, PERCENTILE_APPROX(Col2, 0.5) AS Col2_median, PERCENTILE_APPROX(Col2, 0.8) AS Col2_08, MAX(Col2) AS Col2_max FROM criteo.criteo_train;

Dit resulteert in het volgende:This yields:

1.0     2.1418600917169246      2.1418600917169246    6.21887086390288 27.53454893115633       65535.0
Time taken: 564.953 seconds, Fetched: 1 row(s)

De verdeling van percentielen is nauw verwant aan de histogram distributie van een wille keurige numerieke variabele.The distribution of percentiles is closely related to the histogram distribution of any numeric variable usually.

Zoek het aantal unieke waarden voor sommige categorische-kolommen in de Train-gegevenssetFind number of unique values for some categorical columns in the train dataset

Als u doorgaat met het verkennen van gegevens, kunt u voor sommige categorische-kolommen het aantal unieke waarden berekenen.Continuing the data exploration, find, for some categorical columns, the number of unique values they take. Als u dit wilt doen, geeft u de inhoud van de voorbeeld_hive_criteo_unieke_waarden_categoricals. HQL:To do this, show contents of sample_hive_criteo_unique_values_categoricals.hql:

SELECT COUNT(DISTINCT(Col15)) AS num_uniques FROM criteo.criteo_train;

Dit resulteert in het volgende:This yields:

19011825
Time taken: 448.116 seconds, Fetched: 1 row(s)

Col15 heeft 19M unieke waarden!Col15 has 19M unique values! Het gebruik van Naïve-technieken als ' One-Hot encoding ' voor het coderen van dergelijke hoog-dimensionale Categorische-variabelen is niet haalbaar.Using naive techniques like "one-hot encoding" to encode such high-dimensional categorical variables is not feasible. Met name een krachtige, robuuste techniek met de naam leren met aantallen voor het efficiënt aanpakken van dit probleem wordt uitgelegd en gedemonstreerd.In particular, a powerful, robust technique called Learning With Counts for tackling this problem efficiently is explained and demonstrated.

Bekijk ten slotte ook het aantal unieke waarden voor andere categorische-kolommen.Finally look at the number of unique values for some other categorical columns as well. De inhoud van de voor beeld-_hive_criteo_unieke_waarden_meerdere_categoricals. HQL zijn:The contents of sample_hive_criteo_unique_values_multiple_categoricals.hql are:

SELECT COUNT(DISTINCT(Col16)), COUNT(DISTINCT(Col17)),
COUNT(DISTINCT(Col18), COUNT(DISTINCT(Col19), COUNT(DISTINCT(Col20))
FROM criteo.criteo_train;

Dit resulteert in het volgende:This yields:

30935   15200   7349    20067   3
Time taken: 1933.883 seconds, Fetched: 1 row(s)

Let erop dat, behalve voor Col20, alle andere kolommen veel unieke waarden hebben.Again, note that except for Col20, all the other columns have many unique values.

Aantal combi Naties van Categorische-variabelen in de Train-gegevenssetCo-occurrence counts of pairs of categorical variables in the train dataset

De Count-verdelingen van paren van Categorische-variabelen zijn ook van belang.The count distributions of pairs of categorical variables are also of interest. Dit kan worden bepaald met behulp van de code in de voorbeeld_hive_criteo_gekoppelde_categorische_counts. HQL:This can be determined using the code in sample_hive_criteo_paired_categorical_counts.hql:

SELECT Col15, Col16, COUNT(*) AS paired_count FROM criteo.criteo_train GROUP BY Col15, Col16 ORDER BY paired_count DESC LIMIT 15;

Volg de rang orde van de aantallen op basis van het voorval en Bekijk in dit geval de top 15.Reverse order the counts by their occurrence and look at the top 15 in this case. Dit geeft ons:This gives us:

ad98e872        cea68cd3        8964458
ad98e872        3dbb483e        8444762
ad98e872        43ced263        3082503
ad98e872        420acc05        2694489
ad98e872        ac4c5591        2559535
ad98e872        fb1e95da        2227216
ad98e872        8af1edc8        1794955
ad98e872        e56937ee        1643550
ad98e872        d1fade1c        1348719
ad98e872        977b4431        1115528
e5f3fd8d        a15d1051        959252
ad98e872        dd86c04a        872975
349b3fec        a52ef97d        821062
e5f3fd8d        a0aaffa6        792250
265366bf        6f5c7c41        782142
Time taken: 560.22 seconds, Fetched: 15 row(s)

Voor beeld van de gegevens sets voor Azure Machine LearningDown sample the datasets for Azure Machine Learning

Door de gegevens sets te verkennen en te laten zien hoe u dit type onderzoek kunt doen voor alle variabelen (inclusief combi Naties), zet u een voor beeld van de gegevenssets, zodat modellen in Azure Machine Learning kunnen worden gebouwd.Having explored the datasets and demonstrated how to do this type of exploration for any variables (including combinations), down sample the data sets so that models in Azure Machine Learning can be built. De focus van het probleem is: als er een aantal voorbeeld kenmerken (functie waarden van col2-Col40) wordt gegeven, voors pellen als Kol1 een 0 (geen klik) of een 1 (klik) is.Recall that the focus of the problem is: given a set of example attributes (feature values from Col2 - Col40), predict if Col1 is a 0 (no click) or a 1 (click).

Als u de gegevens sets van de trein en test op 1% van de oorspronkelijke grootte wilt bemonsteren, gebruikt u de functie systeem eigen RAND () van de component.To down sample the train and test datasets to 1% of the original size, use Hive's native RAND() function. Het volgende script, voorbeeld_-hive_criteo_downsamplen_train_DataSet. HQL doet dit voor de Train-gegevensset:The next script, sample_hive_criteo_downsample_train_dataset.hql does this for the train dataset:

CREATE TABLE criteo.criteo_train_downsample_1perc (
col1 string,col2 double,col3 double,col4 double,col5 double,col6 double,col7 double,col8 double,col9 double,col10 double,col11 double,col12 double,col13 double,col14 double,col15 string,col16 string,col17 string,col18 string,col19 string,col20 string,col21 string,col22 string,col23 string,col24 string,col25 string,col26 string,col27 string,col28 string,col29 string,col30 string,col31 string,col32 string,col33 string,col34 string,col35 string,col36 string,col37 string,col38 string,col39 string,col40 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

---Now downsample and store in this table

INSERT OVERWRITE TABLE criteo.criteo_train_downsample_1perc SELECT * FROM criteo.criteo_train WHERE RAND() <= 0.01;

Dit resulteert in het volgende:This yields:

Time taken: 12.22 seconds
Time taken: 298.98 seconds

Het voorbeeld script_hive_criteo_down sampling_test_dag_22_DataSet. HQL voor test gegevens, dag _ 22:The script sample_hive_criteo_downsample_test_day_22_dataset.hql does it for test data, day_22:

--- Now for test data (day_22)

CREATE TABLE criteo.criteo_test_day_22_downsample_1perc (
col1 string,col2 double,col3 double,col4 double,col5 double,col6 double,col7 double,col8 double,col9 double,col10 double,col11 double,col12 double,col13 double,col14 double,col15 string,col16 string,col17 string,col18 string,col19 string,col20 string,col21 string,col22 string,col23 string,col24 string,col25 string,col26 string,col27 string,col28 string,col29 string,col30 string,col31 string,col32 string,col33 string,col34 string,col35 string,col36 string,col37 string,col38 string,col39 string,col40 string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

INSERT OVERWRITE TABLE criteo.criteo_test_day_22_downsample_1perc SELECT * FROM criteo.criteo_test_day_22 WHERE RAND() <= 0.01;

Dit resulteert in het volgende:This yields:

Time taken: 1.22 seconds
Time taken: 317.66 seconds

Ten slotte wordt het script voorbeeld_hive_criteo_down sampling_test_dag_23_DataSet. HQL voor test gegevens, dag _ 23:Finally, the script sample_hive_criteo_downsample_test_day_23_dataset.hql does it for test data, day_23:

--- Finally test data day_23
CREATE TABLE criteo.criteo_test_day_23_downsample_1perc (
col1 string,col2 double,col3 double,col4 double,col5 double,col6 double,col7 double,col8 double,col9 double,col10 double,col11 double,col12 double,col13 double,col14 double,col15 string,col16 string,col17 string,col18 string,col19 string,col20 string,col21 string,col22 string,col23 string,col24 string,col25 string,col26 string,col27 string,col28 string,col29 string,col30 string,col31 string,col32 string,col33 string,col34 string,col35 string,col36 string,col37 string,col38 string,col39 string,col40 srical feature; tring)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

INSERT OVERWRITE TABLE criteo.criteo_test_day_23_downsample_1perc SELECT * FROM criteo.criteo_test_day_23 WHERE RAND() <= 0.01;

Dit resulteert in het volgende:This yields:

Time taken: 1.86 seconds
Time taken: 300.02 seconds

U bent nu klaar om onze voor beeld-en test gegevens sets te gebruiken voor het bouwen van modellen in Azure Machine Learning.With this, you are ready to use our down sampled train and test datasets for building models in Azure Machine Learning.

Er is een laatste belang rijk onderdeel voordat u verdergaat op Azure Machine Learning, wat betrekking heeft op de tabel Count.There is a final important component before moving on to Azure Machine Learning, which concerns the count table. In de volgende Subsectie wordt de tabel Count besproken.In the next subsection, the count table is discussed in some detail.

Een korte discussie over de tabel aantalA brief discussion on the count table

Zoals u hebt gezien, hebben verschillende categorische-variabelen een hoge dimensionaliteit.As you saw, several categorical variables have a high dimensionality. In de walkthrough wordt een krachtige techniek genoemd met de naam learning met aantallen om deze variabelen op een efficiënte en robuuste manier te coderen.In the walkthrough, a powerful technique called Learning With Counts to encode these variables in an efficient, robust manner is presented. Meer informatie over deze techniek vindt u in de koppeling.More information on this technique is in the link provided.

Notitie

In dit scenario is de focus gericht op het gebruik van Count-tabellen voor het produceren van compacte representatieve categorische-functies.In this walkthrough, the focus is on using count tables to produce compact representations of high-dimensional categorical features. Dit is niet de enige manier om categorische-functies te coderen. voor meer informatie over andere technieken kunnen geïnteresseerde gebruikers de hashingmet één Hot-encoding en functie controleren.This is not the only way to encode categorical features; for more information on other techniques, interested users can check out one-hot-encoding and feature hashing.

Gebruik de gegevens in de map RAW/Count om tellings tabellen te maken op basis van de hoeveelheid gegevens.To build count tables on the count data, use the data in the folder raw/count. In de sectie model lering worden gebruikers weer gegeven hoe u deze aantal tabellen kunt bouwen voor categorische-functies, of om een vooraf gemaakte telling tabel te gebruiken voor hun onderzoek.In the modeling section, users are shown how to build these count tables for categorical features from scratch, or alternatively to use a pre-built count table for their explorations. In de volgende gevallen wordt bij het gebruik van ' vooraf gemaakte tellingen tabellen ' verwezen naar de aantal tabellen die zijn verschaft.In what follows, when "pre-built count tables" are referred to, we mean using the count tables that have been provided. Gedetailleerde instructies voor toegang tot deze tabellen vindt u in de volgende sectie.Detailed instructions on how to access these tables are provided in the next section.

Een model bouwen met Azure Machine LearningBuild a model with Azure Machine Learning

Het bouw proces voor modellen in Azure Machine Learning volgt deze stappen:Our model building process in Azure Machine Learning follows these steps:

  1. De gegevens uit Hive-tabellen ophalen in Azure Machine LearningGet the data from Hive tables into Azure Machine Learning
  2. Het experiment maken: de gegevens opschonen en maken van een functie met aantal tabellenCreate the experiment: clean the data and make it a feature with count tables
  3. Het model bouwen, trainen en beoordelenBuild, train, and score the model
  4. Het model evaluerenEvaluate the model
  5. Het model publiceren als een webservicePublish the model as a web-service

Nu bent u klaar om modellen te bouwen in Azure Machine Learning Studio.Now you are ready to build models in Azure Machine Learning studio. De gegevens van een voor beeld worden opgeslagen als Hive-tabellen in het cluster.Our down sampled data is saved as Hive tables in the cluster. Gebruik de module Azure Machine Learning gegevens importeren om deze gegevens te lezen.Use the Azure Machine Learning Import Data module to read this data. De referenties voor toegang tot het opslag account van dit cluster zijn op de volgende manier beschikbaar.The credentials to access the storage account of this cluster are provided in what follows.

Stap 1: gegevens uit Hive-tabellen ophalen in Azure Machine Learning met behulp van de module gegevens importeren en deze selecteren voor een machine learning experimentStep 1: Get data from Hive tables into Azure Machine Learning using the Import Data module and select it for a machine learning experiment

Begin met het selecteren van een leeg experiment met + nieuwe -> experimenten -> Blank Experiment.Start by selecting a +NEW -> EXPERIMENT -> Blank Experiment. Zoek vervolgens in het zoekvak linksboven op ' gegevens importeren '.Then, from the Search box on the top left, search for "Import Data". Sleep de module gegevens importeren naar het canvas op het experiment (het middelste gedeelte van het scherm) om de module voor gegevens toegang te gebruiken.Drag and drop the Import Data module on to the experiment canvas (the middle portion of the screen) to use the module for data access.

Dit is de manier waarop de import gegevens eruitzien tijdens het ophalen van gegevens uit de Hive-tabel:This is what the Import Data looks like while getting data from the Hive table:

Gegevens importeren gegevens ophalen

Voor de module gegevens importeren zijn de waarden van de para meters die in de afbeelding worden opgegeven, alleen voor beelden van de sorteer waarden die u moet opgeven.For the Import Data module, the values of the parameters that are provided in the graphic are just examples of the sort of values you need to provide. Hier volgen enkele algemene richt lijnen voor het invullen van de para meters die zijn ingesteld voor de module gegevens importeren .Here is some general guidance on how to fill out the parameter set for the Import Data module.

  1. Kies Hive-query voor de gegevens bronChoose "Hive query" for Data Source
  2. In het query vak Hive-data base is dit een eenvoudige SELECT * van <de naam van uw _ Data Base _ . de _ tabel _ naam>-is voldoende.In the Hive database query box, a simple SELECT * FROM <your_database_name.your_table_name> - is enough.
  3. URI van Hcatalog-server : als uw cluster ' ABC ' is, is dit simpelweg: https: / /ABC.azurehdinsight.netHcatalog server URI : If your cluster is "abc", then this is simply: https://abc.azurehdinsight.net
  4. Hadoop-gebruikers accountnaam : de gebruikers naam die is gekozen op het moment van het cluster.Hadoop user account name : The user name chosen at the time of commissioning the cluster. (Niet de gebruikers naam voor externe toegang.)(NOT the Remote Access user name!)
  5. Hadoop-gebruikers account wacht woord : het wacht woord voor de gebruikers naam die is gekozen op het moment dat het cluster wordt ingesteld.Hadoop user account password : The password for the user name chosen at the time of commissioning the cluster. (Niet het wacht woord voor externe toegang!)(NOT the Remote Access password!)
  6. Locatie van uitvoer gegevens : Kies AzureLocation of output data : Choose "Azure"
  7. Azure Storage account naam : het opslag account dat aan het cluster is gekoppeldAzure Storage account name : The storage account associated with the cluster
  8. Azure Storage account sleutel : de sleutel van het opslag account dat aan het cluster is gekoppeld.Azure Storage account key : The key of the storage account associated with the cluster.
  9. Azure-container naam : als de cluster naam "ABC" is, is dit gewoon "ABC", meestal.Azure container name : If the cluster name is "abc", then this is simply "abc", usually.

Zodra de gegevens van de import bewerking zijn voltooid (u ziet het groene streepje in de module), slaat u deze gegevens op als een gegevensset (met een naam van uw keuze).Once the Import Data finishes getting data (you see the green tick on the Module), save this data as a Dataset (with a name of your choice). Dit ziet er als volgt uit:What this looks like:

Gegevens importeren gegevens opslaan

Klik met de rechter muisknop op de uitvoer poort van de module import data .Right-click the output port of the Import Data module. Hiermee wordt de optie Opslaan als gegevensset en een optie voor visualiseren onthuld.This reveals a Save as dataset option and a Visualize option. Als u op de knop visualiseren klikt, worden 100 rijen van de gegevens weer gegeven, samen met een rechter paneel dat nuttig is voor een aantal samenvattings statistieken.The Visualize option, if clicked, displays 100 rows of the data, along with a right panel that is useful for some summary statistics. Als u gegevens wilt opslaan, selecteert u Opslaan als gegevensset en volgt u de instructies.To save data, simply select Save as dataset and follow instructions.

Als u de opgeslagen gegevensset voor gebruik in een machine learning experiment wilt selecteren, zoekt u de gegevens sets op in het zoekvak dat wordt weer gegeven in de volgende afbeelding.To select the saved dataset for use in a machine learning experiment, locate the datasets using the Search box shown in the following figure. Typ vervolgens de naam die u voor de gegevensset hebt opgegeven, gedeeltelijk om deze te openen en sleep de gegevensset naar het hoofd paneel.Then simply type out the name you gave the dataset partially to access it and drag the dataset onto the main panel. Als u het hoofd paneel neerzet, wordt dit geselecteerd voor gebruik in machine learning model lering.Dropping it onto the main panel selects it for use in machine learning modeling.

Gegevensset naar het hoofd paneel slepen

Notitie

Doe dit voor zowel de trein als de test gegevens sets.Do this for both the train and the test datasets. Vergeet ook niet de naam van de data base en de tabel namen te gebruiken die u voor dit doel hebt opgegeven.Also, remember to use the database name and table names that you gave for this purpose. De waarden die in de afbeelding worden gebruikt, zijn alleen bedoeld voor afbeeldings doeleinden. * *The values used in the figure are solely for illustration purposes.**

Stap 2: een experiment maken in Azure Machine Learning om te voors pellen klikken/geen klikkenStep 2: Create an experiment in Azure Machine Learning to predict clicks / no clicks

Onze Azure Machine Learning Studio (klassiek) experiment ziet er als volgt uit:Our Azure Machine Learning Studio (classic) experiment looks like this:

Machine Learning experiment

Bekijk nu de belangrijkste onderdelen van dit experiment.Now examine the key components of this experiment. Sleep onze opgeslagen trein-en test gegevens sets eerst op het canvas van het experiment.Drag our saved train and test datasets onto our experiment canvas first.

Ontbrekende gegevens opschonenClean Missing Data

De module clean Missing Data bevat de naam die wordt voorgesteld: er worden ontbrekende gegevens opgeschoond op manieren die door de gebruiker kunnen worden opgegeven.The Clean Missing Data module does what its name suggests: it cleans missing data in ways that can be user-specified. Bekijk deze module om dit te bekijken:Look into this module to see this:

Ontbrekende gegevens opschonen

Hier kunt u alle ontbrekende waarden vervangen door 0.Here, choose to replace all missing values with a 0. Er zijn ook andere opties, die kunnen worden weer gegeven door te kijken naar de vervolg keuzelijsten in de module.There are other options as well, which can be seen by looking at the dropdowns in the module.

Functie techniek voor de gegevensFeature engineering on the data

Er kunnen miljoenen unieke waarden zijn voor sommige categorische-functies van grote gegevens sets.There can be millions of unique values for some categorical features of large datasets. Het gebruik van Naïve-methoden, zoals een hot-code ring voor het vertegenwoordigen van dergelijke verlaagde categorische-functies, is volledig niet haalbaar.Using naive methods such as one-hot encoding for representing such high-dimensional categorical features is entirely unfeasible. In dit scenario ziet u hoe u met behulp van ingebouwde Azure Machine Learning modules de functie aantal kunt gebruiken om compacte voors tellingen van deze high-dimensiond Categorische-variabelen te genereren.This walkthrough demonstrates how to use count features using built-in Azure Machine Learning modules to generate compact representations of these high-dimensional categorical variables. Het eind resultaat is een kleinere model grootte, snellere opleidings tijden en prestatie gegevens die vergelijkbaar zijn met het gebruik van andere technieken.The end-result is a smaller model size, faster training times, and performance metrics that are comparable to using other techniques.

Trans formaties voor het tellen van aantallenBuilding counting transforms

Als u functies wilt maken, gebruikt u de module Build Counting Transform die beschikbaar is in azure machine learning.To build count features, use the Build Counting Transform module that is available in Azure Machine Learning. De module ziet er als volgt uit:The module looks like this:

De module eigenschappen van het tellen van de trans formatie bouwen Build Counting Transform module properties Build Counting Transform module

Belangrijk

Voer in het vak aantal kolommen de kolommen in waarvoor u de aantallen wilt uitvoeren.In the Count columns box, enter those columns that you wish to perform counts on. Normaal gesp roken zijn dit (zoals vermeld) hoog-dimensionale categorische-kolommen.Typically, these are (as mentioned) high-dimensional categorical columns. Houd er rekening mee dat de Criteo-gegevensset 26 categorische-kolommen heeft: van Col15 tot Col40.Remember that the Criteo dataset has 26 categorical columns: from Col15 to Col40. Hier telt het aantal op alle objecten en geven ze hun indices (van 15 tot 40 gescheiden door komma's zoals weer gegeven).Here, count on all of them and give their indices (from 15 to 40 separated by commas as shown).

Als u de module in de MapReduce-modus (geschikt voor grote gegevens sets) wilt gebruiken, moet u toegang hebben tot een HDInsight Hadoop-cluster (de optie die wordt gebruikt voor het verkennen van functies kan ook voor dit doel worden gebruikt) en de bijbehorende referenties.To use the module in the MapReduce mode (appropriate for large datasets), you need access to an HDInsight Hadoop cluster (the one used for feature exploration can be reused for this purpose as well) and its credentials. In de voor gaande cijfers ziet u hoe de ingevulde waarden eruitzien (Vervang de waarden die zijn opgegeven voor de afbeelding met die van toepassing op uw eigen gebruiks voorbeeld).The previous figures illustrate what the filled-in values look like (replace the values provided for illustration with those relevant for your own use-case).

Module parameters

In de voor gaande afbeelding ziet u hoe u de locatie van de invoer-BLOB opgeeft.The preceding figure shows how to enter the input blob location. Op deze locatie zijn de gegevens gereserveerd voor het maken van aantal tabellen.This location has the data reserved for building count tables on.

Als deze module is voltooid, slaat u de trans formatie voor later op door met de rechter muisknop op de module te klikken en de optie Opslaan als Transform te selecteren:When this module finishes running, save the transform for later by right-clicking the module and selecting the Save as Transform option:

Optie Opslaan als trans formatie

In onze experiment-architectuur die hierboven wordt weer gegeven, komt de gegevensset ' ytransform2 ' precies overeen met een trans formatie van het aantal opgeslagen aantallen.In our experiment architecture shown above, the dataset "ytransform2" corresponds precisely to a saved count transform. Voor de rest van dit experiment wordt ervan uitgegaan dat de lezer een Transform-module voor het tellen van gegevens heeft gebruikt voor het genereren van aantallen en vervolgens die aantallen kan gebruiken voor het genereren van aantal functies voor de gegevens sets voor de trein en test.For the remainder of this experiment, it is assumed that the reader used a Build Counting Transform module on some data to generate counts, and can then use those counts to generate count features on the train and test datasets.

Opgeven welke onderdelen van aantal moeten worden opgenomen als onderdeel van de gegevens sets voor de trein en testChoosing what count features to include as part of the train and test datasets

Zodra een aantal trans formatie is voltooid, kan de gebruiker kiezen welke functies er moeten worden opgenomen in de Train-en test gegevens sets met behulp van de module aantal tabel parameters wijzigen .Once a count transform ready, the user can choose what features to include in their train and test datasets using the Modify Count Table Parameters module. Voor de volledigheid wordt deze module hier weer gegeven.For completeness, this module is shown here. Maar in het belang van eenvoud gebruiken we deze niet in het experiment.But in interests of simplicity do not actually use it in our experiment.

Para meters voor aantal tabel wijzigen

In dit geval, zoals kan worden weer gegeven, moeten de conflicteert worden gebruikt en wordt de back-upkolom genegeerd.In this case, as can be seen, the log-odds are to be used and the back off column is ignored. U kunt ook para meters instellen, zoals de drempel waarde voor garbagecollection, hoeveel pseudo-eerdere voor beelden u wilt toevoegen voor vloeiende en of u een Laplacian-ruis wilt gebruiken of niet.You can also set parameters such as the garbage bin threshold, how many pseudo-prior examples to add for smoothing, and whether to use any Laplacian noise or not. Dit zijn allemaal geavanceerde functies en er wordt opgemerkt dat de standaard waarden een goed uitgangs punt zijn voor gebruikers die geen ervaring hebben met dit type functie generatie.All these are advanced features and it is to be noted that the default values are a good starting point for users who are new to this type of feature generation.

Gegevens transformatie voordat de functies Count worden gegenereerdData transformation before generating the count features

Nu is de focus gericht op een belang rijk punt over het transformeren van onze Train-en test gegevens voordat het aantal functies daad werkelijk wordt gegenereerd.Now the focus is on an important point about transforming our train and test data prior to actually generating count features. Er worden twee R-script modules uitgevoerd die worden gebruikt voordat de Count-trans formatie op onze gegevens wordt toegepast.There are two Execute R Script modules used before the count transform is applied to our data.

R-script modules uitvoeren

Dit is het eerste R-script:Here is the first R script:

Eerste R-script

Met dit R-script worden de namen van de kolommen in ' Kol1 ' gewijzigd in ' Col40 '.This R script renames our columns to names "Col1" to "Col40". Dit komt doordat de Count-trans formatie namen van deze indeling verwacht.This is because the count transform expects names of this format.

Het tweede R-script houdt de verdeling over van positieve en negatieve klassen (respectievelijk klassen 1 en 0) door lagere steek proeven voor de negatieve klasse.The second R script balances the distribution between positive and negative classes (classes 1 and 0 respectively) by down-sampling the negative class. In het R-script ziet u hoe u dit doet:The R script here shows how to do this:

Tweede R-script

In dit eenvoudige R-script wordt de ' POS _ NEG- _ verhouding ' gebruikt om de hoeveelheid saldo tussen de positieve en negatieve klassen in te stellen.In this simple R script, the "pos_neg_ratio" is used to set the amount of balance between the positive and the negative classes. Dit is belang rijk om te doen omdat het verbeteren van de klasse niet normaal gesp roken prestatie voordelen biedt voor classificatie problemen waarbij de klasse-distributie wordt schuingetrokken (in dit geval is er 3,3% positieve klasse en 96,7% negatieve klasse).This is important to do since improving class imbalance usually has performance benefits for classification problems where the class distribution is skewed (recall that in this case, you have 3.3% positive class and 96.7% negative class).

Het aantal trans formatie op de gegevens Toep assenApplying the count transformation on our data

Ten slotte kunt u de module trans formatie Toep assen gebruiken om het aantal transformaties op onze trein-en test gegevens sets toe te passen.Finally, you can use the Apply Transformation module to apply the count transforms on our train and test datasets. Deze module neemt de trans formatie van het opgeslagen aantal als één invoer en de gegevens sets voor de trein of test als de andere invoer en retourneert gegevens met de functies aantal.This module takes the saved count transform as one input and the train or test datasets as the other input, and returns data with count features. Dit wordt hier weer gegeven:It is shown here:

Transformatie module Toep assen

Een uittreksel van de functies van het aantalAn excerpt of what the count features look like

Het is een goed doel om te zien wat de aantal functies in ons geval zien.It is instructive to see what the count features look like in our case. Hier volgt een fragment van dit:Here is an excerpt of this:

Aantal functies

Dit fragment toont aan dat voor de kolommen die worden geteld op, de aantallen en logboek conflicteert naast alle relevante backoffs worden weer gegeven.This excerpt shows that for the columns counted on, you get the counts and log odds in addition to any relevant backoffs.

U bent nu klaar om een Azure Machine Learning model te bouwen met behulp van deze getransformeerde gegevens sets.You are now ready to build an Azure Machine Learning model using these transformed datasets. In de volgende sectie ziet u hoe dit kan worden gedaan.In the next section shows how this can be done.

Stap 3: het model bouwen, trainen en beoordelenStep 3: Build, train, and score the model

Keuze van de kenniserChoice of learner

Eerst moet u een leerer kiezen.First, you need to choose a learner. Gebruik een geboostte beslissings structuur met twee klassen als onze kenniser.Use a two-class boosted decision tree as our learner. Dit zijn de standaard opties voor deze kenniser:Here are the default options for this learner:

Two-Class versterkte para meters voor de beslissings structuur

Kies voor het experiment de standaard waarden.For the experiment, choose the default values. De standaard waarden zijn nuttig en zijn een goede manier om snelle basis lijnen voor prestaties te krijgen.The defaults are meaningful and a good way to get quick baselines on performance. U kunt de prestaties verbeteren door para meters te verruimen als u een basis lijn hebt gekozen.You can improve on performance by sweeping parameters if you choose to once you have a baseline.

Het model trainenTrain the model

Voor training kunt u gewoon een Train model -module aanroepen.For training, simply invoke a Train Model module. De twee invoer waarden zijn de Two-Class versterkte beslissings structuur leren en onze Train-gegevensset.The two inputs to it are the Two-Class Boosted Decision Tree learner and our train dataset. Dit wordt hier weer gegeven:This is shown here:

Train model-module

Het model beoordelenScore the model

Zodra u een getraind model hebt, bent u klaar om de test gegevensset te beoordelen en de prestaties te evalueren.Once you have a trained model, you are ready to score on the test dataset and to evaluate its performance. Doe dit met behulp van de module score model die in de volgende afbeelding wordt weer gegeven, samen met de module Evaluate model :Do this by using the Score Model module shown in the following figure, along with an Evaluate Model module:

De module Score Model (Scoremodel)

Stap 4: het model evaluerenStep 4: Evaluate the model

Ten slotte moet u de model prestaties analyseren.Finally, you should analyze model performance. Normaal gesp roken is een goede meting voor problemen met twee klasse (binaire)-classificatie de AUC.Usually, for two class (binary) classification problems, a good measure is the AUC. Als u deze curve wilt visualiseren, koppelt u de module score model aan een module Evaluate model .To visualize this curve, connect the Score Model module to an Evaluate Model module. Als u op visualiseren in de module Evaluate model klikt, wordt er een afbeelding weer gegeven zoals in het volgende voor beeld:Clicking Visualize on the Evaluate Model module yields a graphic like the following one:

Het BDT-model van de module evalueren

In binaire classificatie problemen (of twee klassen) is een goede meting van de nauw keurigheid van voor spellingen de Opper vlakte onder curve (AUC).In binary (or two class) classification problems, a good measure of prediction accuracy is the Area Under Curve (AUC). In de volgende sectie vindt u de resultaten met behulp van dit model in onze test-gegevensset.The following section shows our results using this model on our test dataset. Klik met de rechter muisknop op de uitvoer poort van de module Evaluate model en klik vervolgens op visualiseren.Right-click the output port of the Evaluate Model module and then Visualize.

Visualiseren-model module evalueren

Stap 5: het model publiceren als een webserviceStep 5: Publish the model as a Web service

De mogelijkheid om een Azure Machine Learning model te publiceren als webservices met een minimum van Fuss is een waardevol onderdeel om het algemeen beschikbaar te maken.The ability to publish an Azure Machine Learning model as web services with a minimum of fuss is a valuable feature for making it widely available. Als dat is gebeurd, kan iedereen aanroepen naar de webservice met invoer gegevens waarvoor ze voor spellingen nodig hebben. de webservice gebruikt het model om deze voor spellingen te retour neren.Once that is done, anyone can make calls to the web service with input data that they need predictions for, and the web service uses the model to return those predictions.

Sla eerst ons getrainde model op als een getraind model object door met de rechter muisknop op de module Train model te klikken en de optie Opslaan als opgeleid model te gebruiken.First, save our trained model as a Trained Model object by right-clicking the Train Model module and using the Save as Trained Model option.

Maak vervolgens een invoer-en uitvoer poort voor onze webservice:Next, create input and output ports for our web service:

  • een invoer poort haalt gegevens op hetzelfde formulier op als de gegevens waarvoor u voor spellingen nodig hebt vooran input port takes data in the same form as the data that you need predictions for
  • een uitvoer poort retourneert de gescoorde labels en de bijbehorende kansen.an output port returns the Scored Labels and the associated probabilities.

Selecteer een paar rijen met gegevens voor de invoer poortSelect a few rows of data for the input port

Het is handig om een module voor het Toep assen van SQL-trans formatie te gebruiken om slechts 10 rijen te selecteren die als invoer poort gegevens dienen.It is convenient to use an Apply SQL Transformation module to select just 10 rows to serve as the input port data. Selecteer alleen deze gegevens rijen voor onze invoer poort met behulp van de SQL-query die hier wordt weer gegeven:Select just these rows of data for our input port using the SQL query shown here:

Invoer poort gegevens

WebserviceWeb service

U bent nu klaar om een klein experiment uit te voeren dat kan worden gebruikt voor het publiceren van onze webservice.Now you are ready to run a small experiment that can be used to publish our web service.

Invoer gegevens voor de webservice genererenGenerate input data for webservice

Als een zeroth-stap, omdat de Count-tabel groot is, neemt u enkele regels test gegevens en genereert u uitvoer gegevens van deze met aantal functies.As a zeroth step, since the count table is large, take a few lines of test data and generate output data from it with count features. Deze uitvoer kan fungeren als de invoer gegevens indeling voor onze webservice, zoals hier wordt weer gegeven:This output can serve as the input data format for our webservice, as shown here:

BDT-invoer gegevens maken

Notitie

Gebruik de uitvoer van de module Count Featurizer voor de indeling van de invoer gegevens.For the input data format, use the OUTPUT of the Count Featurizer module. Zodra dit experiment is uitgevoerd, slaat u de uitvoer van de module Count Featurizer op als een gegevensset.Once this experiment finishes running, save the output from the Count Featurizer module as a Dataset. Deze gegevensset wordt gebruikt voor de invoer gegevens in de webservice.This Dataset is used for the input data in the webservice.

Score experiment voor het publiceren van webserviceScoring experiment for publishing webservice

Eerst is de essentiële structuur een module van een score model waarmee ons getrainde model object en enkele regels met invoer gegevens die in de vorige stappen zijn gegenereerd met behulp van de module Count Featurizer worden geaccepteerd.First, the essential structure is a Score Model module that accepts our trained model object and a few lines of input data that were generated in the previous steps using the Count Featurizer module. Gebruik ' select columns in Dataset ' om de gescoorde labels en de Score kansen te projecteren.Use "Select Columns in Dataset" to project out the Scored labels and the Score probabilities.

Kolommen in gegevensset selecteren

U ziet hoe de module select columns in dataset kan worden gebruikt voor het filteren van gegevens uit een gegevensset.Notice how the Select Columns in Dataset module can be used for 'filtering' data out from a dataset. De inhoud wordt hier weer gegeven:The contents are shown here:

Filteren met de module select columns in DataSet

Als u de blauwe invoer-en uitvoer poorten wilt ophalen, klikt u op webservice voorbereiden onder aan de rechter kant.To get the blue input and output ports, you simply click prepare webservice at the bottom right. Als u dit experiment uitvoert, kunnen we ook de webservice publiceren: Klik op het pictogram PUBLISH web service in de rechter benedenhoek, zoals hier wordt weer gegeven:Running this experiment also allows us to publish the web service: click the PUBLISH WEB SERVICE icon at the bottom right, shown here:

Webservice publiceren

Zodra de webservice is gepubliceerd, wordt u omgeleid naar een pagina die er zo uitziet:Once the webservice is published, get redirected to a page that looks thus:

Dashboard van de webservice

Let op de twee koppelingen voor webservices aan de linkerkant:Notice the two links for webservices on the left side:

  • De aanvraag/antwoord service (of rr's) is bedoeld voor enkele voor spellingen en is in deze workshop gebruikt.The REQUEST/RESPONSE Service (or RRS) is meant for single predictions and is what has been utilized in this workshop.
  • De batch EXECUTION service (BES) wordt gebruikt voor batch voorspellingen en vereist dat de invoer gegevens die worden gebruikt voor het maken van voor spellingen zich bevinden in Azure Blob Storage.The BATCH EXECUTION Service (BES) is used for batch predictions and requires that the input data used to make predictions reside in Azure Blob Storage.

Als u op de koppelings aanvraag/antwoord klikt, gaat u naar een pagina die de code voor de pre-blik in C#, python en R bevat. Deze code kan gemakkelijk worden gebruikt voor het maken van aanroepen naar de webservice.Clicking on the link REQUEST/RESPONSE takes us to a page that gives us pre-canned code in C#, python, and R. This code can be conveniently used for making calls to the webservice. De API-sleutel op deze pagina moet worden gebruikt voor verificatie.The API key on this page needs to be used for authentication.

Het is handig om deze python-code te kopiëren naar een nieuwe cel in de IPython-notebook.It is convenient to copy this python code over to a new cell in the IPython notebook.

Hier volgt een segment van de python-code met de juiste API-sleutel.Here is a segment of python code with the correct API key.

Python-code

De standaard-API-sleutel is vervangen door de API-sleutel van onze webservice.The default API key has been replaced with our webservice's API key. Als u in deze cel in een IPython-notebook op uitvoeren klikt, wordt het volgende antwoord opgeleverd:Clicking Run on this cell in an IPython notebook yields the following response:

IPython-antwoord

Voor de twee test voorbeelden die worden gevraagd in het schema van het python-script, krijgt u terug-antwoorden in de vorm ' gescoorde labels, gescoorde kansen '.For the two test examples asked about in the Python script JSON framework, you get back answers in the form "Scored Labels, Scored Probabilities". In dit geval zijn de standaard waarden gekozen. de vooraf ingecheckte code levert (0 voor alle numerieke kolommen en de teken reeks "waarde" voor alle kolommen van categorische).In this case, the default values have been chosen that the pre-canned code provides (0's for all numeric columns and the string "value" for all categorical columns).

In deze walkthrough ziet u hoe u met Azure Machine Learning een grootschalige gegevensset kunt verwerken.In conclusion, our walkthrough shows how to handle large-scale dataset using Azure Machine Learning. U bent begonnen met een terabyte aan gegevens, een Voorspellings model gemaakt en deze als een webservice in de Cloud geïmplementeerd.You started with a terabyte of data, constructed a prediction model, and deployed it as a web service in the cloud.