Video: What is reddit? 2025
En anden opgave i prædiktiv analyse er at klassificere nye data ved at forudsige hvilken klasse et målelement af data tilhører, givet et sæt uafhængige variabler. Du kan for eksempel klassificere en kunde efter type - sig som en høj værdi kunde, en almindelig kunde eller en kunde, der er klar til at skifte til en konkurrent - ved hjælp af et beslutningstræ.
Indtast følgende kode for at se nogle nyttige oplysninger om R-klassificeringsmodellen:
Klassekolonnen fortæller dig, at du har oprettet et beslutningstræ. For at se hvordan splittelserne bestemmes, kan du blot skrive navnet på variablen, hvor du har tildelt modellen, i dette tilfælde model: >> model Conditional inference tree med 6 terminal noder Svar: seedType Inputs: område, omkreds, kompaktitet, længde, bredde, asymmetri, længde2 Antal observationer: 147 1) område <= 16 2; kriterium = 1, statistik = 123. 423 2) areal <= 13. 37; kriterium = 1, statistik = 63. 549 3) længde2 4. 914 5) * vægt = 45 2) område> 13. 37 6) længde2 5. 396 8) * vægt = 8 1) område> 16 2 9) længde2 5. 877 11) * vægte = 40
Endnu bedre, du kan visualisere modellen ved at lave et plot af beslutningstræet med denne kode:> plot (model)
Dette er en grafisk gengivelse af et beslutningstræ. Du kan se, at den overordnede form efterligner et ægte træ. Den er lavet af
noder(cirklerne og rektanglerne) og links eller kanter (forbindelseslinierne). Den allerførste node (startende øverst) kaldes rodknude, og knuderne i bunden af træet (rektangler) kaldes terminal noder . Der er fem beslutningsknuder og seks terminale noder.
Start ved rodknuden, som er knudepunkt 1 (tallet vises i den lille firkant øverst i cirklen). Bestem baseret på attributten: Er observationen # 2 mindre end eller lig med (betegnet med <=) 16.2? svaret er ja, så bevæg dig langs stien til knude 2.
Ved knude 2 spørger modellen: Er området 13. 37? Svaret er ja, så bevæg dig langs stien til knude 6. Ved denne knude spørger modellen: Er længden2 <= 5.396? det er, og du flytter til terminal nr. 7, og dommen er, at observation nr. 2 er af frø type 1. Og det er faktisk frø type 1.
-
Modellen gør det for alle andre observationer at forudsige deres forudsigelse klasser.
-
For at finde ud af om du har trænet en god model, skal du tjekke den mod træningsdataene. Du kan se resultaterne i en tabel med følgende kode: >> tabel (forudsig (model), trainSet $ seedType) 1 2 3 1 45 4 3 2 3 47 0 3 1 0 44
Resultaterne viser, at fejlen (eller fejlklasse) er 11 ud af 147 eller 7. 48 procent.
-
Med de beregnede resultater er næste trin at læse tabellen.
De korrekte forudsigelser er dem, der viser kolonne- og rækkenumrene som de samme. Disse resultater vises som en diagonal linje fra øverste venstre til nederste højre; for eksempel [1, 1], [2, 2], [3, 3] er antallet af korrekte forudsigelser for den pågældende klasse.
Så for frø type 1 forudsagde modellen det 45 gange, mens misclassifying frøet 7 gange (4 gange som frø type 2 og 3 gange som type 3). For frø type 2 forudsagde modellen det 47 gange, mens det blev klassificeret 3 gange. For frø type 3 forudsagde modellen det 44 gange, mens det kun blev klassificeret én gang.
-
Dette viser, at dette er en god model. Så nu vurderer du det med testdataene. Her er koden, der bruger testdataene til at forudsige og gemme den i en variabel (testPrediction) til senere brug: >> testPrediction <- predict (model, newdata = testSet)
For at evaluere, hvordan modellen udføres med test data, se det i en tabel og beregne fejlen, for hvilken koden ser sådan ud: >> tabel (testPrediction, testSet $ seedType) testPrediktion 1 2 3 1 23 2 1 2 1 19 0 3 1 0 17