• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
Data Science

Big Mart Sales | Features Engineering

Big Mart Sales | Features Engineering

In questo post capiremo cosa intendiamo per Features Engineering e come questa semplice pratica costuisca un key point di ogni processo di machine learning applicato alla Data Analysis: it’s Data Science Dude!

Recap Generico | Andrea dov’eri finito? Ancora sta Big Mart?

Lunedì 7 febbraio 2019, il mio primo giorno di lavoro, pubbicai “Fine siesta: data scientist? Ancora tanto da fare. Partiamo!” nell’itento di coprire un gar di alcune settimane e riprendere in mano il sito.

Ero carico.

Dannatemente carico.

Pensavo di avere solo due grandi problematiche da gestire: il sito, e il percorso da data scientist che ancora non esisteva.

In realtà stavo per frangermi su uno scoglio troppo alto: il tempo.

Nei giorni, nelle settimane e persino nei mesi successivi alla pubblicazione di quel post avrei avuto davvero poco tempo libero, peraltro di poca qualità a causa della stanchezza.

Ahimé ignoravo ogni cosa.

Così quasi 2 stagioni dopo, eccomi nuovamente qui.

Questa volta però, poco più saggio di prima e conscio degli impegni a venire, eviterò di annunciare al vento progetti e aspettative, limitandomi a presentarti di volta in volta ciò che sono riuscito davvero a realizzare!

Let’ start! As a reminder: it’s data science, dude!

Andrea Provino

Ecco, in breve cosa aspettarti.

Riprenderemo in mano, si spera definitivamente, il progetto Big Mart Sales che avevamo lasciato in sospeso e lo faremo per 3 ragioni:

  1. coerenza, ho detto che avremmo concluso questo progetto e ora è arrivato il momento di porvi fine.
  2. continuità, lasciare progetti aperti è fastidioso per me, ma sopratutto per te che puoi leggere post a distanza di 8 mesi in pochi minuti!
  3. competenza, che ora abbiamo acquisito grazie ad un corso online profesionale.

Recap Progetto | Dall’EDA al Features Engineering!

Il tempo trascorso tra un post e quello successivo è così elevato che è stato necessario rileggere gli articoli così da avere un’idea del Stato Avanzamento Lavori (SAL). Ecco un veloce riassunto:

  • Big Mart Sales: Report preliminare | Towards Data Science, qui puoi trovare il post di presentazione del progetto con una breve Data Analysis
  • Big Mart Sales | Exploratory Data Analysis: Domande, questo post è invece un Exploratory Data Analysis più approfondito

In questi mesi ho imparato che un bravo Data Scientist ogranizza il proprio lavoro di analisi e machine learning applicato in macrosezioni. L’Exploratoy Data Analsys (o Data Analysis, non cambia nulla) è solo il primo step.

Purtroppo quegli articoli, seppur realizzati con attenzione meticolosa per gli argomenti trattati, sono superficiali e mancano di una reale organizzazione del lavoro.

Per questa ragione, nell’analisi che sto realizzando in jupyter notebook e che pubblicherò, ho seguito un percorso diverso.

Mi rendo conto che risulti tutto un po’ nebuloso. Prossimamente sarò quanto più chiaro possibile, in modo da darti tutti gli strumenti per seguire il mio percorso!

Completata la fase preliminare di esplorazione andrò veloce sulla pulizia dei dati e passerò rapidamente al core del Post: Features Engineering.

Data Cleaning

Questo task è mandatorio poiché la maggioranza degli algoritmi di machine learning non gradisce i NaN (Not A Number).

Ora, esistono molteplici scuole di pensiero che in soldoni distinguiamo in:

  • eliminare le osservazioni conteneti i NaN (da scartare se le dimensioni del Dataset sono modeste)
  • convertire i NaN usando la media dei valori all’interno della features di appartenenza (per le features numeriche generalmente una delle practice più comune)
  • convertire i NaN in 0 creando una nuova feature indicatoria (indicator feature) che consenta agli algoritmi di ‘imparare la mancanza del dato’

Ti faccio notare che negli utlimi due punti del precedente elenco mi riferivo alle sole numeric features. Per le categorical features la best practice è sostituire i NaN con la label ‘Missing’.

Un rapido recap:

  • Numeric Features: flag and fill
  • Categorical Features: simply fill with ‘Missing’

Per il nostro dataset, loperazione di pulizia dei dati (Data Cleaning) è avvenuta con successo andando ad influenzare ben 3 features.

  • Prima
  • Dopo

