Sommario:
- Come caricare i dati
- La riga 1 importa la libreria che consente di dividere il set di dati in due parti.
- Come eseguire i dati di test
- Quindi, come si confronta il modello di regressione logistica con il parametro C = 150? Beh, non puoi battere il 100 percento. Ecco il codice per creare e valutare il classificatore logistico con C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> previsto = logClassifier_2. prevedere metriche (X_test) >>>. accuracy_score (y_test, previsto) 0. 93333333333333335 >>> metriche. array confusion_matrix (y_test, previsto) ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Video: What does a Data Analyst do? [2019] 2024
Dopo aver creato il primo modello predittivo di classificazione per l'analisi dei dati, creare più modelli come se fosse un compito molto semplice in scikit. L'unica vera differenza da un modello all'altro è che potrebbe essere necessario sintonizzare i parametri dall'algoritmo all'algoritmo.
Come caricare i dati
Questo elenco di codici caricherà il set di dati iris nella sessione: >>>> da sklearn. set di dati import load_iris >>> iris = load_iris ()
Come creare un'istanza del classificatore
Notare il parametro (parametro di regolarizzazione) nel costruttore. Il parametro di regolarizzazione
viene utilizzato per evitare il sovradattamento. Il parametro non è strettamente necessario (la funzione di costruzione funzionerà senza di essa perché verrà impostata su C = 1). La creazione di un classificatore di regressione logistica utilizzando C = 150 crea una trama migliore della superficie decisionale. Puoi vedere entrambi i grafici qui sotto.
La riga 1 importa la libreria che consente di dividere il set di dati in due parti.
La riga 2 chiama la funzione dalla libreria che divide il set di dati in due parti e assegna i set di dati ora divisi a due coppie di variabili.
La riga 3 prende l'istanza del classificatore di regressione logistica appena creato e chiama il metodo di adattamento per addestrare il modello con il set di dati di addestramento.
Come visualizzare il classificatore
Osservando l'area della superficie decisionale sulla trama, sembra che debba essere eseguita una regolazione. Se si guarda vicino alla parte centrale della trama, è possibile vedere che molti dei punti dati appartenenti alla zona centrale (Versicolor) sono situati nell'area a destra (Virginica).
Questa immagine mostra la superficie della decisione con un valore C di 150. Sembra visivamente migliore, quindi la scelta di utilizzare questa impostazione per il modello di regressione logistica sembra appropriata.
Come eseguire i dati di test
Nel seguente codice, la prima riga alimenta il dataset di test al modello e la terza riga visualizza l'output: >>>> predicted = logClassifier. prevedere (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2])
Come valutare il modello < È possibile eseguire il riferimento incrociato dell'output dalla previsione rispetto all'array y_test. Di conseguenza, è possibile vedere che ha previsto correttamente tutti i punti dei dati di test. Ecco il codice: >>>> da sklearn import metrics >>> predictedarray ([0, 0, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> metriche. accuracy_score (y_test, previsto) 1. 0 # 1. 0 è precisione al 100% >>> previsto == y_testarray ([Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero], dtype = bool)
Quindi, come si confronta il modello di regressione logistica con il parametro C = 150? Beh, non puoi battere il 100 percento. Ecco il codice per creare e valutare il classificatore logistico con C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> previsto = logClassifier_2. prevedere metriche (X_test) >>>. accuracy_score (y_test, previsto) 0. 93333333333333335 >>> metriche. array confusion_matrix (y_test, previsto) ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Ci aspettavamo di meglio, ma in realtà era peggio. C'era un errore nelle previsioni. Il risultato è identico a quello del modello SVM (Support Vector Machine).
Ecco l'elenco completo del codice per creare e valutare un modello di classificazione di regressione logistica con i parametri predefiniti: >>>> da sklearn. set di dati import load_iris >>> da sklearn import linear_model >>> da sklearn import cross_validation >>> da sklearn import metrics >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (iris. data, iris. target, test_size = 0. 10, random_state = 111) >>> logClassifier = linear_model. LogisticRegression (, random_state = 111) >>> logClassifier. fit (X_train, y_train) >>> predicted = logClassifier. prevedere (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> metriche. accuracy_score (y_test, previsto) 1. 0 # 1. 0 è precisione al 100% >>> previsto == y_testarray ([Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero, Vero], dtype = bool)