Share via


Adatelemzés Ubuntu Adattudomány virtuális géppel az Azure-ban

Ez az útmutató bemutatja, hogyan hajthat végre számos gyakori adatelemzési feladatot az Ubuntu Adattudomány virtuális géppel (DSVM). Az Ubuntu DSVM egy Azure-ban elérhető virtuálisgép-rendszerkép, amely egy előre telepített eszközgyűjtemény, amelyet gyakran használnak adatelemzéshez és gépi tanuláshoz. Az Ubuntu Adattudomány virtuálisgép-erőforrás kiépítése a fő szoftverösszetevőket tartalmazza. A DSVM-rendszerkép megkönnyíti az adatelemzés néhány perc alatt történő megkezdését, így nem szükséges egyenként telepíteni és konfigurálni az egyes eszközöket. Szükség esetén egyszerűen felskálázhatja a DSVM-et, és leállíthatja, ha nincs használatban. A DSVM-erőforrás rugalmas és költséghatékony is.

Ebben az útmutatóban a spambase-adatkészletet elemezzük. A Spambase olyan e-mailek készlete, amelyek levélszemétként vagy sonkában (nem levélszemét) vannak megjelölve. A Spambase az e-mail tartalmára vonatkozó statisztikákat is tartalmaz. A statisztikákat az útmutató későbbi részében tárgyaljuk.

Előfeltételek

Linux DSVM használata előtt az alábbi előfeltételekre kell kiterjednie:

A spambase-adatkészlet letöltése

A spambase-adatkészlet meglehetősen kis adatkészlet, amely 4601 példát tartalmaz. Az erőforrás kényelmes, kezelhető mérete megkönnyíti a DSVM néhány fő funkciójának bemutatását a szerény erőforráskövetelmények miatt.

Feljegyzés

Ez az útmutató egy D2 v2 méretű Linux DSVM használatával készült. Ilyen méretű DSVM-ekkel elvégezheti az útmutatóban bemutatott eljárásokat.

További tárterület érdekében több lemezt hozhat létre, és csatolhatja őket a DSVM-hez. A lemezek állandó Azure-tárolót használnak, így az adataik akkor is megmaradnak, ha a kiszolgáló újraépítése átméretezés vagy leállítás miatt történik. Lemez hozzáadásához és a DSVM-hez való csatolásához végezze el a Lemez hozzáadása Linux rendszerű virtuális géphez című témakörben leírt lépéseket. A lemez hozzáadásának lépései az Azure CLI-t használják, amely már telepítve van a DSVM-en. A lépéseket teljes egészében a DSVM-ből hajthatja végre. A tárterület növelésének másik lehetőségeként használhatja az Azure Filest.

Az adatok letöltéséhez nyisson meg egy terminálablakot, majd futtassa a következő parancsot:

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

A letöltött fájl nem tartalmaz fejlécsort. Hozzunk létre egy másik fájlt, amely rendelkezik fejléccel. Futtassa ezt a parancsot a megfelelő fejlécekkel rendelkező fájl létrehozásához:

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

Ezután fűzd össze a két fájlt:

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

Az adatkészlet különböző típusú statisztikákkal rendelkezik az egyes e-mailekhez:

  • Az olyan oszlopok, mint a word_freq_WORD, a WORDnek megfelelő szavak százalékos arányát jelzik az e-mailben. Ha például word_freq_make 1, akkor a make az e-mail összes szójának 1%-át tette ki.
  • Az olyan oszlopok, mint a char_freq_CHAR, az e-mail karaktereinek százalékos értékét jelzik.
  • capital_run_length_longest a nagybetűk sorozatának leghosszabb hossza.
  • capital_run_length_average a nagybetűk összes sorozatának átlagos hossza.
  • capital_run_length_total a nagybetűk összes sorozatának teljes hossza.
  • a levélszemét azt jelzi, hogy az e-mail levélszemétnek minősül-e (1 = levélszemét, 0 = nem levélszemét).

Az adathalmaz felfedezése az R Open használatával

Vizsgáljuk meg az adatokat, és használjuk az R-t néhány alapszintű gépi tanuláshoz. A DSVM előre telepített CRAN R-vel rendelkezik.

Az útmutatóban használt kódminták másolatainak lekéréséhez használja a Gitet az Azure-Machine-Tanulás-Data-Science adattár klónozásához. A Git előre telepítve van a DSVM-en. A git parancssorában futtassa a következőt:

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

Nyisson meg egy terminálablakot, és indítson el egy új R-munkamenetet az R interaktív konzolon. Az adatok importálásához és a környezet beállításához futtassa a következőt:

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

