Vai al contenuto principale

29 domande da colloquio per Data Scientist per tutti i livelli

Esplora le principali domande da colloquio di data science con risposte per studenti all’ultimo anno e professionisti in cerca di lavoro.
Aggiornato 29 set 2026  · 15 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Intestazione colloquio di Data Science.png

In questa guida ho raccolto le domande più frequenti dei colloqui per data scientist su statistica, machine learning, coding (Python, SQL) e product sense. Esercitarti con queste domande ti aiuterà a superare tutte le fasi tecniche del colloquio, che tu sia uno studente in cerca di uno stage o un professionista alla ricerca del prossimo ruolo.

TL;DR

  • I colloqui per data scientist testano cinque aree: statistica e probabilità, machine learning, coding (Python/SQL), comportamentale e product sense.
  • Temi tecnici chiave: assunzioni della regressione lineare, prevenzione dell’overfitting, metodi di selezione delle feature (filter, wrapper, embedded), riduzione della dimensionalità e A/B testing.
  • Per le prove di coding, esercitati con Python (pandas, regex, manipolazione di liste) e SQL (aggregazioni, filtri su date, window function).
  • Prepara risposte con il metodo STAR per le domande comportamentali su comunicazione, risoluzione dei conflitti e gestione dell’ambiguità.
  • Le Big Tech (Meta, Google, Amazon) testano anche analisi delle metriche, product sense e statistica applicata oltre alle competenze tecniche di base.
  • Usa la nostra guida Preparazione al colloquio di Data Science per strutturare il tuo piano di studio in tutte le fasi.

Domande non tecniche per il colloquio di Data Science

Iniziamo con alcune domande generali sulle competenze che potresti incontrare al colloquio. Valutano alcune soft skill necessarie a un data scientist:

Raccontami di una volta in cui hai dovuto spiegare un concetto di dati complesso a qualcuno senza background tecnico. Come ti sei assicurato che capisse?

Questa domanda valuta le tue capacità comunicative e la tua abilità nel semplificare temi complessi. Ecco un esempio di risposta:

Nel mio precedente ruolo, ho dovuto spiegare il concetto di machine learning al team marketing. Ho usato l’analogia di insegnare a un bambino a riconoscere diversi tipi di frutta. Come mostreresti a un bambino molti esempi per aiutarlo a imparare, così un modello di machine learning viene addestrato con i dati. Questa analogia ha reso il concetto complesso più concreto e facile da comprendere.

Descrivi un progetto in cui hai dovuto lavorare con un membro del team difficile. Come hai gestito la situazione?

Questa domanda esplora le tue capacità di collaborazione e di gestione dei conflitti. Potresti rispondere così:

In un progetto, ho lavorato con un collega con uno stile di lavoro molto diverso dal mio. Per superare le divergenze, ho organizzato un incontro per capire il suo punto di vista. Abbiamo trovato un terreno comune negli obiettivi del progetto e concordato un approccio condiviso. Questa esperienza mi ha insegnato il valore della comunicazione aperta e dell’empatia nel lavoro di squadra.

Puoi condividere un esempio di quando hai dovuto lavorare con una scadenza molto stretta? Come hai gestito i compiti e rispettato i tempi?

Questa domanda riguarda la gestione del tempo e la definizione delle priorità. Ecco un esempio di risposta:

Una volta dovevo consegnare un’analisi entro una scadenza molto stretta. Ho dato priorità alle parti più critiche del progetto, ho comunicato il mio piano al team e mi sono concentrato sull’esecuzione efficiente. Scomponendo il lavoro e fissando micro-scadenze, sono riuscito a completare il progetto in tempo senza compromettere la qualità.

Hai mai commesso un errore significativo nella tua analisi? Come l’hai gestito e cosa hai imparato?

Qui l’intervistatore valuta la tua capacità di assumerti la responsabilità degli errori e di imparare da essi. Potresti rispondere così:

In un’occasione ho interpretato male i risultati di un modello. Appena mi sono accorto dell’errore, ho informato subito il team e ho rianalizzato i dati. Questa esperienza mi ha insegnato l’importanza di ricontrollare i risultati e il valore della trasparenza sul lavoro.

Come resti aggiornato sulle ultime tendenze e novità in data science?

Questo mostra il tuo impegno nell’apprendimento continuo e nel restare rilevante nel tuo campo. Ecco una risposta tipo:

