Inizia la prova gratuita
Searching...
SoBrief
Italiano
EnglishEnglish
EspañolSpanish
简体中文Chinese
繁體中文Chinese (Traditional)
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
Introduzione al machine learning con Python

Introduzione al machine learning con Python

una guida per i data scientist
di Andreas C. Müller 2015 400 pagine
4.33
500+ valutazioni
Ascolta
Prova l'accesso completo per 3 giorni
Sblocca l'ascolto e molto altro!
Continua

Punti chiave

1. Il Machine Learning Automatizza il Processo Decisionale

Gli algoritmi di machine learning più efficaci sono quelli che automatizzano i processi decisionali generalizzando a partire da esempi noti.

Automatizzare l’intelligenza. Il machine learning eccelle nell’automatizzare le decisioni imparando dagli esempi. Invece di affidarsi a regole scritte a mano, gli algoritmi di machine learning generalizzano dai dati per fare previsioni su dati nuovi e mai visti prima. Questo approccio è particolarmente utile quando la logica necessaria per prendere una decisione è complessa o sconosciuta.

Supervisionato vs. Non supervisionato. Le attività di machine learning si dividono principalmente in due categorie: apprendimento supervisionato, dove l’algoritmo impara da dati etichettati, e apprendimento non supervisionato, dove l’algoritmo esplora dati non etichettati per scoprire schemi. L’apprendimento supervisionato è adatto a compiti come la classificazione e la regressione, mentre quello non supervisionato è utile per compiti come il clustering e la riduzione della dimensionalità.

Conoscenza guidata dai dati. Gli algoritmi di machine learning estraggono conoscenza dai dati, permettendo di identificare tendenze, fare previsioni e automatizzare processi decisionali. Questo approccio basato sui dati ha rivoluzionato diversi settori, dalla diagnosi medica alla previsione finanziaria.

2. Apprendimento Supervisionato: Imparare da Dati Etichettati

Se la tua applicazione può essere formulata come un problema di apprendimento supervisionato, e sei in grado di creare un dataset che includa il risultato desiderato, il machine learning probabilmente potrà risolvere il tuo problema.

Coppie Input/Output. Gli algoritmi di apprendimento supervisionato apprendono da coppie input/output, dove i dati di input sono associati a un output o etichetta nota. L’algoritmo utilizza questi dati etichettati per costruire un modello capace di prevedere l’output per nuovi input mai visti.

Classificazione e Regressione. I problemi di apprendimento supervisionato si dividono ulteriormente in classificazione e regressione. La classificazione prevede di assegnare un’etichetta da una lista predefinita, mentre la regressione consiste nel prevedere un valore numerico continuo.

La raccolta dati è fondamentale. Il successo dell’apprendimento supervisionato dipende dalla qualità e quantità dei dati etichettati. Creare un dataset di input e output è spesso un processo manuale laborioso, ma essenziale per costruire un modello accurato e affidabile.

3. Complessità del Modello: Equilibrare Overfitting e Underfitting

Costruire un modello troppo complesso rispetto alla quantità di informazioni a disposizione… si chiama overfitting.

L’obiettivo della generalizzazione. Nell’apprendimento supervisionato, l’obiettivo è costruire un modello che possa generalizzare dai dati di addestramento a dati nuovi e mai visti. Ciò significa trovare un modello capace di fare previsioni accurate su dati mai incontrati prima.

Overfitting vs. Underfitting. L’overfitting si verifica quando un modello è troppo complesso e impara anche il rumore presente nei dati di addestramento, portando a scarse prestazioni su dati nuovi. L’underfitting accade quando un modello è troppo semplice e non riesce a cogliere i pattern sottostanti, risultando inefficace sia sui dati di addestramento che su quelli di test.

Trovare il giusto equilibrio. La chiave per costruire un modello supervisionato di successo è trovare il giusto bilanciamento tra complessità del modello e capacità di generalizzazione. Questo spesso richiede di regolare i parametri del modello e valutarne le prestazioni su un set di validazione.

4. Modelli Lineari: Semplicità e Potenza

Per dataset con molte caratteristiche, i modelli lineari possono essere molto potenti.

Definizione di linearità. I modelli lineari fanno previsioni utilizzando una funzione lineare delle caratteristiche di input. Per la regressione, ciò significa che la previsione è una somma pesata delle caratteristiche, mentre per la classificazione il confine decisionale è una funzione lineare degli input.

Tipi di modelli lineari:

  • Regressione lineare: minimizza l’errore quadratico medio tra previsioni e valori reali.
  • Ridge Regression: aggiunge una regolarizzazione L2 per prevenire l’overfitting riducendo i coefficienti.
  • Lasso: aggiunge una regolarizzazione L1, che può portare a modelli sparsi con selezione delle caratteristiche.
  • Regressione logistica: algoritmo di classificazione che modella la probabilità di appartenenza a una classe.

Punti di forza e limiti. I modelli lineari sono veloci da addestrare e prevedere, scalano bene con dataset grandi e funzionano bene con dati sparsi. Tuttavia, possono risultare troppo semplici per relazioni complesse e sono sensibili alla scala delle caratteristiche.

5. Naive Bayes: Classificazione Veloce e Scalabile

Il motivo per cui i modelli naive Bayes sono così efficienti è che apprendono i parametri considerando ogni caratteristica singolarmente e raccolgono semplici statistiche per classe da ciascuna caratteristica.

Assunzione di indipendenza. I classificatori naive Bayes si basano sul teorema di Bayes, assumendo l’indipendenza tra le caratteristiche. Questa ipotesi semplifica il processo di apprendimento e li rende molto veloci da addestrare.

Tipi di classificatori naive Bayes:

  • GaussianNB: assume che i dati continui seguano una distribuzione gaussiana.
  • BernoulliNB: assume dati binari.
  • MultinomialNB: assume dati di conteggio.

Punti di forza e limiti. I modelli naive Bayes sono molto veloci da addestrare e prevedere, funzionano bene con dati ad alta dimensionalità e sparsi, e sono relativamente robusti ai parametri. Tuttavia, la forte assunzione di indipendenza può limitarne l’accuratezza rispetto a modelli più complessi.

6. Alberi di Decisione: Gerarchie Interpretabili

Imparare un albero decisionale significa apprendere la sequenza di domande if/else che ci porta alla risposta corretta nel modo più rapido.

Decisioni gerarchiche. Gli alberi di decisione apprendono una gerarchia di domande if/else per fare previsioni. Ogni domanda divide i dati in base a una caratteristica, e il processo si ripete fino a raggiungere una decisione.

Controllare la complessità. Per evitare l’overfitting, gli alberi di decisione vengono spesso potati anticipatamente limitando la profondità massima, il numero massimo di foglie, o richiedendo un numero minimo di punti in un nodo per continuare a dividerlo.

Punti di forza e limiti. Gli alberi di decisione sono facili da visualizzare e comprendere, non richiedono la normalizzazione dei dati e possono gestire caratteristiche sia binarie che continue. Tuttavia, tendono a overfittare e offrono scarse prestazioni di generalizzazione.

7. Metodi Ensemble: Combinare Molti Modelli

Gli ensemble sono metodi che combinano più modelli di machine learning per crearne di più potenti.

La forza del gruppo. I metodi ensemble combinano più modelli di machine learning per ottenere modelli più potenti. Aggregando le previsioni di più modelli, gli ensemble riducono la varianza e migliorano la capacità di generalizzazione.

Random Forest. Le random forest sono una raccolta di alberi decisionali, ciascuno addestrato su un sottoinsieme leggermente diverso di dati e caratteristiche. Le previsioni degli alberi vengono poi mediate per ottenere la previsione finale.

