Data Wetenschappen met een Ubuntu-Data Science Virtual Machine in azureData science with an Ubuntu Data Science Virtual Machine in Azure

In dit scenario ziet u hoe u verschillende algemene data Science-taken kunt uitvoeren met behulp van de Ubuntu-Data Science Virtual Machine (DSVM).This walkthrough shows you how to complete several common data science tasks by using the Ubuntu Data Science Virtual Machine (DSVM). De Ubuntu DSVM is een installatie kopie van een virtuele machine die beschikbaar is in Azure en die vooraf is geïnstalleerd met een verzameling hulpprogram ma's die vaak worden gebruikt voor gegevens analyse en machine learning.The Ubuntu DSVM is a virtual machine image available in Azure that's preinstalled with a collection of tools commonly used for data analytics and machine learning. De belangrijkste software onderdelen zijn gespecificeerd in het inrichten van de Ubuntu-data Science virtual machine.The key software components are itemized in Provision the Ubuntu Data Science Virtual Machine. Met de DSVM-installatie kopie kunt u eenvoudig aan de slag met het uitvoeren van data Science in enkele minuten, zonder dat u elk van de hulpprogram ma's afzonderlijk hoeft te installeren en configureren.The DSVM image makes it easy to get started doing data science in minutes, without having to install and configure each of the tools individually. U kunt de DSVM eenvoudig omhoog schalen als dat nodig is, en u kunt deze stoppen wanneer deze niet in gebruik is.You can easily scale up the DSVM if you need to, and you can stop it when it's not in use. De DSVM-resource is zowel elastisch als kosten efficiënt.The DSVM resource is both elastic and cost-efficient.

In dit overzicht analyseren we de spambase -gegevensset.In this walkthrough, we analyze the spambase dataset. Spambase is een set e-mail berichten die zijn gemarkeerd als spam of per (geen spam).Spambase is a set of emails that are marked either spam or ham (not spam). Spambase bevat ook enkele statistieken over de inhoud van de e-mail berichten.Spambase also contains some statistics about the content of the emails. Verderop in dit overzicht wordt gecommuniceerd over de statistieken.We talk about the statistics later in the walkthrough.

VereistenPrerequisites

Voordat u een Linux-DSVM kunt gebruiken, moet u beschikken over de volgende vereisten:Before you can use a Linux DSVM, you must have the following prerequisites:

De spambase-gegevensset downloadenDownload the spambase dataset

De spambase -gegevensset is een relatief kleine set gegevens met 4.601-voor beelden.The spambase dataset is a relatively small set of data that contains 4,601 examples. De gegevensset is een handige grootte voor het demonstreren van enkele van de belangrijkste functies van de DSVM, omdat deze de resource vereisten voor een bescheiden houdt.The dataset is a convenient size for demonstrating some of the key features of the DSVM because it keeps the resource requirements modest.

Notitie

Deze walkthrough is gemaakt met behulp van een D2 v2-grootte Linux DSVM (Ubuntu 18,04 Edition).This walkthrough was created by using a D2 v2-size Linux DSVM (Ubuntu 18.04 Edition). U kunt een DSVM deze grootte gebruiken om de procedures uit te voeren die in dit overzicht worden getoond.You can use a DSVM this size to complete the procedures that are demonstrated in this walkthrough.

Als u meer opslag ruimte nodig hebt, kunt u extra schijven maken en deze koppelen aan uw DSVM.If you need more storage space, you can create additional disks and attach them to your DSVM. De schijven gebruiken permanente Azure-opslag, zodat de gegevens behouden blijven, zelfs als de server opnieuw wordt ingericht vanwege het wijzigen van de grootte of wordt uitgeschakeld.The disks use persistent Azure storage, so their data is preserved even if the server is reprovisioned due to resizing or is shut down. Als u een schijf wilt toevoegen en deze aan uw DSVM wilt koppelen, voert u de stappen in een schijf toevoegen aan een virtuele Linux-machineuit.To add a disk and attach it to your DSVM, complete the steps in Add a disk to a Linux VM. De stappen voor het toevoegen van een schijf gebruiken de Azure CLI, die al is geïnstalleerd op de DSVM.The steps for adding a disk use the Azure CLI, which is already installed on the DSVM. U kunt de stappen volledig van de DSVM uitvoeren.You can complete the steps entirely from the DSVM itself. Een andere optie om de opslag ruimte te verg Roten, is om Azure fileste gebruiken.Another option to increase storage is to use Azure Files.

Als u de gegevens wilt downloaden, opent u een Terminal venster en voert u de volgende opdracht uit:To download the data, open a terminal window, and then run this command:

wget --no-check-certificate https://archive.ics.uci.edu/ml/machine-learning-databases/spambase/spambase.data

Het gedownloade bestand heeft geen veldnamenrij.The downloaded file doesn't have a header row. Laten we nog een bestand maken dat een koptekst heeft.Let's create another file that does have a header. Voer deze opdracht uit om een bestand met de juiste headers te maken:Run this command to create a file with the appropriate headers:

echo 'word_freq_make, word_freq_address, word_freq_all, word_freq_3d,word_freq_our, word_freq_over, word_freq_remove, word_freq_internet,word_freq_order, word_freq_mail, word_freq_receive, word_freq_will,word_freq_people, word_freq_report, word_freq_addresses, word_freq_free,word_freq_business, word_freq_email, word_freq_you, word_freq_credit,word_freq_your, word_freq_font, word_freq_000, word_freq_money,word_freq_hp, word_freq_hpl, word_freq_george, word_freq_650, word_freq_lab,word_freq_labs, word_freq_telnet, word_freq_857, word_freq_data,word_freq_415, word_freq_85, word_freq_technology, word_freq_1999,word_freq_parts, word_freq_pm, word_freq_direct, word_freq_cs, word_freq_meeting,word_freq_original, word_freq_project, word_freq_re, word_freq_edu,word_freq_table, word_freq_conference, char_freq_semicolon, char_freq_leftParen,char_freq_leftBracket, char_freq_exclamation, char_freq_dollar, char_freq_pound, capital_run_length_average,capital_run_length_longest, capital_run_length_total, spam' > headers

Voeg de twee bestanden vervolgens samen:Then, concatenate the two files together:

cat spambase.data >> headers
mv headers spambaseHeaders.data

De gegevensset heeft verschillende typen statistieken voor elk e-mail bericht:The dataset has several types of statistics for each email:

  • Kolommen zoals Word _ freq _ WORD geven het percentage woorden in het e-mail bericht aan dat overeenkomt met Word.Columns like word_freq_WORD indicate the percentage of words in the email that match WORD. Als Word _ freq _ bijvoorbeeld 1 is, dan is 1% van alle woorden in het e-mail bericht gemaakt.For example, if word_freq_make is 1 , then 1% of all words in the email were make.
  • Kolommen zoals char _ freq _ char geven het percentage van alle tekens in het e-mail bericht dat char is.Columns like char_freq_CHAR indicate the percentage of all characters in the email that are CHAR.
  • de langste _ Run- _ lengte _ is de langste lengte van een reeks hoofd letters.capital_run_length_longest is the longest length of a sequence of capital letters.
  • het _ _ _ gemiddelde van de lengte van een hoofd letter is de gemiddelde lengte van alle reeksen hoofd letters.capital_run_length_average is the average length of all sequences of capital letters.
  • _ totale uitvoerings _ lengte _ van de hoofd letter is de totale lengte van alle reeksen hoofd letters.capital_run_length_total is the total length of all sequences of capital letters.
  • spam geeft aan of het e-mail bericht als spam is beschouwd of niet (1 = spam, 0 = geen spam).spam indicates whether the email was considered spam or not (1 = spam, 0 = not spam).

De gegevensset verkennen met R openExplore the dataset by using R Open

We gaan de gegevens bekijken en enkele basis machine learning doen met behulp van R. De DSVM wordt geleverd met micro soft R open vooraf geïnstalleerd.Let's examine the data and do some basic machine learning by using R. The DSVM comes with Microsoft R Open preinstalled. De multi-threaded wiskundige bibliotheken in de vooraf geïnstalleerde versie van R bieden betere prestaties dan versies met één thread.The multithreaded math libraries in the preinstalled version of R offer better performance than single-threaded versions. R open biedt reproduceer baarheid via een moment opname van de opslag plaats voor de KRANs.R Open also provides reproducibility through a snapshot of the CRAN package repository.

Als u kopieën wilt ophalen van de code voorbeelden die in dit overzicht worden gebruikt, gebruikt u Git om de opslag plaats Azure-machine-learning-data-Science te klonen.To get copies of the code samples that are used in this walkthrough, use git to clone the Azure-Machine-Learning-Data-Science repository. Git is vooraf geïnstalleerd op de DSVM.Git is preinstalled on the DSVM. Voer op de Git-opdracht regel het volgende uit:At the git command line, run:

git clone https://github.com/Azure/Azure-MachineLearning-DataScience.git

Open een Terminal venster en start een nieuwe R-sessie in de R Interactive-console.Open a terminal window and start a new R session in the R interactive console. U kunt ook RStudio gebruiken, dat vooraf is geïnstalleerd op de DSVM.You also can use RStudio, which is preinstalled on the DSVM.

De gegevens importeren en de omgeving instellen:To import the data and set up the environment:

data <- read.csv("spambaseHeaders.data")
set.seed(123)

Samenvattings statistieken weer geven voor elke kolom:To see summary statistics about each column:

summary(data)

Voor een andere weer gave van de gegevens:For a different view of the data:

str(data)

In deze weer gave ziet u het type van elke variabele en de eerste waarden in de gegevensset.This view shows you the type of each variable and the first few values in the dataset.

De kolom spam is gelezen als een geheel getal, maar het is wel echt een categorische-variabele (of factor).The spam column was read as an integer, but it's actually a categorical variable (or factor). Het type instellen:To set its type:

data$spam <- as.factor(data$spam)

Als u een verkennende analyse wilt uitvoeren, gebruikt u het ggplot2 -pakket, een populaire grafiek bibliotheek voor R die vooraf is geïnstalleerd op de DSVM.To do some exploratory analysis, use the ggplot2 package, a popular graphing library for R that's preinstalled on the DSVM. Op basis van de hierboven weer gegeven samenvattings gegevens hebben we een overzicht van de frequentie van het uitroep teken.Based on the summary data displayed earlier, we have summary statistics on the frequency of the exclamation mark character. We zetten deze frequenties hier door de volgende opdrachten uit te voeren:Let's plot those frequencies here by running the following commands:

library(ggplot2)
ggplot(data) + geom_histogram(aes(x=char_freq_exclamation), binwidth=0.25)

Omdat de nul balk het waarnemings punt scheef stelt, gaan we deze elimineren:Because the zero bar is skewing the plot, let's eliminate it:

email_with_exclamation = data[data$char_freq_exclamation > 0, ]
ggplot(email_with_exclamation) + geom_histogram(aes(x=char_freq_exclamation), binwidth=0.25)