Ez a kódminta az egyes oszlopok összefoglaló statisztikáit mutatja be:

summary(data)

Az adatok eltérő nézete esetén:

str(data)

Ez a nézet az egyes változók típusát és az adathalmaz első néhány értékét jeleníti meg.

A levélszemét oszlopot egész számként olvasták, de valójában kategorikus változó (vagy tényező). A típus beállítása:

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

Néhány feltáró elemzéshez használja a ggplot2 csomagot, amely az R népszerű gráftára. A ggplot2 csomag előre telepítve van a DSVM-en. A korábban megjelenített összesítő adatok alapján a felkiáltójel karakter gyakoriságára vonatkozó összefoglaló statisztikákkal rendelkezünk. A frekvenciák ábrázolásához futtassa az alábbi parancsokat:

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

Mivel a nulla sáv elvarrja a diagramot, vizsgáljuk meg a következőt:

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

Egy nemtriviális sűrűség 1 felett, amely érdekesnek tűnik. Tekintsük át csak az adatokat:

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

Ezután ossza fel a levélszemét és a sonka:

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")

Ezek a példák segítenek hasonló diagramok készítésében és a többi oszlop adatainak feltárásában.

Gépi tanulási modell betanítása és tesztelése

Tanítsunk be néhány gépi tanulási modellt, hogy azonosítsuk az adathalmazban lévő e-maileket, amelyek levélszemétet vagy sonkát tartalmaznak. Ebben a szakaszban egy döntési famodellt és egy véletlenszerű erdőmodellt tanítunk be. Ezután teszteljük az előrejelzések pontosságát.

Feljegyzés

Az alábbi kódban használt rpart (Rekurzív particionálás és regressziós fák) csomag már telepítve van a DSVM-re.

Először osztjuk fel az adathalmazt betanítási csoportokra és tesztkészletekre:

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

Ezután hozzon létre egy döntési fát az e-mailek besorolásához:

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

Az eredmény a következő:

A létrehozott döntési fát ábrázoló diagram.

Ezzel a kódmintával megállapíthatja, hogy milyen jól teljesít a betanítási csoportban:

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

Annak megállapításához, hogy milyen jól teljesít a tesztkészleten, futtassa a következő kódot:

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

Próbáljunk ki egy véletlenszerű erdőmodellt is. Egy véletlenszerű erdő több döntési fát képez ki. Egy osztályt ad ki, amely az egyes döntési fák besorolásának módértéke. Hatékonyabb gépi tanulási megközelítést biztosítanak, mivel helyesen hatnak a döntési famodellek arra való tendenciáira, hogy egy betanítási adatkészletet túlképezhetnek.

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

Mélytanulási oktatóanyagok és útmutatók

A keretrendszeralapú minták mellett átfogó útmutatók is elérhetők. Ezek az útmutatók segítenek a mélytanulási alkalmazások fejlesztésének megkezdésében a képi, szövegnyelvi megértési stb. tartományokban.

  • Neurális hálózatok futtatása különböző keretrendszerek között: Átfogó útmutató, amely bemutatja, hogyan migrálhatja a kódot az egyik keretrendszerből a másikba. Azt is bemutatja, hogyan hasonlíthatja össze a modellek és a futtatókörnyezet teljesítményét a keretrendszerekben.

  • Útmutató egy végpontok közötti megoldás létrehozásához a képeken belüli termékek észleléséhez: A képészlelési technika képes a képeken belüli objektumok megkeresésére és besorolására. A technológia számos valós üzleti területen hatalmas jutalmakat nyújthat. A kiskereskedők például ezt a technikát használhatják annak meghatározására, hogy az ügyfél melyik terméket vette fel a polcról. Ez az információ viszont segít az áruházaknak a termékleltár kezelésében.

  • Mély tanulás hanghoz: Ez az oktatóanyag bemutatja, hogyan taníthat be mélytanulási modellt a hangesemények észlelésére a városi hangadatkészleten. Az oktatóanyag áttekintést nyújt a hangadatok használatáról.

  • Szövegdokumentumok besorolása: Ez az útmutató bemutatja, hogyan hozhat létre és taníthat be két különböző neurális hálózati architektúrát: a hierarchikus figyelem hálózatát és a hosszú távú memóriát (LSTM). A szöveges dokumentumok besorolásához ezek a neurális hálózatok a Keras API-t használják a mély tanuláshoz. A Keras a három legnépszerűbb mélytanulási keretrendszer előtere: a Microsoft Cognitive Toolkit, a TensorFlow és a Theano.

Egyéb eszközök

A többi szakasz bemutatja, hogyan használhatja a Linux DSVM-en előre telepített eszközök némelyikét. Az alábbi eszközöket vizsgáljuk meg:

  • XGBoost
  • Python
  • JupyterHub
  • Rattle
  • PostgreSQL és SQuirreL SQL
  • Azure Synapse Analytics (korábban SQL DW)

XGBoost

Az XGBoost gyors és pontos fás megvalósítást biztosít.

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))

Az XGBoost Pythonból vagy parancssorból is hívhat.

Python

Python-fejlesztés esetén az Anaconda Python 3.5 és 2.7 disztribúciója előre telepítve van a DSVM-en.

Feljegyzés

Az Anaconda-disztribúció tartalmazza a Condát. A Conda használatával egyéni Python-környezeteket hozhat létre, amelyekben különböző verziók vagy csomagok vannak telepítve.

Olvassunk be néhány spambázis-adatkészletet, és osztályozzuk az e-maileket támogatási vektorgépekkel a Scikit-learnben:

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)

Előrejelzések készítése:

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

Az Azure Machine-Tanulás végpont közzétételének bemutatásához hozzunk létre egy alapszintű modellt. Az R-modell korábbi közzétételekor használt három változót használjuk:

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

JupyterHub

A DSVM Anaconda-disztribúciója jupyter notebookot tartalmaz. Ez az erőforrás platformfüggetlen környezet a Python-, R- vagy Julia-kódok és -elemzések megosztásához. A Jupyter Notebook a JupyterHubon keresztül érhető el. A bejelentkezéshez használja a helyi Linux-felhasználónevet és jelszót a https://< DSVM DNS-neve vagy IP-címe>:8000/. Az összes JupyterHub-konfigurációs fájlt megtalálja a /etc/jupyterHub webhelyen.

Feljegyzés

A Python Csomagkezelő (a parancson keresztül) az pip aktuális kernelben található Jupyter Notebookból való használatához használja ezt a parancsot a kódcellában:

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

A Conda telepítőjének (a parancson keresztül) az conda aktuális kernelben található Jupyter Notebookból való használatához használja ezt a parancsot egy kódcellában:

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

A DSVM-en már több mintajegyzetfüzet is telepítve van:

Feljegyzés

A Julia nyelv a Linux DSVM parancssorából is elérhető.

Rattle

Az adatbányászathoz használhatja a Csörgő (RAnalytical Tool To Learn Easily) grafikus R eszközt. A Rattle intuitív felülettel rendelkezik, amely megkönnyíti az adatok betöltését, felderítését és átalakítását, valamint modellek készítését és kiértékelését. Csörgő: Az R-hez készült adatbányászati grafikus felhasználói felület egy útmutatót biztosít, amely bemutatja a Rattle funkcióit.

Futtassa az alábbi parancsokat a Rattle telepítéséhez és elindításához:

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

Feljegyzés

Nem kell telepítenie a Rattle-t a DSVM-en. Előfordulhat azonban, hogy a Rattle megnyitásakor további csomagok telepítésére lesz szükség.

A csörgő lapalapú felületet használ. A legtöbb lap a Csapat Adattudomány folyamat lépéseinek felel meg, például adatok betöltése vagy adatok feltárása. Az adatelemzési folyamat balról jobbra halad a lapok között. Az utolsó lap a Rattle által futtatott R-parancsok naplóját tartalmazza.

Az adathalmaz betöltése és konfigurálása:

  1. A fájl betöltéséhez válassza az Adatok lapot
  2. Válassza ki a Fájlnév melletti választót, majd válassza a spambaseHeaders.data lehetőséget
  3. A fájl betöltéséhez. válassza a Végrehajtás lehetőséget. Látnia kell az egyes oszlopok összegzését, beleértve az azonosított adattípust, legyen szó bemenetről, célról vagy más típusú változóról, valamint az egyedi értékek számáról
  4. A csörgő helyesen azonosította a levélszemét oszlopot célként. Jelölje ki a levélszemét oszlopot, majd állítsa a Cél adattípust kategorizálásra

Az adatok feltárása:

  1. A Felfedezés lap kiválasztása
  2. A változótípusokra és egyes összefoglaló statisztikákra vonatkozó információk megtekintéséhez válassza az Összegzés>végrehajtása lehetőséget.
  3. Ha más típusú statisztikákat szeretne megtekinteni az egyes változókról, válasszon más lehetőségeket, például a Leírás vagy az Alapszintű beállításokat.