Gradient Boosted Decision Trees. Gli alberi potenziati con gradient boosting vengono costruiti in serie, dove ogni albero cerca di correggere gli errori del precedente. Il boosting spesso utilizza alberi molto bassi e una potatura anticipata forte.

8. SVM Kernelizzate: Espandere lo Spazio delle Caratteristiche

La lezione è che aggiungere caratteristiche non lineari alla rappresentazione dei dati può rendere i modelli lineari molto più potenti.

Il trucco del kernel. Le macchine a vettori di supporto (SVM) kernelizzate usano un trucco matematico chiamato kernel trick per apprendere un classificatore in uno spazio a dimensione superiore senza calcolare esplicitamente la nuova rappresentazione. Questo permette modelli più complessi, non definiti semplicemente da iperpiani nello spazio di input.

Tipi di kernel:

  • Kernel polinomiale: calcola tutti i polinomi possibili fino a un certo grado delle caratteristiche originali.
  • Kernel Radial Basis Function (RBF): considera tutti i polinomi di ogni grado, ma l’importanza delle caratteristiche diminuisce per gradi più alti.

Punti di forza e limiti. Le SVM kernelizzate sono modelli potenti che funzionano bene su vari dataset. Permettono confini decisionali complessi anche con poche caratteristiche. Tuttavia, non scalano bene con il numero di campioni e richiedono una cura particolare nella preparazione dei dati e nella scelta dei parametri.

9. Reti Neurali: Architetture di Deep Learning

Le reti neurali sono tornate a essere modelli all’avanguardia in molte applicazioni di machine learning.

Perceptron Multistrato (MLP). Le reti neurali, o perceptron multistrato, sono generalizzazioni dei modelli lineari che eseguono più fasi di elaborazione per arrivare a una decisione. Gli MLP sono composti da strati di nodi interconnessi, ciascuna connessione ha un peso associato.

Funzioni di attivazione. Dopo aver calcolato una somma pesata per ogni unità nascosta, si applica una funzione non lineare al risultato. Le funzioni non lineari comuni includono la ReLU (rettificatore) e la tangente iperbolica (tanh).

Punti di forza e limiti. Le reti neurali possono catturare informazioni contenute in grandi quantità di dati e costruire modelli incredibilmente complessi. Tuttavia, spesso richiedono molto tempo per l’addestramento, una preparazione accurata dei dati e sono sensibili alla scelta dei parametri.

10. Valutare l’Incertezza del Modello

Un’altra funzionalità utile dell’interfaccia di scikit-learn… è la capacità dei classificatori di fornire stime di incertezza delle previsioni.

Oltre le previsioni puntuali. I classificatori possono fornire stime di incertezza delle previsioni, indicando quanto il modello sia sicuro della sua classificazione. Questa informazione è preziosa in applicazioni dove le conseguenze di diversi tipi di errore variano.

Metodi per stimare l’incertezza:

  • decision_function: restituisce un punteggio per ogni campione, che indica la fiducia del modello nella previsione.
  • predict_proba: restituisce una probabilità per ogni classe, rappresentando la probabilità che il campione appartenga a quella classe.

Calibrazione. Un modello calibrato è un modello che fornisce una misura accurata della sua incertezza. In un modello calibrato, una previsione fatta con il 70% di certezza sarà corretta il 70% delle volte.

11. Feature Engineering: Rappresentare i Dati in Modo Efficace

La domanda su come rappresentare al meglio i dati per una particolare applicazione è nota come feature engineering, ed è uno dei compiti principali di data scientist e praticanti del machine learning che cercano di risolvere problemi reali.

L’arte della rappresentazione. Il feature engineering è il processo di selezione, trasformazione e creazione di caratteristiche che siano più informative per un compito specifico di machine learning. Il modo in cui i dati sono rappresentati può avere un impatto significativo sulle prestazioni dei modelli.

