1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Extreme Gradient Boosting with XGBoost

Connected

cvičení

Případová studie: onemocnění ledvin I – kategorická imputace

Teď se podíváš na práci s pipeline na datasetu, který vyžaduje výrazně více předzpracování. Dataset chronického onemocnění ledvin obsahuje jak kategorické, tak numerické příznaky, a navíc má spoustu chybějících hodnot. Cílem je na základě různých krevních ukazatelů předpovědět, kdo chronickým onemocněním ledvin trpí.

Jak Sergey zmínil ve videu, seznámíš se s novou knihovnou sklearn_pandas, která ti umožní řetězit v pipeline mnohem více kroků zpracování, než aktuálně podporuje scikit-learn. Konkrétně budeš moct použít třídu DataFrameMapper() k aplikování libovolného sklearn-kompatibilního transformátoru na sloupce DataFrame, přičemž výstupem může být buď NumPy pole, nebo DataFrame.

Připravili jsme také transformátor Dictifier, který zapouzdřuje převod DataFrame pomocí .to_dict("records") – nemusíš to dělat ručně a zároveň to funguje v rámci pipeline. Dále máš k dispozici seznam názvů příznaků v kidney_feature_names, název cílové proměnné v kidney_target_name, příznaky v X a cílovou proměnnou v y.

Tvým úkolem v tomto cvičení je aplikovat SimpleImputer z knihovny sklearn na imputaci všech kategorických sloupců v datasetu. Jako šablonu můžeš použít způsob, jakým byl vytvořen mapper pro numerickou imputaci. Všimni si argumentů input_df=True a df_out=True – díky nim pracuješ s DataFrame místo polí. Ve výchozím nastavení jsou transformátorům předávána numpy pole vybraných sloupců, a výstup DataFrame mapperu je tedy také pole. Transformátory scikit-learn byly historicky navrženy pro práci s numpy poli, nikoli s pandas DataFrame, přestože jejich základní rozhraní pro indexování jsou podobná.

Pokyny

100 XP
  • Aplikuj kategorický imputer pomocí DataFrameMapper() a SimpleImputer(). Do SimpleImputer() není potřeba předávat žádné argumenty. Sloupce jsou uloženy v categorical_columns. Nezapomeň nastavit input_df=True a df_out=True a v list comprehension použij jako proměnnou iterátoru category_feature.