Er is een niet-essentiële densiteit van meer dan 1 die interessant lijkt.There is a nontrivial density above 1 that looks interesting. Laten we alleen die gegevens bekijken:Let's look at only that data:

ggplot(data[data$char_freq_exclamation > 1, ]) + geom_histogram(aes(x=char_freq_exclamation), binwidth=0.25)

Splits deze vervolgens op via spam versus per-app:Then, split it by spam versus ham:

ggplot(data[data$char_freq_exclamation > 1, ], aes(x=char_freq_exclamation)) +
geom_density(lty=3) +
geom_density(aes(fill=spam, colour=spam), alpha=0.55) +
xlab("spam") +
ggtitle("Distribution of spam \nby frequency of !") +
labs(fill="spam", y="Density")

Deze voor beelden kunnen u helpen om Vergelijk bare grafieken te maken en gegevens in de andere kolommen te verkennen.These examples should help you make similar plots and explore data in the other columns.

Een machine learning model trainen en testenTrain and test a machine learning model

We gaan een aantal machine learning modellen trainen om de e-mail berichten in de gegevensset te classificeren met een of meer ongewenste e-mail.Let's train a couple of machine learning models to classify the emails in the dataset as containing either spam or ham. In deze sectie trainen we een beslissings structuur model en een wille keurig forest model.In this section, we train a decision tree model and a random forest model. Vervolgens testen we de nauw keurigheid van de voor spellingen.Then, we test the accuracy of the predictions.

Notitie

Het rpart -pakket (recursieve partitioneren en regressie structuren) dat in de volgende code wordt gebruikt, is al in de DSVM geïnstalleerd.The rpart (Recursive Partitioning and Regression Trees) package used in the following code is already installed on the DSVM.

Eerst splitst u de gegevensset in opleidings sets en test sets:First, let's split the dataset into training sets and test sets:

rnd <- runif(dim(data)[1])
trainSet = subset(data, rnd <= 0.7)
testSet = subset(data, rnd > 0.7)

Maak vervolgens een beslissings structuur om de e-mail berichten te classificeren:Then, create a decision tree to classify the emails:

require(rpart)
model.rpart <- rpart(spam ~ ., method = "class", data = trainSet)
plot(model.rpart)
text(model.rpart)

Dit is het resultaat:Here's the result:

Een diagram van de beslissings structuur die wordt gemaakt

Gebruik de volgende code om te bepalen hoe goed het werkt in de Trainingsset:To determine how well it performs on the training set, use the following code:

trainSetPred <- predict(model.rpart, newdata = trainSet, type = "class")
t <- table(`Actual Class` = trainSet$spam, `Predicted Class` = trainSetPred)
accuracy <- sum(diag(t))/sum(t)
accuracy

U kunt als volgt bepalen hoe goed het werkt op de testset:To determine how well it performs on the test set:

testSetPred <- predict(model.rpart, newdata = testSet, type = "class")
t <- table(`Actual Class` = testSet$spam, `Predicted Class` = testSetPred)
accuracy <- sum(diag(t))/sum(t)
accuracy

Laten we ook een wille keurig forest model proberen.Let's also try a random forest model. Wille keurige forests trainen een groot aantal beslissings structuren en voeren een klasse uit die de modus van de classificaties van alle afzonderlijke beslissings structuren is.Random forests train a multitude of decision trees and output a class that's the mode of the classifications from all the individual decision trees. Ze bieden een krachtigere machine learning benadering omdat ze correct zijn voor de tendens van een beslissings structuur model om een overfit te maken.They provide a more powerful machine learning approach because they correct for the tendency of a decision tree model to overfit a training dataset.

require(randomForest)
trainVars <- setdiff(colnames(data), 'spam')
model.rf <- randomForest(x=trainSet[, trainVars], y=trainSet$spam)

trainSetPred <- predict(model.rf, newdata = trainSet[, trainVars], type = "class")
table(`Actual Class` = trainSet$spam, `Predicted Class` = trainSetPred)

testSetPred <- predict(model.rf, newdata = testSet[, trainVars], type = "class")
t <- table(`Actual Class` = testSet$spam, `Predicted Class` = testSetPred)
accuracy <- sum(diag(t))/sum(t)
accuracy

Zelf studies en-scenario's voor uitgebreid lerenDeep learning tutorials and walkthroughs