Tecniche di feature engineering:

  • One-Hot Encoding: convertire variabili categoriche in rappresentazioni numeriche.
  • Binning: discretizzare caratteristiche continue in intervalli.
  • Caratteristiche polinomiali: aggiungere termini polinomiali e interazioni per catturare relazioni non lineari.
  • Trasformazioni non lineari univariate: applicare funzioni matematiche come log, exp o sin per modificare scala e distribuzione delle caratteristiche.

Conoscenza esperta. Il feature engineering è spesso un ambito in cui utilizzare la conoscenza esperta per una specifica applicazione. Gli esperti del dominio possono aiutare a identificare caratteristiche utili, molto più informative della rappresentazione iniziale dei dati.

Ultimo aggiornamento:

Report Issue

Sintesi delle recensioni

4.33 su 5
Media di 500+ valutazioni da Goodreads e Amazon.

Introduzione al Machine Learning con Python è un testo caldamente consigliato a chi si avvicina per la prima volta al machine learning, proponendo un approccio pratico basato sull’uso di scikit-learn. I lettori apprezzano la chiarezza con cui vengono spiegati gli algoritmi, l’attenzione dedicata agli esempi di codice e le indicazioni utili per la regolazione dei parametri. Il libro viene lodato per la sua accessibilità, evitando complicate formule matematiche ma offrendo comunque una solida base di partenza. Tra le critiche, si segnala l’uso di una libreria personalizzata per gli esempi e una certa superficialità in alcuni argomenti. Nel complesso, rappresenta un ottimo punto di partenza per chi possiede una conoscenza elementare di Python e desidera esplorare i concetti fondamentali del machine learning.

Your rating:
4.61
142 valutazioni
Want to read the full book?

FAQ

1. What is "Introduction to Machine Learning with Python" by Andreas C. Müller about?

  • Comprehensive practical guide: The book is an accessible introduction to machine learning for practitioners, focusing on real-world applications using Python and the scikit-learn library.
  • Covers end-to-end workflow: It guides readers through the entire machine learning process, from data preprocessing and feature engineering to model evaluation and improvement.
  • Emphasizes hands-on learning: With code examples and practical exercises, it helps readers build, evaluate, and deploy machine learning models on real datasets.
  • Wide range of topics: Topics include supervised and unsupervised learning, text data processing, pipelines, and advanced model tuning.

2. Why should I read "Introduction to Machine Learning with Python" by Andreas C. Müller?

  • Beginner-friendly approach: The book avoids heavy mathematical theory, making machine learning accessible to those without a deep background in math or statistics.
  • Focus on practical skills: Readers learn to use Python and scikit-learn to solve real-world problems, gaining skills directly applicable in industry and research.
  • Addresses real challenges: It discusses common issues like overfitting, imbalanced data, and the importance of expert knowledge, preparing readers for practical machine learning work.
  • Solid foundation: By covering essential algorithms, workflows, and best practices, it provides a strong base for further study or professional projects.

3. What are the key takeaways from "Introduction to Machine Learning with Python" by Andreas C. Müller?

  • End-to-end ML workflow: Understanding the complete process from data collection and preprocessing to model selection, evaluation, and deployment.
  • Importance of data representation: Emphasizes how feature engineering and appropriate data transformations can significantly impact model performance.
  • Model evaluation and tuning: Highlights the necessity of proper evaluation metrics, cross-validation, and hyperparameter tuning for building robust models.
  • Practical problem-solving: Encourages iterative experimentation, clear goal-setting, and combining automated models with human expertise for best results.

4. What are the best quotes from "Introduction to Machine Learning with Python" by Andreas C. Müller and what do they mean?

  • "Start simple." – The book repeatedly advises beginning with straightforward models and approaches before moving to more complex solutions, emphasizing the value of simplicity and interpretability.
  • "Know your data and task." – Müller stresses the importance of understanding the dataset and the problem context before choosing algorithms or evaluation metrics.
  • "Avoid information leakage." – The book warns against using test data during training or parameter tuning, as this can lead to overly optimistic performance estimates.
  • "Iterative improvement is key." – Machine learning is presented as an iterative process, where models and features are continually refined based on feedback and evaluation.