Resto aggiornato leggendo riviste di settore, partecipando a webinar e frequentando forum online. Dedico anche del tempo ogni settimana per sperimentare nuovi tool e tecniche. Questo non solo mi aiuta a restare al passo, ma migliora continuamente le mie competenze.

Raccontaci di una volta in cui hai lavorato a un progetto con requisiti poco chiari o in continua evoluzione. Come ti sei adattato?

Questa domanda valuta adattabilità e problem solving. Ad esempio, potresti dire:

In un progetto precedente, i requisiti cambiavano spesso. Mi sono adattato mantenendo una comunicazione aperta con gli stakeholder per capirne le esigenze. Ho adottato metodologie agili per essere più flessibile nell’approccio, il che ha aiutato a gestire i cambiamenti in modo efficace.

Descrivi una situazione in cui hai dovuto bilanciare decisioni guidate dai dati con altre considerazioni (come aspetti etici, esigenze di business, ecc.).

Questa domanda valuta la tua capacità di considerare aspetti che vanno oltre i dati. Un esempio di risposta potrebbe essere:

Nel mio ultimo ruolo, ho dovuto bilanciare la necessità di decisioni data-driven con considerazioni etiche. Mi sono assicurato che ogni uso dei dati fosse conforme agli standard etici e alle leggi sulla privacy, e ho presentato alternative quando necessario. Questo approccio ha permesso decisioni informate nel rispetto dei confini etici.

Domande generali di Data Science

Quali sono le assunzioni richieste per una Regressione Lineare?

Le quattro assunzioni della regressione lineare sono:

  1. Relazione lineare: deve esserci una relazione lineare tra la variabile indipendente x e la variabile dipendente y.
  2. Indipendenza: non c’è correlazione tra residui consecutivi. Si verifica soprattutto nei dati di serie temporali.
  3. Omoscedasticità: a ogni livello di x, la varianza dovrebbe essere costante.
  4. Normalità: i residui sono distribuiti normalmente.

Regressione lineare.png

Immagine da Statology

Puoi approfondire concetti e applicazioni dei modelli lineari con il nostro corso Introduzione alla modellazione lineare in Python.

Come gestisci un dataset con molti valori mancanti?

Ci sono diversi modi per gestire i dati mancanti. Puoi:

  1. Eliminare le righe con valori mancanti.
  2. Eliminare le colonne con molti valori mancanti.
  3. Compilare i valori mancanti con una costante stringa o numerica.
  4. Sostituire i valori mancanti con la media o la mediana della colonna.
  5. Usare analisi di regressione multipla per stimare un valore mancante.
  6. Usare più colonne per sostituire i mancanti con valori medi simulati ed errori casuali.

Impara a diagnosticare, visualizzare e trattare i dati mancanti con il corso Gestione dei dati mancanti con imputazioni in R.

Come spieghi gli aspetti tecnici dei tuoi risultati a stakeholder senza background tecnico?

Per prima cosa, devi conoscere meglio il background dello stakeholder e usare queste informazioni per adattare il linguaggio. Se ha un background in finanza, informati sui termini comunemente usati in finanza e usali per spiegare la metodologia complessa.

In secondo luogo, usa molte visualizzazioni e grafici. Le persone apprendono in modo visivo e imparano molto meglio con strumenti di comunicazione creativi.

spiegare aspetti tecnici.png

Immagine dell’autore

Terzo, parla in termini di risultati. Non cercare di spiegare metodologie o statistiche: concentra l’attenzione su come possano usare le informazioni dell’analisi per migliorare il business o il flusso di lavoro.

Infine, incoraggiali a farti domande. Le persone spesso hanno paura o si vergognano di fare domande su argomenti sconosciuti. Crea un canale di comunicazione a doppio senso coinvolgendoli nella discussione.

Impara a creare report e dashboard SQL con il corso Reporting in SQL.

Cos’è un p-value e come lo interpreti?

Un p-value misura la probabilità di osservare risultati almeno altrettanto estremi dei dati raccolti, assumendo vera l’ipotesi nulla.

Un p-value al di sotto del livello di significatività (tipicamente 0,05) fornisce evidenza per rifiutare l’ipotesi nulla. Ad esempio, in un A/B test con p-value di 0,03, c’è solo il 3% di probabilità di osservare questo esito sotto l’ipotesi nulla, il che suggerisce che la variante abbia avuto un effetto reale.

Un’idea sbagliata comune: un p-value non misura la probabilità che l’ipotesi nulla sia vera, ma solo quanto i dati siano compatibili con essa.

Qual è la differenza tra errore di Tipo I e di Tipo II?

Sono due tipi di errore nei test d’ipotesi:

  • Errore di Tipo I (falso positivo): rifiutare l’ipotesi nulla quando è vera. È controllato dal livello di significatività (α). Esempio: concludere che un nuovo modello sia migliore quando in realtà non lo è.
  • Errore di Tipo II (falso negativo): non rifiutare l’ipotesi nulla quando è falsa. È controllato dalla potenza statistica (1 − β). Esempio: concludere che un modello non mostri miglioramenti quando in realtà lo fa.

Abbassare α riduce gli errori di Tipo I ma aumenta quelli di Tipo II. Il compromesso giusto dipende dal costo di ciascun errore nel tuo caso d’uso—critico in rilevazione frodi, diagnosi medica o decisioni di A/B test.

Scopri di più nel nostro tutorial Hypothesis Testing Made Easy.

Domande tecniche di Data Science

Quali metodi di selezione delle feature si usano per scegliere le variabili giuste?

Esistono tre metodi principali di selezione delle feature: filter, wrapper ed embedded.

Metodi Filter

I metodi filter sono generalmente usati in fase di preprocessing. Selezionano le feature da un dataset indipendentemente dagli algoritmi di machine learning. Sono rapidi, richiedono meno risorse e rimuovono feature duplicate, correlate e ridondanti.

Metodi Filter.png

Immagine dell’autore

Alcune tecniche usate sono:

  • Soglia di varianza
  • Coefficiente di correlazione
  • Test Chi-quadro
  • Dipendenza reciproca

Metodi Wrapper

Nei metodi wrapper, si addestra il modello in modo iterativo usando un sottoinsieme di feature. In base ai risultati del modello addestrato, si aggiungono o rimuovono altre feature. Sono computazionalmente più costosi dei metodi filter ma forniscono una migliore accuratezza del modello.

Metodi Wrapper.png

Immagine dell’autore

Alcune tecniche usate sono:

  • Selezione in avanti
  • Eliminazione all’indietro
  • Eliminazione bidirezionale
  • Eliminazione ricorsiva

Metodi Embedded

I metodi embedded combinano le qualità dei metodi filter e wrapper. L’algoritmo di selezione delle feature è integrato nell’algoritmo di apprendimento, fornendo al modello una selezione delle feature incorporata. Questi metodi sono veloci come i filter, accurati come i wrapper e considerano anche combinazioni di feature.

Metodi Embedded.png

Immagine dell’autore

Alcune tecniche usate sono:

  • Regolarizzazione
  • Metodi basati su alberi

Impara le tecniche di feature selection più testate nel nostro Tutorial sulla selezione delle feature in Python.

Come puoi evitare l’overfitting del modello?

L’overfitting si verifica quando un modello è addestrato troppo bene sul training set ma fallisce su test e validation set.

Puoi evitare l’overfitting:

  1. Mantenendo il modello semplice, riducendo la complessità, considerando meno variabili e diminuendo il numero di parametri nelle reti neurali.
  2. Usando tecniche di cross-validation.
  3. Addestrando il modello con più dati.
  4. Usando data augmentation per aumentare il numero di campioni.
  5. Usando ensembling (Bagging e Boosting)
  6. Usando tecniche di regolarizzazione per penalizzare certi parametri del modello se probabilmente causano overfitting.

Per una guida più approfondita sulla prevenzione dell’overfitting, leggi Cos’è l’overfitting? e il nostro tutorial sulla Regolarizzazione nel Machine Learning.

Elenca i diversi tipi di relazioni in SQL

Ci sono quattro tipi principali di relazioni SQL:

  • One to One: esiste quando ogni record di una tabella è collegato a un solo record in un’altra tabella.
  • One to Many e Many to One: è la connessione più comune, in cui ogni record in una tabella è collegato a più record in un’altra.
  • Many to Many: esiste quando ogni record della prima tabella è collegato a più record della seconda, e un singolo record della seconda può essere collegato a più record della prima.
  • Relazioni auto-referenziali: si verificano quando una tabella deve dichiarare una connessione con se stessa.

Impara a esplorare le tabelle, le relazioni tra loro e i dati che contengono con il nostro corso Exploratory Data Analysis in SQL.

Che cos’è la riduzione della dimensionalità e quali sono i suoi vantaggi?

La riduzione della dimensionalità è un processo che converte il dataset da più dimensioni a meno dimensioni mantenendo informazioni simili.

riduzione della dimensionalità.png

Immagine dell’autore | Grafici di howecoresearch

