Scikit learn - Machine Learning folosind Python



Scikit learn blog vă va introduce în Machine Learning în python. Include un caz de utilizare în care vom implementa regresia logistică folosind scikit learn.

În acest blog, vom discuta despre Scikit learn in python. Înainte de a vorbi despre Scikit learn, trebuie să înțelegem conceptul de machine learningși trebuie să știe să folosească . Cu învățarea automată, nu trebuie să vă adunați manual ideile. Ai nevoie doar de un algoritm și mașina va face restul pentru tine! Nu este interesant? Învățarea Scikit este una dintre atracțiile în care putem implementa învățarea automată folosind Python. Aceastaeste o bibliotecă gratuită de învățare automată care conține instrumente simple și eficiente pentru analiza datelor și scopuri miniere.Vă voi trece prin următoarele subiecte, care vor servi drept elemente fundamentale pentru blogurile viitoare:

Ce este învățarea automată?

Învățarea automată este un tip de inteligență artificială care permite aplicațiilor software să învețe din date și să devină mai precise în prezicerea rezultatelor fără intervenția umană. Dar cum se întâmplă asta? Pentru aceasta, mașina trebuie să fie instruită cu privire la unele date și, pe baza acestora, va detecta un model pentru a crea un model.Acest proces de a dobândi cunoștințe din date și de a oferi informații puternice se referă la învățarea automată. Consultați imaginea de mai jos pentru a înțelege mai bine funcționarea sa:





MachineLearning - Scikit Learn - Edureka

Folosind datele, sistemul învață un algoritm și apoi îl folosește pentru a construi un model predictiv. Mai târziu, ajustăm modelul sau îmbunătățim precizia modelului folosind datele de feedback. Folosind aceste date de feedback, reglăm modelul și predicem acțiunea asupra noului set de date. Noi vomdiscuta despre o utilizare caz a uneia dintre abordările algoritmice în care vom instrui și testa datele, care vă vor ajuta să dați un sentiment mai bun dacă va fi o potrivire bună pentru problema dvs. particulară sau nu.



În continuare, există trei tipuri de învățare automată:

    • Învățare supravegheată : Acesta este un proces al unui algoritm care învață din setul de date de instruire. Învățarea supravegheată este locul în care generați o funcție de mapare între variabila de intrare (X) și o variabilă de ieșire (Y) și utilizați un algoritm pentru a genera o funcție între ele. Este, de asemenea, cunoscut sub numele de modelare predictivă, care se referă la un proces de a face predicții folosind datele. Unii dintre algoritmi includ regresia liniară, regresia logistică, arborele decizional, pădurea aleatorie și clasificatorul Naive Bayes. Vom discuta în continuare un caz de utilizare a învățării supravegheate în care antrenăm utilizarea mașinii regresie logistică .
    • Învățare fără supraveghere : Acesta este un proces în care un model este instruit folosind o informație care nu este etichetată. Acest proces poate fi utilizat pentru a grupa datele de intrare în clase pe baza proprietăților statistice ale acestora. Învățarea fără supraveghere este numită și canaliză de strălucire care înseamnă gruparea obiectelor pe baza informațiilor găsite în datele care descriu obiectele sau relația lor. Scopul este ca obiectele dintr-un grup să fie similare între ele, dar diferite de obiectele dintr-un alt grup. Unii dintre algoritmi includ gruparea K-means, clusterizarea ierarhică etc.
    • Consolidarea învățării: Învățarea prin întărire înseamnă învățarea prin interacțiunea cu un spațiu sau un mediu.Un agent RL învață din consecințele acțiunilor sale, mai degrabă decât din a fi predat în mod explicit. El își selectează acțiunile pe baza experiențelor sale din trecut (exploatare) și, de asemenea, prin noi alegeri (explorare).

Prezentare generală a Scikit Learn

Scikit Learn este o bibliotecă utilizată pentru a efectua învățarea automată în Python. Scikit learn este o bibliotecă open source care este licențiată în baza BSD și este reutilizabilă în diverse contexte, încurajând utilizarea academică și comercială. Oferă o gamă de algoritmi de învățare supravegheați și nesupravegheați în Python.Scikit learn constă în algoritmi și biblioteci populare. În afară de aceasta, conține și următoarele pachete:



  • NumPy
  • Matplotlib
  • SciPy (Python științific)

Pentru a implementa Scikit learn, trebuie mai întâi să importăm pachetele de mai sus. Dacă nu sunteți familiarizați cu aceste biblioteci, puteți arunca o privire asupra blogurilor mele anterioare și . Puteți descărca aceste două pachete folosind linia de comandă sau dacă utilizați PDaFarmec, îl poți instala direct accesând setarea în același mod în care o faci pentru alte pachete.

Apoi, în mod similar, trebuie să importați Sklearn.Scikit learn este construit pe SciPy (Scientific Python) care trebuie instalat înainte de a putea folosi Scikit-learn. Vă puteți referi la acest lucru site-ul web pentru a descărca la fel. De asemenea, instalați pachetul Scipy și wheel dacă nu este prezent, puteți introduce comanda de mai jos:

pip instala scipy

L-am descărcat și instalat deja, puteți consulta captura de ecran de mai jos pentru orice confuzie.

tipuri de transformări în informatică

După importarea bibliotecilor de mai sus, să săpăm mai adânc și să înțelegem cum se folosește exact Scikit learn.

Scikit Learn vine cu exemple de seturi de date, cum ar fi iris și cifre . Puteți importa seturile de date și vă puteți juca cu ele. După aceea, trebuie să importați SVM, care înseamnă Support Vector Machine. SVM este o formă de învățare automată care este utilizată pentru a analiza datele.

Să luăm un exemplu unde vom lua cifre setul de date și va clasifica numerele pentru noi, de exemplu - 0 1 2 3 4 5 6 7 8 9. Consultați codul de mai jos:

import matplotlib.pyplot ca plt din sklearn import seturi de date din sklearn import svm cifre = datasets.load_digits () print (cifre.data)

Ieșire -

[[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.]]

Aici tocmai am importat bibliotecile, SVM, seturile de date și am tipărit datele. Este o gamă lungă de date de cifre în care datele sunt stocate. Oferă acces la caracteristicile care pot fi utilizate pentru clasificarea cifre probe. Apoi, puteți încerca și alte operații precum țintă, imagini etc. Luați în considerare exemplul de mai jos:

import matplotlib.pyplot ca plt din sklearn import seturi de date din sklearn import svm cifre = datasets.load_digits () print (cifre.target) print (cifre.imagini [0])

Ieșire -

[0 1 2 ..., 8 9 8] // ținta datelor [[0. 0. 5. 13. 9. 1. 0. 0.] // imaginea datelor [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.]]

După cum puteți vedea mai sus, cifrele țintă și imaginea cifrelor sunt tipărite. cifre.tinta oferă adevărul de bază pentru cifră setul de date, adică numărul corespunzător fiecărei imagini din cifre. Apoi, datele sunt întotdeauna o matrice 2D care are o formă (n_samples, n_features), deși datele originale ar fi putut avea o formă diferită. Dar, în cazul cifrelor, fiecare eșantion original este o imagine de formă (8,8) și poate fi accesat folosind cifre . imagine.

Învățare și prezicere

Apoi, în Scikit learn, am folosit un set de date (eșantion de 10 clase posibile, cifre de la zero la nouă) și trebuie să prezicem cifrele atunci când este dată o imagine. Pentru a prezice clasa, avem nevoie de un estimator ceea ce ajută la prezicerea claselor la care apar eșantioanele nevăzute. În Scikit learn, avem un estimator pentru clasificare, care este un obiect python care implementează metodele se potrivesc (x, y) și prezice (T). Să luăm în considerare exemplul de mai jos:

import matplotlib.pyplot as plt from sklearn import datasets from sklearn import svm cifre = datasets.load_digits () // set de date clf = svm.SVC (gamma = 0.001, C = 100) print (len (cifre.date)) x, y = cifre.date [: - 1], cifre.target [: - 1] // instruiți datele clf.fit (x, y) print ('Predicție:', clf.predict (cifre.date [-1]) ) // prezice datele plt.imshow (cifre.imagini [-1], cmap = plt.cm.gray_r, interpolare = 'cel mai apropiat') plt.show ()

Ieșire -

1796
Predicție: [8]


În exemplul de mai sus, am găsit mai întâi lungimea și am încărcat 1796 de exemple. Apoi, am folosit aceste date ca date de învățare, unde trebuie să testăm ultimul element și primul element negativ. De asemenea, trebuie să verificăm dacă aparatul a prezis sau nu datele corecte. Pentru aceasta, am folosit Matplotlib unde afișam imaginea cifrelor.Deci, pentru a încheia, aveți date de cifre, ați obținut ținta, o potriviți și o preziceți și, prin urmare, sunteți bine să mergeți! Este foarte rapid și ușor, nu-i așa?

De asemenea, puteți vizualiza etichetele țintă cu o imagine, doar consultați codul de mai jos:

import matplotlib.pyplot ca plt din sklearn import seturi de date din sklearn import svm cifre = datasets.load_digits () # Alăturați imaginile și etichetele țintă într-o listă images_and_labels = list (zip (cifre.imagini, cifre.target)) # pentru fiecare element în lista pentru index, (imagine, etichetă) în enumerate (images_and_labels [: 8]): # inițializează un subplot de 2X4 la poziția i + 1-a plt.subplot (2, 4, index + 1) # Afișează imagini în toate subploturile plt.imshow (imagine, cmap = plt.cm.gray_r, interpolare = 'cel mai apropiat') # Adăugați un titlu la fiecare subplot plt.title ('Training:' + str (etichetă)) # Afișați graficul plt. spectacol()

Ieșire-


