Vizuální inspekce dat

Feature Engineering with PySpark

John Hogue

Lead Data Scientist, General Mills

Popisná statistika pomocí DataFrame.describe()

df.describe(['LISTPRICE']).show()
+-------+------------------+
|summary|         LISTPRICE|
+-------+------------------+
|  count|              5000|
|   mean|        263419.365|
| stddev|143944.10818036905|
|    min|            100000|
|    max|             99999|
+-------+------------------+
Feature Engineering with PySpark

Mnoho popisných funkcí je již k dispozici

  • Průměr
    • pyspark.sql.functions.mean(col)
  • Šikmost
    • pyspark.sql.functions.skewness(col)
  • Minimum
    • pyspark.sql.functions.min(col)
  • Kovariance
    • cov(col1, col2)
  • Korelace
    • corr(col1, col2)
Feature Engineering with PySpark

Příklad s mean()

  • mean(col)
  • Agregační funkce: vrací průměr hodnot ve skupině.
df.agg({'SALESCLOSEPRICE': 'mean'}).collect()
[Row(avg(SALESCLOSEPRICE)=262804.4668)]
Feature Engineering with PySpark

Příklad s cov()

  • cov(col1, col2)
  • Parametry:
    • col1 – první sloupec
    • col2 – druhý sloupec
df.cov('SALESCLOSEPRICE', 'YEARBUILT')
1281910.3840634783
Feature Engineering with PySpark

Seaborn: vizualizace statistických dat

Seaborn

Feature Engineering with PySpark

Poznámky k vizualizaci

Vizualizace PySpark DataFrame pomocí knihoven jako Seaborn vyžaduje převod na Pandas

UPOZORNĚNÍ: Před převodem na Pandas vzorkujte PySpark DataFrame!

  • sample(withReplacement, fraction, seed=None)
    • withReplacement povolí opakování ve vzorku
    • fraction % uchovávaných záznamů
    • seed náhodné semínko pro reprodukovatelnost
# Sample 50% of the PySpark DataFrame and count rows
df.sample(False, 0.5, 42).count()
2504
Feature Engineering with PySpark

Příprava na vykreslení distribuce

Seaborn distplot()

  • seaborn.distplot(a)
  • a : Series, 1D pole nebo seznam. Pozorovaná data.
# Import your favorite visualization library
import seaborn as sns

# Sample the dataframe sample_df = df.select(['SALESCLOSEPRICE']).sample(False, 0.5, 42)
# Convert the sample to a Pandas DataFrame pandas_df = sample_df.toPandas()
# Plot it sns.distplot(pandas_df)
Feature Engineering with PySpark

Graf distribuce závěrečné prodejní ceny

Graf distribuce

Feature Engineering with PySpark

Vizualizace vztahů

Seaborn lmplot()

  • seaborn.lmplot(x, y, data)
  • x, y : řetězce, vstupní proměnné; musí být názvy sloupců v datech.
  • data : Pandas DataFrame
# Import your favorite visualization library
import seaborn as sns

# Select columns s_df = df.select(['SALESCLOSEPRICE', 'SQFTABOVEGROUND']) # Sample dataframe s_df = s_df.sample(False, 0.5, 42)
# Convert to Pandas DataFrame pandas_df = s_df.toPandas()
# Plot it sns.lmplot(x='SQFTABOVEGROUND', y='SALESCLOSEPRICE', data=pandas_df)
Feature Engineering with PySpark

Graf lineárního modelu: SQFT nad zemí a prodejní cena

Graf lineárního modelu

Feature Engineering with PySpark

Pojďme procvičovat!

Feature Engineering with PySpark

Preparing Video For Download...