Video: Time Series Analysis - 2 | Time Series in R | ARIMA Model Forecasting | Data Science | Simplilearn 2024
Een andere taak in voorspellende analyses is om nieuwe gegevens te classificeren door te voorspellen tot welke klasse een doelitem behoort, gegeven een reeks onafhankelijke variabelen. U kunt een klant bijvoorbeeld op type classificeren, bijvoorbeeld als een hoogwaardige klant, een vaste klant of een klant die klaarstaat om over te schakelen naar een concurrent, door een beslissingsboom te gebruiken.
Typ nuttige informatie over het R-indelingsmodel in de volgende code:
De kolom Class vertelt u dat u een beslissingsboom hebt gemaakt. Als u wilt zien hoe de splitsingen worden bepaald, typt u eenvoudig de naam van de variabele waarin u het model hebt toegewezen, in dit gevalmodel, als volgt: >> -model Voorwaardelijke afleidingsboom met 6 eindknopen Antwoord: seedType Invoer: oppervlakte, omtrek, compactheid, lengte, breedte, asymmetrie, lengte2 Aantal waarnemingen: 147 1) oppervlakte <= 16. 2; criterium = 1, statistiek = 123. 423 2) oppervlakte <= 13. 37; criterium = 1, statistiek = 63. 549 3) lengte 2 4. 914 5) * gewichten = 45 2) oppervlakte> 13. 37 6) lengte 2 5. 396 8) * gewichten = 8 1) oppervlakte> 16. 2 9) lengte2 5. 877 11) * gewichten = 40
Nog beter, u kunt het model visualiseren door een plot van de beslissingsboom te maken met deze code:> plot (model)
Dit is een grafische weergave van een beslissingsboom. Je kunt zien dat de algemene vorm die van een echte boom nabootst. Het is gemaakt van
knooppunten(de cirkels en rechthoeken) en links of randen (de verbindingslijnen). Het allereerste knooppunt (beginnend bij de top) wordt het basisknooppunt
genoemd en de knooppunten aan de onderkant van de boom (rechthoeken) worden eindknopen genoemd. Er zijn vijf beslissingsknooppunten en zes eindknopen.
Start bij het basisknooppunt, knooppunt 1 (het getal wordt weergegeven in het kleine vierkantje bovenaan de cirkel). Bepaal op basis van het attribuut: Is de van observatie # 2 minder dan of gelijk aan (aangegeven met <=) 16.2? het antwoord is ja, dus ga langs het pad naar knooppunt 2.
Bij knooppunt 2 vraagt het model: Is het gebied 13. 37? Het antwoord is ja, dus ga langs het pad naar knooppunt 6. Bij dit knooppunt vraagt het model: Is de lengte 2 <= 5. 396? het is, en je gaat naar terminal node 7 en het vonnis is dat observatie # 2 van zaadtype 1 is. En het is feitelijk zaadtype 1.
-
Het model doet dat proces voor alle andere waarnemingen om hun te voorspellen klassen.
-
Controleer of je een goed model hebt getraind met de trainingsgegevens. U kunt de resultaten in een tabel bekijken met de volgende code: >> tabel (voorspelling (model), treinset $ seedType) 1 2 3 1 45 4 3 2 3 47 0 3 1 0 44
De resultaten tonen aan dat de fout (of misclassificatie) is 11 van de 147, of 7. 48 procent.
-
Nadat de resultaten zijn berekend, is de volgende stap om de tabel te lezen.
De juiste voorspellingen zijn degene die de kolom- en rijnummers als hetzelfde weergeven. Die resultaten verschijnen als een diagonale lijn van linksboven naar rechtsonder; bijvoorbeeld [1, 1], [2, 2], [3, 3] zijn het aantal correcte voorspellingen voor die klasse.
Dus voor zaadsoort 1 voorspelde het model het 45 keer correct, terwijl het zaad 7 keer verkeerd werd geclassificeerd (4 keer als zaadtype 2 en 3 keer als type 3). Voor zaadtype 2 voorspelde het model het 47 keer correct, terwijl het 3 keer verkeerd werd geclassificeerd. Voor zaadtype 3 heeft het model het 44 keer correct voorspeld, terwijl het maar één keer verkeerd geclassificeerd werd.
-
Dit geeft aan dat dit een goed model is. Dus nu evalueer je het met de testgegevens. Hier is de code die de testgegevens gebruikt om deze te voorspellen en op te slaan in een variabele (testPrediction) voor later gebruik: >> testPrediction <- voorspelling (model, newdata = testSet)
Om te evalueren hoe het model presteerde met de test gegevens, bekijk het in een tabel en bereken de fout, waarvoor de code er zo uitziet: >> tabel (testPrediction, testSet $ seedType) testPrediction 1 2 3 1 23 2 1 2 1 19 0 3 1 0 17