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

Standardization python | Towards Machine Learning

Standardization python | Towards Machine Learning

Buongiorno!

Tenuto presente che sono le 19:47…

Buonasera!

Dopo 1512 ore di assenza, precise come l’ora di un pendolo su una barca, siamo finalmente tornati!

In questo lungo lasso temporale è successo di tutto. Viaggi tra Milano e Torino. Multe. Piogge. Grigliate. Corsi sul machine learning avanzati. Uccisioni di zanzare, mosche e pappataci. Insomma la routine.

Oggi, volendo partire in modo soft, parliamo di una tecnica propria della statistica, che quindi torna particolarmente utile anche per noi AADS (Ambiziosi Aspiranti Data Scientist) o A2DS.

Standardization: a standardize normal distribution

Potrei fornire fin da subuto una definizione di standardizzazione.

Ma dal momento che siamo anticonformisti, procediamo col capirne il signfiicato in via intuitiva e solo in un secondo momento assimilare, facendo nostre, quelle due righe che ci rendono fighi ai nostri amici.

Be like a pro!

Perché la standardizzazione ci piace

Ogni qual volta è necessario comparare features i cui valori hanno unità o scale differenti, ecco che abbiamo un problema. Sempre che tu non riesca a processare dati della serie supercoputer spostati proprio.

Facciamo un esempio.

Andrea, e la sua ragazza Chiara, superano entrambi il test di ammissione per entrare nelle facoltà universitarie dei loro sogni.

Andrea totalizza 552 punti, in un test la cui media punti aritmetica è di 502, mentre Chiara 82, in un test con media aritmetica di 75.

Entrambi sostengono di aver avuto una performance migliore, ma chi ha realmente ragione?

Per rispondere alla domanda, noi AADS chiediamo alle Università qualche dato in più sui test: lo scarto tipo (12 e 127) e il numero di test effettuati (15678).

Configuriamo quindi il nostro problema come segue:

Test_1 : (media) μ=75,  (scarto tipo) σ=12, n=15678
Test_2 : (media) μ=502, (scarto tipo) σ=127, n= 15678

E tracciamo due semplici istrogrammi:

Perfetto. Non si capisce una cipolla.

Noi però abbiamo un’arma segreta: la standardizzazione.

Applichiamo questo processo a entrambi i test e otteniamo:

Mentre ad una prima vista potrebbe sembrare che la standardizzazione non sia servita ad un c…..eppo, un occhio più attento avrà certamente notato alcune particolarità.

Prendendo un singolo dato infatti:

siamo in grado di ottenere lo z-score (o punti zeta) di Chiara e Andrea, in pratica il loro punteggio standardizzato:

Chiara: 0.50
Andrea: 0.40

Possiamo quindi concludere che sia Chiara ad avere ragione.

La definizione di standardizzazione

Per standardizzazione (in inglese, Z-score normalization o standardization) si suole riferirsi ad un procedimento statistico di manipolazione dei dati che, nel caso di un dataset, modifica i valori di una o più features affinché abbiano le proprietà di una distribuzione Gaussiana con μ=0 e σ=1, leggasi “media zero e scarto tipo uno”.

Standardization Formula

Ora lo scarto tipo (o scarto quadratico medio), è quello che in tutto il mondo chiamano deviazione standard (standard deviation, std). Noi italiani siamo più fighi.

Riferita ad una variabile casuale, ne indica la dispersione attorno ad un indice di posizione quale ad esempio la media aritmetica.

Una distribuzione Gaussiana, o normale, è una particolare distribuzione associata alle variabili casuali.

Per il momento non entriamo troppo nel merito del discorso. Ci basta sapere che una distribuzione di questo tipo è spesso detta ‘a campana’ o bell distribution, essendo facilmente riconoscibile proprio dal suo aspetto.

Gettate le basi di questo sofisticato discorso, capiamo assieme quando una simile trasformazione torna utile.

Standardization and Machine Learning

La ricetta di un machine learning con i fiocchi è una sola:

  • algoritmi
  • potenza di calcolo (q.ba)
  • dati da analizzare+

Alcuni algoritmi sono schizzinosi e pretendono che i dati da analizzare siano stati processati secondo alcune regole.

Questi sono gli algorimti/campi di machine learning che apprezzano la standardizzazione delle features:

  • K-nearest neighbors con misura della distanza euclidea
  • Logistic Regression, SVM, perceptrons, Neural Networks
  • K-means

Al contrario, ci sono algoritmi per cui la standardizzazione ne migliora le performance, anche se non è strettamente necessaria al loro funzionamento. Di questi, vanno tenuti a mente:

  • Naive Bayes
  • Decisiom Trees
  • Random Forest (Ensemble Decision Trees)

Standardizzazione in Python

Esistono diversi modi per applicare al standardizzazione in Python. In due righe è possibile creare una semplice funzione:

Per soddisfare le dipendenze di questo codice è sufficiente fare un’import di:

import numpy as np

La prima funzione prende come parametro una feature e ne effettua la standardizzazione, applicando la formula base.

La seconda funzione è un bonus tutto per te!

Calcola lo z-score che quindi ci consente di paragonare il valore di due features standardizzate.

Per approfondimenti:

  • Medium 1
  • Science Blogs
  • Statistic How To
Written by Andrea Provino - Maggio 29, 2019
Tags | data science, python

You Might Also Like

test-chi-square-for-machine-learning-test-chi-quadrato-di-pearson-test-chi-quadro-pearson-data-science

Test chi quadrato di Pearson | Chi-Square Test for Machine Learning

Novembre 3, 2020
data-visualization-tools-python-machine-learning-data-science-tutorial

Data Visualization Tools Python: Area Plots, Histograms, Bar Chart

Novembre 7, 2019

Cos’è il weight in una rete neurale artificiale | Towards Machine Learning

Marzo 6, 2019
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • Blockchain Developer

    Circuito aritmetico

    Novembre 1, 2022
  • machine-learning

    Un nuovo inizio

    Settembre 4, 2021
  • Zero Knwoledge Proof Article Privacy Preserving

    Zero Knowledge Proof: zk-SNARK e zk-STARK | Prova a conoscenza zero

    Luglio 8, 2021
  • oblivious-transfer-spiegazione-italiano-ot-explanation Privacy Preserving

    Oblivious Transfer (OT)

    Luglio 6, 2021
  • Aleo Studio Website Preview machine-learning

    Aleo Studio: un IDE per Zero-Knowledge Proofs Applications

    Luglio 1, 2021
  • privacy-enhancing-technologies-data-machine-learning-data-science Privacy Preserving

    Perché il Privacy Tech è un vantaggio competitivo micidiale

    Giugno 17, 2021
  • bloom-filter-spiegazione-italian Privacy Preserving

    Bloom Filter

    Giugno 3, 2021
  • trusted-execution-environment-tee-data-science-come-fuziona Data Science, Privacy Preserving

    Trusted Execution Environment | Cos’è un TEE?

    Giugno 2, 2021
  • Crypto Custody services machine-learning

    Crypto Custody: Guida alla custodia delle criptomonete

    Maggio 26, 2021
  • deep-q-learning-q-learning-reinforcement-learning machine-learning

    Deep Q-Learning

    Aprile 27, 2021

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino