Com es realitza la regressió logística a Python?

Regressió logística a Python mitjançant sklearn per predir el resultat determinant la relació entre variables dependents i una o més variables independents.

La regressió logística a Python és una tècnica d’anàlisi predictiva. També s’utilitza en Machine Learning per problemes de classificació binària. En aquest bloc revisarem els temes següents per entendre la regressió logística a Python:



  1. Què és la regressió?
  2. Regressió logística a Python
  3. Regressió logística vs regressió lineal
  4. Casos d’ús
  5. Demostració

També podeu consultar aquest tutorial detallat sobre la regressió logística en python amb una demostració per a una millor comprensió o passar per dominar la regressió logística.



Què és la regressió?

l’anàlisi és una potent tècnica d’anàlisi estadística. A dependent La variable del nostre interès s'utilitza per predir els valors d'altres variables independents en un conjunt de dades.

Ens trobem amb la regressió d’una manera intuïtiva tot el temps. Com predir el temps amb el conjunt de dades de les condicions meteorològiques del passat.



Utilitza moltes tècniques per analitzar i predir el resultat, però es posa èmfasi principalment en relació entre variable dependent i una o més variables independents.

l'anàlisi prediu el resultat en una variable binària que només té dos resultats possibles.



Regressió logística a Python

És una tècnica per analitzar un conjunt de dades que té una variable dependent i una o més variables independents per predir el resultat d’una variable binària, és a dir, que només tindrà dos resultats.

La variable dependent és categòric a la natura. També es coneix com a variable dependent variable objectiu i les variables independents s'anomenen predictors .

La regressió logística és un cas especial de regressió lineal on només prediuem el resultat en una variable categòrica. Prediu la probabilitat de l'esdeveniment mitjançant la funció de registre.

Utilitzem el fitxer Funció / corba sigmoide per predir el valor categòric. El valor llindar decideix el resultat (guanyar / perdre).

Equació de regressió lineal: i = β0 + β1X1 + β2X2 .... + βnXn

  • Y significa la variable dependent que cal predir.
  • β0 és la intersecció Y, que és bàsicament el punt de la línia que toca l'eix y.
  • β1 és el pendent de la línia (el pendent pot ser negatiu o positiu en funció de la relació entre la variable dependent i la variable independent).
  • X representa aquí la variable independent que s’utilitza per predir el nostre valor dependent resultant.

Funció sigmoide: p = 1/1 + e-i

Apliqueu la funció sigmoide a l’equació de regressió lineal.

regressió logística a python-edureka

Equació de regressió logística: p = 1/1 + e- (β0 + β1X1 + β2X2…. + βnXn)

Vegem diferents tipus de regressió logística.

Tipus de regressió logística

per a què serveix la serialització a Java
    • Regressió logística binària: només té dos resultats possibles. Exemple: sí o no
    • Regressió logística multinomial: té tres o més categories nominals. Exemple: gat, gos, elefant.
    • Regressió logística ordinal: té tres o més categories ordinals, és a dir, que les categories estaran en un ordre. Exemple: valoracions dels usuaris (1-5).

Regressió logística Vs lineal

Tot i que pot tenir regressió lineal infinits valors possibles, la regressió logística té resultats definits .

La regressió lineal s’utilitza quan la variable de resposta és de naturalesa continuada, però la regressió logística s’utilitza quan la variable de resposta té un caràcter categòric.

La predicció d'un impagament en un banc mitjançant els detalls de les transaccions en el passat és un exemple de regressió logística, mentre que una producció contínua com una puntuació borsària és un exemple de regressió lineal.

Casos d’ús

A continuació es detallen els casos d’ús en què podem utilitzar la regressió logística.

Predicció del temps

Les prediccions meteorològiques són el resultat de la regressió lògica. Aquí analitzem les dades dels informes meteorològics anteriors i prediquem el possible resultat per a un dia concret. Però la regressió lògica només prediria dades categòriques, com si plogués o no.

Determinació de la malaltia

Podemúsregressió lògica amb l’ajut de la història clínica del pacient per predir si la malaltia és positiva o negativa en qualsevol cas.

Prenem un conjunt de dades de mostra per construir un model de predicció mitjançant la regressió logística.

Demostració

Construirem un model de prediccióutilitzantregressió lògica a Python amb l'ajudadeun conjunt de dades,en aquestanem a cobrir els passos següents per aconseguir una regressió lògica.

Recopilació de dades

El primer pas per implementar la regressió logística és recollir les dades. Carregarem el fitxer CSV que conté el conjunt de dades als programes mitjançant els pandes. Estem utilitzant les dades de l’NBA per construir el model de predicció per predir la possibilitat d’un partit a casa o fora de casa, analitzant la relació entre les dades rellevants.

importació de pandes com pd

Obteniu totes les dades en un format llegible per facilitar-ne l’anàlisi. A continuació, podeu determinar les variables dependents i independents del vostre model.

Analitzar dades

