Deployed 2536c93 with MkDocs version: 1.6.1

This commit is contained in:
2026-05-03 11:47:30 +08:00
commit 1ff86b66fc
418 changed files with 617336 additions and 0 deletions
+93
View File
@@ -0,0 +1,93 @@
<svg width="700" height="320" xmlns="http://www.w3.org/2000/svg">
<defs>
<marker id="ens-arrow" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
<path d="M0,0 L8,3 L0,6" fill="none" stroke="#555" stroke-width="1"/>
</marker>
</defs>
<text x="350" y="22" fill="#333" font-size="14" font-weight="bold" text-anchor="middle">Bagging vs Boosting</text>
<!-- Divider -->
<line x1="350" y1="32" x2="350" y2="310" stroke="#ccc" stroke-width="1" stroke-dasharray="4,4"/>
<!-- === BAGGING (left) === -->
<text x="175" y="50" fill="#3498db" font-size="13" font-weight="bold" text-anchor="middle">Bagging (parallel)</text>
<!-- Data box -->
<rect x="130" y="60" width="90" height="24" rx="4" fill="#3498db" opacity="0.15" stroke="#3498db" stroke-width="1.2"/>
<text x="175" y="77" fill="#333" font-size="10" text-anchor="middle">Training Data</text>
<!-- Bootstrap arrows -->
<line x1="145" y1="84" x2="80" y2="108" stroke="#555" stroke-width="1" marker-end="url(#ens-arrow)"/>
<line x1="175" y1="84" x2="175" y2="108" stroke="#555" stroke-width="1" marker-end="url(#ens-arrow)"/>
<line x1="205" y1="84" x2="270" y2="108" stroke="#555" stroke-width="1" marker-end="url(#ens-arrow)"/>
<!-- Bootstrap samples -->
<rect x="40" y="110" width="80" height="22" rx="4" fill="#3498db" opacity="0.1" stroke="#3498db" stroke-width="1"/>
<text x="80" y="125" fill="#333" font-size="9" text-anchor="middle">Sample 1</text>
<rect x="135" y="110" width="80" height="22" rx="4" fill="#3498db" opacity="0.1" stroke="#3498db" stroke-width="1"/>
<text x="175" y="125" fill="#333" font-size="9" text-anchor="middle">Sample 2</text>
<rect x="230" y="110" width="80" height="22" rx="4" fill="#3498db" opacity="0.1" stroke="#3498db" stroke-width="1"/>
<text x="270" y="125" fill="#333" font-size="9" text-anchor="middle">Sample 3</text>
<!-- Models -->
<rect x="45" y="145" width="70" height="26" rx="4" fill="#3498db" opacity="0.2" stroke="#3498db" stroke-width="1.2"/>
<text x="80" y="163" fill="#333" font-size="10" text-anchor="middle">Tree 1</text>
<rect x="140" y="145" width="70" height="26" rx="4" fill="#3498db" opacity="0.2" stroke="#3498db" stroke-width="1.2"/>
<text x="175" y="163" fill="#333" font-size="10" text-anchor="middle">Tree 2</text>
<rect x="235" y="145" width="70" height="26" rx="4" fill="#3498db" opacity="0.2" stroke="#3498db" stroke-width="1.2"/>
<text x="270" y="163" fill="#333" font-size="10" text-anchor="middle">Tree 3</text>
<!-- Arrows to average -->
<line x1="80" y1="171" x2="145" y2="200" stroke="#555" stroke-width="1" marker-end="url(#ens-arrow)"/>
<line x1="175" y1="171" x2="175" y2="200" stroke="#555" stroke-width="1" marker-end="url(#ens-arrow)"/>
<line x1="270" y1="171" x2="205" y2="200" stroke="#555" stroke-width="1" marker-end="url(#ens-arrow)"/>
<!-- Average box -->
<rect x="130" y="202" width="90" height="26" rx="4" fill="#27ae60" opacity="0.2" stroke="#27ae60" stroke-width="1.5"/>
<text x="175" y="220" fill="#27ae60" font-size="11" font-weight="bold" text-anchor="middle">Average</text>
<text x="175" y="250" fill="#666" font-size="10" text-anchor="middle">All learners trained independently</text>
<text x="175" y="264" fill="#3498db" font-size="10" text-anchor="middle" font-weight="bold">Reduces variance</text>
<!-- === BOOSTING (right) === -->
<text x="525" y="50" fill="#e74c3c" font-size="13" font-weight="bold" text-anchor="middle">Boosting (sequential)</text>
<!-- Model 1 -->
<rect x="485" y="65" width="80" height="26" rx="4" fill="#e74c3c" opacity="0.15" stroke="#e74c3c" stroke-width="1.2"/>
<text x="525" y="83" fill="#333" font-size="10" text-anchor="middle">Weak 1</text>
<!-- Error arrow -->
<line x1="525" y1="91" x2="525" y2="108" stroke="#555" stroke-width="1" marker-end="url(#ens-arrow)"/>
<text x="560" y="104" fill="#e74c3c" font-size="9">errors</text>
<!-- Model 2 -->
<rect x="485" y="110" width="80" height="26" rx="4" fill="#e74c3c" opacity="0.2" stroke="#e74c3c" stroke-width="1.2"/>
<text x="525" y="128" fill="#333" font-size="10" text-anchor="middle">Weak 2</text>
<!-- Error arrow -->
<line x1="525" y1="136" x2="525" y2="153" stroke="#555" stroke-width="1" marker-end="url(#ens-arrow)"/>
<text x="560" y="149" fill="#e74c3c" font-size="9">errors</text>
<!-- Model 3 -->
<rect x="485" y="155" width="80" height="26" rx="4" fill="#e74c3c" opacity="0.25" stroke="#e74c3c" stroke-width="1.2"/>
<text x="525" y="173" fill="#333" font-size="10" text-anchor="middle">Weak 3</text>
<!-- Arrow to weighted sum -->
<line x1="525" y1="181" x2="525" y2="200" stroke="#555" stroke-width="1" marker-end="url(#ens-arrow)"/>
<!-- Weighted sum box -->
<rect x="475" y="202" width="100" height="26" rx="4" fill="#27ae60" opacity="0.2" stroke="#27ae60" stroke-width="1.5"/>
<text x="525" y="220" fill="#27ae60" font-size="11" font-weight="bold" text-anchor="middle">Weighted Sum</text>
<!-- Weights annotation -->
<text x="440" y="83" fill="#666" font-size="9" text-anchor="end">w₁</text>
<text x="440" y="128" fill="#666" font-size="9" text-anchor="end">w₂</text>
<text x="440" y="173" fill="#666" font-size="9" text-anchor="end">w₃</text>
<text x="525" y="250" fill="#666" font-size="10" text-anchor="middle">Each learner fixes previous errors</text>
<text x="525" y="264" fill="#e74c3c" font-size="10" text-anchor="middle" font-weight="bold">Reduces bias</text>
<!-- Bottom summary -->
<rect x="150" y="282" width="400" height="24" rx="6" fill="#f5f5f5" stroke="#333" stroke-width="1"/>
<text x="350" y="299" fill="#333" font-size="11" text-anchor="middle">Random Forest = bagging of trees | AdaBoost, GBM = boosting variants</text>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB