Adatelemzés Ubuntu-Data Science Virtual Machine az Azure-ban

Ez az útmutató bemutatja, hogyan végezhet el számos gyakori adatelemzési feladatot az Ubuntu Data Science Virtual Machine (DSVM) használatával. Az Ubuntu DSVM az Azure-ban elérhető virtuálisgép-rendszerkép, amely előre telepítve van az adatelemzéshez és gépi tanuláshoz gyakran használt eszközök gyűjteményével. A fő szoftverösszetevők az Ubuntu-Data Science Virtual Machine kiépítésében vannak elemezve. A DSVM-rendszerkép segítségével percek alatt megkezdheti az adatelemzést anélkül, hogy egyenként kellene telepítenie és konfigurálnia az egyes eszközöket. Szükség esetén egyszerűen vertikálisan 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 halmaza, amelyek levélszemétként vagy ham-ként (nem levélszemétként) vannak megjelölve. A Spambase az e-mailek tartalmára vonatkozó statisztikákat is tartalmaz. A statisztikákról az útmutató későbbi részében lesz szó.

Előfeltételek

Linux rendszerű DSVM használatához a következő előfeltételeknek kell teljesülniük:

A spambase-adatkészlet letöltése

A spambase-adatkészlet egy viszonylag kis adatkészlet, amely 4601 példát tartalmaz. Az adatkészlet kényelmes mérete a DSVM néhány fő funkciójának bemutatására, mivel az erőforrásigényeket szerényen tartja.

Megjegyzés

Ez az útmutató egy D2 v2 méretű Linux DSVM használatával készült (Ubuntu 18.04 Edition). Ilyen méretű DSVM-et használhat az útmutatóban bemutatott eljárások végrehajtásához.

Ha több tárterületre van szüksége, további lemezeket hozhat létre, és csatlakoztathatja őket a DSVM-hez. A lemezek állandó Azure-tárolót használnak, így az adataik akkor is megmaradnak, ha a kiszolgálót átméretezés vagy leállítás miatt újraépíti. Ha lemezt szeretne hozzáadni és csatlakoztatni a DSVM-hez, végezze el a Lemez hozzáadása Linux rendszerű virtuális géphez című témakör lépéseit. A lemezek 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ége a Azure Files használata.

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ájlnak nincs fejlécsora. Hozzunk létre egy másik fájlt, amely rendelkezik fejléccel. Futtassa ezt a parancsot a megfelelő fejléceket tartalmazó 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űzi össze a két fájlt:

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

Az adathalmaz számos típusú statisztikai adattal rendelkezik az egyes e-mailekhez:

  • Az olyan oszlopok, mint a word_freq_WORD , az e-mailben lévő szavak wordnek megfelelő százalékos arányát jelzik. Ha például word_freq_make1, akkor az e-mailben szereplő összes szó 1%-a készült el.
  • A char_freq_CHAR oszlophoz hasonló oszlopok az e-mail összes karakterének karaktereinek százalékos arányá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 megismerése az R Open használatával

Vizsgáljuk meg az adatokat, és végezzük el az alapszintű gépi tanulást az R használatával. A DSVM előre telepített CRAN R-t tartalmaz.

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 konzolján. Az adatok importálása és a környezet beállítása:

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

Az egyes oszlopok összesített statisztikáinak megtekintése:

summary(data)

Az adatok másik nézetében:

str(data)

Ebben a nézetben láthatja az egyes változók típusát és az adathalmaz első néhány értékét.

A levélszemét oszlop egész számként lett beolvasva, de valójában kategorikus változó (vagy tényező). Típusának beállítása:

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

Feltáró jellegű elemzések elvégzéséhez használja a ggplot2 csomagot, amely egy népszerű gráftár az R-hez, amely előre telepítve van a DSVM-en. A korábban megjelenített összegző adatok alapján összegző statisztikákkal rendelkezünk a felkiáltójel karakter gyakoriságáról. Ábrázoljuk ezeket a gyakoriságokat az alábbi parancsok futtatásával:

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

Mivel a nulla sáv húzza a rajzot, szüntessük meg:

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

Az 1 feletti nemtriviális sűrűség érdekesnek tűnik. Vizsgáljuk meg 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 spam é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íthetnek a 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 az adathalmazban lévő e-maileket levélszemét vagy sonka típusúként soroljuk be. Ebben a szakaszban egy döntésifa-modellt és egy véletlenszerű erdőmodellt tanítunk be. Ezután teszteljük az előrejelzések pontosságát.

Megjegyzé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-en.

Először ossza fel az adathalmazt betanítási és tesztelési ké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 diagram of the decision tree that's created

Annak megállapításához, hogy mennyire teljesít jól a betanítási készleten, használja a következő kódot:

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 meghatározása, hogy mennyire teljesít jól a tesztkészleten:

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. A véletlenszerű erdők számos döntési fát képeznek be, és olyan osztályt adnak ki, amely az egyes döntési fák besorolási módja. Hatékonyabb gépi tanulási megközelítést biztosítanak, mivel javítják a döntési famodellek tendenciáját a betanítási adathalmazok túlbeszerzéséhez.

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 rendelkezésre áll. Ezek az útmutatók segítenek a mélytanulási alkalmazások fejlesztésének megkezdésében olyan területeken, mint a képek és a szöveg/nyelv megértése.

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

  • Útmutató a képeken belüli termékek észlelésére szolgáló, végpontok közötti megoldás létrehozásához: A képészlelés egy olyan technika, amely képes a képeken belüli objektumok megkeresésére és besorolására. A technológia hatalmas jutalmakat hozhat számos valós üzleti területen. 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. Ezek az információk viszont segítenek 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 hangesemények észlelésére a városi hangadatkészleten. Az oktatóanyag áttekintést nyújt a hangadatok használatáról.

  • Szöveges dokumentumok besorolása: Ez az útmutató két különböző neurális hálózati architektúra felépítését és betanítását mutatja be: Hierarchikus figyelem hálózat és hosszú távú memória (LSTM). Ezek a neurális hálózatok a Keras API-t használják a szövegdokumentumok besorolásához a mély tanuláshoz. A Keras a három legnépszerűbb mélytanulási keretrendszer előtere: Microsoft Cognitive Toolkit, TensorFlow és Theano.

Egyéb eszközök

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

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

XGBoost

Az XGBoost gyors és pontos, megnövelt famegvaló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 Python vagy parancssorból is tud hívást kezdeményezni.

Python

A Python fejlesztéshez az Anaconda Python 3.5-ös és 2.7-os disztribúciói vannak telepítve a DSVM-en.

Megjegyzés

Az Anaconda-eloszlás magában foglalja a Condát. A Condá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 spambase-adatkészletet, és soroljuk be az e-maileket támogató 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, :])

Egy Azure Machine Learning-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 fogjuk használni:

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 Notebook, platformfüggetlen környezetet biztosít Python, R- vagy Julia-kódok és -elemzések megosztásához. A Jupyter Notebook a JupyterHubon keresztül érhető el. Jelentkezzen be a helyi Linux-felhasználónevével és -jelszavával a https://< DSVM DNS-neve vagy IP-címe>:8000/. A JupyterHub összes konfigurációs fájlja az /etc/jupyterhubban található.

Megjegyzés

Ha az aktuális kernelben lévő Jupyter Notebook Python Csomagkezelő (a pip parancson keresztül) szeretné használni, használja ezt a parancsot a kódcellában:

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

Ha a Conda telepítőt (a conda parancson keresztül) szeretné használni egy Jupyter Notebook az aktuális kernelben, használja ezt a parancsot egy kódcellában:

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

Számos mintajegyzetfüzet már telepítve van a DSVM-en:

Megjegyzés

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

Rattle

A Csörgő (RAnalytical Tool To Learn Easily) egy grafikus R-eszköz az adatbányászathoz. A Csörgő egy intuitív felülettel rendelkezik, amely megkönnyíti az adatok betöltését, feltárását és átalakítását, valamint a modellek összeállí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 bemutatót nyújt, amely bemutatja a Rattle funkcióit.

Telepítse és indítsa el a Rattle-t az alábbi parancsok futtatásával:

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

Megjegyzés

Nem kell telepítenie a Rattle-t a DSVM-en. Előfordulhat azonban, hogy a rendszer további csomagok telepítését kéri a Rattle megnyitásakor.

A csörgő lapalapú felületet használ. A legtöbb lap megfelel a csapat adatelemzési folyamatának lépéseinek, például az adatok betöltésének vagy az adatok feltárásának. 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 elemet.
  3. A fájl betöltéséhez. válassza a Végrehajtás lehetőséget. Megjelenik az egyes oszlopok összegzése, beleértve az azonosított adattípust is; legyen szó bemenetről, célról vagy más típusú változóról; és az egyedi értékek száma.
  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ípustKategorizálás értékre.

Az adatok feltárása:

  1. Válassza a Felfedezés lapot.
  2. A változótípusokra és egyes összegző 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 beállításokat, például a Leírás vagy az Alapszintű beállításokat.

A Felfedezés lapon is létrehozhat hasznos diagramokat. Az adatok hisztogramjának ábrázolása:

  1. Válassza a Disztribúciók lehetőséget.
  2. Word_freq_remove ésword_freq_you esetében válassza a Hisztogram lehetőséget.
  3. Válassza a Végrehajtás lehetőséget. Mindkét sűrűségdiagramnak egyetlen gráfablakban kell megjelennie, ahol egyértelmű, hogy a szó sokkal gyakrabban jelenik meg az e-mailekben, mint az eltávolítás.

A korrelációs diagramok 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ó használatát javasolja. A diagram megtekintéséhez válassza az Igen lehetőséget.

Vannak érdekes összefüggések, amelyek előjönnek: a technológia erősen korrelál a HP-hez és a laborokhoz, például. Szintén erősen korrelál a 650-es számhoz, mert az adathalmaz adományozóinak körzetszáma 650.

A szavak közötti korrelációk 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 között.

A szabályozás átalakítja az adatkészletet néhány gyakori probléma kezeléséhez. Például újraskálázhatja a szolgáltatásokat, elérhetővé teheti 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 képes azonosítani. Ez a bevezető útmutató nem ismerteti ezeket a lapokat.

A csörgő emellett fürtelemzést is képes futtatni. 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 ezt a 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ámát4-re. Válassza a Végrehajtás lehetőséget. Az eredmények a kimeneti ablakban jelennek meg. Az egyik fürt gyakorisága magas, és valószínűleg megbízható üzleti e-mail.

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

  1. Válassza a Modell lapot,
  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öveges formában való megjelenítéséhez a kimeneti ablakban.
  4. A grafikus verzió megtekintéséhez válassza a Rajz gombot. A döntési fa az rpart használatával korábban beszerzett fához hasonlóan néz ki.

A Rattle egyik hasznos funkciója, hogy képes több gépi tanulási metódus futtatására és gyors kiértékelésére. A lépések a következők:

  1. A Típus mezőben válassza az Összes lehetőséget.
  2. Válassza a Végrehajtás lehetőséget.
  3. Ha a csörgő futása befejeződött, bármilyen típusértéket kiválaszthat, például az SVM-et, és megtekintheti az eredményeket.
  4. Az értékelési készlet modelljeinek teljesítményét az Értékelés lapon is összehasonlíthatja. A Hibamátrix kiválasztása például megjeleníti a keveredési mátrixot, az általános hibát és az átlagos osztályhibát az érvényesítési készlet minden modelljéhez. 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, válassza a Napló fület a Rattle által a munkamenet során futtatott R-kód megtekintéséhez. A mentéshez kattintson az Exportálás gombra.

Megjegyzé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ébe.

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-adatkészletet a PostgreSQL-be, majd kérdezheti le.

Az adatok betöltése előtt engedélyeznie kell a jelszó-hitelesítést a localhostró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 található, amelyek részletezik 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 bejelentkezhessünk:

# 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ónevével. Jelszó létrehozása:

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

Bejelentkezés a psql-be:

psql

Importálja az adatokat egy ú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 néhány lekérdezést az SQuirreL SQL grafikus eszközzel, amellyel JDBC-illesztőn keresztül kommunikálhat az adatbázisokkal.

Elsőként nyissa meg az SQuirreL SQL-t az Alkalmazások menüben. Az illesztőprogram beállítása:

  1. Válassza az Windows>Megtekintő illesztőprogramok lehetőséget.
  2. Kattintson a jobb gombbal a PostgreSQL-re , és válassza az Illesztőprogram módosítása parancsot.
  3. Válassza az Extra Class Path Add (Osztály 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 nevet.
  5. Válassza a Megnyitás lehetőséget.
  6. Válassza a Listaillesztők lehetőséget. Az Osztálynév mezőben válassza az org.postgresql.Driver elemet, majd az OK gombot.

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

  1. Válassza a Windows>Nézeti aliasok lehetőséget.
  2. Új alias létrehozásához kattintson a + gombra. Az új aliasnévhez írja be a Spam adatbázist.
  3. Illesztőprogramként válassza a PostgreSQL lehetőséget.
  4. Állítsa be az URL-címet a következőre: jdbc:postgresql://localhost/spam.
  5. Adja meg a felhasználónevét és a jelszavát.
  6. Válassza az OK lehetőséget.
  7. A Kapcsolat ablak megnyitásához kattintson duplán a Levélszemét adatbázis aliasára.
  8. Válassza a Kapcsolódás lehetőséget.

Lekérdezések futtatása:

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

Az adatok megismeréséhez számos további lekérdezést is futtathat. Például, hogyan változik 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;

Vagy mik a gyakran 3d-t tartalmazó e-mailek jellemzői?

SELECT * from data order by word_freq_3d desc;

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

Ha PostgreSQL-adatbázisban tárolt adatokkal szeretne gépi tanulást végezni, fontolja meg a MADlib használatát.

Azure Synapse Analytics (korábban SQL DW)

Azure Synapse Analytics egy felhőalapú, kibővíthető adatbázis, amely nagy mennyiségű adatot képes feldolgozni relációs és nem relációs adatokkal 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 a következő 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"

Megjegyzé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. Az -r jelölő használatával közölje a bcp-vel.

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

select top 10 spam, char_freq_dollar from spam;
GO

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