Scikit learn: aprenentatge automàtic mitjançant Python

El bloc Scikit learn us presentarà l'aprenentatge automàtic en python. Inclou un cas d’ús en el qual implementarem la regressió logística mitjançant scikit learn.

En aquest bloc, parlarem sobre l'aprenentatge de Scikit en python. Abans de parlar sobre l'aprenentatge de Scikit, cal entendre el concepte d'aprenentatge automàtici ha de saber utilitzar . Amb l’aprenentatge automàtic, no cal que recopileu les vostres idees manualment. Només necessiteu un algorisme i la màquina farà la resta per vosaltres. No és emocionant? L’aprenentatge de Scikit és un dels atractius on podem implementar l’aprenentatge automàtic mitjançant Python. Aixòés una biblioteca gratuïta d’aprenentatge automàtic que conté eines senzilles i eficients per a finalitats d’anàlisi i extracció de dades.Et recorreré els temes següents, que serviran de fonaments per als propers blocs:

Què és l'aprenentatge automàtic?

L’aprenentatge automàtic és un tipus d’intel·ligència artificial que permet a les aplicacions informàtiques aprendre de les dades i ser més precises en la predicció de resultats sense la intervenció humana. Però, com passa això? Per a això, la màquina ha de formar-se sobre algunes dades i, en funció d’això, detectarà un patró per crear un model.Aquest procés d’obtenir coneixement a partir de les dades i proporcionar estadístiques potents es tracta de l’aprenentatge automàtic. Consulteu la imatge següent per entendre millor el seu funcionament:





MachineLearning - Scikit Learn - Edureka

Utilitzant les dades, el sistema aprèn un algorisme i després l’utilitza per construir un model predictiu. Més endavant, ajustem el model o millorem la precisió del model mitjançant les dades de retroalimentació. Mitjançant aquestes dades de retroalimentació, sintonitzem el model i prediuem l’acció sobre el nou conjunt de dades. Nosaltresestar discutint un cas d'ús d'un dels enfocaments d'algoritme en què entrenarem i provarem les dades que us ajudaran a donar una millor idea de si serà adequat per al vostre problema concret o no.



A continuació, hi ha tres tipus d’aprenentatge automàtic:

    • Aprenentatge supervisat : Es tracta d’un procés d’un algorisme que aprèn del conjunt de dades de formació. L’aprenentatge supervisat és on es genera una funció de mapatge entre la variable d’entrada (X) i una variable de sortida (Y) i s’utilitza un algorisme per generar una funció entre elles. També es coneix com a modelatge predictiu que fa referència a un procés de prediccions mitjançant les dades. Alguns dels algorismes inclouen regressió lineal, regressió logística, arbre de decisions, bosc aleatori i classificador de Naive Bayes. Analitzarem a més un cas d’ús d’aprenentatge supervisat en el qual entrenem l’ús de la màquina regressió logística .
    • Aprenentatge sense supervisió : Es tracta d’un procés en què un model s’entren mitjançant una informació que no està etiquetada. Aquest procés es pot utilitzar per agrupar les dades d'entrada en classes en funció de les seves propietats estadístiques. L’aprenentatge sense supervisió també s’anomena canàlisi de brillantor que significa l'agrupació d'objectes basada en la informació que es troba a les dades que descriuen els objectes o la seva relació. L'objectiu és que els objectes d'un grup siguin similars entre si, però diferents dels objectes d'un altre grup. Alguns dels algorismes inclouen agrupació de mitjans K, agrupació jeràrquica, etc.
    • Aprenentatge de reforç: L’aprenentatge de reforç és aprendre interactuant amb un espai o un entorn.Un agent de RL aprèn de les conseqüències de les seves accions, en lloc de ser ensenyat explícitament. Selecciona les seves accions en funció de les seves experiències passades (explotació) i també per noves opcions (exploració).

Visió general de Scikit Learn

Scikit learn és una biblioteca que s’utilitza per realitzar l’aprenentatge automàtic a Python. Scikit learn és una biblioteca de codi obert que té llicència BSD i es pot reutilitzar en diversos contextos, fomentant l’ús acadèmic i comercial. Proporciona una gamma d’algoritmes d’aprenentatge supervisats i no supervisats a Python.Scikit learn consisteix en biblioteques i algoritmes populars. A part, també conté els següents paquets:



  • NumPy
  • Matplotlib
  • SciPy (Python científic)

Per implementar Scikit learn, primer hem d’importar els paquets anteriors. Si no esteu familiaritzat amb aquestes biblioteques, podeu consultar els meus blocs anteriors i . Podeu descarregar aquests dos paquets mitjançant la línia d’ordres o si utilitzeu PiEncant, podeu instal·lar-lo directament anant a la vostra configuració de la mateixa manera que ho feu per a altres paquets.

A continuació, de manera similar, heu d'importar Sklearn.Scikit learn es basa en SciPy (Scientific Python) que s’ha d’instal·lar abans de poder utilitzar Scikit-learn. Podeu fer referència a això lloc web per descarregar el mateix. A més, instal·leu el paquet Scipy and Wheel si no hi és, podeu escriure l'ordre següent:

