Dnes nadviažem na predchádzajúci článok Ako na dátový projekt.
Na úvod by som zdôraznil, že tento článok používa zjednodušený súbor dát, ktorého cieľom je len ukázať príklad ako postupovať. V praxi sú dáta často komplexnejšie, neúplné a vyžadujú viac čistenia, ale postup v podstate zostáva rovnaký. Dôležité tiež je, že dátová veda nie je o nástrojoch, je o schopnosti premeniť získané dáta na informácie, ktoré majú hodnotu.
V tejto prípadovej štúdii si krok za krokom prejdeme reálny workflow (t.j. ide o poradie krokov, aby bolo možné sa dostať od problému k výsledku) dátového projektu, od definovania cieľa až po prezentáciu výsledkov.
1/ Definovanie cieľa analýzy
Každý dátový projekt musí začínať otázkou a to „Aký problém riešime?“.
Pre túto prípadovú štúdiu budeme analyzovať dáta, ktoré obsahujú informácie o cenách nehnuteľností, pričom cieľom analýzy bude:
- identifikovať faktory, ktoré ovplyvňujú cenu
- preskúmať vzťah medzi veľkosťou, počtom izieb a lokalitou
- pripraviť základný analytický prehľad pre rozhodovanie
2/ Dátová sada (angl. Dataset) a jeho štruktúra
Použijeme jednoduchú modelovú dátovú sadu so štruktúrou bežnou v realitných dátach (dátovú sadu je treba si vytvoriť, alebo ju prevziať z verejne dostupných zdrojov):
| Stĺpec | Popis |
| price | Cena nehnuteľnosti |
| size_m2 | Veľkosť v m2 |
| rooms | Počet izieb |
| location | Lokalita |
| year_built | Rok výstavby nehnuteľnosti |
Dátovú sadu si vytvoríme a uložíme do súboru data vo formáte CSV.
3/ Načítanie dát pomocou jazyka Python
Programovaciemu jazyku Python sa budeme venovať síce neskôr (aj keď školení na tento jazyk je na internete dostupných skutočne veľmi veľa), ale pre tento článok ako príklad použitia je priamo ideálny.
Dôležité: Aj keď sa na stránke zobrazia úvodzovky ako „text“, pri písaní zdrojového kódu v jazyku Python vždy používajte
"text", inak kód nebude fungovať správne.
Použijeme knižnicu Pandas, ktorá je štandardom pre dátovú analýzu v jazyku Python.
import pandas as pd
df = pd.read_csv(„data.csv“)
df.head()
V tomto bode riešime kontrolu dát, overenie štruktúry a identifikáciu možných chýb už na začiatku.
Následne získame základné informácie o dátach.
df.info()
df.describe()
Týmto zistíme počet záznamov, typy dát, základné štatistiky a prípadne možné problémy (chýbajúce alebo extrémne hodnoty, nulové ceny,..) v dátach.
4/ Čistenie dát
Pre čistenie údajov z dátovej sady môžeme použiť rôzne postupy, pre tento článok si ukážeme niekoľko jednoduchých príkladov:
- pre zistenie chýbajúcich hodnôt použijeme df.isnull().sum()
- v rámci jednoduchého riešenia, napríklad df[„price“].fillna(df[„price“].mean(), inplace=True)
- v reálnych projektoch by sme analyzovali dôvod chýbania hodnôt a následne zvolili vhodnejší postup
- pre zistenie, odstránenie duplicity použijeme df = df.drop_duplicates()
- pre zistenie extrémnych hodnôt použijeme df[df[„price“] > 1000000]
- extrémne hodnoty pritom môžu byť chyby v dátach a treba ich odstrániť
- alebo naopak pôjde o reálne luxusné nehnuteľnosti a potom tieto údaje treba ponechať a prípadne ich analyzovať zvlášť
- rozhodnutie samozrejme závisí od kontextu projektu
5/ Vizualizácia dát
V tomto bode sa dostávame k vizualizácii dát (tu použijeme knižnice ako matplotlib a seaborn), ktorá pomáha vidieť a pochopiť vzťahy v dátach, ktoré čísla neodhaľujú.
import matplotlib.pyplot as plt
import seaborn as sns
Potom použijeme kód pre:
- Rozdelenie cien
sns.histplot(df[„price“], bins=30)
plt.show()
- Vzťah medzi veľkosťou a cenou nehnuteľnosti (tu bude vidieť napríklad aj vplyv lokality danej nehnuteľnosti na cenu)
sns.scatterplot(data=df, x=“size_m2″, y=“price“)
plt.show()
- Analýza vzťahov (t.j. korelácie)
df.corr()
Najsilnejšie vzťahy bývajú medzi veľkosťou, počtom izieb a súčasne lokalitou.
6/ Príklad na jednoduchý predikčný model ohľadne ceny
Jednoduchý lineárny regresný model:
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
X = df[[„size_m2“, „rooms“]]
y = df[„price“]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = LinearRegression()
model.fit(X_train, y_train)
Nakoniec samozrejme zostáva interpretácia výsledkov.
Treba si uvedomiť, že dôležitý nie je len samotný model, ale hlavne to čo na základe neho je možné vysvetliť. Ide o to, že dátový vedec musí vedieť výsledky vysvetliť jednoduchým jazykom, napríklad väčšie byty sú drahšie (veľkosť má najväčší vplyv), počet izieb má významný vplyv (každých +10 m² zvyšuje cenu približne o X€) alebo lokalita je kľúčový faktor, ktorý výrazne mení cenu nehnuteľnosti.
Zaujal Vás článok?
Zvážte možnosť jeho zdieľania na sociálnych sieťach alebo sa podeľte o svoj názor a pripomienky k článku a to odoslaním správy na e-mailovú adresu info@dataspark.sk.

