Scikit learn - Machine Learning utilizzando Python



Il blog di apprendimento di Scikit ti introdurrà all'apprendimento automatico in Python. Include un caso d'uso in cui implementeremo la regressione logistica utilizzando scikit learn.

In questo blog, discuteremo di Scikit impara in Python. Prima di parlare di Scikit Learn, è necessario comprendere il concetto di machine learninge deve saperlo usare . Con l'apprendimento automatico, non devi raccogliere le tue informazioni manualmente. Hai solo bisogno di un algoritmo e la macchina farà il resto per te! Non è eccitante? Scikit learn è una delle attrazioni in cui possiamo implementare l'apprendimento automatico utilizzando Python. Itè una libreria di machine learning gratuita che contiene strumenti semplici ed efficienti per l'analisi dei dati e scopi di mining.Ti guiderò attraverso i seguenti argomenti, che serviranno come fondamenti per i prossimi blog:

Cos'è l'apprendimento automatico?

L'apprendimento automatico è un tipo di intelligenza artificiale che consente alle applicazioni software di apprendere dai dati e diventare più accurate nella previsione dei risultati senza intervento umano. Ma come succede? Per questo, la macchina deve essere addestrata su alcuni dati e, sulla base di questi, rileverà un modello per creare un modello.Questo processo di acquisizione di conoscenza dai dati e fornitura di informazioni approfondite riguarda l'apprendimento automatico. Fare riferimento all'immagine sottostante per avere una migliore comprensione del suo funzionamento:





MachineLearning - Scikit Learn - Edureka

Utilizzando i dati, il sistema apprende un algoritmo e quindi lo utilizza per costruire un modello predittivo. Successivamente, modifichiamo il modello o miglioriamo la precisione del modello utilizzando i dati di feedback. Utilizzando questi dati di feedback, ottimizziamo il modello e prevediamo l'azione sul nuovo set di dati. Noidiscutere di un caso d'uso di uno degli approcci algoritmici in cui addestreremo e testeremo i dati che ti aiuteranno a capire meglio se si adattano bene al tuo problema particolare o meno.



Successivamente, ci sono tre tipi di machine learning:

    • Apprendimento supervisionato : Questo è un processo di apprendimento di un algoritmo dal set di dati di addestramento. L'apprendimento supervisionato è il luogo in cui si genera una funzione di mappatura tra la variabile di input (X) e una variabile di output (Y) e si utilizza un algoritmo per generare una funzione tra di loro. È anche noto come modellazione predittiva che si riferisce a un processo di creazione di previsioni utilizzando i dati. Alcuni degli algoritmi includono regressione lineare, regressione logistica, albero decisionale, foresta casuale e classificatore Naive Bayes. Discuteremo ulteriormente un caso d'uso dell'apprendimento supervisionato in cui addestriamo la macchina all'uso regressione logistica .
    • Apprendimento senza supervisione : Questo è un processo in cui un modello viene addestrato utilizzando un'informazione che non è etichettata. Questo processo può essere utilizzato per raggruppare i dati di input in classi sulla base delle loro proprietà statistiche. L'apprendimento senza supervisione è anche chiamato canalisi lucente che significa il raggruppamento di oggetti sulla base delle informazioni trovate nei dati che descrivono gli oggetti o la loro relazione. L'obiettivo è che gli oggetti di un gruppo siano simili tra loro ma diversi dagli oggetti di un altro gruppo. Alcuni degli algoritmi includono il clustering K-means, il clustering gerarchico ecc.
    • Insegnamento rafforzativo: L'apprendimento per rinforzo è imparare interagendo con uno spazio o un ambiente.Un agente RL impara dalle conseguenze delle sue azioni, piuttosto che dall'essere insegnato esplicitamente. Seleziona le sue azioni sulla base delle sue esperienze passate (sfruttamento) e anche di nuove scelte (esplorazione).

Panoramica di Scikit Learn

Scikit learn è una libreria utilizzata per eseguire l'apprendimento automatico in Python. Scikit learn è una libreria open source con licenza BSD ed è riutilizzabile in vari contesti, incoraggiandone l'uso accademico e commerciale. Fornisce una gamma di algoritmi di apprendimento supervisionati e non supervisionati in Python.Scikit Learn consiste in algoritmi e librerie popolari. Oltre a questo, contiene anche i seguenti pacchetti:



  • NumPy
  • Matplotlib
  • SciPy (pitone scientifico)

Per implementare Scikit learn, dobbiamo prima importare i pacchetti sopra. Se non hai familiarità con queste librerie, puoi dare un'occhiata ai miei blog precedenti su e . Puoi scaricare questi due pacchetti utilizzando la riga di comando o se stai usando PYCharm, puoi installarlo direttamente andando nelle tue impostazioni nello stesso modo in cui lo fai per altri pacchetti.

Successivamente, in modo simile, devi importare Sklearn.Scikit learn è basato su SciPy (Scientific Python) che deve essere installato prima di poter utilizzare Scikit-learn. Puoi fare riferimento a questo sito web per scaricare lo stesso. Inoltre, installa Scipy e il pacchetto ruota se non è presente, puoi digitare il comando seguente:

pip installa scipy

L'ho già scaricato e installato, puoi fare riferimento allo screenshot qui sotto per qualsiasi confusione.

Dopo aver importato le librerie di cui sopra, approfondiamo e comprendiamo come viene utilizzato esattamente Scikit Learn.

Scikit learn viene fornito con set di dati di esempio, come iris e cifre . Puoi importare i set di dati e giocare con loro. Dopodiché, devi importare SVM che sta per Support Vector Machine. SVM è una forma di apprendimento automatico che viene utilizzato per analizzare i dati.

come installare php 7

Facciamo un esempio dove porteremo cifre dataset e classificherà i numeri per noi, ad esempio: 0 1 2 3 4 5 6 7 8 9. Fare riferimento al codice seguente:

importa matplotlib.pyplot come plt da sklearn importa dataset da sklearn importa svm digits = datasets.load_digits () print (digits.data)

Produzione -

[[0. 0. 5. ..., 0. 0. 0.] [0. 0. 0. ..., 10. 0. 0.] [0. 0. 0. ..., 16. 9. 0.] ..., [0. 0. 1. ..., 6. 0. 0.] [0. 0. 2. ..., 12. 0. 0.] [0. 0. 10. ..., 12. 1. 0.]]

Qui abbiamo appena importato le librerie, SVM, set di dati e stampato i dati. È una lunga serie di cifre in cui vengono archiviati i dati. Dà l'accesso alle funzionalità che possono essere utilizzate per classificare il file cifre campioni. Successivamente, puoi anche provare altre operazioni come target, immagini ecc. Considera l'esempio seguente:

importa matplotlib.pyplot come plt da sklearn importa dataset da sklearn importa svm digits = datasets.load_digits () print (digits.target) print (digits.images [0])

Produzione -

[0 1 2 ..., 8 9 8] // destinazione dei dati [[0. 0. 5. 13. 9. 1. 0. 0.] // immagine dei dati [0. 0. 13. 15. 10. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 0. 0. 8. 8. 0.] [0. 5. 8. 0. 0. 9. 8. 0.] [0. 4. 11. 0. 1. 12. 7. 0.] [0. 2. 14. 5. 10. 12. 0. 0. ] [0. 0. 6. 13. 10. 0. 0. 0.]]

Come puoi vedere sopra, vengono stampate le cifre di destinazione e l'immagine delle cifre. digits.target dà la verità di base per il cifra dataset, ovvero il numero corrispondente a ciascuna immagine della cifra. Successivamente, i dati sono sempre un array 2D che ha una forma (n_samples, n_features), sebbene i dati originali possano avere una forma diversa. Ma nel caso delle cifre, ogni campione originale è un'immagine di forma (8,8) ed è possibile accedervi utilizzando cifre . Immagine.

Apprendimento e previsione