Naast de voor beelden op basis van het Framework, wordt ook een reeks uitgebreide instructies gegeven.In addition to the framework-based samples, a set of comprehensive walkthroughs is also provided. Met deze procedures kunt u snel aan de slag met het ontwikkelen van uitgebreide leer toepassingen in domeinen zoals afbeeldings-en tekst-en taal informatie.These walkthroughs help you jump-start your development of deep learning applications in domains like image and text/language understanding.

  • Het uitvoeren van Neural-netwerken in verschillende Frameworks: een uitgebreid overzicht waarin wordt uitgelegd hoe u code van het ene naar het andere Framework migreert.Running neural networks across different frameworks: A comprehensive walkthrough that shows you how to migrate code from one framework to another. Er wordt ook gedemonstreerd hoe u de prestaties van model en runtime in Frameworks kunt vergelijken.It also demonstrates how to compare model and runtime performance across frameworks.

  • Een hand leiding voor het bouwen van een end-to-end oplossing voor het detecteren van producten binnen installatie kopieën: detectie van afbeeldingen is een techniek waarmee objecten in afbeeldingen kunnen worden gevonden en geclassificeerd.A how-to guide for building an end-to-end solution to detect products within images: Image detection is a technique that can locate and classify objects within images. De technologie biedt de mogelijkheid om enorme voor delen te bieden in veel zakelijke domeinen in de praktijk.The technology has the potential to bring huge rewards in many real-life business domains. Detail handelaren kunnen bijvoorbeeld deze techniek gebruiken om te bepalen welk product een klant uit het schap heeft gekozen.For example, retailers can use this technique to determine which product a customer has picked up from the shelf. Met deze informatie kunt u de product inventaris van beheer opslaan.This information in turn helps stores manage product inventory.

  • Diep gaande informatie over audio: indeze zelf studie leert u hoe u een diepe leer model kunt trainen voor de detectie van audio gebeurtenissen op de gegevensset stads geluiden.Deep learning for audio: This tutorial shows how to train a deep learning model for audio event detection on the urban sounds dataset. De zelf studie biedt een overzicht van hoe u met audio gegevens werkt.The tutorial provides an overview of how to work with audio data.

  • Classificatie van tekst documenten: in dit scenario ziet u hoe u twee verschillende Neural-netwerk architecturen bouwt en traint: hiërarchische aandacht van netwerk en langlopende geheugen (LSTM).Classification of text documents: This walkthrough demonstrates how to build and train two different neural network architectures: Hierarchical Attention Network and Long Short Term Memory (LSTM). Deze Neural-netwerken gebruiken de Keras-API voor diep gaande lessen om tekst documenten te classificeren.These neural networks use the Keras API for deep learning to classify text documents. Keras is een front-end tot drie van de meest populaire diepe leer frameworks: Microsoft Cognitive Toolkit, tensor flow en Theano.Keras is a front end to three of the most popular deep learning frameworks: Microsoft Cognitive Toolkit, TensorFlow, and Theano.

Andere hulpprogramma'sOther tools

In de overige secties ziet u hoe u een aantal van de hulpprogram ma's kunt gebruiken die zijn geïnstalleerd op de Linux-DSVM.The remaining sections show you how to use some of the tools that are installed on the Linux DSVM. Deze hulpprogram ma's worden besproken:We discuss these tools:

  • XGBoostXGBoost
  • PythonPython
  • JupyterHubJupyterHub
  • RattleRattle
  • PostgreSQL en SQuirreL SQLPostgreSQL and SQuirreL SQL
  • Azure Synapse Analytics (voorheen SQL DW)Azure Synapse Analytics (formerly SQL DW)

XGBoostXGBoost

XGBoost biedt een snelle en nauw keurige implementatie van een boom structuur.XGBoost provides a fast and accurate boosted tree implementation.

require(xgboost)
data <- read.csv("spambaseHeaders.data")
set.seed(123)

rnd <- runif(dim(data)[1])
trainSet = subset(data, rnd <= 0.7)
testSet = subset(data, rnd > 0.7)

bst <- xgboost(data = data.matrix(trainSet[,0:57]), label = trainSet$spam, nthread = 2, nrounds = 2, objective = "binary:logistic")

pred <- predict(bst, data.matrix(testSet[, 0:57]))
accuracy <- 1.0 - mean(as.numeric(pred > 0.5) != testSet$spam)
print(paste("test accuracy = ", accuracy))

XGBoost kan ook worden aangeroepen vanuit Python of een opdracht regel.XGBoost also can call from Python or a command line.

PythonPython

Voor de ontwikkeling van python worden de Anaconda python-distributies 3,5 en 2,7 geïnstalleerd op de DSVM.For Python development, the Anaconda Python distributions 3.5 and 2.7 are installed on the DSVM.

Notitie

De Anaconda-distributie omvat Conda.The Anaconda distribution includes Conda. U kunt Conda gebruiken om aangepaste python-omgevingen te maken waarin verschillende versies of pakketten zijn geïnstalleerd.You can use Conda to create custom Python environments that have different versions or packages installed in them.

Laten we in een aantal spambase-gegevensset lezen en de e-mails classificeren met ondersteuning voor vector machines in Scikit-Learn:Let's read in some of the spambase dataset and classify the emails with support vector machines in Scikit-learn:

import pandas
from sklearn import svm
data = pandas.read_csv("spambaseHeaders.data", sep = ',\s*')
X = data.ix[:, 0:57]
y = data.ix[:, 57]
clf = svm.SVC()
clf.fit(X, y)

Voor spellingen doen:To make predictions:

clf.predict(X.ix[0:20, :])

Om te laten zien hoe u een Azure Machine Learning-eind punt publiceert, gaan we een meer basis model maken.To demonstrate how to publish an Azure Machine Learning endpoint, let's make a more basic model. We gebruiken de drie variabelen die we hebben gebruikt bij het publiceren van het R-model eerder:We'll use the three variables that we used when we published the R model earlier:

X = data[["char_freq_dollar", "word_freq_remove", "word_freq_hp"]]
y = data.ix[:, 57]
clf = svm.SVC()
clf.fit(X, y)

JupyterHubJupyterHub

De Anaconda-distributie in het DSVM wordt geleverd met een Jupyter Notebook, een omgeving voor meerdere platforms voor het delen van python-, R-of Julia-code en-analyse.The Anaconda distribution in the DSVM comes with a Jupyter Notebook, a cross-platform environment for sharing Python, R, or Julia code and analysis. De Jupyter Notebook wordt geopend via JupyterHub.The Jupyter Notebook is accessed through JupyterHub. U meldt zich aan met uw lokale Linux-gebruikers naam en-wacht woord op https:// <DSVM DNS name or IP address> : 8000/.You sign in by using your local Linux user name and password at https://<DSVM DNS name or IP address>:8000/. Alle configuratie bestanden voor JupyterHub vindt u in/etc/jupyterhub.All configuration files for JupyterHub are found in /etc/jupyterhub.