Vantaggi della riduzione della dimensionalità:

  1. Compressione dei dati e riduzione dello spazio di archiviazione.
  2. Riduzione del tempo computazionale e elaborazione dei dati più veloce.
  3. Rimozione di feature ridondanti, se presenti.

Comprendi il concetto di riduzione della dimensionalità e padroneggia le tecniche con il corso Dimensionality Reduction in Python.

Qual è l’obiettivo dell’A/B Testing?

A/B Testing.png

Immagine dell’autore

L’A/B testing elimina le congetture e aiuta a prendere decisioni guidate dai dati per ottimizzare il prodotto o il sito. È anche noto come split testing, in cui si conducono esperimenti randomizzati per analizzare due o più versioni di variabili (pagina web, funzionalità dell’app, ecc.) e determinare quale versione porta il massimo traffico e il miglioramento della metrica di business.

Impara a creare, eseguire e analizzare A/B test con il corso Customer Analytics and A/B Testing in Python.

Domande di coding per il colloquio di Data Science

Dato un dizionario composto da molte radici e una frase, effettua lo stemming di tutte le parole nella frase sostituendole con la radice che le forma.

Lo stemming è comunemente usato nell’analisi del testo e del sentiment. In questa domanda, scriverai una funzione Python che convertirà alcune parole dell’elenco nella loro forma radice - Interview Query.

Input:

La funzione prenderà due argomenti: l’elenco delle radici e la frase.

roots = ["cat", "bat", "rat"]
sentence = "the cattle was rattled by the battery"

Output:

Restituirà la frase con le parole ridotte alla radice.

"the cat was rat by the bat"

Prima di scrivere il codice, è utile capire che svolgeremo due compiti: verificare se la parola ha una radice e sostituirla.

  1. Dividerai la frase in parole.
  2. Eseguirai il ciclo esterno su ogni parola nell’elenco e il ciclo interno sull’elenco delle radici.
  3. Controllerai se la parola inizia con la radice. La stringa Python mette a disposizione la funzione startswith() per questo compito.
  4. Se la parola inizia con la radice, sostituisci la parola con la radice usando l’indice della lista.
  5. Unisci tutte le parole per ricreare la frase.
roots = ["cat", "bat", "rat"]
sentence = "the cattle was rattled by the battery"


def replace_words(roots, sentence):
    words = sentence.split(" ")

    # looping over each word
    for index, word in enumerate(words):
        # looping over each root
        for root in roots:
            # checking if words start with root
            if word.startswith(root):
                # replacing the word with its root
                words[index] = root
    return " ".join(words)


replace_words(roots, sentence)


# 'the cat was rat by the bat'

Verifica se una stringa è un palindromo

Dalla stringa text, restituisci True se è un palindromo, altrimenti False.

Dopo aver trasformato tutte le lettere in minuscolo e rimosso tutti i caratteri non alfanumerici, la parola dovrebbe leggersi uguale in avanti e all’indietro.

La stringa è un palindromo.png

Immagine dell’autore

Python offre modi semplici per risolvere questa sfida. Puoi trattare la stringa come iterabile e invertirla usando text[::-1] oppure usare il metodo built-in reversed(text).

  1. Per prima cosa, porta il testo in minuscolo.
  2. Pulisci il testo rimuovendo i caratteri non alfanumerici usando le regex.
  3. Inverti il testo usando [::-1].
  4. Confronta il testo pulito con la sua versione invertita.
import re

def is_palindrome(text):
    # lowering the string
    text = text.lower()
   
    # Cleaning the string
    rx = re.compile('\W+')
    text = rx.sub('',text).strip()
   
    # Reversing and comparing the string
    return text == text[::-1]

Nel secondo metodo, sostituisci semplicemente l’inversione del testo con ''.join(reversed(text)) e confrontala con il testo pulito.

Entrambi i metodi sono diretti.

def is_palindrome(text):
    # lowering the string
    text = text.lower()
   
    # Cleaning the string
    rx = re.compile('\W+')
    text = rx.sub('',text).strip()
   
    # Reversing the string
    rev = ''.join(reversed(text))
    return text == rev

Risultati:

Forniremo l’elenco di parole alla funzione is_palindrome() e stamperemo i risultati. Come puoi vedere, anche con caratteri speciali la funzione ha identificato “Level” e “Radar” come palindromi.

# Test cases
test_words = ['Anna', '**Radar****', 'Abid', '(Level)', 'Data']

for text in test_words:
    print(f"Is {text} a palindrome? {is_palindrome(text)}")


# Is Anna a palindrome? True
# Is **Radar**** a palindrome? True
# Is Abid a palindrome? False
# Is (Level) a palindrome? True
# Is Data a palindrome? False

Preparati ai prossimi colloqui di coding con il nostro corso interattivo Esercitarsi con domande di colloquio di coding in Python. Per una preparazione Python più approfondita, vedi 41 principali domande e risposte su Python per il 2026.

Trova il secondo stipendio più alto

È facile trovare il valore massimo e minimo, ma più difficile trovare il secondo più alto o l’n-esimo valore più alto.

Nella domanda ti viene fornita una tabella del database con id e base_salary. Scriverai la query SQL per trovare il secondo stipendio più alto.

Query SQL.png

Immagine dell’autore

In questa query, troverai i valori unici e li ordinerai dal più alto al più basso. Poi userai LIMIT 1 per mostrare solo il valore più alto. Infine, userai un OFFSET di 1 per mostrare il secondo valore più alto.

Puoi anche cambiare il valore di OFFSET per ottenere l’n-esimo stipendio più alto.

SELECT DISTINCT base_salary AS "Second Highest Salary"
FROM employee
ORDER BY base_salary DESC
LIMIT 1
OFFSET 1;

Il secondo stipendio base più alto è 8.500.

stipendio sql.png

Trova le email duplicate

In questa domanda scriverai una query per visualizzare tutte le email duplicate.

Tabella database email duplicate.png

Immagine dell’autore

In questa query, visualizzerai la colonna email e raggrupperai la tabella per email. Successivamente useremo la clausola HAVING per trovare le email menzionate più di una volta.

HAVING si usa al posto di WHERE in combinazione con le aggregazioni.

SELECT email
FROM employee_email
GROUP BY email
HAVING COUNT(email) > 1;

Solo “matt@hotmail.com” ricorre più di una volta.

email sql.png

Scrivi SQL manutenibile per rispondere a domande di business con il corso Applying SQL to Real-World Problems.

Domande da colloquio di Data Science nelle Big Tech

Domande Meta per Data Science

Il composer di Facebook, lo strumento di pubblicazione, è passato dal 3% di post per utente del mese scorso al 2,5% di oggi. Come indagheresti su cosa è successo?

Composer di Facebook di Abid.png

Immagine dell’autore

La metrica è scesa dal 3% di un mese fa al 2,5% di oggi. Prima di trarre conclusioni, chiarisci il contesto attorno al problema.

Domande da porre:

  • Oggi è un giorno feriale?
  • Un mese fa da oggi era un weekend?
  • Ci sono ricorrenze, eventi speciali o stagionalità?
  • Si osserva un trend in calo graduale o un evento isolato?

Nella seconda parte, approfondisci cosa ha guidato il calo. È aumentato il numero di utenti, o è diminuito il numero di post? Successivamente, l’intervistatore chiederà di avviare una discussione usando uno o entrambi i filoni di ragionamento.

Secondo te, com’è la distribuzione del tempo trascorso al giorno su Facebook? Quali metriche useresti per descriverla?

Per la distribuzione del tempo trascorso al giorno su Facebook, si può ipotizzare l’esistenza di due gruppi:

  1. Persone che scorrono velocemente il feed senza spendere troppo tempo.
  2. Super utenti che passano molto tempo su Facebook.

Per la seconda parte, usa il vocabolario statistico per descrivere la distribuzione, come:

  1. Centro: media, mediana e moda
  2. Dispersione: deviazione standard, intervallo interquartile e range
  3. Forma: asimmetria, curtosi e mono o bimodale
  4. Outlier

Dato un dataset di punteggi di test, scrivi codice pandas per restituire la percentuale cumulativa di studenti che hanno ricevuto punteggi entro i bucket di <50, <75, <90, <100.

In questa domanda, scriverai codice pandas per prima cosa per suddividere i punteggi in vari bucket e poi calcolare la percentuale di studenti che ottengono punteggi in quei range.

Input:

Il nostro dataset ha le colonne user_id, grade e test_score.

Dataset punteggi test.png

Immagine dell’autore

Output:

Scriverai la funzione che userà le colonne grade e test_score. E mostrerà il dataframe con le classi, i bucket di punteggio e la percentuale cumulativa di studenti che rientrano nei bucket.

dataset classi.png

