Innehållsförteckning:
- Så här laddar du upp dina data
- Linje 1 importerar biblioteket som låter dig dela datasatsen i två delar.
- Så här kör testdata
- Så jämför den logistiska regressionsmodellen med parameter C = 150 jämfört med det? Tja, du kan inte slå 100 procent. Här är koden för att skapa och utvärdera den logistiska klassificeringen med C = 150: >>>> logClassifier_2 = linear_model. LogistiskRegression (C = 150, random_state = 111) >>> logClassifier_2. passform (X_train, y_train) >>> förutsagt = logClassifier_2. förutsäga (X_test) >>> mätvärden. accuracy_score (y_test, förutsagt) 0. 93333333333333335 >>> mätvärden. Confusion_matrix (y_test, predicted) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Video: The Choice is Ours (2016) Official Full Version 2024
När du har byggt din första klassificeringss predictive modell för analys av data skapar du fler modeller som det är en riktigt enkel uppgift i scikit. Den enda verkliga skillnaden från en modell till nästa är att du kanske måste ställa in parametrarna från algoritmen till algoritmen.
Så här laddar du upp dina data
Denna kodlista laddar irisdatasetet i din session: >>>> från sklearn. dataset import load_iris >>> iris = load_iris ()
Så här skapar du en instans av klassificeringsenheten
Notera parametern (regulariseringsparametern) i konstruktorn.
regulariseringsparametern
används för att förhindra överfitting. Parametern är inte absolut nödvändig (konstruktören fungerar bra utan att den kommer att gå till C = 1). Att skapa en logisk regressions klassificerare med C = 150 skapar en bättre plot av beslutsytan. Du kan se båda diagrammen nedan.
Linje 1 importerar biblioteket som låter dig dela datasatsen i två delar.
Linje 2 kallar funktionen från biblioteket som delar datasetet i två delar och tilldelar de nufördelade dataseten till två par variabler.
Linje 3 tar förekomsten av den logistiska regressions klassificeringen du just skapat och kallar passformmetoden för att träna modellen med träningsdatasatsen.
Så här visualiserar du klassificeringsenheten
Titta på beslutsytan på tomten, det verkar som att vissa inställningar måste göras. Om du tittar nära mitten av tomten kan du se att många av de datapunkter som hör till mittområdet (Versicolor) ligger i området till höger (Virginica).
Denna bild visar beslutsytan med ett C-värde på 150. Det verkar visuellt bättre, så det är lämpligt att välja att använda denna inställning för din logistiska regressionsmodell.
Så här kör testdata
I följande kod matar första raden testdatasetet till modellen och den tredje raden visar utmatningen: >>>> predicted = logClassifier. förutsäga (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2])
Hur man utvärderar modellen < Du kan korsreferera utgången från förutsägelsen mot y_test-matrisen. Som ett resultat kan du se att det förutsagde alla testdatapunkter korrekt. Här är koden: >>>> från sklearnimportvärden >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> mätvärden. accuracy_score (y_test, predicted) 1. 0 # 1. 0 är 100 procent noggrannhet >>> förutsagt == y_testarray ([True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] = bool)
Så jämför den logistiska regressionsmodellen med parameter C = 150 jämfört med det? Tja, du kan inte slå 100 procent. Här är koden för att skapa och utvärdera den logistiska klassificeringen med C = 150: >>>> logClassifier_2 = linear_model. LogistiskRegression (C = 150, random_state = 111) >>> logClassifier_2. passform (X_train, y_train) >>> förutsagt = logClassifier_2. förutsäga (X_test) >>> mätvärden. accuracy_score (y_test, förutsagt) 0. 93333333333333335 >>> mätvärden. Confusion_matrix (y_test, predicted) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Vi förväntade oss bättre, men det var faktiskt sämre. Det fanns ett fel i förutsägelserna. Resultatet är detsamma som för SVM-modellen (Support Vector Machine).
Här är den fullständiga listan över koden för att skapa och utvärdera en logistisk regressionsklassificeringsmodell med standardparametrarna: >>>> från sklearn. dataset import load_iris >>> från sklearn import linear_model >>> från sklearn import cross_validation >>> från sklearn import mätvärden >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (iris. data, iris. target, test_size = 0. 10, random_state = 111) >>> logClassifier = linear_model. LogisticRegression (, random_state = 111) >>> logClassifier. passform (X_train, y_train) >>> predicted = logClassifier. förutsäga (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> mätvärden. accuracy_score (y_test, predicted) 1. 0 # 1. 0 är 100 procent noggrannhet >>> förutsagt == y_testarray ([True, True, True, True, True, True, True, True, True, True, True, True, True, True, True] = bool)