Notitie

Als u het python-pakket beheer (via de pip opdracht) van een Jupyter notebook in de huidige kernel wilt gebruiken, gebruikt u deze opdracht in de cel code:To use the Python Package Manager (via the pip command) from a Jupyter Notebook in the current kernel, use this command in the code cell:

 import sys
 ! {sys.executable} -m pip install numpy -y

Als u het installatie programma Conda (via de conda opdracht) van een Jupyter notebook in de huidige kernel wilt gebruiken, gebruikt u deze opdracht in een code-cel:To use the Conda installer (via the conda command) from a Jupyter Notebook in the current kernel, use this command in a code cell:

 import sys
 ! {sys.prefix}/bin/conda install --yes --prefix {sys.prefix} numpy

Er zijn al een aantal voor beelden van notitie blokken geïnstalleerd op de DSVM:Several sample notebooks are already installed on the DSVM:

Notitie

De Julia-taal is ook beschikbaar vanaf de opdracht regel in de Linux-DSVM.The Julia language also is available from the command line on the Linux DSVM.

RattleRattle

Rattle ( R A analytische t Ool t o L verdienen E asily) is een grafisch hulp programma voor gegevens analyse.Rattle ( R A nalytical T ool T o L earn E asily) is a graphical R tool for data mining. Rattle heeft een intuïtieve interface waarmee u eenvoudig gegevens kunt laden, verkennen en transformeren, en modellen kunt bouwen en evalueren.Rattle has an intuitive interface that makes it easy to load, explore, and transform data, and to build and evaluate models. Rattle: een gegevens analyse-GUI voor R biedt een overzicht van de functies van Rattle.Rattle: A Data Mining GUI for R provides a walkthrough that demonstrates Rattle's features.

Voer de volgende opdrachten uit om Rattle te installeren en te starten:Install and start Rattle by running these commands:

if(!require("rattle")) install.packages("rattle")
require(rattle)
rattle()

Notitie

U hoeft Rattle niet te installeren op de DSVM.You don't need to install Rattle on the DSVM. U wordt echter mogelijk gevraagd om extra pakketten te installeren wanneer Rattle wordt geopend.However, you might be prompted to install additional packages when Rattle opens.

Rattle maakt gebruik van een op een tabblad gebaseerde interface.Rattle uses a tab-based interface. De meeste tabbladen komen overeen met de stappen in het team data Science proces, zoals het laden van gegevens of het verkennen van gegevens.Most of the tabs correspond to steps in the Team Data Science Process, like loading data or exploring data. Het data Science proces loopt van links naar rechts via de tabbladen.The data science process flows from left to right through the tabs. Het laatste tabblad bevat een logboek van de R-opdrachten die zijn uitgevoerd door Rattle.The last tab contains a log of the R commands that were run by Rattle.

Laden en configureren van de gegevensset:To load and configure the dataset:

  1. Als u het bestand wilt laden, selecteert u het tabblad gegevens .To load the file, select the Data tab.
  2. Kies de selector naast Bestands naam en selecteer vervolgens spambaseHeaders. data.Choose the selector next to Filename , and then select spambaseHeaders.data.
  3. Om het bestand te laden.To load the file. selecteer Uitvoeren.select Execute. U ziet een samen vatting van elke kolom, met inbegrip van het geïdentificeerde gegevens type. of het nu gaat om een invoer, een doel of een ander type variabele. en het aantal unieke waarden.You should see a summary of each column, including its identified data type; whether it's an input, a target, or other type of variable; and the number of unique values.
  4. Rattle heeft de kolom met ongewenste e-mail op de juiste wijze geïdentificeerd als het doel.Rattle has correctly identified the spam column as the target. Selecteer de kolom tegen ongewenste e-mail en stel het doel gegevens type in op Categoric.Select the spam column, and then set the Target Data Type to Categoric.

De gegevens verkennen:To explore the data:

  1. Selecteer het tabblad verkennen .Select the Explore tab.
  2. Als u informatie wilt weer geven over de variabele typen en enkele samenvattings statistieken, selecteert u samen vatting > uitvoeren.To see information about the variable types and some summary statistics, select Summary > Execute.
  3. Als u andere typen statistieken over elke variabele wilt weer geven, selecteert u andere opties, zoals Beschrijving of basis.To view other types of statistics about each variable, select other options, like Describe or Basics.

U kunt ook het tabblad verkennen gebruiken om inkijkende grafieken te genereren.You can also use the Explore tab to generate insightful plots. Een histogram met gegevens uitzetten:To plot a histogram of the data:

  1. Selecteer distributies.Select Distributions.
  2. Selecteer histogram voor word_freq_remove en word_freq_you.For word_freq_remove and word_freq_you , select Histogram.
  3. Selecteer Uitvoeren.Select Execute. Als het goed is, ziet u in één grafiek venster beide dichtheids grafieken, waar het woord duidelijker wordt weer gegeven in e-mail berichten dan verwijderen.You should see both density plots in a single graph window, where it's clear that the word you appears much more frequently in emails than remove.

De correlatie punten zijn ook interessant.The Correlation plots also are interesting. Een tekening maken:To create a plot:

  1. Selecteer correlatie bij type.For Type , select Correlation.
  2. Selecteer Uitvoeren.Select Execute.
  3. Rattle waarschuwt u dat er Maxi maal 40 variabelen worden aanbevolen.Rattle warns you that it recommends a maximum of 40 variables. Selecteer Ja om het waarnemings punt weer te geven.Select Yes to view the plot.