Immagine dell’autore

  1. Userai la funzione pandas.cut() per convertire i punteggi in bucket usando bins ed etichette dei bucket.
  2. Calcola la dimensione di ogni gruppo (grade e test_score).
  3. Per calcolare la percentuale, servono numeratore (somma cumulativa) e denominatore (somma di tutti i valori).
  4. Converti la frazione in una percentuale moltiplicando per 100 e aggiungendo “%”.
  5. Reimposta l’indice e rinomina la colonna in "percentage".
def bucket_test_scores(df):
    bins = [0, 50, 75, 90, 100]
    labels = ["<50", "<75", "<90", "<100"]

    # converting the scores into buckets
    df["test_score"] = pd.cut(df["test_score"], bins, labels=labels, right=False)

    # Calculate size of each group, by grade and test score
    df = df.groupby(["grade", "test_score"]).size()

    # Calculate numerator and denominator for percentage
    NUM = df.groupby("grade").cumsum()
    DEN = df.groupby("grade").sum()

    # Calculate percentage, multiply by 100, and add %
    percentage = (NUM / DEN).map(lambda x: f"{int(100*x):d}%")

    # reset the index
    percentage = percentage.reset_index(name="percentage")
    return percentage


bucket_test_scores(df)

Hai ottenuto il risultato corretto con i bucket di punteggio e la percentuale.

dataset classi.png

Impara a pulire i dati, calcolare statistiche e creare visualizzazioni con il corso Data Manipulation with pandas. Per approfondire, consulta la nostra guida alle 35 principali domande di colloquio di Machine Learning per il 2026.

Domanda Amazon per Data Science

Spiega gli intervalli di confidenza

L’intervallo di confidenza è un intervallo di stime per un parametro sconosciuto che ti aspetti cada all’interno di esso una certa percentuale di volte quando ripeti l’esperimento o effettui un campionamento simile della popolazione.

intervalli di confidenza.png

Immagine da omnicalculator

Il livello di confidenza al 95% è comunemente usato negli esperimenti statistici, ed è la percentuale di volte in cui ti aspetti di riprodurre un parametro stimato. Gli intervalli di confidenza hanno un estremo superiore e uno inferiore determinati dal valore di alfa.

Puoi usare gli intervalli di confidenza per varie stime statistiche, come proporzioni, medie di popolazione, differenze tra medie o proporzioni di popolazione e stime della variazione tra gruppi.

Costruisci le basi di statistica con il corso Statistical Thinking in Python (Parte 1).

Come gestisci un dataset sbilanciato?

In un dataset sbilanciato, le classi sono distribuite in modo diseguale. Ad esempio, in un dataset di rilevazione frodi ci sono solo 400 casi di frode rispetto a 300.000 non frodi. I dati sbilanciati faranno rendere peggio il modello nel rilevare le frodi.

dataset sbilanciato.png

Immagine dell’autore

Per gestire dati sbilanciati puoi usare:

  1. Undersampling
  2. Oversampling
  3. Creazione di dati sintetici
  4. Combinazione di under e over sampling

Undersampling

Riesegue il campionamento della classe maggioritaria per eguagliare la classe minoritaria.

Nel dataset di frodi, entrambe le classi saranno pari a 400 campioni. Puoi usare imblearn.under_sampling per ricampionare facilmente il dataset.

from imblearn.under_sampling import RandomUnderSampler
RUS = RandomUnderSampler(random_state=1)
X_US, y_US = RUS.fit_resample(X_train, y_train)

Oversampling

Riesegue il campionamento della classe minoritaria per eguagliare la classe maggioritaria. La ripetizione o l’assegnazione di peso alla classe minoritaria sono metodi comuni per bilanciare i dati. In breve, entrambe le classi avranno 300K campioni.

from imblearn.over_sampling import RandomOverSampler

ROS = RandomOverSampler(random_state=0)
X_OS, y_OS = ROS.fit_resample(X_train, y_train)

Creazione di dati sintetici

Il problema della ripetizione è che non fornisce informazioni extra, con conseguenti prestazioni scarse dei modelli. Per contrastarlo, possiamo usare SMOTE (Synthetic Minority Oversampling Technique) per creare punti dati sintetici.

from imblearn.over_sampling import SMOTE

SM = SMOTE(random_state=1)
X_OS, y_OS = SM.fit_resample(X_train, y_train)

Combinazione di under e over sampling

Per migliorare bias e prestazioni del modello, puoi combinare over e undersampling. Useremo SMOTE per l’oversampling e EEN (Edited Nearest Neighbours) per la pulizia.

