Ta članek je bil objavljen kot del Blogathon o znanosti o podatkih
V tem blogu bomo preučili vse, kar morate vedeti o logistični regresiji, da začnete in gradite model v Pythonu. Če ste začetnik strojnega učenja in še nikoli niste zgradili modela, ne skrbite; ko sem to prebral, sem prepričan, da boste to zmogli.
Za tiste, ki ste novi v tem, začnimo z osnovnim razumevanjem strojnega učenja, preden preidemo na logistično regresijo.
Preprosto povedano, model strojnega učenja uporablja algoritme, v katerih se stroj uči iz podatkov, tako kot se ljudje učijo iz svojih izkušenj. Strojno učenje omogoča računalnikom, da najdejo skrite vpoglede, ne da bi bili izrecno programirani.
Vrste algoritmov strojnega učenja
Na podlagi vrste izhoda in opravljene naloge so modeli strojnega učenja razvrščeni v naslednje vrste
Logistična regresija spada v vrsto nadzorovanega učenja. Naučimo se več o tem.
Nadzorovano učenje
To je vrsta strojnega učenja, ki uporablja označene podatke iz preteklosti. Modeli se šolajo z že označenimi vzorci.
Primer: Imate pretekle podatke nogometne prve lige in na podlagi teh podatkov in rezultatov prejšnjih tekem napoveste, katera ekipa bo zmagala na naslednji tekmi.
Nadzorovano učenje nadalje se deli na dve vrsti -
- regresija – ciljna/izhodna spremenljivka je zvezna.
- Razvrstitev – ciljna/izhodna spremenljivka je kategorična.
Logistična regresija je klasifikacijski model. Pomaga pri napovedovanju, kjer je izhodna spremenljivka kategorična. S tem podrobneje razumemo logistično regresijo.
Kaj je logistična regresija?
Kot je bilo že omenjeno, se logistična regresija uporablja za reševanje težav s klasifikacijo. Modeli se učijo na zgodovinskih označenih nizih podatkov in cilj napovedati, v katero kategorijo bodo spadala nova opazovanja.
Spodaj je nekaj primerov problemov binarne klasifikacije, ki jih je mogoče rešiti z uporabo logistične regresije.
- Verjetnost, da politični kandidat zmaga ali izgubi na naslednjih volitvah.
- Ali bo stroj v proizvodnji prenehal delovati v nekaj dneh ali ne.
- Filtriranje e-pošte kot vsiljene pošte ali ne.
Logistična regresija je zelo primerna, ko moramo predvideti binarni odgovor (samo 2 možni vrednosti, kot sta da ali ne).
Izraz logistična regresija izhaja iz "Logistična funkcija,"Ki je znan tudi kot"Sigmoidna funkcija”. Naučimo se več o tem.
Logistična/sigmoidna funkcija
Sigmoidna funkcija, splošno znana kot logistična funkcija, napove verjetnost pojava binarnega izida. Funkcija sprejme poljubno vrednost in ga pretvori v število med 0 in 1. Sigmoidna funkcija je aktivacijska funkcija strojnega učenja, ki se uporablja za uvajanje nelinearnosti v model strojnega učenja.
Formula logistične funkcije je:
Ko narišemo zgornjo enačbo, dobimo S oblika krivulja kot spodaj.
Ključna točka zgornjega grafa je, da ne glede na to, katero vrednost x uporabimo v logistični ali sigmoidni funkciji, izhod vzdolž navpične osi bo vedno med 0 in 1.
Ko je rezultat sigmoidne funkcije večji od 0.5, razvrstimo oznako v razred 1 ali pozitivni razred; če je manjši od 0.5, ga lahko uvrstimo v negativni razred oz
Razumejmo, matematika za sigmoidno funkcijo.
Logistična regresija je izpeljana iz linearne regresije, ki obide njeno izhodno vrednost v sigmoidno funkcijo, enačba za linearno regresijo pa je –
Pri linearni regresiji poskušamo najti črto, ki se najbolj prilega, tako da spremenimo vrednosti m in c iz zgornje enačbe, y (izhod) pa lahko sprejme poljubne vrednosti od -neskončno do +neskončno. Vendar pa logistična regresija napove verjetnost izida, ki je lahko med 0 in 1. Torej, za pretvorbo teh vrednosti med 0 v 1 uporabimo sigmoidno funkcijo.
ko dobimo našo izhodno vrednost, moramo videti, kako deluje naš model, za to pa moramo izračunati funkcijo izgube. Funkcija izgube nam pove, koliko se naš predvideni izhod razlikuje od dejanskega izhoda. Dober model bi moral imeti manjšo vrednost izgube. Poglejmo, kako izračunamo funkcijo izgube.
Ko je y=1, mora biti predvidena vrednost y blizu 1, da se zmanjša izguba. Zdaj pa poglejmo, kdaj je naša dejanska izhodna vrednost 0.
Ko je y=0, mora biti predvidena vrednost y blizu 0, da se zmanjša izguba.
Zdaj, ko smo pokrili osnove, preidimo na implementacijo modela logistične regresije.
Postopna implementacija modela logistične regresije v Python
Na podlagi parametrov v naboru podatkov bomo zgradili a Logistični regresijski model v Pythonu za napovedati, ali bo zaposleni napredoval ali ne.
Za vse so cikli napredovanj ali ocenjevanj najbolj razburljivi časi v letu. Končna napredovanja se razkrijejo šele, ko so zaposleni ovrednoteni po različnih kriterijih, kar povzroči zamudo pri prehodu na nove odgovornosti. Izdelali bomo model strojnega učenja za predvidevanje, kdo je kvalificiran za napredovanje, da pospešimo proces.
Lahko bolje razumete izjavo o problemu in prenesite nabor podatkov iz Nadzorovano učenje.
Uvoz knjižnic
Začeli bomo z nalaganjem potrebnih knjižnic za ustvarjanje modela logistične regresije.
import numpy as np import pandas as pd #Libraries for data visualization import matplotlib.pyplot as plt import seaborn as sns #Uporabili bomo sklearn za gradnjo logističnega regresijskega modela iz sklearn.linear_model import LogisticRegression
Nalaganje nabora podatkov
Bomo
uporabite nabor podatkov HR Analytics z zgornje povezave. Začeli bomo z nalaganjem
nabor podatkov iz prenesene datoteke CSV s spodnjo kodo.
# Nalaganje nabora podatkov iz datoteke CSV data= pd.read_csv("train_LZdllcl.csv",sep=",")
Razumevanje podatkov za logistično regresijo
Vedno je dobro izvedeti več o podatkih, potem ko jih naložite, na primer o obliki podatkov in statističnih informacijah o stolpcih v naboru podatkov. Vse to lahko dosežemo s spodnjo kodo:
#shape of dataset print("shape of dataframe is : ", data.shape) #Oglejmo si prvih 5 vrstic podatkovnega niza data.head(5) # povzetek podatkov data.info() #Get Statistical podrobnosti podatkovnih podatkov. opisati ()
V tem naboru podatkov je skupaj 14 spremenljivk s skupno 54808 opazovanji. “is_promoted” je naš Ciljna spremenljivka, ki ima dve kategoriji, kodirani kot 1 (povišano) in 0 (nepovišano), ostalo pa so vse vhodne funkcije. Poleg tega lahko opazimo, da naš nabor podatkov vsebuje tako numerične kot kategorične značilnosti.
Čiščenje podatkov
Čiščenje podatkov je ključna faza v procesu predhodne obdelave podatkov. Bomo odstranite stolpce z eno edinstveno vrednostjo ker bo njihova varianca 0 in nam ne bodo pomagali ničesar predvideti.
Poglejmo, ali obstajajo stolpci, ki
imajo samo eno edinstveno vrednost.
#Preverjanje unikatnih vrednosti števcev v stolpcih featureValues={} za d v data.columns.tolist(): count=data[d].nunique() if count==1: featureValues[d]=count # Seznam stolpcev, ki imajo ista 1 edinstvena vrednost cols_to_drop= list(featureValues.keys()) print("Stolpci z 1 edinstveno vrednostjo so :n",cols_to_drop)
To pomeni, da ni nobenega stolpca, ki bi imel samo eno edinstveno vrednost.
Bomo zdaj izpustite stolpec employee_id, ker je le edinstven identifikatorin
nato preverite vsako polje v naboru podatkov za odstotke ničelne vrednosti.
#Izbrišite stolpec Employee_id, saj gre samo za edinstven ID data.drop("employee_id",inplace=True,axis=1) #Preverjanje ničelnega odstotka data.isnull().mean()*100
prejšnja_letna_ocena in Izobraževanje obe lastnosti imajo ničelne vrednosti. Posledično bomo te ničelne vrednosti pripisali, namesto da bi jih izpustili. Po pregledu teh stolpcev smo odkrili, da –
- Za vrstice z ničlo prejšnja_letna_ocena, vidimo, da je njihova delovna doba 1, zaradi česar morda nimajo ocene prejšnjega leta. Kot rezultat, uporabili bomo 0 za pripis ničelnih vrednosti.
- Za Izobraževanje stolpec, bomo pripiše ničelne vrednosti z načinom.
#izpolnite manjkajočo vrednost data["previous_year_rating"]= data["previous_year_rating"].fillna(0) #sprememba vrste v int data["previous_year_rating"]= data["previous_year_rating"].astype("int") #Ugotovite vrednost načina za podatke o izobrazbi["education"].mode() #izpolnite manjkajočo vrednost s podatki o načinu["education"]= data["education"].fillna("Bachelor's")
Zdaj nimamo ničelnih ali manjkajočih vrednosti v naših podatkih. Torej, dajmo
nadaljujte z našim naslednjim korakom. Nič ni oz
manjkajoče vrednosti v naših podatkih. Torej, pojdimo na naslednji korak.
Raziskovalna analiza podatkov pred izdelavo modela logistične regresije
Pridobivanje vpogledov v podatke in njihova vizualizacija je pomembna stopnja v strojnem učenju, saj nam omogoča boljši pogled na funkcije in njihove odnose.
Poglejmo porazdelitev ciljne spremenljivke v naboru podatkov.
# cchart za porazdelitev ciljne spremenljivke fig= plt.figure(figsize=(10,3) ) fig.add_subplot(1,2,1) a= data["is_promoted"].value_counts(normalize=True).plot.pie () fig.add_subplot(1,2,2) churnchart=sns.countplot(x=data["is_promoted"]) plt.tight_layout() plt.show()
Iz zgornjih grafikonov lahko opazimo, da je podatkov o napredovanih zaposlenih manj kot podatkov o nenapredovanih zaposlenih, kar kaže, da obstaja razredno neravnovesje ker ima razred 0 več podatkovnih točk ali opazovanj kot razred.
Predstavljajmo si, ali obstaja kakšna povezava med ciljno spremenljivko in drugimi spremenljivkami.
# Vizualizirajte razmerje med promoviranimi in drugimi funkcijami fig= plt.figure(figsize=(10,5) ) fig.add_subplot(1,3,1) ar_6=sns.boxplot(x=data["is_promoted"],y=data ["length_of_service"]) fig.add_subplot(1,3,2) ar_6=sns.boxplot(x=data["is_promoted"],y=data["avg_training_score"]) fig.add_subplot(1,3,3) ar_6=sns.boxplot(x=data["is_promoted"],y=data["previous_year_rating"]) plt.tight_layout() plt.show()
Za zaposlenega Če je vrednost avg_training_score višja, so možnosti za napredovanje večje.
Narisali bomo korelacije med različnimi spremenljivkami z uporabo toplotne karte.
#korelacija med funkcijami corr_plot = sns.heatmap(data.corr(),annot = True,linewidths=3 ) plt.title("Korelacijski grafikon") plt.show()
Nobena od značilnosti ni močno povezana med seboj, razen starost in dolžina
servis.
Inženiring funkcij
Pri inženiringu funkcij uporabljamo strokovno znanje o domeni za ustvarjanje novih funkcij iz neobdelanih podatkov ali pretvarjamo ali kodiramo funkcije. Zakodirali bomo kategorične značilnosti oz ustvarite navidezne funkcije od njih v tem razdelku.
#Pretvarjanje kategoričnih stolpcev v eno vroče kodiranje data["gender"]=data["gender"].apply(lambda x: 1 if x=="m" else 0) #seznam stolpcev cols = data.select_dtypes([" object"]).columns #Create dummy variables ds=pd.get_dummies(data[cols],drop_first=True) ds #concat novo ustvarjene stolpce z izvirnim podatkovnim okvirom data=pd.concat([data,ds],axis=1) #Spusti izvirne stolpce data.drop(cols,axis=1,inplace=True)
Train-Test Split
Nabor podatkov bomo razdelili na dve podmnožici: usposabljanje in testiranje. Za izvedbo razdelitve train-test bomo uporabili strojno učenje Scikit-learn.
- Podnabor vlakov – to podmnožico bomo uporabili za prilagajanje/usposabljanje modela
- Testna podmnožica – to podmnožico bomo uporabili za ovrednotenje našega modela
from sklearn.model_selection import train_test_split #razdeli podatke na odvisne spremenljivke(X) in neodvisne spremenljivke(y), ki bi jih predvideli y = data.pop("is_promoted") X = podatki #Razdelimo X in y z uporabo Train test split X_train, X_test,y_train,y_test = train_test_split(X,y,random_state=42,train_size=0.8) #pridobi obliko vlaka in testne podatke print("velikost vlaka X : ",X_train.shape) print("velikost vlaka y : ", y_train.shape) print("testna velikost X : ",X_test.shape) print("testna velikost y : ",y_test.shape)
Po razdelitvi nabora podatkov imamo 43846 opazovanj v podnaboru za usposabljanje in 10962 v podnaboru testov.
Ko se poglobimo v nabor podatkov, preidimo na naslednjo fazo skaliranja funkcij.
Skaliranje/normalizacija funkcij
Zakaj je skaliranje funkcij pomembno?
Kot je bilo že omenjeno, logistična regresija uporablja gradientni spust kot enega od pristopov za doseganje najboljšega rezultata, skaliranje funkcij pa pomaga pri pospešiti Gradientni spust konvergenčni proces. Kadar imamo značilnosti, ki se močno razlikujejo po velikosti, algoritem predpostavlja, da so značilnosti z veliko velikostjo pomembnejše od tistih z majhno magnitudo. Posledično postanejo te značilnosti pomembnejše, ko urimo model.
Zaradi tega skaliranje funkcij je potrebno za uvrstitev vseh funkcij v isti obseg, ne glede na njihovo relevantnost.
Tehnike skaliranja funkcij
Vse funkcije združimo v isti obseg z uporabo skaliranja funkcij. Obstaja veliko načinov za skaliranje funkcij, kot so normalizacija, standardizacija, robustno skaliranje, minimalno-max skaliranje itd. Tukaj pa bomo razpravljali o tehniki standardizacije, ki jo bomo uporabili za naše funkcije.
Pri standardizaciji bodo funkcije skalirane tako, da bodo imele povprečje 0 in standardno odstopanje 1. It se ne spreminja v prednastavljeno območje. Funkcije so skalirane z uporabo spodnje formule:
z = (x – u) / s
Kje u je srednja vrednost vzorcev za usposabljanje in s je standardna deviacija vzorcev za usposabljanje.
Poglejmo, kako narediti skaliranje funkcij v pythonu z uporabo Scikit-learn.
#Feature skaliranje iz sklearn.preprocessing import StandardScaler scale=StandardScaler() X_train = scale.fit_transform(X_train) X_test = scale.transform(X_test)
Razredno neravnovesje
Kaj je razredno neravnovesje?
ko ima nabor podatkov več podatkovnih točk oz
opažanj, ki pripadajo eni kategoriji in zelo malo drugi, imenujemo
to je problem razrednega neravnovesja od distribucija razrednih oznak je
ni uravnotežena in nagnjena. Poglejmo, ali imamo problem razrednega neravnovesja.
#preveri distribucijo oznak y_train.value_counts(normalize=True)
Opazimo lahko, da je večina oznak iz razreda 0 in le nekaj jih je iz razreda 1.
If uporabljamo to distribucijo za razvoj našega modela lahko postane pristranski k napovedovanju večinskega razreda, saj ne bo dovolj podatkov za učenje vzorcev manjšinskega razreda. Model bo začni napovedovati vsako novo opazovanje kot 0 or večinski razred. (V našem problemu zaposleni ne napreduje). Tu bomo dobili večjo natančnost modela, vendar to ne bo spodoben model, ker je ne bo napovedal razred 1 oz manjšinski razred, ki je ključen razred.
Zato moramo pri razvoju našega modela logistične regresije upoštevati razredno neravnovesje.
Kako ravnati z razrednim neravnovesjem?
Obstajajo različni pristopi k reševanju razrednega neravnovesja, kot npr povečanje vzorcev manjšinskih razredov or padajoči vzorci večinskega razreda da zagotovimo, da imata oba razreda enako porazdelitev.
Ker za ustvarjanje modela uporabljamo strojno knjižnico Scikit-learn, ima ta implementacija logistične regresije, ki podpira ponderiranje razredov. Uporabili bomo vgrajeni parameter “teža_razreda” med ustvarjanjem primerka modela logistične regresije.
Večinski in manjšinski razredi bodo imeli ločene uteži. Med fazo usposabljanja bodo razlike v teži vplivale na razvrstitev razredov.
Namen dodajanja uteži razreda je kaznovati manjšinski razred za napačno razvrstitev z nastavitvijo višje uteži razreda, medtem ko se utež večinskega razreda zmanjša.
Zgradite in učite model logistične regresije v Pythonu
Za implementacijo logistične regresije bomo uporabili knjižnico Scikit-learn. Začeli bomo z izgradnjo osnovnega modela s privzetimi parametri, nato pa si bomo ogledali, kako ga lahko izboljšamo z uravnavanjem hiperparametrov.
Kot smo že omenili, bomo uporabili parameter »class_weight« za reševanje problema neravnovesja razredov. Začnimo z ustvarjanjem našega osnovnega modela s spodnjo kodo.
#import knjižnice iz sklearn.linear_model import LogisticRegression #make instance modela s privzetimi parametri razen uteži razreda #saj bomo dodali uteži razreda zaradi težave z neravnovesjem razreda lr_basemodel =LogisticRegression(class_weight={0:0.1,1:0.9}) # train model za učenje odnosov med vhodnimi in izhodnimi spremenljivkami lr_basemodel.fit(X_train,y_train)
Po usposabljanju našega modela na naboru podatkov za usposabljanje smo uporabili naš model za predvidevanje vrednosti za nabor testnih podatkov in jih zabeležili v spremenljivko y_pred_basemodel.
Poglejmo, katere metrike uporabiti in kako oceniti naš osnovni model.
Meritve vrednotenja modela
Za oceno uspešnosti ali našega modela uporabili bomo "rezultat f1", saj je to a neravnovesje razreda Problem tudi uporaba natančnosti kot metrike uspešnosti ni dobra, lahko rečemo, da je rezultat f1 glavna metrika, ko imamo težavo z neravnovesjem razreda. Formula za izračun ocene F1 je naslednja:
Ocena F1 = 2 * (odpoklic * natančnost) / (odpoklic + natančnost)
Precision je razmerje med natančno napovedanimi pozitivnimi opažanji in skupnimi napovedanimi pozitivnimi opazovanji.
Natančnost = TP / TP + FP
Recall je razmerje med natančno napovedanimi pozitivnimi opazovanji in vsemi opazovanji v dejanskem razredu – da.
Odpoklic = TP / TP + FN
Ocena F1 je tehtano povprečje natančnosti in priklica. Zato ta rezultat upošteva lažno pozitivne in lažno negativne rezultate.
Ocenimo naš osnovni model z oceno f1.
from sklearn.metrics import f1_score print("rezultat f1 za osnovni model je: ", f1_score(y_test,y_pred_basemodel))
Na našem osnovnem modelu, ustvarjenem s privzetimi parametri, smo dobili rezultat 0.37 f1.
Do te točke smo videli, kako ustvariti logistični regresijski model z uporabo privzetih parametrov.
Zdaj pa povečajmo zmogljivost modela in jo znova ocenimo po nastavitvi hiperparametrov modela.
Optimizacija hiperparametrov za logistični regresijski model
Parametri modela (kot so teža, pristranskost itd.) se naučijo iz podatkov, medtem ko hiperparametri določajo, kako naj bo naš model organiziran. Postopek iskanja optimalnega prileganja ali idealne arhitekture modela je znan kot uravnavanje hiperparametrov. Hiperparametri nadzirajte preveč ali premalo opremljenost modela. Nastavitev hiperparametrov je mogoče izvesti z uporabo algoritmov, kot je Iskanje mrež or Naključno iskanje.
Uporabili bomo iskanje po mreži, ki je najbolj osnovna metoda iskanja optimalnih vrednosti za hiperparametre. Če želite nastaviti hiperparametre, sledite spodnjim korakom:
- Ustvarite primerek modela razreda logistične regresije
- Določite hiperparametre z vsemi možnimi vrednostmi
- Določite metrike vrednotenja uspešnosti
- Uporabite navzkrižno preverjanje
- Usposobite model z uporabo nabora podatkov za usposabljanje
- Določite najboljše vrednosti za dane hiperparametre.
S spodnjo kodo lahko implementiramo nastavitev hiperparametrov v pythonu z uporabo metode Grid Search.
#Uravnavanje hiperparametrov # definiranje modela/ustvarjanje primerka lr=LogisticRegression() #uravnavanje uteži za manjšinski razred, potem bo utež za večinski razred 1-utež manjšinskega razreda #Nastavitev obsega za uteži razredov uteži = np.linspace(0.0,0.99,500, 0.1) #določanje vseh hiperparametrov z možnimi vrednostmi param= {'C': [0.5, 1,10,15,20, 1], 'penalty': ['l2', 'l0'],"class_weight":[{ 1:x ,1.0:5 -x} za x v utežih]} # ustvarite 5 zgibov zgibov = StratifiedKFold(n_splits = 42, shuffle = True, random_state = 1) #Gridsearch for hyperparam tuning model= GridSearchCV(estimator= lr,param_grid =param,scoring="fXNUMX",cv=folds,return_train_score=True) #train model za učenje odnosov med x in y model.fit(X_train,y_train)
Po prilagoditvi modela bomo izluščili najboljše vrednosti za vse navedene hiperparametre.
# print najboljši hiperparametri print("Najboljši rezultat F1: ", model.best_score_) print("Najboljši hiperparametri: ", model.best_params_)
Sedaj bomo zgradili naš model logistične regresije z uporabo zgornjih vrednosti, ki smo jih dobili s prilagajanjem hiperparametrov.
Zgradite model z uporabo optimalnih vrednosti hiperparametrov
Uporabimo spodnjo kodo, da ponovno zgradimo naš model.
#Ponovna izdelava modela z najboljšimi parametri lr2=LogisticRegression(class_weight={0:0.27,1:0.73},C=20,penalty="l2") lr2.fit(X_train,y_train)
Po usposabljanju našega končnega modela je čas, da ocenimo naš model logistične regresije z uporabo izbranih meritev.
Vrednotenje modela
Naš model bomo ocenili na testnem naboru podatkov. Najprej bomo napovedali vrednosti na naboru podatkov Test.
Za merilo uspešnosti smo izbrali »rezultat f1«. zgoraj, vendar si za namene učenja poglejmo rezultate za vse meritve, vključno z meritvami zmedenosti, natančnostjo, priklicem, oceno ROC-AUC in končno oceno f1.
Nato bomo primerjali rezultat f1 našega končnega modela z našim osnovnim modelom, da vidimo, ali je izboljšan.
Za izračun rezultata bomo uporabili spodnjo kodo
za različne meritve:
# napovedi verjetnosti na testu in prevzeti verjetnost za razred 1([:1]) y_pred_prob_test = lr2.predict_proba(X_test)[:, 1] #predvideti oznake na testnem nizu podatkov y_pred_test = lr2.predict(X_test) # ustvariti matriko onfusion cm = confusion_matrix(y_test, y_pred_test) print("Matrika zmede je :nn",cm) print("n") # ROC- AUC rezultat print("ROC-AUC testni nabor rezultatov: t", roc_auc_score(y_test,y_pred_prob_test)) # Precision score print("precision score test dataset: t", precision_score(y_test,y_pred_test)) #Recall Score print("Recall score test dataset: t", recall_score(y_test,y_pred_test)) #f1 score print("f1 score test nabor podatkov: t", f1_score(y_test,y_pred_test))
Vidimo lahko, da smo s prilagoditvijo hiperparametrov lahko izboljšali zmogljivost našega modela, saj je naš rezultat F1 za končni model (0.43) višji kot pri osnovnem modelu (0.37). Po uravnavanju hiperparametrov je model dobil oceno 0.88 ROC-AUC.
S tem smo lahko sestavili naš model logistične regresije in ga preizkusili na naboru podatkov Test. Več inženiringa funkcij, optimizacije hiperparametrov in tehnik navzkrižnega preverjanja lahko še izboljša njegovo zmogljivost.
zaključek
Svojo učno pot smo začeli z razumevanjem osnov strojnega učenja in logistične regresije. Nato smo prešli na implementacijo modela logistične regresije v Pythonu. Naučili smo se ključnih korakov pri izdelavi modela logistične regresije, kot so čiščenje podatkov, EDA, inženiring funkcij, skaliranje funkcij, obravnavanje težav z neravnovesjem razredov, usposabljanje, napovedovanje in vrednotenje modela na testnem nizu podatkov. Poleg tega smo se naučili uporabljati Hyperparameter Tuning za izboljšanje učinkovitosti našega modela in se izogniti prevelikemu in premajhnemu prilagajanju.
Upam, da vam bodo te informacije koristile in jih boste preizkusili.
Poveži se z mano naprej LinkedIn.
Mediji, prikazani v tem članku, niso v lasti Analytics Vidhya in se uporabljajo po presoji avtorja.
- "
- 98
- Račun
- algoritem
- algoritmi
- vsi
- Analiza
- analitika
- Arhitektura
- članek
- Osnove
- BEST
- Blog
- Pasovi
- izgradnjo
- Building
- kvote
- Charts
- Razvrstitev
- čiščenje
- Koda
- Stolpec
- računalniki
- zmeda
- Ustvarjanje
- krivulja
- datum
- Analiza podatkov
- vizualizacija podatkov
- deliti
- zamuda
- Podatki
- Razvoj
- odkril
- Drop
- Izobraževanje
- Volitve
- E-naslov
- Zaposleni
- Inženiring
- itd
- Doživetja
- Feature
- Lastnosti
- Slika
- prva
- fit
- sledi
- nogomet
- funkcija
- igra
- Spol
- dobro
- Mreža
- vodi
- Ravnanje
- tukaj
- Kako
- Kako
- hr
- HTTPS
- Ljudje
- Ideja
- slika
- Vključno
- Povečajte
- vplivajo
- Podatki
- vpogledi
- IT
- Ključne
- Oznake
- velika
- UČITE
- naučili
- učenje
- Knjižnica
- vrstica
- LINK
- Seznam
- strojno učenje
- Večina
- proizvodnja
- Stave
- mediji
- Meritve
- Manjšina
- ML
- Model
- premikanje
- Nove funkcije
- Ostalo
- performance
- Precision
- napoved
- Napovedi
- Premier League
- promocija
- Python
- območje
- Surovi
- surovi podatki
- reading
- zmanjša
- regresija
- Razmerja
- REST
- Rezultati
- tek
- Lestvica
- skaliranje
- Znanost
- Iskalnik
- nastavitev
- Enostavno
- Velikosti
- majhna
- So
- SOLVE
- spam
- hitrost
- po delih
- Stage
- Začetek
- začel
- Izjava
- nadzorovano učenje
- Podpira
- ciljna
- pove
- Test
- Osnove
- čas
- usposabljanje
- us
- vrednost
- Poglej
- vizualizacija
- WHO
- zmago
- deluje
- X
- leto