Galleria mappe mentale L'albero decisionale della regressione lineare dell'algoritmo di apprendimento automatico nota la mappa mentale dello studio autonomo
Algoritmo di apprendimento automatico regressione lineare decisione numero note condivisione completa dello studio autonomo! Il contenuto copre l'algoritmo del vicino più vicino K, la regressione lineare, la regressione logistica, l'albero decisionale, l'apprendimento d'insieme e il clustering.
Modificato alle 2023-02-25 09:44:36Questa è una mappa mentale su una breve storia del tempo. "Una breve storia del tempo" è un'opera scientifica popolare con un'influenza di vasta portata. Non solo introduce i concetti di base della cosmologia e della relatività, ma discute anche dei buchi neri e dell'espansione dell'universo. questioni scientifiche all’avanguardia come l’inflazione e la teoria delle stringhe.
Dopo aver letto "Il coraggio di essere antipatico", "Il coraggio di essere antipatico" è un libro filosofico che vale la pena leggere. Può aiutare le persone a comprendere meglio se stesse, a comprendere gli altri e a trovare modi per ottenere la vera felicità.
"Il coraggio di essere antipatico" non solo analizza le cause profonde di vari problemi nella vita, ma fornisce anche contromisure corrispondenti per aiutare i lettori a comprendere meglio se stessi e le relazioni interpersonali e come applicare la teoria psicologica di Adler nella vita quotidiana.
Questa è una mappa mentale su una breve storia del tempo. "Una breve storia del tempo" è un'opera scientifica popolare con un'influenza di vasta portata. Non solo introduce i concetti di base della cosmologia e della relatività, ma discute anche dei buchi neri e dell'espansione dell'universo. questioni scientifiche all’avanguardia come l’inflazione e la teoria delle stringhe.
Dopo aver letto "Il coraggio di essere antipatico", "Il coraggio di essere antipatico" è un libro filosofico che vale la pena leggere. Può aiutare le persone a comprendere meglio se stesse, a comprendere gli altri e a trovare modi per ottenere la vera felicità.
"Il coraggio di essere antipatico" non solo analizza le cause profonde di vari problemi nella vita, ma fornisce anche contromisure corrispondenti per aiutare i lettori a comprendere meglio se stessi e le relazioni interpersonali e come applicare la teoria psicologica di Adler nella vita quotidiana.
L'albero decisionale della regressione lineare dell'algoritmo di apprendimento automatico nota la mappa mentale dello studio autonomo
Algoritmo del vicino più vicino K
Principi degli algoritmi e API
Il concetto e il principio dell'algoritmo del vicino più vicino K
concetto
Se la maggior parte dei k campioni più simili (cioè i vicini più vicini nello spazio delle caratteristiche) di un campione appartengono a una certa categoria, allora anche il campione appartiene a questa categoria.
spazio delle funzionalità
Uno spazio stabilito utilizzando tutte le feature come assi delle coordinate. Nello spazio delle feature, ogni campione è un punto.
[Punti chiave] Principi e fasi di attuazione
1. Calcolare la distanza tra il punto nel set di dati della categoria nota e il punto corrente
2. Disporre queste distanze in ordine crescente
3. Seleziona i k punti con la distanza più piccola dal punto corrente
4. Contare la frequenza di occorrenza della categoria in cui si trovano i primi k punti (trovare la modalità delle K categorie)
5. Utilizzare la categoria modalità come categoria del punto corrente
API dell'algoritmo del vicino più vicino K
Introduzione a Scikit-learn
Strumenti di machine learning che implementano numerosi algoritmi di machine learning
API
sklearn.neighbors.KNeighborsclassfier(n_neighbors)
Calcolo e ottimizzazione degli algoritmi
misura della distanza
Distanza euclidea
Distanza di Manhattan (distanza di un isolato)
Distanza di Chebyshev
Distanza Minkowski (distanza minima)
Distanza euclidea normalizzata
distanza coseno
Distanza di Hamming
Le lunghezze delle stringhe sono uguali
Calcola la distanza della corda
Distanza Jaccard
distanza tra due insiemi
Distanza Mahalanobis
L'impatto della scelta del valore K sul modello
Prestazioni di underfitting e overfitting
errore di approssimazione
L'errore del modello sul training set
errore di stima
L'errore del modello sul set di prova
Sottodimensionamento
L'errore di approssimazione è ampio e l'errore di stima è ampio. Per dirla senza mezzi termini, il modello funziona male sia sul set di addestramento che sul set di test.
adattamento eccessivo
L'errore di approssimazione è piccolo, ma l'errore di stima è ampio. Per dirla senza mezzi termini, il modello funziona bene sul set di addestramento ma non sul set di test.
Il valore K è troppo piccolo
In gran parte influenzato da valori anomali
Il modello è complesso, ha una forte capacità di apprendimento ed è soggetto a overfitting.
Il valore K è troppo grande
L’impatto dello squilibrio del campione è ampio
Il modello è semplice, ha una debole capacità di apprendimento ed è incline all’underfitting.
albero kd
Introduzione all'albero kd
concetto di albero
nodo radice
Nodi con solo nodi figli e nessun nodo genitore
nodo interno
Nodi che hanno nodi figlio e nodi padre
nodo fogliare
Nodi con solo nodi genitori e nessun nodo figlio
Albero binario
Un albero con al massimo due nodi biforcuti
Il ruolo dell'albero kd
Riduci il numero di calcoli della distanza campione e trova rapidamente il punto vicino più vicino
Metodo di costruzione dell'albero kd
1. Seleziona una caratteristica a caso, prendi la mediana di questa caratteristica come punto di divisione per dividere i dati in due parti uguali. La feature selezionata è la feature di divisione del nodo corrente e il punto mediano viene utilizzato come nodo corrente. Su questa feature, i punti più piccoli della mediana vengono classificati nel nodo sinistro e i punti più grandi della mediana vengono classificati nel nodo destro. nodo;
2. Ripetere il primo passaggio rispettivamente per i dati sul nodo sinistro e sul nodo destro;
3. Fino a quando tutti i campioni non vengono posizionati sul nodo
Come trovare il punto più vicino nell'albero kd
1. Confronta il punto di query M con le caratteristiche di divisione e la corrispondente mediana di ciascun nodo sull'albero kd e continua a confrontare verso il basso fino a raggiungere il nodo foglia. Registra in ordine i nodi che hanno percorso l'intero processo search_path;
2. Il nodo alla fine di search_path è N, non eliminare N, registrare la distanza tra dist=M e N, più vicino=N;
3. Estrai un nodo L dalla fine di search_path, l'asse di divisione di questo nodo è x, calcola la distanza a dal punto M all'asse x, quindi gestiscila in due casi:
Se a<dist, allora tutti i punti nello spazio sull'altro lato diviso per il nodo L e il punto attualmente più vicino sono inclusi nel campo di indagine, vengono calcolate le distanze da tutti i punti nel campo di indagine al punto M, il punto più vicino è trovato, e il punto viene registrato come più vicino. La distanza da questo punto a M è dist, scarta il nodo L e il passo termina;
Se a>=dist, scarta il nodo L e il passaggio termina
4. Ripetere il passaggio 3 finché search_path non sarà vuoto;
5. Il più vicino è il punto più vicino al punto di ricerca e la distanza più vicina è dist.
Caso 1
Introduzione all'API del set di dati di scikit-learn
sklearn piccolo set di dati
API: load_* Ad esempio: load_iris()
sklearn set di big data
API: fetch_* Ad esempio: fetch_20newsgroups(sub_set='train')
Descrizione del parametro: sub_set='train' specifica il tipo di set di dati da ottenere
Introduzione al valore restituito del set di dati sklearn
Tipo di dati: datasets.base.Bunch (formato dizionario)
dati: array di dati della funzione
target: array di etichette (valori target)
feature_names: nomi delle funzionalità
target_names: nomi dei tag
keys() ottiene tutti gli attributi (campi) del dizionario
Disegna un grafico a dispersione dei dati e trova i valori anomali
sns.lmplot(col1, col2, dati, tonalità, fit_reg)
Partizionamento del set di dati
treno_x, prova_x, treno_y, prova_y = trian_test_split(x, y, dimensione_test)
Preelaborazione delle funzionalità utilizzando sklearn
Normalizzato
Svantaggi della normalizzazione: fortemente influenzato dai valori anomali
API: MinMaxScaler(feature_range)
Funzione: converte i dati tra 0 e 1
standardizzazione
API:StandarScalar()
Funzione: converte i dati in media=0, std=1
Previsione delle specie dei fiori di iris
Caso 2
Convalida incrociata e ricerca in griglia
Convalida incrociata
Dividere equamente il set di addestramento in N parti, prendere una parte diversa come set di verifica e l'altra parte come set di addestramento, addestrare e verificare le prestazioni del modello e utilizzare la media delle N volte delle prestazioni del modello come prestazioni del modello su questo set di allenamento.
ricerca in griglia
Trova la combinazione ottimale di iperparametri
API
sklearn.model_selection.GridSearchCV(stimatore, param_grid, cv)
Prevedere la posizione del check-in su Facebook
regressione lineare
Introduzione alla regressione lineare
Formula matematica (modello matematico) di regressione lineare
h(w) = w1*x1 w2*x2 w3*x3 ... wn*xn b
Il concetto di iperpiano
La relazione lineare n-1 dimensionale nello spazio n-dimensionale è chiamata iperpiano nello spazio n-dimensionale.
API
sklearn.linear_model.LinearRegression()
Perdite e ottimizzazione per la regressione lineare
funzione di perdita
1. La funzione di perdita è una funzione dei parametri addestrabili
2. Quanto più piccolo è il valore della funzione di perdita, tanto più vicino è il valore previsto del modello al valore reale.
Metodo di ottimizzazione della regressione lineare
equazione normale
Calcola direttamente i parametri ottimali
NOTA: applicabile solo ai modelli di regressione lineare con perdita dei minimi quadrati
metodo della discesa del gradiente
Iterare continuamente attraverso i gradienti per trovare i parametri addestrabili ottimali
Metodi generali di ottimizzazione
Funzione di perdita La discesa del gradiente è il metodo di ottimizzazione del modello più comune
metodo della discesa del gradiente
Algoritmo di discesa del gradiente completo (FG)
Algoritmo di discesa del gradiente stocastico (SG)
Algoritmo stocastico di discesa del gradiente medio (SAG)
Algoritmo di discesa del gradiente mini-batch (mini-bantch)
Previsioni sui prezzi delle case di Case-Boston
API di valutazione delle prestazioni di regressione: sklearn.metrics.mean_squared_error(y_true, y_pred)
API di regressione lineare per l'ottimizzazione delle equazioni normali: sklearn.linear_model.LinearRegression()
Ottimizzazione della regressione lineare con discesa del gradiente stocastica: sklearn.linear_model.SGDRegressor()
Overfitting e underfitting
Sottodimensionamento
Definizione: il modello ha prestazioni scarse sia sul set di addestramento che sul set di test
Soluzione: aumentare la complessità del modello
Aumentare il numero di caratteristiche dei dati
Aggiungi termini polinomiali
adattamento eccessivo
Definizione: il modello funziona bene sul set di addestramento, ma non funziona bene sul set di test
Soluzione: ridurre la complessità del modello
Pulisci nuovamente i dati
Aumentare la quantità di dati di allenamento
Regolarizzazione
Regolarizzazione L1: puoi rendere alcuni dei valori W direttamente a 0, rimuovendo l'influenza di questa funzionalità. Può essere utilizzato per la selezione delle funzionalità
Regolarizzazione L2: può rendere alcune W molto piccole e vicine allo 0, indebolendo l'influenza di una certa caratteristica.
Ridurre il numero di funzionalità
modello lineare regolarizzato
regressione della cresta
Regolarizzazione L2 della regressione lineare
Il lazo ritorna
Regolarizzazione L1 della regressione lineare
rete elastica
Regressione lineare L1 L2
regressione della cresta
Regressione lineare con regolarizzazione L2
API: Ridge(alfa)
Salvataggio e caricamento dei modelli
Salva: joblib.dump(stimatore, percorso)
Caricamento: joblib.load(percorso)
regressione logistica
I principi della regressione logistica
Modello matematico: funzione di attivazione della regressione lineare (sigmoide)
Il ruolo della funzione di attivazione: aumentare la capacità di adattamento non lineare del modello
Funzione di perdita: perdita di verosimiglianza
Metodo di ottimizzazione: discesa del gradiente
API: sklearn.linear_model.LogisticRegression()
Come valutare i modelli di classificazione
API del rapporto di valutazione della classificazione: classification_report(y_true, y_pred, label, target_names)
Curva ROC
TPR = TP / (TP FN)
FPR = FP / (FP TN)
Regolare la soglia per ottenere più punti (FPR, TPR) e disegnare la curva ROC
Indicatore AUC
Significato: seleziona casualmente una coppia di campioni positivi e negativi, la probabilità che il punteggio del campione positivo sia maggiore di quello del campione negativo
API: roc_auc_score(y_true, y_score), nota: y_true deve utilizzare 0, 1 per contrassegnare casi falsi e casi positivi
albero decisionale
Introduzione all'algoritmo dell'albero decisionale
L'albero decisionale è una struttura ad albero
Ogni nodo interno rappresenta il giudizio di una caratteristica
Ogni ramo rappresenta l'output di un risultato di giudizio
Ogni nodo foglia rappresenta un risultato di classificazione
Il principio dell'albero decisionale
Selezione delle caratteristiche e base di divisione dei nodi dell'albero decisionale
entropia
Una misura di “caos”
entropia = -p1logp1 - p2logp2 ... pn*log(pn)
guadagno di informazioni
La differenza di entropia prima e dopo aver diviso il set di dati per una determinata caratteristica
Guadagno di informazioni = entroia(prima) - entroia(dopo)
Maggiore è il guadagno di informazioni, migliore è il metodo di classificazione di questa caratteristica.
tasso di guadagno delle informazioni
Guadagno di informazioni/metrica delle informazioni separate
Misura delle informazioni sulla separazione = entropia calcolata dalla probabilità di occorrenza di ciascuna categoria di una caratteristica
Guadagno Gini
Valore Gini: la probabilità che due campioni selezionati casualmente dal set di dati D abbiano valori target incoerenti (etichette)
Minore è il valore Gini, maggiore è la purezza del set di dati.
Guadagno Gini = Valore Gini (prima) - Valore Gini (dopo)
Maggiore è il guadagno del valore Gini, migliore è questo metodo di divisione.
Passaggi per costruire un albero decisionale
1. Inizia a guardare tutti i campioni nel loro insieme
2. Attraversa ogni metodo di segmentazione di ciascuna caratteristica e trova la migliore segmentazione (in base al guadagno di informazioni, al tasso di guadagno di informazioni e al guadagno di valore Gini)
3. Secondo il metodo di divisione ottimale, dividere tutti i campioni in due parti N1 e N2, ovvero due rami
4. Continuare i passaggi 2-3 per N1 e N2 finché ciascun nodo non sarà sufficientemente "puro".
In base alla diversa selezione del nodo e alla base di divisione, l'albero decisionale è suddiviso in
Albero decisionale ID3: guadagno di informazioni
C4.5 Albero decisionale: tasso di guadagno di informazioni
Albero decisionale CART: guadagno del valore di Gini (o indice di Gini)
potatura del carro
Scopo: Ridurre il numero di nodi dell'albero decisionale -> Ridurre la complessità dell'albero decisionale -> Evitare che l'albero decisionale si adatti eccessivamente
metodo
Pre-potatura: potatura durante la creazione di un albero decisionale
Il numero minimo di campioni contenuti in ciascun nodo, ad esempio 10. Se il numero totale di campioni nel nodo è inferiore a 10, non verrà eseguita alcuna classificazione.
Specificare l'altezza o la profondità dell'albero, ad esempio la profondità massima dell'albero è 4
Se l'entropia del nodo specificato è inferiore a un certo valore, non verrà più divisa.
Post-potatura: potatura dopo la creazione dell'albero decisionale
Il metodo è simile alla pre-potatura
Ingegneria delle caratteristiche: estrazione delle caratteristiche
Estrazione delle funzionalità del dizionario
sklearn.feature_extraction.DictVectorizer(sparse=True)
Nota: questo metodo one_hot codificherà automaticamente i dati discreti
Estrazione delle caratteristiche del testo
conteggio delle occorrenze delle parole
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
Estrazione di funzionalità di testo Tf-idf
TF: frequenza delle parole
Si riferisce alla frequenza con cui una determinata parola appare nel documento
IDF: frequenza inversa del documento
Dividere il numero totale di documenti per il numero di documenti contenenti la parola, quindi prendere il logaritmo in base 10 del quoziente per ottenere
TF-IDF
TF-IDF = TF*IDF
Funzione: valutare l'importanza di una parola per un set di documenti o un documento in un corpus
API:sklearn.feature_extraction.text.TfidfVectorizer(stop_works)
Nota: per estrarre le caratteristiche dagli articoli cinesi, è necessario eseguire prima la segmentazione delle parole.
Participio balbettante: jieba.cut
Caso: previsione della sopravvivenza dei passeggeri del Titanic
API dell'albero decisionale: sklearn.tree.DecisionTreeClassifier(criterion='gini', max_ Depth=None,random_state=None)
Visualizzazione dell'albero decisionale: sklearn.tree.export_graphviz()
Riassumere
Vantaggi degli alberi decisionali: semplici, interpretabili e visualizzabili
Svantaggi degli alberi decisionali: facile da adattare
Soluzione
potatura
foresta casuale
Apprendimento d'insieme
Introduzione agli algoritmi di apprendimento d'insieme
Genera più classificatori/modelli, ciascuno dei quali apprende e fa previsioni in modo indipendente. Queste previsioni vengono infine combinate in una previsione combinata, che è quindi migliore di qualsiasi previsione di classificazione singola.
potenziamento -> sottoadattamento
insaccamento -> sovradimensionamento
Insacchettamento dell'apprendimento d'insieme
Principio: crea più modelli in parallelo e i modelli sono indipendenti l'uno dall'altro
1. Campionamento: campionamento di N dati con sostituzione casuale
2. Apprendimento: utilizza N dati per apprendere N modelli diversi
3. Integrazione: attraverso la parità di votazione di N modelli, quello con più voti sarà il risultato finale.
foresta casuale
Cos'è la foresta casuale: albero decisionale insaccamento
API:sklearn.ensemble.RandomForestClassifier(n_estimators, max_profondità)
vantaggio
Entrambi i metodi possono migliorare il tasso di precisione della generalizzazione di circa il 2% rispetto all'algoritmo originale.
Semplice, conveniente e versatile
Principio di integrazione potenziato: più modelli vengono costruiti in serie e il modello costruito successivamente è influenzato dal modello costruito in precedenza.
1. Inizializzare i pesi di formazione, rendere uguali i pesi e formare il primo studente (modello)
2. Calcolare il tasso di errore dello studente nei dati di formazione
3. Calcolare il peso dello studente in base al tasso di errore
4. Riponderare i dati di formazione in base al peso dello studente
5. Ripetere i passaggi da 1 a 4 minuti
6. Votazione ponderata sui risultati di m modelli per ottenere il risultato finale
raggruppamento
Introduzione agli algoritmi di clustering
L'algoritmo di clustering è un tipico algoritmo di apprendimento non supervisionato, utilizzato principalmente per classificare automaticamente campioni simili in una categoria
La più grande differenza tra algoritmi di clustering e algoritmi di classificazione: gli algoritmi di clustering sono algoritmi di apprendimento non supervisionato e gli algoritmi di classificazione sono algoritmi di apprendimento supervisionato.
Utilizzo iniziale dell'API dell'algoritmo di clustering
sklearn.cluster.KMeans(n_clusters=8)
Metodo di previsione: chiama fit_predict(X) per ottenere i risultati della classificazione
Processo di implementazione dell'algoritmo di clustering (principio)
1. Selezionare casualmente K campioni come centri delle K categorie;
2. Calcolare la distanza da tutti i campioni al centro;
3. Quale categoria il campione è più vicino al centro;
4. Dopo aver diviso le categorie K, ricalcolare le coordinate del centro. Il metodo di calcolo prevede che il valore medio di ciascun valore di caratteristica dei campioni nella categoria venga utilizzato come coordinate corrispondenti del nuovo centro;
5. Ripetere i passaggi 2, 3 e 4 finché le coordinate del centro non cambiano più.
Valutazione del modello per il clustering
Somma degli errori quadratici: la somma delle distanze quadrate (distanza euclidea) di tutti i campioni dal corrispondente centro della categoria
Metodo "a gomito": quando il tasso di declino rallenta improvvisamente, è considerato il miglior valore k
Coefficiente silhouette SC: il valore è [-1, 1]. Maggiore è il valore, meglio è. Se è un valore negativo, il campione potrebbe essere classificato in modo errato.
Coefficiente CH: maggiore è il punteggio, migliore è l'effetto di clustering.
Ottimizzazione dell'algoritmo
Algoritmo di canopy con clustering iniziale
K-significa
K-significa bipartito
ISODATI
kmeans del kernel
Medie K mini-batch
Riduzione della dimensionalità delle caratteristiche
Selezione delle funzionalità
Rimuovere le funzionalità a bassa varianza
Coefficiente di correlazione di Pearson
Coefficiente di correlazione di Spearman
Analisi delle Componenti Principali PCA
Caso: esplorazione delle preferenze dell'utente per le categorie di articoli e la riduzione della dimensionalità