pip instal·lar scipy

Ja l’he descarregat i instal·lat; podeu consultar la captura de pantalla següent per a qualsevol confusió.

com s'utilitza tableau public

Després d’importar les biblioteques anteriors, aprofundim i entenem com s’utilitza exactament Scikit learn.

Scikit learn inclou conjunts de dades de mostra, com ara Sant Martí i dígits . Podeu importar els conjunts de dades i jugar-hi. Després d’això, heu d’importar SVM que significa Support Vector Machine. SVM és una forma d’aprenentatge automàtic que s’utilitza per analitzar dades.

Prenguem un exemple on agafarem dígits conjunt de dades i classificarà els números per nosaltres, per exemple: 0 1 2 3 4 5 6 7 8 9. Consulteu el codi següent:

import matplotlib.pyplot as plt from sklearn import datasets from sklearn import svm digit = datasets.load_digits () print (digit.data)

Sortida -

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

Aquí acabem d’importar les biblioteques, SVM, conjunts de dades i imprimir les dades. Es tracta d’una àmplia gamma de dades de dígits on s’emmagatzemen les dades. Dóna accés a les funcions que es poden utilitzar per classificar el fitxer dígits mostres. A continuació, també podeu provar altres operacions com ara objectiu, imatges, etc. Considereu l'exemple següent:

import matplotlib.pyplot as plt from sklearn import datasets from sklearn import svm dígits = datasets.load_digits () imprimir (dígits.target) imprimir (dígits.imatges [0])

Sortida -

[0 1 2 ..., 8 9 8] // objectiu de les dades [[0. 0. 5. 13. 9. 1. 0. 0.] // imatge de les dades [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.]]

Com podeu veure més amunt, s’imprimeixen els dígits objectiu i la imatge dels dígits. digits.target dóna la veritat fonamental per al dígit conjunt de dades, és a dir, el nombre corresponent a cada imatge de dígits. A continuació, les dades sempre són una matriu 2D que té una forma (n_samples, n_features), tot i que les dades originals poden tenir una forma diferent. Però en el cas dels dígits, cada mostra original és una imatge de forma (8,8) i es pot accedir mitjançant dígits . imatge.

Aprenentatge i predicció

A continuació, a Scikit learn, hem utilitzat un conjunt de dades (mostra de 10 classes possibles, dígits de zero a nou) i hem de predir els dígits quan es dóna una imatge. Per predir la classe, necessitem una estimador cosa que ajuda a predir les classes a les quals pertanyen mostres invisibles. A Scikit learn, tenim un estimador de classificació que és un objecte python que implementa els mètodes ajust (x, y) i predir (T). Vegem l'exemple següent:

import matplotlib.pyplot as plt from sklearn import datasets from sklearn import svm digit = datasets.load_digits () // dataset clf = svm.SVC (gamma = 0.001, C = 100) print (len (digit.data)) x, y = dígits.dades [: - 1], dígits.target [: - 1] // entrenar les dades clf.fit (x, y) print ('Predicció:', clf.predict (dígits.dades [-1]) ) // prediu les dades plt.imshow (dígits.imatges [-1], cmap = plt.cm.gray_r, interpolació = 'més propera') plt.show ()

Sortida -

1796
Predicció: [8]


A l'exemple anterior, primer havíem trobat la longitud i n'hem carregat 1.796 exemples. A continuació, hem utilitzat aquestes dades com a dades d’aprenentatge, on hem de provar l’últim element i el primer element negatiu. A més, hem de comprovar si l’equip ha predit les dades adequades o no. Per a això, havíem utilitzat Matplotlib on havíem mostrat la imatge dels dígits.Per tant, per concloure, teniu dades de dígits, heu aconseguit l’objectiu, l’ajusteu i el prediceu i, per tant, esteu bé. És molt fàcil i ràpid, oi?

També podeu visualitzar les etiquetes de destinació amb una imatge, només cal que consulteu el codi següent:

import matplotlib.pyplot as plt from sklearn import datasets from sklearn import svm dígits = datasets.load_digits () # Unir les imatges i les etiquetes de destinació en una llista images_and_labels = llista (zip (dígits.imatges, dígits.target)) # per a cada element a la llista per a índex, (imatge, etiqueta) a enumerar (images_and_labels [: 8]): # inicialitza una subtrama de 2X4 a la posició i + 1a posició plt.subplot (2, 4, índex + 1) # Mostra imatges a totes les subtrames plt.imshow (imatge, cmap = plt.cm.gray_r, interpolació = 'més propera') # Afegiu un títol a cada subtrama plt.title ('Formació:' + str (etiqueta)) # Mostra la trama plt. espectacle()

Sortida-