Er zijn interessante correlaties die beschikbaar zijn: technologie is in het algemeen gecorreleerd aan HP en Labs , bijvoorbeeld.There are some interesting correlations that come up: technology is strongly correlated to HP and labs , for example. Het is ook sterk gecorreleerd aan 650 , omdat het netnummer van de gegevensset donateurs is 650.It's also strongly correlated to 650 because the area code of the dataset donors is 650.

De numerieke waarden voor de correlaties tussen woorden zijn beschikbaar in het venster verkennen .The numeric values for the correlations between words are available in the Explore window. Het is bijvoorbeeld interessant om te weten dat de technologie op een negatieve basis is afgestemd op uw en geld.It's interesting to note, for example, that technology is negatively correlated with your and money.

Rattle kan de gegevensset transformeren voor het verwerken van enkele veelvoorkomende problemen.Rattle can transform the dataset to handle some common issues. Het kan bijvoorbeeld onderdelen opnieuw schalen, ontbrekende waarden toerekeningen, uitschieters afhandelen en variabelen of waarnemingen verwijderen waarvoor gegevens ontbreken.For example, it can rescale features, impute missing values, handle outliers, and remove variables or observations that have missing data. Rattle kan ook koppelings regels identificeren tussen waarnemingen en variabelen.Rattle can also identify association rules between observations and variables. Deze tabbladen vallen niet onder deze inleiding.These tabs aren't covered in this introductory walkthrough.

Rattle kan ook cluster analyse uitvoeren.Rattle also can run cluster analysis. We gaan enkele functies uitsluiten, zodat de uitvoer eenvoudiger te lezen is.Let's exclude some features to make the output easier to read. Op het tabblad gegevens selecteert u negeren naast elk van de variabelen, behalve deze 10 items:On the Data tab, select Ignore next to each of the variables except these 10 items:

  • word_freq_hpword_freq_hp
  • word_freq_technologyword_freq_technology
  • word_freq_georgeword_freq_george
  • word_freq_removeword_freq_remove
  • word_freq_yourword_freq_your
  • word_freq_dollarword_freq_dollar
  • word_freq_moneyword_freq_money
  • capital_run_length_longestcapital_run_length_longest
  • word_freq_businessword_freq_business
  • spamspam

Ga terug naar het tabblad cluster . Selecteer KMeans en stel het aantal clusters in op 4.Return to the Cluster tab. Select KMeans , and then set Number of clusters to 4. Selecteer Uitvoeren.Select Execute. De resultaten worden weer gegeven in het uitvoer venster.The results are displayed in the output window. Een cluster heeft een hoge frequentie van George en HP , en is waarschijnlijk een rechtmatig zakelijk e-mail adres.One cluster has high frequency of george and hp , and is probably a legitimate business email.

Een basis machine learning model voor de beslissings structuur maken:To build a basic decision tree machine learning model:

  1. Selecteer het tabblad model ,Select the Model tab,
  2. Selecteer structuur voor het type.For the Type , select Tree.
  3. Selecteer uitvoeren om de structuur weer te geven in de tekst vorm in het uitvoer venster.Select Execute to display the tree in text form in the output window.
  4. Selecteer de knop tekenen om een grafische versie weer te geven.Select the Draw button to view a graphical version. De beslissings structuur ziet er ongeveer uit als de structuur die we eerder hebben verkregen met behulp van rpart.The decision tree looks similar to the tree we obtained earlier by using rpart.

Een handige functie van Rattle is de mogelijkheid om verschillende machine learning-methoden uit te voeren en deze snel te evalueren.A helpful feature of Rattle is its ability to run several machine learning methods and quickly evaluate them. Dit zijn de stappen:Here's are the steps:

  1. Selecteer alle bij type.For Type , select All.
  2. Selecteer Uitvoeren.Select Execute.
  3. Wanneer Rattle is voltooid, kunt u elk type waarde selecteren, zoals SVM , en de resultaten weer geven.When Rattle finishes running, you can select any Type value, like SVM , and view the results.
  4. U kunt ook de prestaties van de modellen op de validatieset vergelijken met behulp van het tabblad evalueren . De selectie van de fout matrix toont bijvoorbeeld de Verwar ring matrix, algemene fout en gemiddeld aantal klassen fouten voor elk model in de validatieset.You also can compare the performance of the models on the validation set by using the Evaluate tab. For example, the Error Matrix selection shows you the confusion matrix, overall error, and averaged class error for each model on the validation set. U kunt ook ROC curven uitzetten, gevoeligheids analyses uitvoeren en andere typen model evaluaties doen.You also can plot ROC curves, run sensitivity analysis, and do other types of model evaluations.

Wanneer u klaar bent met het bouwen van modellen, selecteert u het tabblad logboek om de R-code weer te geven die tijdens uw sessie werd uitgevoerd door Rattle.When you're finished building models, select the Log tab to view the R code that was run by Rattle during your session. U kunt de knop exporteren selecteren om deze op te slaan.You can select the Export button to save it.

Notitie

De huidige release van Rattle bevat een bug.The current release of Rattle contains a bug. Als u het script wilt wijzigen of als u het wilt gebruiken om de stappen later te herhalen, moet u een # teken invoegen vóór het exporteren van dit logboek... in de tekst van het logboek.To modify the script or to use it to repeat your steps later, you must insert a # character in front of Export this log ... in the text of the log.

PostgreSQL en SQuirreL SQLPostgreSQL and SQuirreL SQL

De DSVM wordt geleverd met PostgreSQL geïnstalleerd.The DSVM comes with PostgreSQL installed. PostgreSQL is een geavanceerde, open-source relationele data base.PostgreSQL is a sophisticated, open-source relational database. In deze sectie wordt beschreven hoe u de spambase-gegevensset in PostgreSQL laadt en vervolgens een query uitvoert.This section shows you how to load the spambase dataset into PostgreSQL and then query it.

Voordat u de gegevens kunt laden, moet u wachtwoord verificatie van de localhost toestaan.Before you can load the data, you must allow password authentication from the localhost. Voer in een opdrachtprompt het volgende uit:At a command prompt, run:

sudo gedit /var/lib/pgsql/data/pg_hba.conf

Onder aan het configuratie bestand bevinden zich verschillende regels die de toegestane verbindingen beschrijven:Near the bottom of the config file are several lines that detail the allowed connections:

# "local" is only for Unix domain socket connections:
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Wijzig de lijn voor lokale IPv4-verbindingen voor het gebruik van MD5 in plaats van ident , zodat we zich kunnen aanmelden met een gebruikers naam en wacht woord:Change the IPv4 local connections line to use md5 instead of ident , so we can log in by using a username and password:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

Start de PostgreSQL-service vervolgens opnieuw:Then, restart the PostgreSQL service:

sudo systemctl restart postgresql

Als u psql (een interactieve terminal voor postgresql) als de ingebouwde post gres-gebruiker wilt starten, voert u deze opdracht uit:To launch psql (an interactive terminal for PostgreSQL) as the built-in postgres user, run this command:

sudo -u postgres psql

Maak een nieuw gebruikers account met behulp van de gebruikers naam van het Linux-account dat u hebt gebruikt om u aan te melden.Create a new user account by using the username of the Linux account you used to log in. Een wacht woord maken:Create a password:

CREATE USER <username> WITH CREATEDB;
CREATE DATABASE <username>;
ALTER USER <username> password '<password>';
\quit

Meld u aan bij psql:Log in to psql:

psql

Importeer de gegevens naar een nieuwe Data Base:Import the data to a new database:

CREATE DATABASE spam;
\c spam
CREATE TABLE data (word_freq_make real, word_freq_address real, word_freq_all real, word_freq_3d real,word_freq_our real, word_freq_over real, word_freq_remove real, word_freq_internet real,word_freq_order real, word_freq_mail real, word_freq_receive real, word_freq_will real,word_freq_people real, word_freq_report real, word_freq_addresses real, word_freq_free real,word_freq_business real, word_freq_email real, word_freq_you real, word_freq_credit real,word_freq_your real, word_freq_font real, word_freq_000 real, word_freq_money real,word_freq_hp real, word_freq_hpl real, word_freq_george real, word_freq_650 real, word_freq_lab real,word_freq_labs real, word_freq_telnet real, word_freq_857 real, word_freq_data real,word_freq_415 real, word_freq_85 real, word_freq_technology real, word_freq_1999 real,word_freq_parts real, word_freq_pm real, word_freq_direct real, word_freq_cs real, word_freq_meeting real,word_freq_original real, word_freq_project real, word_freq_re real, word_freq_edu real,word_freq_table real, word_freq_conference real, char_freq_semicolon real, char_freq_leftParen real,char_freq_leftBracket real, char_freq_exclamation real, char_freq_dollar real, char_freq_pound real, capital_run_length_average real, capital_run_length_longest real, capital_run_length_total real, spam integer);
\copy data FROM /home/<username>/spambase.data DELIMITER ',' CSV;
\quit

Nu gaan we de gegevens verkennen en enkele query's uitvoeren met behulp van SQuirreL SQL, een grafisch hulp programma dat u kunt gebruiken om met data bases te werken via een JDBC-stuur programma.Now, let's explore the data and run some queries by using SQuirreL SQL, a graphical tool that you can use to interact with databases via a JDBC driver.

Om aan de slag te gaan, opent u SQuirreL SQL in het menu toepassingen .To get started, on the Applications menu, open SQuirreL SQL. Het stuur programma instellen:To set up the driver:

  1. Selecteer Windows > Stuur Programma's voor Windows-weer gave.Select Windows > View Drivers.
  2. Klik met de rechter muisknop op postgresql en selecteer stuur programma wijzigen.Right-click PostgreSQL and select Modify Driver.
  3. Selecteer extra klasse-pad > toevoegen.Select Extra Class Path > Add.
  4. Voer voor Bestands naam /usr/share/java/jdbcdrivers/postgresql-9.4.1208.jre6.jar in.For File Name , enter /usr/share/java/jdbcdrivers/postgresql-9.4.1208.jre6.jar.
  5. Selecteer Openen.Select Open.
  6. Selecteer Stuur Programma's weer geven.Select List Drivers. Voor klassenaam selecteert u org. postgresql. driver en selecteert u OK.For Class Name , select org.postgresql.Driver , and then select OK.

De verbinding met de lokale server instellen:To set up the connection to the local server:

  1. Selecteer Windows - > weergave aliassen.Select Windows > View Aliases.
  2. Selecteer de + knop om een nieuwe alias te maken.Select the + button to create a new alias. Voer voor de nieuwe alias naam spam data base in.For the new alias name, enter Spam database.
  3. Selecteer voor stuur programma postgresql.For Driver , select PostgreSQL.
  4. Stel de URL in op JDBC: postgresql://localhost/spam.Set the URL to jdbc:postgresql://localhost/spam.
  5. Voer uw gebruikersnaam en wachtwoord in.Enter your username and password.
  6. Selecteer OK.Select OK.
  7. Als u het venster verbinding wilt openen, dubbelklikt u op de alias voor de spam-data base .To open the Connection window, double-click the Spam database alias.
  8. Selecteer Verbinding maken.Select Connect.

Enkele query's uitvoeren:To run some queries:

  1. Selecteer het tabblad SQL .Select the SQL tab.
  2. Voer in het vak query boven aan het tabblad SQL een Basic-query in, bijvoorbeeld SELECT * from data; .In the query box at the top of the SQL tab, enter a basic query, like SELECT * from data;.
  3. Druk op CTRL + ENTER om de query uit te voeren.Press Ctrl+Enter to run the query. SQuirreL SQL retourneert standaard de eerste 100 rijen van uw query.By default, SQuirreL SQL returns the first 100 rows from your query.

Er zijn veel meer query's die u kunt uitvoeren om deze gegevens te verkennen.There are many more queries you can run to explore this data. Hoe kan de frequentie van het woord bijvoorbeeld verschillen tussen spam en de hoeveelheid?For example, how does the frequency of the word make differ between spam and ham?

SELECT avg(word_freq_make), spam from data group by spam;

Of wat zijn de kenmerken van e-mail die regel matig 3D bevat?Or, what are the characteristics of email that frequently contain 3d ?

SELECT * from data order by word_freq_3d desc;

De meeste e-mail berichten met een groot aantal 3D- incidenten zijn vaak spam.Most emails that have a high occurrence of 3d apparently are spam. Deze informatie kan nuttig zijn voor het maken van een voorspellend model voor het classificeren van e-mail berichten.This information might be useful for building a predictive model to classify emails.

Als u machine learning wilt doen met behulp van gegevens die zijn opgeslagen in een PostgreSQL-data base, kunt u overwegen MADlibte gebruiken.If you want to do machine learning by using data stored in a PostgreSQL database, consider using MADlib.

Azure Synapse Analytics (voorheen SQL DW)Azure Synapse Analytics (formerly SQL DW)

Azure Synapse Analytics is een schaal bare Cloud database die grote hoeveel heden gegevens kan verwerken, zowel relationele als niet-relationeel.Azure Synapse Analytics is a cloud-based, scale-out database that can process massive volumes of data, both relational and non-relational. Zie Wat is Azure Synapse Analytics? voor meer informatie.For more information, see What is Azure Synapse Analytics?

Als u verbinding wilt maken met het Data Warehouse en de tabel maakt, voert u de volgende opdracht uit vanaf een opdracht prompt:To connect to the data warehouse and create the table, run the following command from a command prompt:

sqlcmd -S <server-name>.database.windows.net -d <database-name> -U <username> -P <password> -I

Voer de volgende opdracht uit op de Sqlcmd-prompt:At the sqlcmd prompt, run this command:

CREATE TABLE spam (word_freq_make real, word_freq_address real, word_freq_all real, word_freq_3d real,word_freq_our real, word_freq_over real, word_freq_remove real, word_freq_internet real,word_freq_order real, word_freq_mail real, word_freq_receive real, word_freq_will real,word_freq_people real, word_freq_report real, word_freq_addresses real, word_freq_free real,word_freq_business real, word_freq_email real, word_freq_you real, word_freq_credit real,word_freq_your real, word_freq_font real, word_freq_000 real, word_freq_money real,word_freq_hp real, word_freq_hpl real, word_freq_george real, word_freq_650 real, word_freq_lab real,word_freq_labs real, word_freq_telnet real, word_freq_857 real, word_freq_data real,word_freq_415 real, word_freq_85 real, word_freq_technology real, word_freq_1999 real,word_freq_parts real, word_freq_pm real, word_freq_direct real, word_freq_cs real, word_freq_meeting real,word_freq_original real, word_freq_project real, word_freq_re real, word_freq_edu real,word_freq_table real, word_freq_conference real, char_freq_semicolon real, char_freq_leftParen real,char_freq_leftBracket real, char_freq_exclamation real, char_freq_dollar real, char_freq_pound real, capital_run_length_average real, capital_run_length_longest real, capital_run_length_total real, spam integer) WITH (CLUSTERED COLUMNSTORE INDEX, DISTRIBUTION = ROUND_ROBIN);
GO

Kopieer de gegevens met behulp van BCP:Copy the data by using bcp:

bcp spam in spambaseHeaders.data -q -c -t  ',' -S <server-name>.database.windows.net -d <database-name> -U <username> -P <password> -F 1 -r "\r\n"

Notitie

Het gedownloade bestand bevat Windows-stijl regel einden.The downloaded file contains Windows-style line endings. Het hulp programma BCP verwacht dat er UNIX-lijn einden worden afgesloten.The bcp tool expects Unix-style line endings. Gebruik de markering-r om BCP te vertellen.Use the -r flag to tell bcp.

Vervolgens voert u een query uit met Sqlcmd:Then, query by using sqlcmd:

select top 10 spam, char_freq_dollar from spam;
GO

U kunt ook een query uitvoeren met behulp van SQuirreL SQL.You can also query by using SQuirreL SQL. Volg de stappen die vergelijkbaar zijn met PostgreSQL met behulp van het SQL Server JDBC-stuur programma.Follow steps similar to PostgreSQL by using the SQL Server JDBC driver. Het JDBC-stuur programma bevindt zich in de map/usr/share/java/jdbcdrivers/sqljdbc42.jar.The JDBC driver is in the /usr/share/java/jdbcdrivers/sqljdbc42.jar folder.