Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Modellutvärdering | Neuronnätverk Från Grunden
Introduktion till neurala nätverk med Python

bookModellutvärdering

Dela upp data

Efter att ha tränat ett neuralt nätverk är det avgörande att utvärdera hur väl det presterar på osedd data. Denna utvärdering hjälper till att avgöra om modellen har lärt sig meningsfulla mönster eller bara memorerat träningsdata. För att göra detta delas datasettet upp i två delar:

  • Träningsmängd — används för att träna det neurala nätverket genom att justera vikter och bias med backpropagation;
  • Testmängd — används efter träning för att utvärdera hur väl modellen generaliserar till ny, osedd data.

En vanlig uppdelning är 80% för träning och 20% för test, även om denna fördelning kan variera beroende på datasetets storlek och komplexitet.

Datasplitten utförs vanligtvis med funktionen train_test_split() från modulen sklearn.model_selection:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)

Parametern test_size avgör andelen data som reserveras för testning. Om du till exempel sätter test_size=0.1 innebär det att 10% av datan används för test och 90% för träning.

Om modellen presterar bra på träningsmängden men dåligt på testmängden kan det tyda på överanpassning — att modellen lärt sig mönster som är för specifika för träningsdatan istället för att generalisera till nya exempel. Målet är att uppnå stark prestanda på båda dataseten för att säkerställa god generalisering.

När datan är uppdelad och modellen är tränad bör prestandan mätas med lämpliga utvärderingsmått, vilka beror på den specifika klassificeringsuppgiften.

Klassificeringsmått

För klassificeringsproblem kan flera viktiga mått användas för att utvärdera modellens prediktioner:

  • Noggrannhet;
  • Precision;
  • Återkallning;
  • F1-poäng.

Eftersom en perceptron utför binär klassificering hjälper det att skapa en förväxlingsmatris för att förstå dessa mått bättre.

Note
Definition

En förväxlingsmatris är en tabell som sammanfattar modellens klassificeringsprestanda genom att jämföra de predicerade etiketterna med de faktiska etiketterna. Den ger insikt i antalet korrekta och felaktiga prediktioner för varje klass (1 och 0).

Noggrannhet mäter andelen korrekt klassificerade prover av det totala antalet. Om en modell korrekt klassificerar 90 av 100 bilder är dess noggrannhet 90%.

accuracy=correctall=TP+TNTP+TN+FP+FN\text{accuracy} = \frac {\text{correct}} {\text{all}} = \frac {TP + TN} {TP + TN + FP + FN}

Även om noggrannhet är användbart ger det inte alltid en fullständig bild—särskilt för obalanserade datamängder. Till exempel, i en datamängd där 95% av proverna tillhör en klass kan en modell uppnå 95% noggrannhet bara genom att alltid förutsäga majoritetsklassen—utan att faktiskt lära sig något användbart. I sådana fall kan precision, recall eller F1-score vara mer informativa.

Precision är andelen korrekt förutsagda positiva fall av alla förutsagda positiva. Detta mått är särskilt användbart när falska positiva är kostsamma, såsom vid skräppostdetektion eller bedrägeridetektion.

precision=correct positivepredicted positive=TPTP+FP\text{precision} = \frac {\text{correct positive}} {\text{predicted positive}} = \frac {TP} {TP + FP}

Recall (sensitivitet) mäter hur många av de faktiska positiva fallen som modellen korrekt identifierar. Hög recall är avgörande i situationer där falska negativa måste minimeras, såsom vid medicinska diagnoser.

recall=correct positiveall positive=TPTP+FN\text{recall} = \frac {\text{correct positive}} {\text{all positive}} = \frac {TP} {TP + FN}

F1-score är det harmoniska medelvärdet av precision och återkallelse, vilket ger ett balanserat mått när både falska positiva och falska negativa är viktiga. Detta är användbart när datasettet är obalanserat, vilket innebär att en klass förekommer betydligt oftare än den andra.

F1=2×precision×recallprecision+recall\text{F1} = \frac {2 \times \text{precision} \times \text{recall}} {\text{precision} + \text{recall}}

1. Vad är huvudsyftet med att dela upp ditt dataset i tränings- och testmängder?

2. Varför kan F1-score föredras framför noggrannhet på ett obalanserat dataset?

question mark

Vad är huvudsyftet med att dela upp ditt dataset i tränings- och testmängder?

Select the correct answer

question mark

Varför kan F1-score föredras framför noggrannhet på ett obalanserat dataset?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 11

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain what a confusion matrix is and how to interpret it?

How do I choose which evaluation metric to use for my classification problem?

Can you give examples of when to prioritize precision over recall, or vice versa?

bookModellutvärdering

Svep för att visa menyn

Dela upp data

Efter att ha tränat ett neuralt nätverk är det avgörande att utvärdera hur väl det presterar på osedd data. Denna utvärdering hjälper till att avgöra om modellen har lärt sig meningsfulla mönster eller bara memorerat träningsdata. För att göra detta delas datasettet upp i två delar:

  • Träningsmängd — används för att träna det neurala nätverket genom att justera vikter och bias med backpropagation;
  • Testmängd — används efter träning för att utvärdera hur väl modellen generaliserar till ny, osedd data.

En vanlig uppdelning är 80% för träning och 20% för test, även om denna fördelning kan variera beroende på datasetets storlek och komplexitet.

Datasplitten utförs vanligtvis med funktionen train_test_split() från modulen sklearn.model_selection:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)

Parametern test_size avgör andelen data som reserveras för testning. Om du till exempel sätter test_size=0.1 innebär det att 10% av datan används för test och 90% för träning.

Om modellen presterar bra på träningsmängden men dåligt på testmängden kan det tyda på överanpassning — att modellen lärt sig mönster som är för specifika för träningsdatan istället för att generalisera till nya exempel. Målet är att uppnå stark prestanda på båda dataseten för att säkerställa god generalisering.

När datan är uppdelad och modellen är tränad bör prestandan mätas med lämpliga utvärderingsmått, vilka beror på den specifika klassificeringsuppgiften.

Klassificeringsmått

För klassificeringsproblem kan flera viktiga mått användas för att utvärdera modellens prediktioner:

  • Noggrannhet;
  • Precision;
  • Återkallning;
  • F1-poäng.

Eftersom en perceptron utför binär klassificering hjälper det att skapa en förväxlingsmatris för att förstå dessa mått bättre.

Note
Definition

En förväxlingsmatris är en tabell som sammanfattar modellens klassificeringsprestanda genom att jämföra de predicerade etiketterna med de faktiska etiketterna. Den ger insikt i antalet korrekta och felaktiga prediktioner för varje klass (1 och 0).

Noggrannhet mäter andelen korrekt klassificerade prover av det totala antalet. Om en modell korrekt klassificerar 90 av 100 bilder är dess noggrannhet 90%.

accuracy=correctall=TP+TNTP+TN+FP+FN\text{accuracy} = \frac {\text{correct}} {\text{all}} = \frac {TP + TN} {TP + TN + FP + FN}

Även om noggrannhet är användbart ger det inte alltid en fullständig bild—särskilt för obalanserade datamängder. Till exempel, i en datamängd där 95% av proverna tillhör en klass kan en modell uppnå 95% noggrannhet bara genom att alltid förutsäga majoritetsklassen—utan att faktiskt lära sig något användbart. I sådana fall kan precision, recall eller F1-score vara mer informativa.

Precision är andelen korrekt förutsagda positiva fall av alla förutsagda positiva. Detta mått är särskilt användbart när falska positiva är kostsamma, såsom vid skräppostdetektion eller bedrägeridetektion.

precision=correct positivepredicted positive=TPTP+FP\text{precision} = \frac {\text{correct positive}} {\text{predicted positive}} = \frac {TP} {TP + FP}

Recall (sensitivitet) mäter hur många av de faktiska positiva fallen som modellen korrekt identifierar. Hög recall är avgörande i situationer där falska negativa måste minimeras, såsom vid medicinska diagnoser.

recall=correct positiveall positive=TPTP+FN\text{recall} = \frac {\text{correct positive}} {\text{all positive}} = \frac {TP} {TP + FN}

F1-score är det harmoniska medelvärdet av precision och återkallelse, vilket ger ett balanserat mått när både falska positiva och falska negativa är viktiga. Detta är användbart när datasettet är obalanserat, vilket innebär att en klass förekommer betydligt oftare än den andra.

F1=2×precision×recallprecision+recall\text{F1} = \frac {2 \times \text{precision} \times \text{recall}} {\text{precision} + \text{recall}}

1. Vad är huvudsyftet med att dela upp ditt dataset i tränings- och testmängder?

2. Varför kan F1-score föredras framför noggrannhet på ett obalanserat dataset?

question mark

Vad är huvudsyftet med att dela upp ditt dataset i tränings- och testmängder?

Select the correct answer

question mark

Varför kan F1-score föredras framför noggrannhet på ett obalanserat dataset?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 11
some-alt