Classificatietechnieken zijn een belangrijk onderdeel van machinale leer– en gegevensverwerkingstoepassingen. Ongeveer 70% van de problemen in de Data Science zijn classificatieproblemen. Er zijn veel classificatieproblemen beschikbaar, maar de logistieke regressie is gebruikelijk en kan een nuttige regressiemethode zijn voor het oplossen van het binaire classificatieprobleem. Een andere categorie van classificatie is Multinomiale classificatie, die de problemen behandelt waarbij meerdere klassen aanwezig zijn binnen de doelvariabele. Zo is bijvoorbeeld IRIS-dataset een echt bekend voorbeeld van multi-classificatie. Andere voorbeelden zijn het classificeren van artikel/blog/document categorie.

Logistieke Regressie wordt vaak gebruikt voor verschillende classificatieproblemen zoals spamdetectie. Diabetesvoorspelling, of een bepaalde klant een bepaald product zal kopen of een andere concurrent zal omkopen, of de gebruiker nu wel of niet op een bepaalde reclamelink zal klikken, en veel meer voorbeelden liggen in de emmer.

Logistieke Regressie is een van de meest eenvoudige en veelgebruikte Machine Learning algoritmes voor twee-klassen classificatie. het is gemakkelijk te implementeren en kan worden gebruikt omdat de basislijn voor een binaire classificatie probleem. De basisconcepten zijn ook constructief in diepgaand leren. Logistieke regressie beschrijft en schat het verband tussen één afhankelijke binaire variabele en onafhankelijke variabelen.

Logistieke Regressie

Logistieke regressie kan een statistische procedure zijn voor het voorspellen van binaire klassen. het resultaat of de doelvariabele is tweeledig van aard. Dichotome betekent dat er slechts twee klassen mogelijk zijn. Zo wordt het vaak gebruikt voor problemen met de opsporing van kanker. Het berekent de waarschijnlijkheid dat een incident zich voordoet.

Het is een speciaal geval van rechtlijnige regressie waarbij de doelvariabele categorisch van aard is. Het gebruikt een logboek van kansen omdat de variabele . Logistic Regression voorspelt de waarschijnlijkheid van het optreden van een binaire gebeurtenis met behulp van een logit-functie.

Lineaire Regressievergelijking:

http://res.cloudinary.com/dyd911kmh/image/upload/f_auto,q_auto:best/v1534281880/image1_ga8gze.png

Waarbij y afhankelijk is van variabele en x1, x2 … en Xn verklarende variabelen zijn.

Sigmoid Functie:

http://res.cloudinary.com/dyd911kmh/image/upload/f_auto,q_auto:best/v1534281880/image2_kwxquj.png

Sigmoid-functie toepassen op lineaire regressie:

http://res.cloudinary.com/dyd911kmh/image/upload/f_auto,q_auto:best/v1534281880/image3_qldafx.png

Eigenschappen van Logistieke Regressie:

De variabele in logistieke regressie volgt de binomiale verdeling.

Schatting wordt voltooid door maximale waarschijnlijkheid.

Geen R-vierkant, de geschiktheid van het model wordt berekend door middel van Concordantie, KS-Statistieken.

http://res.cloudinary.com/dyd911kmh/image/upload/f_auto,q_auto:best/v1534281070/linear_vs_logistic_regression_edxw03.png

Lineaire Regressie Vs. Logistieke Regressie

Lineaire regressie geeft u eindeloze output, maar logistieke regressie zorgt voor een continue output. Een voorbeeld van de continue output is de huizenprijs en de aandelenprijs. Voorbeeld van de discrete output is het voorspellen of een patiënt kanker heeft of niet, het voorspellen of de klant zal karnen. Rechte regressie wordt geschat met behulp van de gewone methode van de kleinste kwadraten (OLS), terwijl logistieke regressie wordt geschat met behulp van de Maximale Waarschijnlijkheidsschatting (MLE) benadering.

Maximale Waarschijnlijkheidsschatting Vs. Minst Vierkante Methode

De MLE kan een “waarschijnlijkheids”-maximalisatiemethode zijn, terwijl OLS een afstandsminimalisatiemethode kan zijn. Het maximaliseren van de waarschijnlijkheidsfunctie bepaalt de parameters die vermoedelijk de geobserveerde gegevens opleveren. Vanuit een statistisch oogpunt stelt de MLE het gemiddelde en de variantie als parameters in bij het bepalen van de exacte parameterwaarden voor een bepaald model. Deze set van parameters worden vaak gebruikt voor het voorspellen van de informatie die nodig is tijdens een Gaussische verdeling.

Gewone methode van de kleinste kwadraten schattingen worden berekend door het aanbrengen van een regressiecurve op gegeven gegeven gegevenspunten die de minimale som van de kwadraatafwijkingen (kleinste kwadraatfout) heeft. Beide zijn niet bedoeld om de parameters van een rechthoekig regressiemodel te schatten. MLE gaat uit van een waarschijnlijkheidsmassafunctie, terwijl OLS geen stochastische aannames nodig heeft om de afstand te minimaliseren.

