Inhoudsopgave:
- Hoe uw gegevens te laden
- Lijn 1 importeert de bibliotheek waarmee u de gegevensset in twee delen kunt splitsen.
- Hoe de testgegevens uit te voeren
- Dus hoe verhoudt het logistische regressiemodel met parameter C = 150 zich daarmee? Nou, je kunt niet 100% verslaan. Hier is de code om de logistieke classificator te maken en te evalueren met C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> voorspeld = logClassifier_2. voorspellen (X_test) >>> statistieken. accuracy_score (y_test, voorspeld) 0. 93333333333333335 >>> statistieken. confusion_matrix (y_test, voorspeld) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Video: Hoe wordt geld vernietigd? | Doen ze dat zo | Het Klokhuis 2024
Nadat u uw eerste classificatie voorspellingsmodel voor de analyse van de gegevens hebt gebouwd, creëert u meer modellen alsof het een echt eenvoudige taak is in Scikit. Het enige echte verschil tussen het ene model en het volgende is dat u de parameters mogelijk van algoritme naar algoritme moet afstemmen.
Hoe uw gegevens te laden
Deze codelijst laadt de irisgegevensreeks in uw sessie: >>>> van sklearn. datasets import load_iris >>> iris = load_iris ()
Hoe maak ik een exemplaar van de classifier
Let op de parameter (regularisatieparameter) in de constructor. De
regularisatieparameter
wordt gebruikt om overfitting te voorkomen. De parameter is niet strikt noodzakelijk (de constructor werkt prima zonder deze, omdat hij standaard op C = 1 staat). Het creëren van een logistische regressieclassificator met C = 150 zorgt voor een betere weergave van het beslissingsoppervlak. Je kunt beide grafieken hieronder bekijken.
Lijn 1 importeert de bibliotheek waarmee u de gegevensset in twee delen kunt splitsen.
Lijn 2 roept de functie op uit de bibliotheek die de gegevensset in twee delen splitst en wijst de nu verdeelde gegevensreeksen toe aan twee paren variabelen.
Regel 3 neemt het voorbeeld van de logistische regressieklasseerder die u zojuist hebt gemaakt en roept de fitmethode aan om het model te trainen met de trainingsgegevensset.
Hoe de classificator te visualiseren
Kijkend naar het beslissingsoppervlak op de plot, lijkt het of er iets moet worden afgesteld. Als u in het midden van de plot kijkt, kunt u zien dat veel van de gegevenspunten behorende bij het middelste gebied (Versicolor) in het gebied aan de rechterkant liggen (Virginica).
Deze afbeelding toont het beslissingsoppervlak met een C-waarde van 150. Het ziet er visueel beter uit, dus deze instelling voor uw logistische regressiemodel lijkt aangewezen.
Hoe de testgegevens uit te voeren
In de volgende code voert de eerste regel de testgegevensreeks naar het model en de derde regel geeft de uitvoer weer: >>>> voorspeld = logClassifier. voorspellen (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 1, 2, 0, 2, 2, 2])
Hoe het model te evalueren < U kunt de uitvoer van de voorspelling met de y_test-array vergelijken. Als gevolg hiervan kunt u zien dat alle voorspellingsgegevens correct zijn voorspeld. Hier is de code: >>>> van sklearn import-statistieken >>> 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]) >>> statistieken. accuracy_score (y_test, voorspeld) 1. 0 # 1. 0 is 100% nauwkeurigheid >>> voorspeld == y_testarray ([Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar], dtype = bool)
Dus hoe verhoudt het logistische regressiemodel met parameter C = 150 zich daarmee? Nou, je kunt niet 100% verslaan. Hier is de code om de logistieke classificator te maken en te evalueren met C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> voorspeld = logClassifier_2. voorspellen (X_test) >>> statistieken. accuracy_score (y_test, voorspeld) 0. 93333333333333335 >>> statistieken. confusion_matrix (y_test, voorspeld) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
We hadden beter verwacht, maar het was eigenlijk nog erger. Er was één fout in de voorspellingen. Het resultaat is hetzelfde als dat van het SVM-model (Support Vector Machine).
Hier volgt de volledige lijst van de code om een logistisch regressieclassificatiemodel met de standaardparameters te maken en te evalueren: >>>> van sklearn. datasets importeren load_iris >>> uit sklearn importeren linear_model >>> uit sklearn import cross_validation >>> uit sklearn import-statistieken >>> 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. fit (X_train, y_train) >>> voorspeld = logClassifier. voorspellen (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]) >>> metrics. accuracy_score (y_test, voorspeld) 1. 0 # 1. 0 is 100% nauwkeurigheid >>> voorspeld == y_testarray ([Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar, Waar], dtype = bool)