El conjunt de dades s’analitza per determinar la relació entre les variables. En crear diferents gràfics per comprovar la relació entre les variables.

sns.countplot ('Inici', tonalitat = 'WINorLOSS', dades = df) plt.show ()

A la part superior es mostra la relació entre el percentatge de guanys / pèrdues respecte al partit a casa / fora. Sde manera similarpodem representar el gràfic de la relació entre altres entrades rellevants de les dades.

qtp vs seleni que és millor

Problemes de dades

El conjunt de dades es modifica segons la variable de destinació. Eliminarem també tots els valors nuls i els valors de cadena del DataFrame.

print (df.isnull (). sum ())

Comprovarem totes les dades irrellevants, com ara els valors nuls i els valors que no seran necessaris durant la creació del model de predicció. Si no hi ha valors nuls al conjunt de dades NBA que estem utilitzant, procedirem a dividir les dades.

Dades de prova i entrenament

Per al rendiment del model, les dades es divideixen en les dades de prova i de tren. Les dades es divideixen mitjançant train_test_split . Les dades aquí es divideixen en la proporció 70:30.

Ara, pel predicció del model la funció de regressió logística s’implementa mitjançant la importació del model de regressió logística al mòdul sklearn.

El model s'adapta al conjunt del tren mitjançant la funció d'ajust. Després d'això, la predicció es realitza mitjançant la funció de predicció.

des de sklearn.model_selection import train_test_split des de sklearn.linear_model import LogisticRegression des de sklearn.metrics import classification_report des de sklearn.metrics import confusion_matrix, precision_score x = df.drop ('Inici', eix = 1) y = df ['Inici'] x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0,33, random_state = 1) logmodel = LogisticRegression () logmodel.fit (x_train, y_train) prediccions = logmodel.predict (x_test) print (class_report) (y_t) imprimir (matriu_confusió (prova_y, prediccions)) imprimir (puntuació_exactitud (prova_y, prediccions))

Informe de classificació:

L'informe de classificació mostra el fitxer Precisió , Recall, F1 i Suport puntuacions per al model.

Precisió puntuació significa el nivell fins al qual és precisa la predicció feta pel model. La precisió per a un partit a casa és 0.62 i pel joc fora és 0.58 .

Recordem és la quantitat fins a la qual el model pot predir el resultat. El record d’un partit a casa és 0.57 i per a un partit fora és 0.64 . Les puntuacions de F1 i de suport són la quantitat de dades provades per a les prediccions. En el conjunt de dades de la NBA, les dades provades per al joc a casa són 1662 i pel joc fora és 1586 .

Matriu de confusió:

La matriu de confusió és una taula que descriu el rendiment d’un model de predicció. Una matriu de confusió conté els valors reals i els valors predits. podem utilitzar aquests valors per calcular la puntuació de precisió del model.

Mapa de calor de la matriu de confusió:

Permet traçar un mapa de calor de la matriu de confusió mitjançant seaborn i per visualitzar el model de predicció que hem construït. Per representar un mapa de calor, cal la sintaxi següent.

sns.heatmap (pd.DataFrame (confusion_matrix (y_test, prediccions))) plt.show ()

En mirar el mapa de calor, podem concloure el següent:

  • De totes les prediccions, el classificador va predir que sí pel total de 1.730 vegades, de les quals 1012 eren reals sí.
  • de totes les prediccions, el classificador va predir que no per al total de 1518 vegades, de les quals 944 eren reals que no.

Amb aquesta anàlisi de la matriu de confusió podem concloure la puntuació de precisió del nostre model de predicció.

Puntuació de precisió:

La puntuació de precisió és el percentatge de precisió de les prediccions fetes pel model. Per al nostre model, la puntuació de precisió és de 0,60, la qual cosa és bastant precisa. Però, com més gran sigui la puntuació de precisió, el model de predicció serà eficient. Sempre heu d’orientar a una puntuació de precisió més alta per obtenir un model de predicció millor.

Seguint els passos comentats anteriorment, hem predit la possibilitat d’un joc casolà / fora de casa mitjançant el conjunt de dades de l’NBA. Després d’analitzar l’informe de classificació podem assumir la possibilitat d’un partit a casa / fora.

En aquest bloc hem debatut sobre la regressió logística en conceptes de python, com és diferent de l'enfocament lineal. A més, hem cobert una demostració mitjançant el conjunt de dades NBA. Per obtenir més informació i pràctica, podeu utilitzar un conjunt de dades que vulgueu i seguir els passos comentats per implementar la regressió logística a Python.

A més, consulteu els diversos blocs Data-Science de la plataforma edureka per dominar el científic de dades que teniu.

Si voleu aprendre Python i construir una carrera en ciències de la informació, consulteu el nostre interactiu en línia aquí, ve amb suport 24 * 7 per guiar-vos durant tot el vostre període d'aprenentatge.
Tens alguna pregunta? Si us plau, mencioneu-lo als comentaris i us respondrem.