come creare power bi dashboard

Successivamente, in Scikit Learn, abbiamo utilizzato un set di dati (campione di 10 classi possibili, cifre da zero a nove) e abbiamo bisogno di prevedere le cifre quando viene fornita un'immagine. Per prevedere la classe, abbiamo bisogno di un file estimatore che aiuta a prevedere le classi a cui appartengono i campioni invisibili. In Scikit learn, abbiamo uno stimatore per la classificazione che è un oggetto Python che implementa i metodi adatta (x, y) e prevedere (T). Consideriamo l'esempio seguente:

importa matplotlib.pyplot come plt da sklearn importa dataset da sklearn import svm digits = datasets.load_digits () // dataset clf = svm.SVC (gamma = 0.001, C = 100) print (len (digits.data)) x, y = digits.data [: - 1], digits.target [: - 1] // addestra i dati clf.fit (x, y) print ('Prediction:', clf.predict (digits.data [-1]) ) // prevede i dati plt.imshow (digits.images [-1], cmap = plt.cm.gray_r, interpolation = 'più vicino') plt.show ()

Produzione -

1796
Previsione: [8]


Nell'esempio sopra, abbiamo prima trovato la lunghezza e caricato 1796 esempi. Successivamente, abbiamo utilizzato questi dati come dati di apprendimento, in cui dobbiamo testare l'ultimo elemento e il primo elemento negativo. Inoltre, dobbiamo verificare se la macchina ha previsto i dati corretti o meno. Per questo, abbiamo usato Matplotlib dove avevamo visualizzato l'immagine delle cifre.Quindi, per concludere, hai dati in cifre, hai il target, lo adatti e lo prevedi e quindi sei a posto! È davvero semplice e veloce, no?

Puoi anche visualizzare le etichette di destinazione con un'immagine, basta fare riferimento al codice seguente:

importa matplotlib.pyplot come plt da sklearn importa dataset da sklearn importa svm digits = datasets.load_digits () # Unisci le immagini e le etichette di destinazione in un elenco images_and_labels = list (zip (digits.images, digits.target)) # per ogni elemento nella lista per index, (image, label) in enumerate (images_and_labels [: 8]): # inizializza una sottotrama di 2X4 alla i + 1-esima posizione plt.subplot (2, 4, index + 1) # Visualizza le immagini in tutte le sottotrame plt.imshow (immagine, cmap = plt.cm.gray_r, interpolation = 'più vicino') # Aggiungi un titolo a ciascuna sottotrama plt.title ('Addestramento:' + str (etichetta)) # Mostra la trama plt. spettacolo()

Produzione-


Come puoi vedere nel codice sopra, abbiamo utilizzato la funzione 'zip' per unire le immagini e le etichette di destinazione in un elenco e quindi salvarlo in una variabile, ad esempio images_and_labels. Successivamente, abbiamo indicizzato i primi otto elementi in una griglia di 2 per 4 in ciascuna posizione. Dopodiché, abbiamo appena visualizzato le immagini con l'aiuto di Matplotlib e aggiunto il titolo come 'formazione'.

Caso d'uso - Previsione utilizzando la regressione logistica

Dichiarazione problema - Una casa automobilistica ha lanciato sul mercato un nuovo SUV. Utilizzando i dati precedenti sulle vendite dei loro SUV, vogliono prevedere la categoria di persone che potrebbero essere interessate all'acquisto.

Per questo, vediamo un set di dati in cui ho UserId, sesso, età, stipendio stimato e acquisto come colonne. Questo è solo un set di dati di esempio da cui puoi scaricare l'intero set di dati Qui . Una volta importati i dati in pyCharm, assomiglia un po 'a questo.

Ora cerchiamo di capire questi dati. Come puoi vedere nel set di dati sopra, abbiamo categorie come ID, sesso, età ecc. Ora, in base a queste categorie, addestreremo la nostra macchina e prevederemo il numero. degli acquisti. Quindi qui, abbiamo variabili indipendenti come 'età', 'stipendio previsto' e variabile dipendente come 'acquistato'. Ora applicheremo l'apprendimento supervisionato, ovvero algoritmo di regressione logistica per conoscere il numero di acquisto utilizzando i dati esistenti.

