Paano Magsagawa ng Logistic Regression Sa Python?



Logistic regression sa Python gamit ang sklearn upang mahulaan ang kinalabasan sa pamamagitan ng pagtukoy ng ugnayan sa pagitan ng umaasa at isa o higit pang mga independiyenteng variable.

Ang Logistic regression sa Python ay isang pamamaraang pagtatasa ng hula. Ginagamit din ito sa Pag-aaral ng Machine para sa mga problema sa pag-uuri ng binary. Sa blog na ito dumaan kami sa mga sumusunod na paksa upang maunawaan ang logistic regression sa Python:

  1. Ano ang Regression?
  2. Logistic Regression sa Python
  3. Logistic Regression vs Linear Regression
  4. Gumamit ng Mga Kaso
  5. Pagpapakita

Maaari mo ring i-refer ang detalyadong tutorial na ito sa pagbabalik sa logistic sa sawa na may isang pagpapakita para sa isang mas mahusay na pag-unawa o dumaan sa upang makabisado ang logistic regression.





Ano ang Regression?

Ang pagsusuri ay isang malakas na diskarteng pagsusuri sa istatistika. A umaasa variable ng aming interes ay ginagamit upang mahulaan ang mga halaga ng iba independiyenteng mga variable sa isang hanay ng data.

Natagpuan namin ang pagbabalik sa isang madaling maunawaan na paraan sa lahat ng oras. Tulad ng paghula ng panahon gamit ang data-set ng mga kondisyon ng panahon sa nakaraan.



Gumagamit ito ng maraming mga diskarte upang pag-aralan at hulaan ang kinalabasan, ngunit ang diin ay higit sa lahat ugnayan sa pagitan ng umaasang variable at isa o higit pang independiyenteng variable.

hinuhulaan ng pagsusuri ang kinalabasan sa isang variable ng binary na mayroon lamang dalawang posibleng kinalabasan.



Logistic Regression Sa Python

Ito ay isang pamamaraan upang pag-aralan ang isang data-set na mayroong isang umaasa na variable at isa o higit pang mga independiyenteng variable upang mahulaan ang kinalabasan sa isang binary variable, nangangahulugang magkakaroon lamang ito ng dalawang kinalabasan.

Ang umaasa na variable ay kategoryang sa kalikasan. Ang dependant variable ay tinukoy din bilang variable ng target at ang mga independiyenteng variable ay tinawag na tagahula .

Ang Logistic regression ay isang espesyal na kaso ng linear regression kung saan hinuhulaan lamang namin ang kinalabasan sa isang kategoryang variable. Hinuhulaan nito ang posibilidad ng kaganapan gamit ang pag-andar ng log.

Ginagamit namin ang Pag-andar / curve ng Sigmoid upang mahulaan ang kategoryang halaga. Ang halaga ng threshold ang magpapasya sa kinalabasan (panalo / talo).

Linear regression equation: y = β0 + β1X1 + β2X2…. + βnXn

  • Ang Y ay nangangahulugang umaasa na variable na kailangang mahulaan.
  • Ang β0 ay ang Y-intercept, na karaniwang ang punto sa linya na hinahawakan ang y-axis.
  • Ang β1 ay ang slope ng linya (ang slope ay maaaring maging negatibo o positibo depende sa ugnayan sa pagitan ng dependant variable at ang independiyenteng variable.)
  • Kinakatawan ng X dito ang independiyenteng variable na ginagamit upang mahulaan ang aming kinalabasan na umaasang halaga.

Pag-andar ng Sigmoid: p = 1/1 + e-Y

Mag-apply ng sigmoid function sa linear equation ng pag-urong.

logistic regression sa python-edureka

Equation ng Logistic Regression: p = 1/1 + e- (β0 + β1X1 + β2X2 ..... + βnXn)

Hayaan mong tingnan ang iba't ibang mga uri ng pag-urong sa logistik.

Mga Uri Ng Logistic Regression

keyerror: 'a'
    • Binary logistic regression - Mayroon lamang itong dalawang posibleng kinalabasan. Halimbawa- oo o hindi
    • Multinomial logistic regression - Mayroon itong tatlo o higit pang mga nominal na kategorya. Halimbawa-pusa, aso, elepante.
    • Ordinal logistic regression- Mayroon itong tatlo o higit pang mga kategoryang pang-ordinal, ordinal na kahulugan na ang mga kategorya ay magkakasunud-sunod. Halimbawa- mga marka ng gumagamit (1-5).

Linear Vs Logistic Regression

Habang ang linear regression ay maaaring magkaroon walang katapusang mga posibleng halaga, ang logistic regression ay mayroon tiyak na kinalabasan .

Ginagamit ang Linear regression kapag ang variable ng tugon ay tuluy-tuloy sa likas na katangian, ngunit ginagamit ang logistic regression kapag ang variable ng tugon ay kategorya sa kategorya.

Ang paghula ng isang defaulter sa isang bangko gamit ang mga detalye ng transaksyon sa nakaraan ay isang halimbawa ng pag-urong sa logistik, habang ang isang tuluy-tuloy na output tulad ng marka ng stock market ay isang halimbawa ng linear regression.

Gumamit ng Mga Kaso

Ang mga sumusunod ay ang mga kaso ng paggamit kung saan maaari kaming gumamit ng logistic regression.

Pagtataya ng Panahon

Ang mga hula sa panahon ay bunga ng lohikal na pagbabalik. Dito, sinusuri namin ang data ng mga nakaraang ulat sa panahon at hinuhulaan ang posibleng kinalabasan para sa isang tukoy na araw. Ngunit ang lohikal na pagbabalik ay mahuhulaan lamang ang kategoryang data, tulad ng pag-ulan o hindi.

Pagtukoy sa Karamdaman

Kaya natingamitinlohikal na pagbabalik sa tulong ng kasaysayan ng medikal ng pasyente upang mahulaan kung ang sakit ay positibo o negatibo sa anumang kaso.

Hinahayaan nating kumuha ng isang sample na naka-set na data upang makabuo ng isang modelo ng hula gamit ang pag-urong sa logistik.

Demo

Magbubuo kami ng isang modelo ng hulagamitlohikal na pagbabalik sa Python sa tulongngisang dataset,dito sasasakupin namin ang mga sumusunod na hakbang upang makamit ang lohikal na pagbabalik.

Nangongolekta ng datos

Ang pinakaunang hakbang para sa pagpapatupad ng logistic regression ay upang kolektahin ang data. Ilo-load namin ang csv file na naglalaman ng data-set sa mga program gamit ang pandas. Ginagamit namin ang data ng NBA para sa pagbuo ng modelo ng hula upang mahulaan ang posibilidad ng isang laro sa bahay o malayong laro, sa pamamagitan ng pagsusuri ng ugnayan sa pagitan ng nauugnay na data.

import pandas bilang pd import numpy bilang np import seaborn bilang sns import matplotlib.pyplot bilang plt df = pd.read_csv (r'C: UsersMohammadWaseemDocumentsdata.csv ') print (df.head (5))

Makukuha mo ang lahat ng data sa isang nababasa na format para sa mas madaling pagsusuri. At pagkatapos ay maaari mong matukoy ang mga umaasa at independiyenteng mga variable para sa iyong modelo.

Pagsusuri ng Data

Ang data-set ay pinag-aralan upang matukoy ang ugnayan sa pagitan ng mga variable. Sa pamamagitan ng paglikha ng iba't ibang mga balangkas upang suriin ang ugnayan sa pagitan ng mga variable.

sns.countplot ('Home', hue = 'WINorLOSS', data = df) plt.show ()

Sa itaas ay ang ugnayan sa pagitan ng porsyento ng panalo / talo patungkol sa larong tahanan / palayo. Shindi katuladmaaari nating lagyan ng plano ang grap ng ugnayan sa pagitan ng iba pang nauugnay na mga entry sa data.

Wrangling ng Data

Ang data-set ay nabago ayon sa target variable. Tatanggalin namin ang lahat ng mga null na halaga at ang mga halaga ng string pati na rin mula sa DataFrame.

print (df.isnull (). kabuuan ())

Susuriin namin ang lahat ng hindi nauugnay na data tulad ng mga null na halaga at mga halagang hindi kinakailangan habang binubuo ang modelo ng hula. Kung walang mga null na halaga sa NBA na ginagamit namin, magpapatuloy kami sa paghahati ng data.

Data ng Pagsubok at Pagsasanay

Para sa pagganap ng modelo ang data ay nahahati sa data ng pagsubok at data ng tren. Hinahati ang data gamit ang train_test_split . Ang data dito ay nahahati sa ratio na 70:30.

Ngayon, para sa hulaan ng modelo ang pag-andar sa pag-urong ng logistic ay ipinatupad sa pamamagitan ng pag-import ng modelo ng pag-urong sa logistic sa modyul na sklearn.

Pagkatapos ay umaangkop ang modelo sa hanay ng tren gamit ang fit function. Pagkatapos nito ay ginagawa ang hula gamit ang pagpapaandar na hula.

mula sa sklearn.model_selection import train_test_split mula sklearn.linear_model import LogisticRegression mula sa sklearn.metrics import classification_report mula sa sklearn.metrics import pagkalito_matrix, katumpakan_score x = df.drop ('Home', axis = 1) y = df ['Home'] 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) hula = logmodel.predict (x_test) print (classification_report () i-print (pagkalito_matrix (y_test, mga hula)) i-print (kawastuhan_score (y_test, mga hula))

Ulat sa Pag-uuri:

Ipinapakita ng ulat sa pag-uuri ang Katumpakan , Recall, F1 at Suporta mga marka para sa modelo.

Katumpakan Ang ibig sabihin ng iskor ay ang antas na hanggang sa kung saan ang hula na ginawa ng modelo ay tumpak. Ang katumpakan para sa isang laro sa bahay ay 0.62 at para sa malayong laro ay 0.58 .

Alalahanin ay ang halaga hanggang sa kung saan maaaring mahulaan ng modelo ang kinalabasan. Recall para sa isang laro sa bahay ay 0.57 at para sa isang malayong laro ay 0.64 . Ang mga marka ng F1 at Suporta ay ang dami ng nasubok na data para sa mga hula. Sa set ng data ng NBA ang data na nasubukan para sa home game ay 1662 at para sa malayong laro ay 1586 .

Pagkalito matrix:

Ang pagkalito matrix ay isang talahanayan na naglalarawan sa pagganap ng isang modelo ng hula. Ang isang matrix ng pagkalito ay naglalaman ng mga aktwal na halaga at hinulaang halaga. maaari naming gamitin ang mga halagang ito upang makalkula ang marka ng katumpakan ng modelo.

Confusion matrix heatmap:

Hinahayaan ang isang balangkas ng isang heat-map ng pagkalito matrix gamit ang seaborn at upang mailarawan ang modelo ng hula na aming binuo. Upang magbalak ng isang heatmap, kinakailangan ang sumusunod na syntax.

sns.heatmap (pd.DataFrame (pagkalito_matrix (y_test, mga hula))) plt.show ()

i-print sa string

Sa pamamagitan ng pagtingin sa heatmap, maaari nating tapusin ang sumusunod:

  • Sa lahat ng mga hula, hinulaan ng nagbabagu-bago ang oo sa kabuuang 1730 beses, kung saan 1012 ang aktwal na oo.
  • sa lahat ng mga hula, hinulaan ng tagapag-uri ang hindi para sa kabuuang 1518 beses, kung saan 944 ang aktwal na hindi.

Sa pag-aaral na ito ng matrix ng pagkalito maaari naming tapusin ang marka ng kawastuhan para sa aming modelo ng hula.

Marka ng kawastuhan:

Ang marka ng kawastuhan ay ang porsyento ng kawastuhan ng mga hula na ginawa ng modelo. Para sa aming modelo ang marka ng kawastuhan ay 0.60, na kung saan ay lubos na tumpak. Ngunit mas maraming iskor sa kawastuhan ang mahusay ay modelo ka ng hula. Dapat mong laging layunin ang isang mas mataas na marka ng kawastuhan para sa isang mas mahusay na modelo ng hula.

Sa pamamagitan ng pagsunod sa mga hakbang na tinalakay sa itaas, nahulaan namin ang posibilidad ng isang laro sa bahay / palayo gamit ang NBA dataset. Matapos pag-aralan ang ulat ng pag-uuri maaari nating ipalagay ang posibilidad ng isang laro sa bahay / palayo.

Sa blog na ito tinalakay natin ang logistic regression sa mga konsepto ng sawa, kung paano ito naiiba mula sa linear na diskarte. Gayundin, sumaklaw kami ng isang demonstrasyon gamit ang NBA Dataset. Para sa higit pang pananaw at kasanayan, maaari kang gumamit ng isang pinili mong dataset at sundin ang mga hakbang na tinalakay upang maipatupad ang logistic regression sa Python.

Gayundin, mag-checkout sa iba't ibang mga blog ng Data-Science sa edureka platform upang makabisado ang data scientist sa iyo.

Kung nais mong malaman ang Python at bumuo ng isang karera sa agham ng Data, pagkatapos suriin ang aming interactive, live-online dito, kasama yan ng 24 * 7 na suporta upang gabayan ka sa buong panahon ng iyong pag-aaral.
May tanong ka ba? Mangyaring banggitin ito sa mga komento at babalikan ka namin.