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:
Azure-előfizetés. Azure-előfizetés beszerzéséhez tekintse meg az ingyenes Azure-fiók még ma történő létrehozását.
Ubuntu Data Science Virtual Machine. További információ a virtuális gép kiépítéséről: Az Ubuntu Data Science Virtual Machine kiépítése.
A számítógépre telepített X2Go egy megnyitott XFCE-munkamenettel. További információ: Az X2Go-ügyfél telepítése és konfigurálása.
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ő:

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:
- Minta Python jegyzetfüzetek:
- R-mintajegyzetfüzet:
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:
- A fájl betöltéséhez válassza az Adatok lapot.
- Válassza ki a Fájlnév melletti választót, majd válassza a spambaseHeaders.data elemet.
- 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.
- 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:
- Válassza a Felfedezés lapot.
- 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.
- 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:
- Válassza a Disztribúciók lehetőséget.
- Word_freq_remove ésword_freq_you esetében válassza a Hisztogram lehetőséget.
- 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:
- Típus esetén válassza a Korreláció lehetőséget.
- Válassza a Végrehajtás lehetőséget.
- 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:
- Válassza a Modell lapot,
- A Típus mezőben válassza a Fa lehetőséget.
- Válassza a Végrehajtás lehetőséget a fa szöveges formában való megjelenítéséhez a kimeneti ablakban.
- 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:
- A Típus mezőben válassza az Összes lehetőséget.
- Válassza a Végrehajtás lehetőséget.
- 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.
- 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:
- Válassza az Windows>Megtekintő illesztőprogramok lehetőséget.
- Kattintson a jobb gombbal a PostgreSQL-re , és válassza az Illesztőprogram módosítása parancsot.
- Válassza az Extra Class Path Add (Osztály hozzáadása) lehetőséget>.
- A Fájlnév mezőbe írja be a /usr/share/java/jdbcdrivers/postgresql-9.4.1208.jre6.jar nevet.
- Válassza a Megnyitás lehetőséget.
- 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:
- Válassza a Windows>Nézeti aliasok lehetőséget.
- Új alias létrehozásához kattintson a + gombra. Az új aliasnévhez írja be a Spam adatbázist.
- Illesztőprogramként válassza a PostgreSQL lehetőséget.
- Állítsa be az URL-címet a következőre: jdbc:postgresql://localhost/spam.
- Adja meg a felhasználónevét és a jelszavát.
- Válassza az OK lehetőséget.
- A Kapcsolat ablak megnyitásához kattintson duplán a Levélszemét adatbázis aliasára.
- Válassza a Kapcsolódás lehetőséget.
Lekérdezések futtatása:
- Válassza az SQL lapot.
- Az SQL lap tetején található lekérdezésmezőbe írjon be egy egyszerű lekérdezést, például
SELECT * from data;: . - 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ó.