Abbiamo poi corretto alcuni errori nei nomi delle classi per la fetaure Item_Fat_Content (Typos) e aggiunta una nuova classe dal momento che gli oggetti non consumabili non hanno un valore di grasso…

Make sense

Features Engineering

La feature Item_Type conteneva 16 classi: un po’ troppe.

Abbiamo creato una nuova features omonima (quindi in realtà si è trattato si un overwriting) il cui criterio discrimiante è basato sulle prime due lettere dell’Item_Identifier, che abbiamo notato avere una particolarità.

Infatti ogni Item è identificato univocamente da un ID composto in questo modo:

[category][alphabeth_letter][2_number_digits]        
category = [FD,NC,DR]
alphabeth_letter = [A-Z]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

Per questo abbiamo selezionato le sole prime due lettere e creato una nuova feature classificatoria.

Abbiamo inoltre creato la feature Outlet_Age prendendo come riferimento l’anno di apertura dell’outlet e 2013 (anno di raccolta dati).

Dropping Features

In questa prima iterazione, lasceremo alcune feature che pensiamo possano non influenzare la previsione per due motivi:

  • intuizione (es, l’id di un prodotto non pregiudica il prezzo)
  • mappa di correlazione (che mostra se e in che misura due features dipendono tra loro)

Quindi elimineremo:

  • Item_Identifier
  • Outlet_Establishment_Year (create
  • Outlet_Identifier*

*Outlet_Identifier è in realtà una fetures che potremmo dover tenere. Il nostro stakeholder ha chiesto di prevedere le vendite di un prodotto in un particolare Outlet. E’ tuttavia poco chiaro se la richiesta indende esattamente un negozio (tramite ID), oppure un outlet-tipo (identificato da grandezza, posizione, e tipologia)

Quindi nel dubbio lo teniamo, ed eventualmente modificheremo in una successiva iterazione.

Per questo Post è tutto! Io e te, ci vediamo alla prossima!

It’s data science, dude!

Andrea Provino
Written by Andrea Provino - Agosto 15, 2019
Tags | data science, data scientist, dataset, machine learning

You Might Also Like

image-segmentaion-semantic-segmentaion-instance-segmentaion-machine-learning-data-science-guida-italiano

Image Segmentation | Segmentazione semantica e delle istanze

Novembre 8, 2020
business-understanding

Business Understanding e Analytic Approach | Data Science Methodology

Settembre 16, 2019
tensorflow-2-tutorial-semplice-machine-learning-deep-learning-data-science-keras-portfolio-tutorial-tesnorflow-2

Tensorflow 2: how to start? | Esempio Semplice, Tutorial

Ottobre 26, 2019
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • rust-react-webassembly-privacy-preserving-machine-learning Logs

    Rust, WebAssembly, React e un MVP

    Dicembre 21, 2020
  • diffie-hellman-key-exchange-protocol-scambio-di-chiavi-diffie-hellman Data Science, Privacy Preserving

    Cos’è lo scambio di chiavi Diffie-Hellman (DH)? | Privacy Preserving

    Dicembre 15, 2020
  • principio-di-esattezza-data-science-machine-learning-gdpr-data-accuracy Data Science, GDPR Compliant

    GDPR: Principio di esattezza dei dati (Data Accuracy)

    Dicembre 12, 2020
  • tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines machine-learning

    TFX: come funziona Tensorflow Extended?

    Dicembre 9, 2020
  • tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines machine-learning

    TensorFlow Extended (TFX) | Production Machine Learning Pipeline

    Dicembre 6, 2020
  • mean-shift-clustering-guida-italiano-spiegazione-semplice-algoritmo-di-clustering-esempio Data Science

    Mean-Shift Clustering

    Dicembre 3, 2020
  • data-minimization-principle-gdpr-principio-minimizzazione-dati-personali-gdpr-italia-consulenza-spiegazione-semplice Data Science, GDPR Compliant

    GDPR: Principio di minimizzazione dei dati (Data minimization)

    Dicembre 1, 2020
  • machine-learning-for-finance-trading-online-data-science-deep-learning-intelligenza-artificiale AI, machine-learning

    FinTech: Machine Learning for Finance (FinML) | Guide e Risorse di qualità

    Novembre 29, 2020
  • gdpr-principio-di-limitazione-della-finalita-machine-learning-data-science-guida-prupose-limitation-gdpr Data Science, GDPR Compliant

    GDPR: Principio di Limitazione della finalità | Purpose Limitation

    Novembre 26, 2020
  • machine-learning-engineer-lavoro-stipendio-responsabilità-come-diventare AI, Business, machine-learning

    Machine Learning Engineer

    Novembre 23, 2020

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino