<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Bias-Variance on IT Comparison</title><link>https://comparison.metacog.co.kr/tags/bias-variance/</link><description>Recent content in Bias-Variance on IT Comparison</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 03 Aug 2026 03:37:23 +0900</lastBuildDate><atom:link href="https://comparison.metacog.co.kr/tags/bias-variance/index.xml" rel="self" type="application/rss+xml"/><item><title>Overfitting vs Underfitting: Memorizing Noise vs Missing the Signal</title><link>https://comparison.metacog.co.kr/posts/2026-08-03-overfitting-vs-underfitting-memorizing-noise-vs-missing-the/</link><pubDate>Mon, 03 Aug 2026 03:37:23 +0900</pubDate><guid>https://comparison.metacog.co.kr/posts/2026-08-03-overfitting-vs-underfitting-memorizing-noise-vs-missing-the/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;Overfitting and underfitting describe the two ways a model can fail to generalize: one learns the training data too well, the other not well enough. Understanding which failure mode you&amp;rsquo;re in determines whether you should simplify or add regularization, or instead increase capacity and train longer. &lt;strong class="kw"&gt;Overfitting&lt;/strong&gt; traps a model in the noise of its training set, while &lt;strong class="kw"&gt;underfitting&lt;/strong&gt; leaves it unable to capture the underlying pattern at all.&lt;/p&gt;
&lt;h2 id="comparison-diagram"&gt;Comparison Diagram&lt;/h2&gt;
&lt;div class="compare-diagram"&gt;
&lt;svg viewBox="0 0 640 360" xmlns="http://www.w3.org/2000/svg"&gt;&lt;text x="160" y="30" text-anchor="middle" font-size="20" font-weight="700" style="fill:var(--primary)"&gt;Overfitting&lt;/text&gt;&lt;text x="480" y="30" text-anchor="middle" font-size="20" font-weight="700" style="fill:var(--primary)"&gt;Underfitting&lt;/text&gt;&lt;line x1="40" y1="50" x2="40" y2="300" stroke-width="1.5" style="stroke:var(--border)"/&gt;&lt;line x1="40" y1="300" x2="280" y2="300" stroke-width="1.5" style="stroke:var(--border)"/&gt;&lt;line x1="360" y1="50" x2="360" y2="300" stroke-width="1.5" style="stroke:var(--border)"/&gt;&lt;line x1="360" y1="300" x2="600" y2="300" stroke-width="1.5" style="stroke:var(--border)"/&gt;&lt;path d="M60,260 L95,180 L130,220 L165,140 L200,190 L235,110 L262,150" fill="none" stroke-width="2.5" style="stroke:var(--compare-a)"/&gt;&lt;circle cx="60" cy="260" r="5" stroke-width="2" style="fill:var(--compare-a-soft);stroke:var(--compare-a)"/&gt;&lt;circle cx="95" cy="180" r="5" stroke-width="2" style="fill:var(--compare-a-soft);stroke:var(--compare-a)"/&gt;&lt;circle cx="130" cy="220" r="5" stroke-width="2" style="fill:var(--compare-a-soft);stroke:var(--compare-a)"/&gt;&lt;circle cx="165" cy="140" r="5" stroke-width="2" style="fill:var(--compare-a-soft);stroke:var(--compare-a)"/&gt;&lt;circle cx="200" cy="190" r="5" stroke-width="2" style="fill:var(--compare-a-soft);stroke:var(--compare-a)"/&gt;&lt;circle cx="235" cy="110" r="5" stroke-width="2" style="fill:var(--compare-a-soft);stroke:var(--compare-a)"/&gt;&lt;circle cx="262" cy="150" r="5" stroke-width="2" style="fill:var(--compare-a-soft);stroke:var(--compare-a)"/&gt;&lt;circle cx="360" cy="260" r="5" stroke-width="2" style="fill:var(--compare-b-soft);stroke:var(--compare-b)"/&gt;&lt;circle cx="395" cy="180" r="5" stroke-width="2" style="fill:var(--compare-b-soft);stroke:var(--compare-b)"/&gt;&lt;circle cx="430" cy="220" r="5" stroke-width="2" style="fill:var(--compare-b-soft);stroke:var(--compare-b)"/&gt;&lt;circle cx="465" cy="140" r="5" stroke-width="2" style="fill:var(--compare-b-soft);stroke:var(--compare-b)"/&gt;&lt;circle cx="500" cy="190" r="5" stroke-width="2" style="fill:var(--compare-b-soft);stroke:var(--compare-b)"/&gt;&lt;circle cx="535" cy="110" r="5" stroke-width="2" style="fill:var(--compare-b-soft);stroke:var(--compare-b)"/&gt;&lt;circle cx="562" cy="150" r="5" stroke-width="2" style="fill:var(--compare-b-soft);stroke:var(--compare-b)"/&gt;&lt;line x1="345" y1="225" x2="575" y2="150" stroke-width="2.5" style="stroke:var(--compare-b)"/&gt;&lt;text x="160" y="325" text-anchor="middle" font-size="13" style="fill:var(--secondary)"&gt;Fits every point exactly&lt;/text&gt;&lt;text x="160" y="345" text-anchor="middle" font-size="13" style="fill:var(--secondary)"&gt;captures noise, not signal&lt;/text&gt;&lt;text x="480" y="325" text-anchor="middle" font-size="13" style="fill:var(--secondary)"&gt;Misses the curved trend&lt;/text&gt;&lt;text x="480" y="345" text-anchor="middle" font-size="13" style="fill:var(--secondary)"&gt;too simple for the pattern&lt;/text&gt;&lt;/svg&gt;
&lt;/div&gt;
&lt;h2 id="comparison-table"&gt;Comparison Table&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Overfitting&lt;/th&gt;
&lt;th&gt;Underfitting&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Underlying cause&lt;/td&gt;
&lt;td&gt;Model too complex relative to the data, so it learns noise and idiosyncrasies&lt;/td&gt;
&lt;td&gt;Model too simple to represent the true relationship in the data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Training error&lt;/td&gt;
&lt;td&gt;Very low, often near zero&lt;/td&gt;
&lt;td&gt;High, the model struggles even on data it was trained on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Validation/test error&lt;/td&gt;
&lt;td&gt;High, much worse than training error&lt;/td&gt;
&lt;td&gt;High, similar in magnitude to training error&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bias-variance profile&lt;/td&gt;
&lt;td&gt;Low bias, high variance&lt;/td&gt;
&lt;td&gt;High bias, low variance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generalization to new data&lt;/td&gt;
&lt;td&gt;Poor, predictions swing wildly on unseen inputs&lt;/td&gt;
&lt;td&gt;Poor, predictions are consistently and systematically off&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learning curve signature&lt;/td&gt;
&lt;td&gt;Training and validation loss diverge as training continues&lt;/td&gt;
&lt;td&gt;Training and validation loss both plateau high and close together&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Typical remedies&lt;/td&gt;
&lt;td&gt;Regularization, more training data, dropout, early stopping, simpler model&lt;/td&gt;
&lt;td&gt;Increase model capacity, add features, train longer, reduce regularization&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="key-differences"&gt;Key Differences&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Overfitting memorizes &lt;strong class="kw"&gt;noise&lt;/strong&gt; in the training set, while underfitting never learns the underlying &lt;strong class="kw"&gt;pattern&lt;/strong&gt; at all.&lt;/li&gt;
&lt;li&gt;Overfitting shows near-zero training error but a wide train/validation gap, a sign of &lt;strong class="kw"&gt;high variance&lt;/strong&gt;; underfitting shows poor performance on both, a sign of &lt;strong class="kw"&gt;high bias&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Overfitting is treated with &lt;strong class="kw"&gt;regularization&lt;/strong&gt; or more data; underfitting is treated by increasing &lt;strong class="kw"&gt;model capacity&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Overfitting gets worse the longer an overly flexible model &lt;strong class="kw"&gt;keeps training&lt;/strong&gt;; underfitting persists regardless of duration, since it&amp;rsquo;s a &lt;strong class="kw"&gt;structural limit&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="when-to-use-each"&gt;When to Use Each&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Overfitting&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>