Toto je statické zobrazenie, ak chcete Notebook spustiť, prihláste sa do prostredia Data Lab.
Úlohy k prednáške 7 : Pokročilá vizualizácia dát s Matplotlib¶
V tomto notebooku si precvičíte pokročilé techniky vizualizácie dát pomocou knižnice Matplotlib. Na rozdiel od prednášky o Titanicu použijeme dataset UCI Wine Quality Dataset. Dataset obsahuje chemické a senzorické charakteristiky vín, ako napríklad:
- pH, alkohol, zvyškový cukor, kyslosť, sírany, atď.
- Kvalita vína (škála 0–10)
- Typ vína (červené, biele)
Ciele zadania:¶
- Naučiť sa vykonávať pokročilú analýzu a predspracovanie dát.
- Využiť rôzne typy grafov na lepšie pochopenie vzťahov v dátach.
- Precvičiť si groupby operácie a agregácie.
- Vytvoriť kombinované grafy a subplots.
- Prispôsobiť vzhľad grafov (štýly, farby, popisy) a prípadne využiť interaktivitu.
Inštrukcie¶
- Načítajte a predspracujte dataset podľa vlastného uváženia (vrátane čistenia chýbajúcich hodnôt, zmeny dátových typov, vytvárania nových príznakov atď.).
- Ku každej úlohe vytvorte primeranú vizualizáciu. Nezabudnite využívať rôzne možnosti prispôsobenia grafov.
- Dodržiavajte princípy prehľadnosti a zrozumiteľnosti grafov: popisy osí, legendy, farby, názvy.
- Pri riešení používajte knižnice:
pandas
,numpy
,matplotlib
. Pre interaktívne časti môžete využiťmatplotlib.widgets
aleboipywidgets
.
Odporúčanie¶
Pri riešení úloh sa nezamerajte len na „vygenerovanie grafu“, ale aj na interpretáciu. Napríklad:
- Prečo môže byť vysoký obsah
residual_sugar
spojený s vyššou/nizšou kvalitou? - Aký vplyv má
volatile_acidity
na kvalitu vína? - Majú biele vína spravidla inú hustotu alebo iné pH než červené?
Tým sa cvičenie posúva z roviny „vykresli graf“ do roviny analýzy dát, čo je jeho hlavný zámer.
1. Načítanie a prvotná analýza dát¶
Úloha 1:
- Načítajte dataset Wine Quality (napr. pomocou
ucimlrepo
- import in python). - Vykonajte základnú analýzu dát: skontrolujte veľkosť datasetu, typy stĺpcov, či má dataset chýbajúce alebo extrémne hodnoty (outliers). Vypíšte min, max, priemer, medián a prípadne iné štatistiky (napr. štandardnú odchýlku).
- V prípade potreby nahraďte/vymažte chýbajúce hodnoty alebo vyriešte outliers (podľa ľubovoľnej zvolenej stratégie).
- Vytvorte nový stĺpec, ktorý kategorizuje vína na základe kvality (stĺpca
quality
).- Za „vysokú kvalitu“ považujte tie vína, ktoré majú hodnotu
quality > 7
. - Tak vznikne binárny stĺpec, napr.
high_quality
, kde1
znamená vysokokvalitné víno a0
ostatné.
- Za „vysokú kvalitu“ považujte tie vína, ktoré majú hodnotu
In [ ]:
pip install ucimlrepo
In [ ]:
from ucimlrepo import fetch_ucirepo
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# 2) Načítanie datasetu z UCI
wine_quality = fetch_ucirepo(id=186)
# Pomocné informácie:
# - "id=186" zodpovedá Wine Quality datasetu v ucimlrepo
# - Ďalšie informácie nájdete na GitHube tohto projektu alebo priamo v docstringu
# 3) Dáta (ako pandas DataFrame)
X = wine_quality.data.features
y = wine_quality.data.targets
# Vypisuje metadáta
print(wine_quality.metadata)
# Vypisuje informácie o jednotlivých premenných
print(wine_quality.variables)
2. Čiarové grafy a analýza trendov¶
- Binning: Rozdeľte premennú
alcohol
aleboresidual_sugar
do niekoľkých intervalov (napr. 4–6 intervalov). - Priemerná kvalita: Zistite priemernú hodnotu
quality
(alebo podielhigh_quality
) v týchto intervaloch a zobrazte ju čiarovým grafom.
In [ ]:
# YOUR CODE
3. Stĺpcové grafy a kategorizácia¶
- Zaokrúhlenie pH: Zaokrúhlite stĺpec
pH
na jedno/desatinné miesto do nového stĺpca (napr.pH_rounded
). - Skupiny: Spočítajte, koľko vín (alebo aká je priemerná kvalita vín) spadá do jednotlivých zaokrúhlených hodnôt
pH_rounded
. - Stĺpcový graf: Vytvorte stĺpcový graf. Môže byť stacked (napr. zobraziť, koľko z nich je
high_quality=1
a koľkohigh_quality=0
). - Interpretácia: Diskutujte, či z grafu vyplýva nejaká zaujímavá súvislosť medzi pH a kvalitou.
In [ ]:
# YOUR CODE
4. Histogramy a distribučné analýzy¶
- Histogram: Zobrazte distribúciu
alcohol
, alebo inej dôležitej spojitej premennej (residual_sugar
,density
, atď.). - Porovnanie: Urobte dva histogramy vedľa seba: jeden pre vína
high_quality=1
a druhý prehigh_quality=0
. - Záver: Zhodnoťte, či majú vysokokvalitné vína iný typický rozsah danej premennej než víná s nižšou kvalitou.
In [ ]:
# YOUR CODE
5. Rozptýlené grafy (Scatter) a korelácie¶
- Scatter: Vytvorte rozptýlený graf, kde na osi x bude
volatile_acidity
a na osi ycitric_acid
. - Farebná odlišnosť: Zmente farbu alebo veľkosť bodu určte podľa
alcohol
(aleboquality
). - Korelácia: Vypočítajte korelačný koeficient medzi
volatile_acidity
acitric_acid
a stručne ho okomentujte.
In [ ]:
# YOUR CODE
6. Koláčové grafy / Proporčné zobrazenia¶
- Koláčový graf: Vytvorte jednoduchý koláč, ktorý ukáže podiel vín s
high_quality=0
ahigh_quality=1
. - Diskusia: Vyjadrite sa, či je koláčový graf podľa vás vhodný na takéto zobrazenie, a či by ste namiesto toho nepoužili radšej pruhový graf.
In [ ]:
# YOUR CODE
7. Subplots a kombinované vizualizácie¶
- Dvojité zobrazenie: Vytvorte 2 alebo 3 grafy vedľa seba / pod sebou na jednej figure (napr.
plt.subplots(1, 2)
alebo(2, 1)
). - Typy grafov: Môžete dať histogram
pH
do prvého grafu a čiarový grafquality
podľaalcohol_bin
do druhého grafu, atď. - Usporiadanie a popisy: Dbajte na to, aby každý graf mal vlastný názov, osy a aby neboli popisy príliš natlačené.
In [ ]:
# YOUR CODE
8. (Bonus) Pokročilé techniky a interaktivita¶
- Interaktívny histogram: Využite
matplotlib.widgets.Slider
(aleboipywidgets
) na meniaci sa počet binov v histogramealcohol
. - Iný parameter: Môžete spraviť widget, ktorým si študent vyberie, ktorú premennú chce zobraziť v histograme (napr.
pH
,sulphates
,alcohol
). - Animácie alebo iné knižnice: Prípadne skúste knižnicu Plotly alebo Bokeh na interaktívne zobrazenie.
In [ ]:
import matplotlib.widgets as widgets
from matplotlib.widgets import Slider
%matplotlib widget
In [ ]:
# YOUR CODE
9. Zhrnutie a diskusia¶
- Ktoré vizualizácie sa vám zdali najinformatívnejšie?
- Narazili ste na nejaké nečakané vzťahy medzi premennými?
- Ktoré grafy by ste zvolili pre prezentáciu výsledkov vedeniu firmy ("manažérske grafy")?
- Ako by ste rozšírili túto analýzu o ďalšie premenné alebo iné typy grafov?
Referencie¶
Poznámka¶
Cieľom je nielen zvládnuť technickú stránku vizualizácií, ale aj kriticky premýšľať, aká vizualizácia sa hodí pre daný typ dát a otázku, ktorú riešite.