După cum puteți vedea în codul de mai sus, am folosit funcția „zip” pentru a uni imaginile și etichetele țintă într-o listă și apoi pentru a le salva într-o variabilă, să spunem imagini_și_etichete. După aceea, am indexat primele opt elemente într-o grilă de 2 cu 4 la fiecare poziție. După aceea, tocmai am afișat imaginile cu ajutorul Matplotlib și am adăugat titlul ca „antrenament”.

Utilizare caz - Predicție folosind regresia logistică

Declarație problemă - O companie auto a lansat un nou SUV pe piață. Folosind datele anterioare despre vânzările SUV-urilor lor, vor să prezică categoria persoanelor care ar putea fi interesate să cumpere acest lucru.

Pentru aceasta, să vedem un set de date unde am UserId, sex, vârstă, salariu estimat și achiziționat ca coloane. Acesta este doar un exemplu de set de date, din care puteți descărca întregul set de date Aici . Odată ce am importat datele în pyCharm, arată oarecum așa.

cum se compară două șiruri

Acum să ne înțelegem aceste date. După cum puteți vedea în setul de date de mai sus, avem categorii precum id, sex, vârstă etc. Acum, pe baza acestor categorii, ne vom antrena mașina și vom prezice nr. de cumpărături. Deci, aici avem variabile independente ca „vârstă”, „salariu așteptat” și variabilă dependentă ca „cumpărat”. Acum vom aplica învățarea supravegheată, adică algoritm de regresie logistică pentru a afla numărul de achiziții folosind datele existente.

În primul rând, să vedem o prezentare generală a regresiei logistice.

Regresie logistică - Regresia logistică produce rezultate într-un format binar care este utilizat pentru a prezice rezultatul unei variabile dependente categorice. Este cel mai utilizat atunci când variabila dependentă este binară, adică numărul categoriilor disponibile este de două, cum ar fi, ieșirile obișnuite ale regresiei logistice sunt -

  • Da și nu
  • Adevarat si fals
  • Sus si jos
  • Treceți și eșuați

Acum, pentru a începe cu codul, vom importa mai întâi aceste biblioteci - Numpy, Matplotlib și Pandas. Este destul de ușor să importați panda în Pycharm urmând pașii de mai jos:

Setări -> Adăugare pachet -> Pandas -> Instalare

După aceasta, vom importa setul de date și separăm variabila dependentă (achiziționată) și variabila independentă (vârstă, salariu) prin:

set de date = pd.read_csv ('Social_Network_Ads.csv') X = set de date.iloc [:, [2, 3]]. valori y = set de date.iloc [:, 4] .valori print (X) print (y)

Următorul pas ar fi antrenarea și testarea datelor. O strategie obișnuită este de a lua toate datele etichetate și de a le împărți în subseturi de antrenament și testare, care se ia de obicei cu un raport de 70-80% pentru subsetul de antrenament și 20-30% pentru subsetul de testare. Prin urmare, am creat seturi de formare și testare folosind cross_validation.

din 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)

De asemenea, putem scala valorile de intrare pentru o performanță mai bună folosind StandarScaler așa cum se arată mai jos:

supraîncărcare metodă vs suprascriere metodă
din sklearn.preprocessing import StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Acum vom crea modelul nostru de regresie logistică.

din import sklearn.linear_model LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train, y_train)

Putem folosi acest lucru și putem prezice rezultatele setului nostru de testare.

y_pred = clasificator.predict (X_test)

Acum, putem verifica câte predicții au fost exacte și câte nu au fost folosite matrice de confuzie . Să definim Y ca instanțe pozitive și N ca instanțe negative. Cele patru rezultate sunt formulate în matrice de confuzie 2 * 2, așa cum este reprezentat mai jos:

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

Ieșire-

[[65 3] [8 24]]

Apoi, pe baza matricei noastre de confuzie, putem calcula acuratețea. Deci, în exemplul nostru de mai sus, precizia ar fi:

= TP + TN / FN + FP

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

= 89%

Am făcut acest lucru manual! Acum, să vedem cum calculează același lucru pentru noi, pentru că avem o funcție încorporată „accurate_score” care calculează acuratețea și o imprimă, după cum se arată mai jos:

din sklearn.metrics import accur_score // import funcția accurate_score print (accurate_score (y_test, y_pred) * 100) // tipărește exactitatea

Ieșire -

89.0

Ura! Astfel, am implementat cu succes regresia logistică utilizând Scikit learn cu o precizie de 89%.

Click aici pentru a obține sursa completă completă a predicției de mai sus folosind biblioteca Python Scikit Learn.

Cu aceasta, am acoperit doar unul dintre mulți algoritmi populari pe care Python îi poate oferi.Am acoperit toate elementele de bază ale Scikit învață biblioteca,astfel încât să puteți începe să exersați acum. Cu cât exersezi mai mult, cu atât vei învăța mai mult. Rămâneți la curent cu alte bloguri tutoriale Python!

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog „Învățați Scikit” și vă vom contacta cât mai curând posibil. Pentru a obține cunoștințe aprofundate despre Python împreună cu diferitele sale aplicații, puteți pentru instruire online live cu suport 24/7 și acces pe toată durata vieții