imblearn.combine fornisce diverse funzioni che eseguono automaticamente entrambi i campionamenti.

from imblearn.combine import SMOTEENN

SMTN = SMOTEENN(random_state=0)
X_OUS, y_OUS = SMTN.fit_resample(X_train, y_train)

Scrivi una query per restituire il numero totale di vendite per ciascun prodotto per il mese di marzo 2022.

Come data scientist, scriverai spesso query simili per estrarre dati e fare analisi. In questa sfida userai la clausola WHERE con operatori di confronto oppure WHERE con BETWEEN per filtrare.

Tabella: orders

tabella SQL orders.png

Immagine dell’autore

Output di esempio:

Output di esempio.png

Immagine dell’autore

  1. Visualizza product_id e la somma della quantità dalla tabella orders.
  2. Filtra i dati dalla data ‘2022-03-01’ a '2022-04-01' usando WHERE e AND. Puoi anche usare BETWEEN per un’azione simile.
  3. Usa un group by su product_id per ottenere il numero totale di vendite per ciascun prodotto.
SELECT product_id,
      SUM(qty)
FROM orders
WHERE order_dt >= '2022-03-01'
  AND order_dt < '2022-04-01'
GROUP BY product_id;

Domanda Google per Data Science

Se le etichette sono note in un progetto di clustering, come valuteresti le prestazioni del modello?

Nell’apprendimento non supervisionato, valutare le prestazioni di un progetto di clustering può essere complesso. Il criterio di un buon clustering è avere gruppi distinti con bassa somiglianza.

Non esiste una metrica di accuratezza nei modelli di clustering, quindi useremo la similarità o la distinzione tra i gruppi per valutarne le prestazioni.

prestazioni clustering.png

Immagine dalla documentazione di scikit-learn

Le tre metriche più usate sono:

  • Silhouette Score
  • Indice di Calinski-Harabasz
  • Indice di Davies-Bouldin

Silhouette Score

Si calcola usando la distanza media intra-cluster e la distanza media dal cluster più vicino.

Possiamo usare scikit-learn per calcolare la metrica. Il Silhouette Score va da -1 a 1: valori più alti indicano minore similarità tra gruppi e cluster più distinti.

from sklearn import metrics


model = KMeans().fit(X)
labels = model.labels_

metrics.silhouette_score(X, labels)

Indice di Calinski-Harabasz

Valuta la distintività tra gruppi usando la dispersione tra cluster e quella intra-cluster. La metrica non ha un limite superiore; come per il Silhouette Score, un valore più alto indica prestazioni migliori.

metrics.calinski_harabasz_score(X, labels)

Indice di Davies-Bouldin

Calcola la similarità media di ciascun cluster con il cluster a lui più simile. A differenza delle altre metriche, un valore più basso indica prestazioni migliori e migliore separazione tra cluster.

metrics.davies_bouldin_score(X, labels)


Impara ad applicare clustering gerarchico e k-means con il corso Cluster Analysis in R.

Ci sono quattro persone in un ascensore e quattro piani in un edificio. Qual è la probabilità che ciascuna persona scenda su un piano diverso?

problema di probabilità con 4 persone e 4 piani.png

Immagine dell’autore

Useremo:

probabilità.png

  • F = Numero di piani
  • P = Numero di persone

Per risolvere il problema, calcoliamo prima il numero totale di modi in cui scendere ai piani: 44 = 4x4x4x4 = 256 modi.

Poi calcoliamo il numero di modi in cui ciascuna persona può scendere su un piano diverso: 4! = 24.

Per calcolare la probabilità che ciascuno scenda su un piano diverso, dividiamo il numero di modi favorevoli per il numero totale di modi.

24/256 = 3/32

Impara strategie per rispondere a domande di probabilità insidiose in R con il corso Probability Puzzles in R.

Scrivi una funzione per generare N campioni da una distribuzione normale e disegnarne l’istogramma.

Per generare N campioni dalla distribuzione normale, puoi usare Numpy (np.random.randn(N)) o SciPy (sp.stats.norm.rvs(size=N)).

Per disegnare un istogramma, puoi usare Matplotlib o Seaborn.

  1. Genererai campioni casuali da una normale con la funzione randn di Numpy.
  2. Disegnerai l’istogramma con KDE usando Seaborn.
  3. Disegnerai l’istogramma per 10K campioni e restituirai l’array Numpy.
import numpy as np
import seaborn as sns

N = 10_000

