Skip to content

Commit b04b403

Browse files
committed
2025 kényszer dataviz labor
1 parent 416bfab commit b04b403

File tree

2 files changed

+164
-129
lines changed

2 files changed

+164
-129
lines changed

docs/laborok/5/index.md

Lines changed: 13 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
# Cloud labor
1+
# Adatvizualizáció labor
22

33
## Bevezetés
44

5-
A labor során a mobilon elérhető MI szolgáltatásokkal ismerkedhetünk meg.
5+
A labor során a Pythonban elérhető legfontosabb adatvizualizációs könyvtárakkal ismerkedhetünk meg.
66

7-
A feladatok megoldásához az alábbi telepített szoftverekre van szükség:
8-
9-
- BME EDU Account
10-
- [Git](https://git-scm.com/)
117

128
## Előkészület
139

@@ -20,132 +16,20 @@ A feladatok megoldása során ne felejtsd el követni a feladatbeadás folyamat
2016
3. Hozz létre egy új ágat `megoldas` néven, és ezen az ágon dolgozz.
2117
4. A neptun.txt fájlba írd bele a Neptun kódodat. A fájlban semmi más ne szerepeljen, csak egyetlen sorban a Neptun kód 6 karaktere.
2218

23-
## Google Cloud hozzáférés beállítása
24-
25-
1. A Moodle-ben található linken keresztül igényelj kupont a `@edu.bme.hu` végződésű e-mail címedre.
26-
2. Erősítsd meg az igénylést a kapott e-mailben.
27-
3. A következő beérkező e-mail alapján aktivált a krediteket.
28-
4. A megjelenő *Billing* oldalon állíts be *Budget Alert*-et 30 dollárra. Így értesítészt fogsz kapni, ha a rendelkezésre álló 50 dollárból 30-et már elhasználtál.
29-
30-
!!!danger "Kreditek használata"
31-
Az ezután megjelenő *Billing* oldalon tudod követni a labor során felhasznált krediteket. Ezt az oldalt figyeld folyamatosan, és ha szükséges szüntess meg használt erőforrásokat! Ha pontosan követed az útmutatót, nem fogod túllépni a rendelkezésre álló kreditmennyiséget. Az útmutató nem pontos követéséből fakadó kredittúllépés a hallgató felelőssége.
32-
33-
A következőkben egy AutoML tanítást fogunk elvégezni a Google Cloud Vertex AI szolgáltatása segítségével. Ha bármikor elakadnál, [itt](https://cloud.google.com/vertex-ai/docs/tutorials/image-classification-automl/overview?authuser=0) tudsz további segítséget találni.
34-
35-
36-
## Projekt létrehozása
37-
38-
1. Navigálj a Google Cloud [projekt választó felületére](https://console.cloud.google.com/projectselector2/home/dashboard?authuser=0).
39-
2. Hozz létre egy új projektet ```AMI Labor NEPTUN``` néven, ahol a NEPTUN helyett a saját Neptun kódod szerepel. **Fontos, hogy az a Billing Account for Education legyen kiválasztva, ahol a kreditek találhatók!**
40-
Az oldal tetején található keresőjébe az *Account management* keresőszót beírva és az *Account management(Billing)* opciót kiválasztva ellenőrizheted, hogy valóban a megfelelő Billing Accounthoz jött-e létre a projekt.
41-
4. Nyissuk meg a [Cloud Shellt](https://ssh.cloud.google.com/cloudshell/editor?authuser=0), amely egy böngészőben használható interaktív shell az erőforrások és projektek menedzselésére.
42-
5. Másold be az alábbi kódot a konzolba, lecserélve a **PROJECT_ID** a saját projekted azonosítójára. Ha nem találod a Projekt ID-t, [itt](https://cloud.google.com/vertex-ai/docs/tutorials/tabular-bq-prediction/prerequisites?authuser=0#find-project-id) találsz segítséget.
43-
44-
```bash
45-
gcloud config set project PROJECT_ID &&
46-
projectid=PROJECT_ID &&
47-
echo $projectid
48-
```
49-
50-
A kód elmenti a projektünk azonosítóját a *projectid* változóba.
51-
52-
5. Engedélyezd az IAM, Notebooks, Storage és Vertex AI API szolgáltatásokat az alábbi parancs kiadásával:
53-
```bash
54-
gcloud services enable iam.googleapis.com compute.googleapis.com notebooks.googleapis.com storage.googleapis.com aiplatform.googleapis.com
55-
```
56-
57-
6. Adj jogokat a felhasználói fiókodnak. Az alábbi kódban cseréld le
58-
- a **PROJECT_ID**-t a saját projekt azonosítódra,
59-
- a **USER_IDENTIFIER**-t a saját bejelentkezett usered e-mail címére (a jobb felső sarokban vagy az *IAM & Admin* oldalon tudod ellenőrizni),
60-
- a **ROLE**-t először a ```roles/aiplatform.user``` értékre, majd a következő futtatásnál a ```roles/storage.admin``` értékre.
61-
62-
```bash
63-
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
64-
```
65-
66-
A fenti kód Vertex AI erőforrásokhoz és Cloud Storagehoz ad hozzáférést a megadott felhasználónak.
67-
68-
69-
!!! example "1. feladat beadandó (1 pont)"
70-
* Készíts egy képernyőképet a Cloud Shellben lefutott parancsokról, és mentsd el a repository gyökerébe **`f1.png`** néven.
71-
72-
## Adathalmaz létrehozása és adat importálása
73-
74-
1. Navigáljunk a [Vertex AI kezdőoldalára](https://console.cloud.google.com/vertex-ai/?authuser=0) a konzolban.
75-
2. A *Prepare Data* csempén kattintsunk a **Create dataset** gombra.
76-
3. Az adahalmaznak adjuk az ```ami-labor-dataset``` nevet.
77-
4. Adattípusnak az **Image**, célnak a **Single-label classification** legyen kiválasztva.
78-
5. Válasszunk egy hozzánk közel eső régiót az erőforrásainknak (pl. **europe-west4**).
79-
6. A **Create** gomb megnyomásával hozzuk létre az üres adathalmazt.
80-
7. Az adathalmaz létrejötte után a *Data Import* nézetben válasszuk ki a **Select import files from Cloud Storage** opciót, és adjuk meg az alábbi csv fájl elérési útvonalát az **Import file path** mezőben (a csv fájl egy Google Cloud Bucketben található):
81-
```
82-
gs://cloud-samples-data/ai-platform/flowers/flowers.csv
83-
```
84-
8. Kattintsunk a **Continue** gombra az importálás befejezéséhez. Az importálás után betöltő oldalon megnézhetjük az adathalmazunk képeit.
85-
86-
!!! info "Error/Warning"
87-
Az adathalmaz betöltésekor több hibát is talál a rendszer. Betöltés után tekintsük meg az *Unable to import data due to errors* hibaüzenet részleteit. A későbbiekben ezzel nem kell foglalkoznunk.
88-
89-
!!! example "2. feladat beadandó (1 pont)"
90-
* Készíts egy képernyőképet a betöltött adathalmazról, és mentsd el a repository gyökerébe **`f2.png`** néven.
91-
92-
## AutoML Modell tanítása
93-
94-
1. Kattinsuk a jobb oldalon a **Train New Model** gombra.
95-
2. Fogadjuk el az alapértelmezett beállításokat a **Continue** gombra kattintva.
96-
3. Adjuk a modellnek a következő nevet: ```ami-labor-model```, majd kattintsunk újra a **Continue** gombra.
97-
4. A *Training options* fülön is jók a default értékek, kattintsunk a **Continue** gombra.
98-
5. A *Select Compute and pricing* fülön állítsuk be a Budget értékét **8 node órára**. Kattintsunk a **Start training** gombra.
99-
100-
!!! info "Training"
101-
A tanítás várhatóan körülbelül 2 óráig is eltarthat, a sikeres futásról e-mail értesítőt fogsz kapni.
102-
103-
!!! example "3. feladat beadandó (1 pont)"
104-
* Készíts egy képernyőképet a bal oldali sávon a **MODEL DEVELOPMENT/Training** fülre kattintva, ahol látszódik a tanítás alatt álló modelled, és mentsd el a repository gyökerébe **`f3.png`** néven.
105-
106-
## Eredmények értékelése
107-
108-
A tanítás végeztével a modell automatikusan kiértékelésre kerül a teszt adaton. (Mivel nem adtunk meg kézzel teszt adatot, a rendszer automatikusan elvégezte a felosztást.)
109-
110-
1. Nyissuk meg a tanítás eredményeit mutató oldalt. (Ezt többféleképpen is elérhetjük, pl. a *Model Registry* fülön keresztül.)
111-
2. Vizsgáljuk meg az eredményeket!
112-
3. A **Labels** pont alatt kattintsuk bele egy konkrét kategóriába (pl. *roses*)! Vizsgáljuk meg a kapott eredményeket!
113-
4. A kategórián belül egy konkrét képre is kattinsunk rá, és nézzük meg ott is a rendelkezésre álló adatokat!
114-
115-
A kiértékelő felület segítségével további megfigyeléseket tehetünk az adatunkra és modellünkre vonatkozóan, például láthatjuk, hogy hol hibázik gyakran a modell, vagy mely adatpontokat tekinthetjük outlier-nek.
116-
117-
!!! example "4. feladat beadandó (1 pont)"
118-
* Készíts egy képernyőképet egy konkrét kép kiértékeléséről, és mentsd el a repository gyökerébe **`f4.png`** néven.
119-
120-
121-
## Modell deploy és tesztelés
122-
123-
1. A modellünk oldalán válasszuk ki a **DEPLOY & TEST** tabot.
124-
2. Kattintsunk a **Deploy to endpoint** gombra.
125-
3. Endpoint névnek adjuk meg a következőt: ```ami-labor-automl```, majd kattintsunk a **Continue** gombra.
126-
4. A beállításoknál a **Number of compute nodes** értékét állítsuk **1**-re, és kattintsunk a **Done**, majd a **Deploy** gombokra.
127-
5. A **DEPLOY & TEST** tabon várjuk meg az endpoint létrejöttét, majd válasszuk ki az **Upload Image** opciót.
128-
6. Itt egy saját képpel (pl. [ezzel](https://unsplash.com/photos/sunflower-field-under-blue-sky-during-daytime-2IzoIHBgYAo), de az Unsplashről másik képes is választhatunk) tesztejük a modellt.
129-
130-
!!! example "5. feladat beadandó (1 pont)"
131-
* Készíts egy képernyőképet a feltöltött képen kapott eredményekről, és mentsd el a repository gyökerébe **`f5.png`** néven.
132-
133-
!!!danger "Még nem végeztél!"
134-
Ha minden képernyőképet elkészítettél, akkor kövesd az alábbi lépéseket az erőforrások felszabadításához/törléséhez!
135-
136-
## Erőforrások felszabadítása
19+
## Feladat: Feltáró adatelemzés és adatvizualizáció
13720

138-
1. **DEPLOY & TEST** tabon a modellünk sávjának jobb szélén a 3 pöttyös menüből válasszuk az **Undeploy model** opciót.
139-
2. Az [Endpoints](https://console.cloud.google.com/vertex-ai/endpoints?authuser=0) oldalon szintén a 3 pöttyös menüt használva válasszuk a **Remove Endpoint** opciót.
140-
3. A [Models](https://console.cloud.google.com/vertex-ai/models?authuser=0) oldalon a 3 pöttyös menün a **Delete model** opcióval töröljük a modellünket.
141-
4. A [Datasets](https://console.cloud.google.com/vertex-ai/datasets?authuser=0) oldalon a 3 pöttyös menün válasszuk a **Delete dataset** lehetőséget.
142-
5. Végül a [Buckets](https://console.cloud.google.com/storage/browser?authuser=0) oldalon töröljük az adatbázisunk létrehozásakor keletkezett tárolókat.
21+
1. Válassz egy publikusan elérhető adathalmazt (pl. Kaggle-ről), amin a vizualizációkat fogod elkészíteni.
22+
2. Végezz feltáró adatelemzést (EDA) a következők szerint.
23+
- Készíts 4-4-4 vizualizációt a **matplotlib**, **seaborn** és **plotly** könyvtárakkal
24+
- Minden vizualizáció legyen egyedi
25+
- Minden könyvtárnál legyen legalább 2 olyan típusú vizualizáció, amely más könyvtáraknál nem szerepel
26+
- Minden vizualizáció legyen igényes, tartalmazzon címet, tengelyfeliratokat, stb., illetve hordozzon tényleges információt.
27+
- Minden vizualizáció után írd le egy Markdown cellába, hogy milyen következtetést lehet levonni az adott grafikonból.
14328

144-
## Opcionális feladat (megajánlott jegyért):
14529

146-
Futass AutoML modellt az előzőhöz hasonló módon egy másik, tetszőleges adathalmazon.
30+
!!! example "Beadandó (40 pont)"
31+
* Töltsd fel a repoba a vizualizációkat tartalmazó Jupyter Notebook fájlt. A cellakimenetek, tehát a vizualizációk is szerepeljenek benne!
14732

148-
Képernyőképekkel dokumentáld a betöltött adathalmazt, valamint a modell értékelését és az endpoint tesztelését!
14933

15034
!!! example "Opcionális feladat beadandó (10 pont)"
151-
* A képernyőképeket mentsd el **`fo1.png`**,**`fo2.png`**, stb. néven a repository gyökerébe.
35+
* Készíts legalább 3 térképet a Folium python könyvtárral, tetszőleges adathalmazon. Az ábrák legyenek igényesek, tartalmazzanak minél több információt.

0 commit comments

Comments
 (0)