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

Ridge Regression

Ridge Regression

Ridge Regression, chiamato anche Tikhonov regularization, è una versione regolarizzata della Regressione Lineare (linear regression): aggiungendo un termine di regolarizzazione (regularization term), comunemente denominato alpha, alla cost function, l’algoritmo di apprendimento viene forzato a tenere i weight quanto più bassi possibili.

Abbiamo iniziato in quinta, ma per un motivo chiaro: avendo fornito una definizione come introduzione ti sarà facile ripassare quando un giorno tornerai su questo post unicamente per lei.

Not bad

Ora però ci prendiamo un po’ di tempo per allinearci e procedere a comprendere davvero cosa sia la Ridge Regression.

Ridge Regression: why?

Il miglior modo per comprendere la Ridge Regression è capire perché esista.

Quando ci allontaniamo dalle sfide di Kaggle per addentrarci in quella giungla del mondo reale troviamo dataset con decine di feature.

Vuoi perché il nostro stakeholder ci abbia fornito l’intero database di produzione aziendale, o per il semplice fatto che si è deciso di tenere ogni colonna e non perderne nemmeno una, al momento della creazione del modello predittivo dobbiamo affrontare una sfida niente male.

Tendenzialmente iniziamo a lavorare con modelli semplici, ben lontani dalle complicate reti neurali.

Ricorda infatti che le Neural Network non sono la soluzione a ogni problema.

Ora dobbiamo tenere presente che i modelli di regressione lineare (tra i più semplici) difficilmente vengono usati in applicazioni concrete per due ragioni:

  • Faticano a esprimere relazioni non lineari
  • Tendono all’overfitting quando il numero di feature aumenta

Gli Alberi Decisionali (Decision Trees) possono risolvere il primo problema, per il secondo dobbiamo invece indagare più a fondo.

Il problema è che un modello di regressione lineare ha pochi gradi di libertà (degrees of freedom): quando questi aumentano, la complessità del modello aumenta, e con essa il rischio di overfitting.

Intuitivamente i gradi di libertà sono i punti in cui la funzione si flette, e curva.

Quando usiamo un modello di regressione lineare applicato, ad esempio, a 100 feature, questo è quello che succede:

Per tracciare il grafico ho generato dei numeri randomici, puro rumore, che simulano però la presenza di feature inutili nel dataset (cosa molto comune).

Per risolvere questo problema, entra in gioco Ridge Regression.

Ridge Regression: how?

Abbiamo capito perché sia importante, ora svisceriamone il funzionamento.

Ridge Regression aggiunge un fattore di penalizzazione (penalty factor) alla cost function. Ciò determina la perdita d’importanza del valore di una feature, che a seconda della penalità, può essere più o meno accentuata.La forza della penalità è tunable controllata cioé da un hyperparameter che deve essere setato.

Parlando di regolarizzazione in generale esistono due tipi di penalizzazione:

  • L1 (absolute size) penalizza il valore assoluto dei coefficienti del modello
  • L2 (squared size) penalizza il quadrato del valore dei coefficienti del modello.

Ridge Regression usa la L2 penalty

In pratica questo produce coefficienti piccoli, ma nessuno di loro è mai annullato. Quindi i coefficienti non sono mai 0. Il fenomeno è denominato feature shrinkage.

Ridge Regression Sklearn

Teoria a parte, è arrivato il momento di prendere in mano un po’ di codice.

Qui puoi trovare la documentazione di sklearn, mentre di seguito ti faccio vedere come importare il tutto velocemente:

from sklearn.linear_model import Ridge
ridge = Ridge(alpha=0.1)
ridge.fit(x_train,y_train)
ridge.score(x_test,y_test)

Un caldo abbraccio, Andrea.

No, questo contenuto è riservato.
Non ci puoi accedere

E’ destinato a una ristretta lista di persone motivate e intraprendenti.

E’ diritto esclusivo di sognatori e curiosi.

Come? Pensi di essere una di loro?

Dimostramelo…

accetto i noiosi termini e le condizioni

Written by Andrea Provino - Novembre 6, 2019
Tags | data science, data scientist, teoria

You Might Also Like

Portfolio data scientist? Come realizzarne uno | Consigli Italiano

Ottobre 19, 2020

Udacity, Intro to TensorFlow for deep Learning | Corso Gratuito

Ottobre 23, 2019
model-testing-model-evaluation-training-set-validation-set-model-validation-model-evaluation-validation-score-cross-validation-generalization-score

Model testing e Model Evaluation | Machine Learning

Settembre 14, 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