Sigmoid Functie

De sigmoid-functie, ook wel logistieke functie genoemd, geeft een ‘S’-vormige curve die elk reëel gewaardeerd getal in kaart brengt in een waarde tussen 0 en 1. Als de curve naar positieve oneindigheid gaat, wordt y voorspeld 1, en als de curve naar negatieve oneindigheid gaat, wordt y voorspeld 0. Als de output van de sigmoid-functie nogal 0,5 is, classificeren we het resultaat als 1 of JA, en als het maar 0,5 is, classificeren we het als 0 of NEE. De uitvoer kan niet Voor voorbeeld: Als de output 0,75 is, zeggen we in termen van waarschijnlijkheid als: er is een kans van 75 procent dat de patiënt kanker krijgt.

http://res.cloudinary.com/dyd911kmh/image/upload/f_auto,q_auto:best/v1534281880/image4_gw5mmv.png

http://res.cloudinary.com/dyd911kmh/image/upload/f_auto,q_auto:best/v1534281070/sigmoid2_lv4c7i.png

Soorten Logistieke Regressie

Binaire Logistieke Regressie: De doelvariabele heeft slechts twee mogelijke uitkomsten zoals Spam of Geen Spam, Kanker of Geen Kanker.

Multinomiale Logistieke Regressie: De doelvariabele heeft drie of meer nominale categorieën zoals het voorspellen van het soort Wijn.

Ordinale Logistieke Regressie: de doelvariabele heeft drie of meer ordinale categorieën zoals restaurant of productbeoordeling van 1 tot 5 .

Modelbouw in Scikit-learn

Laten we het diabetes voorspellingsmodel bouwen.

Hier krijg je diabetes te voorspellen met behulp van Logistic Regression Classifier.

Laten we eerst de gespecificeerde Pima Indian Diabetes dataset laden met behulp van de lees CSV-functie van de panda’s. U zult de gegevens downloaden van de volgende link: https://www.kaggle.com/uciml/pima-indians-diabetes-database

Laden #import panda’s

importpanda’s als pd

col_namen = [‘zwanger’, ‘glucose’, ‘bp’, ‘huid’, ‘insuline’, ‘bmi’, ‘stamboom’, ‘leeftijd’, ‘label’].

# ladingsdataset

pima = pd.read_csv(“pima-indianen-diabetes.csv”, header=niet, namen=col_namen)

pima.head()Data

http://res.cloudinary.com/dyd911kmh/image/upload/f_auto,q_auto:best/v1534281070/Screen_Shot_2018-08-14_at_5.06.08_PM_ykb1jt.png

Het selecteren van een functie

Hier wil je de gegeven kolommen verdelen in twee soorten variabelen afhankelijk (of doelvariabele) en onafhankelijke variabelen (of functievariabelen).

#splits dataset in kenmerken en doelvariabele

feature_cols = [‘zwanger’, ‘insuline’, ‘bmi’, ‘leeftijd’, ‘glucose’, ‘bp’, ‘stamboom’].

X = pima[feature_cols] # Eigenschappen

y = pima.label # Doelvariabele

Splitsen van gegevens

Om de modelprestaties te begrijpen, kan het verdelen van de dataset in een trainingsset en een testset een goede strategie zijn.

Laten we de dataset splitsen door gebruik te maken van de functie train_test_split(). u wilt graag 3 parameters kenmerken, doel en test_set grootte passeren. Daarnaast gebruik je random_state om records willekeurig te kiezen.

# splits X en y in trainings- en testsets

van sklearn.cross_validatie import trein_test_split

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0,25,random_state=0)

/home/admin/.local/lib/python3.5/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: Deze module werd in versie 0.18 afgeschreven ten gunste van de model_selectiemodule waarin alle herwerkte klassen en functies worden verplaatst. Merk ook op dat de interface van de nieuwe CV iteratoren anders is dan die van deze module. Deze module wordt in 0.20 verwijderd.

“Deze module wordt verwijderd in 0.20.”, DeprecationWarning)

Hier wordt de Dataset in tweeën gedeeld in een verhouding van 75:25. Dit betekent dat 75% van de gegevens wordt gebruikt voor modelopleidingen en 25% voor het testen van modellen.

Modelontwikkeling en -voorspelling

Importeer eerst de Logistic Regression module en maak een Logistic Regression classifier object met behulp van LogisticRegression() functie.

Vervolgens past u het model aan op het speeltje met behulp van fit() en voert u voorspellingen uit op de testset met behulp van predict().

# importeer de categorie

van sklearn.linear_model import LogisticRegression

# instantiëren van het model (met behulp van de standaard parameters)

logreg = LogisticRegression()

# het model met de gegevens passen

logreg.fit(X_train,y_train)

#

y_pred=logreg.predict(X_test)