def norm_dist_hist(N):
    # Generating Random normal distribution samples
    x = np.random.randn(N)
    # Plotting histogram
    sns.histplot(x, bins = 20, kde=True);
    return x
   
X = norm_dist_hist(N)

istogramma distribuzione.png

Impara a creare visualizzazioni informative e accattivanti in pochi secondi con il corso Introduction to Data Visualization with Seaborn.

Come prepararsi al colloquio di Data Science

Pesi del colloquio di Data Science.png

Immagine dell’autore

I colloqui di data science sono suddivisi in quattro o cinque fasi. Ti verrà chiesto di statistica e machine learning, coding (Python, R, SQL), comportamento, product sense e talvolta domande di leadership.

Puoi prepararti a tutte le fasi:

  1. Facendo ricerca su azienda e responsabilità del ruolo: ti aiuterà a dare priorità allo sforzo in un determinato ambito della data science.
  2. Rivedendo i progetti del tuo portfolio: il responsabile delle assunzioni valuterà le tue competenze facendo domande sui tuoi progetti.
  3. Ripassando le basi della data science: probabilità, statistica, test d’ipotesi, statistica descrittiva e bayesiana, riduzione della dimensionalità. Le cheat sheet sono il modo migliore per imparare rapidamente le basi.
  4. Esercitandoti nel coding: fai assessment, risolvi sfide di codice online e rivedi le domande più richieste.
  5. Praticando su progetti end-to-end: rinfresca le tue abilità di pulizia, manipolazione, analisi e visualizzazione dei dati.
  6. Leggendo le domande di colloquio più comuni: product sense, statistiche, analitica, comportamento e leadership.
  7. Facendo mock interview: prova un colloquio con un amico, migliora il tuo vocabolario statistico e aumenta la fiducia.

Leggi il blog Preparazione al colloquio di Data Science per sapere cosa aspettarti e come affrontare il colloquio.

FAQ sul colloquio di Data Science

Quali sono le quattro componenti principali della data science?

Le quattro componenti principali della data science sono:

  • Comprensione del business e strategia dei dati.
  • Preparazione dei dati (pulizia, imputazione, validazione).
  • Analisi dei dati e modellazione.
  • Visualizzazione dei dati e operationalization.

I colloqui di data science sono difficili?

Di solito sì. Per superare un colloquio di data science devi dimostrare competenza in più aree come statistica e probabilità, coding, analisi dei dati, machine learning, product sense e reporting. Consulta la nostra guida alle domande da colloquio per data scientist per aiutarti nella preparazione!

La data science è un lavoro stressante?

Dipende. L’intero team/azienda potrebbe fare affidamento su di te per fornire analisi e informazioni azionabili. In alcuni casi devi indossare più cappelli, come data engineer, data analyst, machine learning engineer, MLOps engineer, data manager e team lead. Alcune persone trovano questo stimolante e sfidante, altre a tratti stressante e impegnativo.

Un anno di studio basta per la data science?

Forse. Dipende dal tuo background. Se lavori come software engineer e vuoi passare alla data science, puoi imparare la maggior parte delle cose in un anno. Ma se parti da zero, sarà difficile essere pronti per il lavoro in un anno. Inizia il tuo percorso come Data Scientist with Python e impara tutte le basi in 6 mesi. 

La data science richiede molta matematica?

Sì. Devi imparare statistica, probabilità, matematica, analisi dei dati, visualizzazione dei dati e come costruire e valutare modelli di machine learning.

La carriera in data science offre un buon stipendio?

Sì. Secondo Glassdoor, la retribuzione totale mediana per un data scientist negli USA è circa $130.000–$145.000 all’anno nel 2026, con ruoli senior nelle grandi tech ben al di sopra. Gli stipendi variano significativamente per azienda, sede ed esperienza. Consulta la nostra guida su Come diventare Data Scientist nel 2026 per saperne di più su percorsi e retribuzioni.

Come posso dimostrare le mie conoscenze di data science ai datori di lavoro?

Oltre a completare corsi e lavorare su progetti di data science reali, la nostra Certificazione Data Scientist è il modo migliore per dimostrare la tua esperienza ai datori di lavoro. Questa certificazione riconosciuta dal settore testa le tue competenze tramite due esami a tempo e un esame pratico.

Argomenti
Data Science
Servizi per la carriera

Corsi di Data Science

Corso

Python - Livello Intermedio

4 ore
1.4M
Migliora le tue competenze nella scienza dei dati creando visualizzazioni con Matplotlib e manipolando DataFrames con pandas.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Mostra AltroMostra Altro