5. What are the main machine learning algorithms covered in "Introduction to Machine Learning with Python" by Andreas C. Müller?

  • Supervised learning algorithms: Includes k-nearest neighbors, linear models (logistic regression, linear regression, SVM), decision trees, random forests, gradient boosting, naive Bayes, and neural networks.
  • Unsupervised learning algorithms: Covers clustering methods like k-means, DBSCAN, agglomerative clustering, and dimensionality reduction techniques such as PCA, t-SNE, and NMF.
  • Text processing methods: Introduces bag-of-words, tf–idf, n-grams, and topic modeling with Latent Dirichlet Allocation (LDA).
  • Algorithm strengths and weaknesses: Each method is explained with practical advice on when and how to use them, including their limitations and tuning parameters.

6. How does "Introduction to Machine Learning with Python" by Andreas C. Müller explain data representation and feature engineering?

  • Types of features: Differentiates between continuous, categorical, and text features, and explains how to represent each type for machine learning algorithms.
  • Categorical encoding: Details one-hot encoding and the pitfalls of improper handling, especially when splitting data into training and test sets.
  • Feature transformations: Discusses binning, polynomial features, interaction terms, and nonlinear transformations, showing their impact on model performance.
  • Automatic feature selection: Covers methods like univariate statistics, model-based selection, and recursive feature elimination to improve generalization and reduce dimensionality.

7. How does "Introduction to Machine Learning with Python" by Andreas C. Müller guide readers through building their first machine learning model?

  • Step-by-step example: Uses the Iris dataset to introduce core concepts such as samples, features, labels, and the importance of splitting data into training and test sets.
  • Simple algorithm introduction: Demonstrates building a k-nearest neighbors classifier, fitting the model, making predictions, and evaluating accuracy.
  • Emphasis on evaluation: Highlights the necessity of assessing model generalization using separate test data and practical code examples.
  • Hands-on learning: Encourages readers to experiment with code and datasets to solidify understanding.

8. What model evaluation and improvement techniques are emphasized in "Introduction to Machine Learning with Python" by Andreas C. Müller?

  • Cross-validation methods: Introduces k-fold, stratified k-fold, leave-one-out, and group-based cross-validation to reliably estimate model performance.
  • Grid search for tuning: Explains how to systematically tune hyperparameters using grid search combined with cross-validation, including nested cross-validation to avoid overfitting.
  • Evaluation metrics: Details metrics like accuracy, precision, recall, f1-score, ROC AUC, and their appropriate use, especially for imbalanced datasets.
  • Model selection best practices: Shows how to use scoring parameters and avoid overfitting by proper validation strategies.

9. How does "Introduction to Machine Learning with Python" by Andreas C. Müller describe the use of pipelines and algorithm chains?

  • Pipeline class introduction: Explains how to chain preprocessing steps and models into a single estimator using scikit-learn’s Pipeline class.
  • Parameter tuning in pipelines: Shows how to tune parameters of all pipeline steps simultaneously in grid search, improving workflow efficiency.
  • Avoiding data leakage: Emphasizes fitting transformers only on training folds during cross-validation to prevent information leakage.
  • Flexible experimentation: Demonstrates searching over different preprocessing methods and models within a single pipeline for robust model development.

10. What guidance does "Introduction to Machine Learning with Python" by Andreas C. Müller provide for working with text data?

  • Text feature extraction: Introduces bag-of-words, tf–idf, and n-grams for converting text into numerical features suitable for machine learning.
  • Preprocessing techniques: Covers tokenization, stemming, lemmatization, and stopword removal to clean and normalize text data.
  • Topic modeling: Explains Latent Dirichlet Allocation (LDA) for discovering topics in large text corpora and interpreting their significance.
  • Practical examples: Uses sentiment analysis of movie reviews to demonstrate the full workflow of text data processing and classification.