A Felfedezés lap használatával is létrehozhat megállapításalapú diagramokat. Az adatok hisztogramjának ábrázolása:

  1. Disztribúciók kiválasztása
  2. A word_freq_remove és word_freq_you válassza a Hisztogramot
  3. Válassza a Végrehajtás lehetőséget. Mindkét sűrűségdiagramnak egyetlen gráfablakban kell megjelennie, ahol az e-mailekben sokkal gyakrabban jelenik meg a szó, mint az eltávolítás

A korrelációs ábrázolások is érdekesek. Diagram létrehozása:

  1. Típus esetén válassza a Korreláció lehetőséget
  2. Válassza a Végrehajtás lehetőséget
  3. A csörgő figyelmezteti, hogy legfeljebb 40 változót javasol. Válassza az Igen lehetőséget a diagram megtekintéséhez

Vannak érdekes korrelációk, amelyek előjönnek. A technológia például erősen korrelál a HP-hez és a laborokhoz. Emellett erősen korrelál a 650-höz, mert az adathalmaz donorainak körzetszáma 650.

A szavak közötti korreláció numerikus értékei a Felfedezés ablakban érhetők el. Érdekes megjegyezni például, hogy a technológia negatívan korrelál az Ön és a pénz.

A csörgő átalakíthatja az adathalmazt néhány gyakori probléma kezelésére. Például újraskálázhatja a funkciókat, megadhatja a hiányzó értékeket, kezelheti a kiugró értékeket, és eltávolíthatja a hiányzó adatokat tartalmazó változókat vagy megfigyeléseket. A csörgő a megfigyelések és változók közötti társítás szabályait is azonosítja. Ez a bevezető útmutató nem fedi le ezeket a lapokat.

A csörgő a fürtelemzéseket is képes kezelni. Zárjunk ki néhány funkciót, hogy a kimenet könnyebben olvasható legyen. Az Adatok lapon válassza a Mellőzés lehetőséget az egyes változók mellett, kivéve az alábbi 10 elemet:

  • word_freq_hp
  • word_freq_technology
  • word_freq_george
  • word_freq_remove
  • word_freq_your
  • word_freq_dollar
  • word_freq_money
  • capital_run_length_longest
  • word_freq_business
  • Spam

Térjen vissza a Fürt lapra. Válassza a KMeans lehetőséget, majd állítsa a Fürtök száma 4 értékre. Válassza a Végrehajtás lehetőséget. A kimeneti ablakban láthatók az eredmények. Egy fürt magas frekvenciájú george és HP, és valószínűleg egy megbízható üzleti e-mail.

Alapszintű döntési fa gépi tanulási modell létrehozása:

  1. A Modell lap kiválasztása
  2. A Típus mezőben válassza a Fa lehetőséget
  3. Válassza a Végrehajtás lehetőséget a fa szövegűrlapon való megjelenítéséhez a kimeneti ablakban
  4. A Rajz gombra kattintva megjelenítheti a grafikus verziót. A döntési fa hasonlít az rparttal korábban beszerzett fához.

A Csörgő számos gépi tanulási módszert futtathat, és gyorsan kiértékelheti őket. Ez egy hasznos funkció. Ennek menete a következő:

  1. Típus esetén válassza az Összes lehetőséget
  2. Válassza a Végrehajtás lehetőséget
  3. Amikor a Csörgő futása befejeződött, bármilyen típusértéket kiválaszthat, például SVM-et, és megtekintheti az eredményeket
  4. Az érvényesítési csoportban lévő modellek teljesítményét a Kiértékelés lapon is összehasonlíthatja. A Hibamátrix kiválasztása például a keveredési mátrixot, az általános hibát és az átlagolt osztályhibát jeleníti meg az érvényesítési csoport minden modellje esetében. RoC-görbéket is ábrázolhat, bizalmassági elemzést futtathat, és más típusú modellértékeléseket is végezhet

Amikor befejezte a modellek készítését, a Napló fülre kattintva megtekintheti a Rattle által a munkamenet során futtatott R-kódot. Az Exportálás gombra kattintva mentheti.

Feljegyzés

A Rattle aktuális kiadása hibát tartalmaz. A szkript módosításához vagy a későbbi lépések megismétléséhez be kell szúrnia egy karaktert # a napló exportálása elé ... a napló szövegében.

PostgreSQL és SQuirreL SQL

A DSVM-ben telepítve van a PostgreSQL. A PostgreSQL egy kifinomult, nyílt forráskód relációs adatbázis. Ez a szakasz bemutatja, hogyan töltheti be a spambase-adathalmazt a PostgreSQL-be, majd kérdezheti le.

Mielőtt betöltené az adatokat, engedélyeznie kell a jelszóhitelesítést a localhostból. Egy parancssorból futtassa az alábbi parancsot:

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

A konfigurációs fájl alján több sor részletesen ismerteti az engedélyezett kapcsolatokat:

# "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

Módosítsa az IPv4 helyi kapcsolati sorát úgy, hogy az md5-öt használja az ident helyett, hogy felhasználónévvel és jelszóval tudjunk bejelentkezni:

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

Ezután indítsa újra a PostgreSQL szolgáltatást:

sudo systemctl restart postgresql

A psql (a PostgreSQL interaktív terminálja) beépített postgres-felhasználóként való elindításához futtassa a következő parancsot:

sudo -u postgres psql

Hozzon létre egy új felhasználói fiókot a bejelentkezéshez használt Linux-fiók felhasználónévvel. Jelszó létrehozása:

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

Jelentkezzen be a psql-be:

psql

Adatok importálása új adatbázisba:

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

Most vizsgáljuk meg az adatokat, és futtassunk le néhány lekérdezést az SQuirreL SQL-lel, amely egy grafikus eszköz, amely JDBC-illesztőn keresztül képes kezelni az adatbázisokat.

Először az Alkalmazások menüben nyissa meg az SQuirreL SQL-t. Az illesztőprogram beállítása:

  1. Windows>nézetillesztők kiválasztása
  2. Kattintson a jobb gombbal a PostgreSQL-re , és válassza az Illesztőprogram módosítása lehetőséget
  3. Válassza az Extra osztály elérési útjának>hozzáadása lehetőséget
  4. A Fájlnév mezőbe írja be a /usr/share/java/jdbcdrivers/postgresql-9.4.1208.jre6.jar
  5. Válassza a Megnyitás lehetőséget
  6. Válassza a Listaillesztők lehetőséget. Az osztálynévhez válassza az org.postgresql.Driver lehetőséget, majd kattintson az OK gombra.

A helyi kiszolgálóhoz való kapcsolat beállítása:

  1. Válassza a Windows>nézet aliasai lehetőséget.
  2. Új alias létrehozásához kattintson a + gombra. Az új aliasnévhez írja be a Levélszemét adatbázist
  3. Illesztőprogram esetén válassza a PostgreSQL lehetőséget
  4. Az URL-cím beállítása a következőre : jdbc:postgresql://localhost/spam
  5. Felhasználónév és jelszó megadása
  6. Kattintson az OK gombra
  7. A Csatlakozás ion ablak megnyitásához kattintson duplán a Levélszemét adatbázis aliasára
  8. Válassza Csatlakozás

Lekérdezések futtatása:

  1. Az SQL lap kiválasztása
  2. Az SQL lap tetején található lekérdezésmezőbe írjon be egy alapszintű lekérdezést: például:SELECT * from data;
  3. A lekérdezés futtatásához nyomja le a Ctrl+Enter billentyűkombinációt. Alapértelmezés szerint az SQuirreL SQL a lekérdezés első 100 sorát adja vissza

Az adatok megismeréséhez több lekérdezést is futtathat. Miben különbözik például a szó gyakorisága a levélszemét és a sonka között?

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

Milyen jellemzői vannak a gyakran 3d-t tartalmazó e-maileknek?

SELECT * from data order by word_freq_3d desc;

A legtöbb e-mail, amely nagy előfordulása 3d nyilvánvaló levélszemét. Ez az információ hasznos lehet egy prediktív modell létrehozásához az e-mailek besorolásához.

A PostgreSQL-adatbázisban tárolt adatokat használó gépi tanuláshoz a MADlib jól működik.

Azure Synapse Analytics (korábban SQL DW)

Az Azure Synapse Analytics egy felhőalapú, vertikálisan felskálázott adatbázis, amely nagy mennyiségű adatot képes feldolgozni, relációs és nem kapcsolati jellegű is. További információ: Mi az Azure Synapse Analytics?

Az adattárházhoz való csatlakozáshoz és a tábla létrehozásához futtassa ezt a parancsot egy parancssorból:

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

Az sqlcmd parancssorban futtassa a következő parancsot:

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

Másolja ki az adatokat a bcp használatával:

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"

Feljegyzés

A letöltött fájl Windows-stílusú sorvégződéseket tartalmaz. A bcp eszköz Unix stílusú vonalvégződéseket vár. A -r jelző használatával tájékoztassa erről a bcp-t.

Ezután az sqlcmd használatával kérdezz le:

select top 10 spam, char_freq_dollar from spam;
GO

Az SQuirreL SQL használatával is lekérdezést végezhet. Kövesse a PostgreSQL-hez hasonló lépéseket az SQL Server JDBC-illesztővel. A JDBC-illesztőprogram a /usr/share/java/jdbcdrivers/sqljdbc42.jar mappában található.