Modelevaluatie met behulp van Confusion Matrix

Een verwarringsmatrix kan een tabel zijn die de prestaties van een classificatiemodel niet evalueert. je visualiseert ook de prestaties van een algoritme. het elementaire van een verwarringsmatrix is dat het aantal correcte en onjuiste voorspellingen klasgewijs wordt opgeteld.

# importeer de metriek klasse

van sklearn importeren metrieken

cnf_matrix = metriek.verwarring_matrix(y_test, y_pred)

cnf_matrix

array([[119, 11],

[ 26, 36]])

Hier zie je de verwarringsmatrix binnen de soort van het matrixobject. De dimensie van deze matrix is 2*2 omdat dit model een binaire classificatie is. je hebt twee klassen 0 en 1. Diagonale waarden vertegenwoordigen nauwkeurige voorspellingen, terwijl niet-diagonale elementen onnauwkeurige voorspellingen zijn. binnen de uitgang zijn 119 en 36 werkelijke voorspellingen, en 26 en 11 zijn onjuiste voorspellingen.

Verwarringmatrix visualiseren met behulp van Heatmap

Laten we de resultaten van het model visualiseren binnen een soort verwarringsmatrix met behulp van matplotlib en zeebrasem.

Hier visualiseer je de verwarringsmatrix met behulp van Heatmap.

# importeer benodigde modules

importnummer als np

import matplotlib.pyplot als plt

invoer van zeebrasems als sns

%matplotlib inline

class_names=[0,1] # naam van de klassen

vijg, bijl = plt.subplots()

vinkje_markering = np.arange(len(class_names))

plt.xticks(tick_marks, klasse_namen)

plt.yticks(tick_marks, class_names)

# maak een heatmap

sns.heatmap(pd.DataFrame(cnf_matrix), annot=True, cmap=”YlGnBu”,fmt=’g’)

ax.xaxis.set_label_position(“top”)

plt.tight_lay-out()

plt.title(‘Verwarringsmatrix’, y=1.1)

plt.ylabel(‘Werkelijk etiket’)

plt.xlabel(‘Predicted label’)

Tekst(0,5.257,44, ‘Voorspeld label’)

Verwarringsmatrix evaluatiemetingen

Laten we het model evalueren met behulp van modelevaluatiemetingen zoals nauwkeurigheid, precisie en recall.

print (“Accuracy:”,metrics.accuracy_score(y_test, y_pred))

print (“Precisie:”,metrics.precision_score(y_test, y_pred))

print (“Recall:”,metrics.recall_score(y_test, y_pred))

Nauwkeurigheid: 0,80729166666666

Precisie: 0,7659574468085106

Roep het terug: 0.5806451612903226

Nou, je hebt een classificatiegraad van 80% gekocht, die bijna als een goede nauwkeurigheid wordt beschouwd.

Precisie: Precisie gaat over precisie, dat wil zeggen, hoe nauwkeurig uw model is. Met andere woorden, u zult zeggen, wanneer een model een voorspelling doet, hoe vaak deze correct is. In uw voorspellingsgeval, wanneer uw Logistic Regression-model voorspelt dat patiënten aan diabetes gaan lijden, heeft u 76% van de tijd.

Herinner u zich: Als er patiënten zijn die diabetes hebben binnen de testset en uw Logistic Regression model kan het 58% van de tijd identificeren.

ROC-curve

Receiver Operating Characteristic (ROC) curve kan een plot zijn van waarheidsgetrouwe positieve koers ten opzichte van de vals positieve koers. Het toont de afweging tussen gevoeligheid en specificiteit.

y_pred_proba = logreg.predict_proba(X_test)[::,1].

fpr, tpr, _ = metrics.roc_curve(y_test, y_pred_proba)

auc = metriek.roc_auc_score(y_test, y_pred_proba)

plt.plot(fpr,tpr,label=”data 1, auc=”+str(auc)”)

plt.legenda (loc=4)

plt.show()

De AUC-score voor de zaak is 0,86. AUC score 1 staat voor een perfecte klassering, en 0.5 staat voor een waardeloze klassering.

Voordelen

Vanwege zijn efficiënte en eenvoudige aard, vereist het geen hoge rekenkracht, gemakkelijk te implementeren, gemakkelijk te interpreteren, op grote schaal gebruikt door data analist en wetenschapper. Ook vereist het geen schaalvergroting van functies. Logistieke regressie geeft een waarschijnlijkheidsscore voor observaties.

Nadelen

Logistieke regressie is niet klaar voor een groot aantal categorische kenmerken/variabelen. het is vatbaar voor overfitting. Ook kan het niet-lineaire probleem niet worden opgelost met de logistieke regressie, daarom is er een verandering van niet-lineaire kenmerken nodig. Logistieke regressie zal niet goed presteren met onafhankelijke variabelen die niet gecorreleerd zijn met de doelvariabele en zeer vergelijkbaar of gecorreleerd zijn met elke andere.