Com podeu veure al codi anterior, hem utilitzat la funció 'zip' per unir les imatges i les etiquetes de destinació en una llista i després desar-les en una variable, per exemple, images_and_labels. Després d'això, hem indexat els primers vuit elements en una quadrícula de 2 per 4 a cada posició. Després d’això, acabem de mostrar les imatges amb l’ajut de Matplotlib i hem afegit el títol com a “formació”.

Cas d'ús - Predicció mitjançant regressió logística

Plantejament del problema - Una empresa automobilística ha llançat un nou SUV al mercat. Utilitzant les dades anteriors sobre les vendes dels seus SUV, volen predir la categoria de persones que podrien estar interessades a comprar-ho.

Per a això, vegem un conjunt de dades on tinc Identificador d'usuari, sexe, edat, salari estimat i comprat com a columnes. Aquest és només un conjunt de dades de mostra, des del qual es pot descarregar tot el conjunt de dades aquí . Un cop importem les dades a pyCharm, es veu així.

herència múltiple a Java amb exemple

Ara entenem aquestes dades. Com podeu veure al conjunt de dades anterior, tenim categories com ara identificador, sexe, edat, etc. Ara, basant-nos en aquestes categories, entrenarem la nostra màquina i predirem el no. de compres. Així que aquí ho tenim variables independents com a 'edat', 'salari esperat' i variable dependent com a 'comprat'. Ara aplicarem l’aprenentatge supervisat, és a dir algorisme de regressió logística per esbrinar el nombre de compres utilitzant les dades existents.

En primer lloc, obtenim una visió general de la regressió logística.

Regressió logística - La regressió logística produeix resultats en un format binari que s’utilitza per predir el resultat d’una variable dependent categòrica. S’utilitza més àmpliament quan la variable dependent és binària, és a dir, el nombre de categories disponibles són dues, com ara, les sortides habituals de regressió logística són:

  • Sí i no
  • Cert i fals
  • Alt i Baix
  • Aprovar i fracassar

Ara, per començar amb el codi, primer importarem aquestes biblioteques: Numpy, Matplotlib i Pandas. És molt fàcil importar pandes a Pycharm seguint els passos següents:

Configuració -> Afegeix paquet -> Pandas -> Instal·la

Després d'això, importarem el conjunt de dades i separarem la variable dependent (comprada) i la variable independent (edat, salari) mitjançant:

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

El següent pas seria entrenar i provar les dades. Una estratègia comuna consisteix a agafar totes les dades etiquetades i dividir-les en subconjunts d’entrenament i proves, que normalment es pren amb una proporció del 70-80% per al subconjunt d’entrenament i del 20-30% per al subconjunt de proves. Per tant, hem creat crear conjunts de formació i proves mitjançant validació creuada.

des de sklearn.cross_validation importació train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25, random_state = 0)

També podem escalar els valors d’entrada per obtenir un millor rendiment mitjançant StandarScaler, tal com es mostra a continuació:

abstracció de dades c ++
de sklearn.preprocessing import StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Ara crearem el nostre model de regressió logística.

des de la importació sklearn.linear_model LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train, y_train)

Podem utilitzar-lo i predir els resultats del nostre conjunt de proves.

y_pred = classifier.predict (X_test)

Ara podem comprovar quantes prediccions eren precises i quantes no les utilitzaven matriu de confusió . Definim Y com a casos positius i N com a casos negatius. Els quatre resultats es formulen en una matriu de confusió 2 * 2, tal com es representa a continuació:

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

Sortida-

[[65 3] [24 ago]]

A continuació, basant-nos en la nostra matriu de confusió, podem calcular la precisió. Per tant, en el nostre exemple anterior, la precisió seria:

= TP + TN / FN + FP

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

= El 89%

Ho hem fet manualment. Ara anem a veure com la màquina calcula el mateix per a nosaltres, per la qual cosa tenim una funció incorporada 'accurate_score' que calcula la precisió i la imprimeix, tal com es mostra a continuació:

des de sklearn.metrics importació accurate_score // importació de la funció precision_score print (accurate_score (y_test, y_pred) * 100) // imprimeix la precisió

Sortida -

89.0

Hurra! Per tant, hem implementat amb èxit la regressió logística mitjançant Scikit learn amb una precisió del 89%.

Clica aquí per obtenir la font completa completa de la predicció anterior utilitzant la biblioteca d'aprenentatge de Python Scikit.

Amb això, hem cobert només un dels molts algoritmes populars que Python pot oferir.Hem cobert tots els conceptes bàsics de Scikit per aprendre la biblioteca,perquè pugueu començar a practicar ara. Com més practiquis, més aprendràs. Estigueu atents a altres blocs de tutorial de Python.

Tens alguna pregunta? Si us plau, mencioneu-ho a la secció de comentaris d’aquest bloc “Scikit learn” i us respondrem el més aviat possible. Per obtenir un coneixement en profunditat de Python juntament amb les seves diverses aplicacions, podeu fer-ho per a formació en línia en directe amb assistència les 24 hores del dia, els 7 dies de la setmana i accés durant tota la vida.