Innanzitutto, diamo una panoramica della regressione logistica.

Regressione logistica - Logistic Regression produce risultati in un formato binario che viene utilizzato per prevedere il risultato di una variabile dipendente categoriale. È più ampiamente utilizzato quando la variabile dipendente è binaria, ovvero il numero di categorie disponibili è due, ad esempio i soliti output della regressione logistica sono:

  • Sì e no
  • Vero e falso
  • Alto e basso
  • Passa e fallisce

Ora, per iniziare con il codice, importeremo prima queste librerie: Numpy, Matplotlib e Pandas. È abbastanza facile importare i panda in Pycharm seguendo i passaggi seguenti:

Impostazioni -> Aggiungi pacchetto -> Panda -> Installa

Successivamente, importeremo il set di dati e la variabile dipendente (acquistata) e la variabile indipendente (età, stipendio) separate da:

dataset = pd.read_csv ('Social_Network_Ads.csv') X = dataset.iloc [:, [2, 3]]. values ​​y = dataset.iloc [:, 4] .values ​​print (X) print (y)

Il passo successivo sarebbe l'addestramento e il test dei dati. Una strategia comune consiste nel prendere tutti i dati etichettati e suddividerli in sottoinsiemi di addestramento e test, che di solito vengono presi con un rapporto del 70-80% per il sottoinsieme di addestramento e del 20-30% per il sottoinsieme di prova. Quindi, abbiamo creato creare set di addestramento e test utilizzando cross_validation.

da sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25, random_state = 0)

Possiamo anche ridimensionare i valori di input per prestazioni migliori utilizzando StandarScaler come mostrato di seguito:

da sklearn.preprocessing import StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Ora creeremo il nostro modello di regressione logistica.

c ++ ordinamento di un array
da sklearn.linear_model import LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train, y_train)

Possiamo usarlo e prevedere i risultati del nostro set di test.

y_pred = classifier.predict (X_test)

Ora possiamo controllare quante previsioni erano accurate e quante non le utilizzavano matrice di confusione . Definiamo Y come istanze positive e N come istanze negative. I quattro risultati sono formulati nella matrice di confusione 2 * 2, come rappresentato di seguito:

da sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Produzione-

[[65 3] [8 24]]

Successivamente, in base alla nostra matrice di confusione, possiamo calcolare l'accuratezza. Quindi, nel nostro esempio precedente, la precisione sarebbe:

= TP + TN / FN + FP

= 65 + 24/65 +3+ 8 + 24

= 89%

Lo abbiamo fatto manualmente! Ora vediamo come la macchina calcola lo stesso per noi, per questo abbiamo una funzione incorporata 'accuratezza_score' che calcola la precisione e la stampa, come mostrato di seguito:

da sklearn.metrics import accuratezza_score // importa la funzione accuratezza_score print (accuratezza_score (y_test, y_pred) * 100) // stampa la precisione

Produzione -

89.0

Evviva! Abbiamo quindi implementato con successo la regressione logistica utilizzando Scikit Learn con una precisione dell'89%.

Clicca qui per ottenere la fonte completa e completa della previsione di cui sopra utilizzando la libreria di apprendimento Python Scikit.

Con questo, abbiamo coperto solo uno dei tanti algoritmi popolari che Python ha da offrire.Abbiamo coperto tutte le basi di Scikit impara la libreria,così puoi iniziare a esercitarti ora. Più pratichi più imparerai. Restate sintonizzati per ulteriori blog tutorial su Python!

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog 'Scikit impara' e ti risponderemo il prima possibile. Per ottenere una conoscenza approfondita di Python e delle sue varie applicazioni, puoi farlo per la formazione online dal vivo con supporto 24 ore su 24, 7 giorni su 7 e accesso a vita.