11. How does "Introduction to Machine Learning with Python" by Andreas C. Müller address challenges like imbalanced data and error types in classification?

  • Imbalanced dataset pitfalls: Warns that accuracy can be misleading when classes are imbalanced, as trivial classifiers may appear to perform well.
  • Error type definitions: Clearly explains false positives and false negatives, and their different consequences in real-world applications.
  • Alternative evaluation metrics: Advocates for using precision, recall, f1-score, ROC and precision-recall curves, and AUC for better assessment of classifiers.
  • Threshold tuning advice: Discusses adjusting decision thresholds to balance precision and recall, and cautions against tuning on test data to avoid bias.

12. What final advice and resources does "Introduction to Machine Learning with Python" by Andreas C. Müller offer for aspiring machine learning practitioners?

  • Problem-driven approach: Encourages defining clear goals, understanding business impact, and iteratively refining models and data collection.
  • Human-in-the-loop systems: Suggests combining automated predictions with human oversight for complex or high-stakes decisions.
  • Production considerations: Discusses the differences between prototyping and deploying models in production, emphasizing simplicity, robustness, and testing strategies like A/B testing.
  • Further learning resources: Recommends advanced books, online platforms like Kaggle and OpenML, and continuous practice to deepen machine learning expertise.

Sull'autore

Andreas C. Müller è uno scienziato nel campo del machine learning e docente noto per il suo lavoro nella data science basata su Python. È uno degli sviluppatori principali della libreria scikit-learn e ha dato un contributo fondamentale alla sua documentazione e ai tutorial. L’esperienza di Müller consiste nel rendere accessibili concetti complessi di machine learning a chi si avvicina per la prima volta o ha una preparazione intermedia. Il suo percorso comprende ricerche nel campo della visione artificiale e delle applicazioni mediche del machine learning. Müller ha insegnato corsi di machine learning alla Columbia University ed è apprezzato per la sua capacità di colmare il divario tra teoria e pratica nell’implementazione con Python.

Follow
Ascolta
Now playing
Introduzione al machine learning con Python
0:00
-0:00
Now playing
Introduzione al machine learning con Python
0:00
-0:00
1x
Queue
Home
Swipe
Library
Get App
Try Full Access for 3 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
Read unlimited summaries. Free users get 3 per month
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
Oggi: accesso immediato
Ascolta i riassunti completi di oltre 26.000 libri. Sono più di 12.000 ore di audio!
Giorno 2: promemoria della prova
Ti invieremo una notifica per avvisarti che la prova sta per scadere.
Giorno 3: inizia il tuo abbonamento
L'addebito avverrà il Jun 13,
puoi annullare in qualsiasi momento prima.
Consume 2.8× More Books
2.8× more books Listening Reading
Our users love us
600,000+ readers
Trustpilot Rating
TrustPilot
4.6 Excellent
This site is a total game-changer. I've been flying through book summaries like never before. Highly, highly recommend.
— Dave G
Worth my money and time, and really well made. I've never seen this quality of summaries on other websites. Very helpful!
— Em
Highly recommended!! Fantastic service. Perfect for those that want a little more than a teaser but not all the intricate details of a full audio book.
— Greg M
Save 62%
Yearly
$119.88 $44.99/year/yr
$3.75/mo
Monthly
$9.99/mo
Start a 3-Day Free Trial
3 days free, then $44.99/year. Cancel anytime.
Unlock a world of fiction & nonfiction books
26,000+ books for the price of 2 books
Read any book in 10 minutes
Discover new books like Tinder
Request any book if it's not summarized
Read more books than anyone you know
#1 app for book lovers
Lifelike & immersive summaries
30-day money-back guarantee
Download summaries in EPUBs or PDFs
Cancel anytime in a few clicks
Scanner
Find a barcode to scan

We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel
Settings
General
Widget
Loading...
We have a special gift for you
Open
38% OFF
DISCOUNT FOR YOU
$79.99
$49.99/year
only $4.16 per month
Continue
2 taps to start, super easy to cancel