{"version":2,"relationshipURLBase":"https://codingai-lec03.pages.dev/course/notebook-blocks/2cef56135a514fec939187e24ec21bf6.html","relationshipResolution":"Resolve relative relationship URLs against relationshipURLBase; complete records and absolute URLs are in blocks.","title":"不只看一条平均曲线 · 实现代码","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/2cef56135a514fec939187e24ec21bf6.html","markdown":"https://codingai-lec03.pages.dev/course/notebook-blocks/2cef56135a514fec939187e24ec21bf6.md","pages":[{"id":"reading-opening","title":"不只看一条平均曲线 · 实现代码","unit":"不只看一条平均曲线 · 实现代码","unitId":"notebook-blocks/2cef56135a514fec939187e24ec21bf6","chapter":"course","number":1}],"aliases":[{"oldId":"b-767a5bb9704cd099c6ac9b65","targetId":"b-767a5bb9704cd099c6ac9b65","page":"reading-opening","operation":"move","beforeSHA256":"7d57f9e628741b07c2704a32d4b4c2e5ca44d512d696e3562c18003cb33df7d1","afterSHA256":"7d57f9e628741b07c2704a32d4b4c2e5ca44d512d696e3562c18003cb33df7d1","reason":"Same source body in authored semantic page"},{"oldId":"b-92d6b50d269790d1bab0a257","targetId":"b-92d6b50d269790d1bab0a257","page":"reading-opening","operation":"move","beforeSHA256":"1f2ed3354abae3ec8b4dda56b3c0bae657da2ffd1a0471d1c0066551eb5c0698","afterSHA256":"1f2ed3354abae3ec8b4dda56b3c0bae657da2ffd1a0471d1c0066551eb5c0698","reason":"Same source body in authored semantic page"},{"oldId":"b-cfeecd3bba33405c9ffb0244","targetId":"b-cfeecd3bba33405c9ffb0244","page":"reading-opening","operation":"move","beforeSHA256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","afterSHA256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","reason":"Same source body in authored semantic page"},{"oldId":"b-e74d4d99d8e565760f37bf74","targetId":"b-e74d4d99d8e565760f37bf74","page":"reading-opening","operation":"move","beforeSHA256":"75bc3d13109b5a891b82a4daefd668c001abde4ddf12e5ad4e20e6fe674663c6","afterSHA256":"75bc3d13109b5a891b82a4daefd668c001abde4ddf12e5ad4e20e6fe674663c6","reason":"Same source body in authored semantic page"},{"oldId":"b-61b366244bcb499275d1a947","targetId":"b-61b366244bcb499275d1a947","page":"reading-opening","operation":"move","beforeSHA256":"45461aebe261c4839f4a26428848ac509ba1d683b3706b98f376415959d5f951","afterSHA256":"45461aebe261c4839f4a26428848ac509ba1d683b3706b98f376415959d5f951","reason":"Same source body in authored semantic page"}],"blocks":[{"id":"b-767a5bb9704cd099c6ac9b65","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/2cef56135a514fec939187e24ec21bf6.html#b-767a5bb9704cd099c6ac9b65","content":"[LAB 01 · 固定表示：标签预算与读出](/course/notebooks/4dd8605ed9904820919ea9e13d9e7d7c.html)","sha256":"7d57f9e628741b07c2704a32d4b4c2e5ca44d512d696e3562c18003cb33df7d1","chapter":{"id":"course","title":"不只看一条平均曲线 · 实现代码"},"unit":{"id":"notebook-blocks/2cef56135a514fec939187e24ec21bf6","title":"不只看一条平均曲线 · 实现代码"},"page":{"id":"reading-opening","title":"不只看一条平均曲线 · 实现代码","number":1},"sectionTitle":"不只看一条平均曲线 · 实现代码","currentQuestion":"不只看一条平均曲线 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":null,"nextBlock":"b-92d6b50d269790d1bab0a257","prerequisites":[],"relatedBlocks":[]},{"id":"b-92d6b50d269790d1bab0a257","type":"h1","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/2cef56135a514fec939187e24ec21bf6.html#b-92d6b50d269790d1bab0a257","content":"# 不只看一条平均曲线 · 实现代码","sha256":"1f2ed3354abae3ec8b4dda56b3c0bae657da2ffd1a0471d1c0066551eb5c0698","chapter":{"id":"course","title":"不只看一条平均曲线 · 实现代码"},"unit":{"id":"notebook-blocks/2cef56135a514fec939187e24ec21bf6","title":"不只看一条平均曲线 · 实现代码"},"page":{"id":"reading-opening","title":"不只看一条平均曲线 · 实现代码","number":1},"sectionTitle":"不只看一条平均曲线 · 实现代码","currentQuestion":"不只看一条平均曲线 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-767a5bb9704cd099c6ac9b65","nextBlock":"b-cfeecd3bba33405c9ffb0244","prerequisites":[{"id":"b-767a5bb9704cd099c6ac9b65","url":"#b-767a5bb9704cd099c6ac9b65","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-cfeecd3bba33405c9ffb0244","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/2cef56135a514fec939187e24ec21bf6.html#b-cfeecd3bba33405c9ffb0244","content":"按问题继续","sha256":"e91f24e4e4ca40e2099a0d81d30db6568f4bf2074b499eeee6e3959617bd97ac","chapter":{"id":"course","title":"不只看一条平均曲线 · 实现代码"},"unit":{"id":"notebook-blocks/2cef56135a514fec939187e24ec21bf6","title":"不只看一条平均曲线 · 实现代码"},"page":{"id":"reading-opening","title":"不只看一条平均曲线 · 实现代码","number":1},"sectionTitle":"不只看一条平均曲线 · 实现代码","currentQuestion":"不只看一条平均曲线 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-92d6b50d269790d1bab0a257","nextBlock":"b-e74d4d99d8e565760f37bf74","prerequisites":[{"id":"b-92d6b50d269790d1bab0a257","url":"#b-92d6b50d269790d1bab0a257","role":"section-title"},{"id":"b-767a5bb9704cd099c6ac9b65","url":"#b-767a5bb9704cd099c6ac9b65","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-e74d4d99d8e565760f37bf74","type":"p","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/2cef56135a514fec939187e24ec21bf6.html#b-e74d4d99d8e565760f37bf74","content":"固定CNN与缓存特征、标签预算、kNN/linear和独立评价","sha256":"75bc3d13109b5a891b82a4daefd668c001abde4ddf12e5ad4e20e6fe674663c6","chapter":{"id":"course","title":"不只看一条平均曲线 · 实现代码"},"unit":{"id":"notebook-blocks/2cef56135a514fec939187e24ec21bf6","title":"不只看一条平均曲线 · 实现代码"},"page":{"id":"reading-opening","title":"不只看一条平均曲线 · 实现代码","number":1},"sectionTitle":"不只看一条平均曲线 · 实现代码","currentQuestion":"不只看一条平均曲线 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-cfeecd3bba33405c9ffb0244","nextBlock":"b-61b366244bcb499275d1a947","prerequisites":[{"id":"b-92d6b50d269790d1bab0a257","url":"#b-92d6b50d269790d1bab0a257","role":"section-title"},{"id":"b-767a5bb9704cd099c6ac9b65","url":"#b-767a5bb9704cd099c6ac9b65","role":"problem-context"}],"relatedBlocks":[]},{"id":"b-61b366244bcb499275d1a947","type":"pre","scope":"document","url":"https://codingai-lec03.pages.dev/course/notebook-blocks/2cef56135a514fec939187e24ec21bf6.html#b-61b366244bcb499275d1a947","content":"```\npred_knn=fitted[('kNN',256)].predict(features[heldout]); pred_linear=fitted[('linear',256)].predict(features[heldout])\nerror_local=np.flatnonzero((pred_knn!=y[heldout])|(pred_linear!=y[heldout]))[:8]\nfig,axes=plt.subplots(2,4,figsize=(10,5.5))\nfor ax in axes.ravel():ax.axis('off')\nfor ax,j in zip(axes.ravel(),error_local):\n    i=heldout[j];ax.imshow(x[i,0],cmap='gray',vmin=0,vmax=1)\n    ax.set_title(f'id {sample_ids[i]} · digit={digits[i]}, y={y[i]}\\nkNN={pred_knn[j]}, linear={pred_linear[j]}',fontsize=9)\nsavefig('04-readout-errors.png')\nagreement={'both_correct':int(((pred_knn==y[heldout])&(pred_linear==y[heldout])).sum()),\n 'knn_only_correct':int(((pred_knn==y[heldout])&(pred_linear!=y[heldout])).sum()),\n 'linear_only_correct':int(((pred_knn!=y[heldout])&(pred_linear==y[heldout])).sum()),\n 'both_wrong':int(((pred_knn!=y[heldout])&(pred_linear!=y[heldout])).sum())}\nassert sum(agreement.values())==len(heldout)\n(OUT/'error-groups.json').write_text(json.dumps(agreement,indent=2));print(agreement)\n```","sha256":"45461aebe261c4839f4a26428848ac509ba1d683b3706b98f376415959d5f951","chapter":{"id":"course","title":"不只看一条平均曲线 · 实现代码"},"unit":{"id":"notebook-blocks/2cef56135a514fec939187e24ec21bf6","title":"不只看一条平均曲线 · 实现代码"},"page":{"id":"reading-opening","title":"不只看一条平均曲线 · 实现代码","number":1},"sectionTitle":"不只看一条平均曲线 · 实现代码","currentQuestion":"不只看一条平均曲线 · 实现代码","sourceSlides":[],"knowledgeBlock":null,"formulas":[],"previousBlock":"b-e74d4d99d8e565760f37bf74","nextBlock":null,"prerequisites":[{"id":"b-92d6b50d269790d1bab0a257","url":"#b-92d6b50d269790d1bab0a257","role":"section-title"},{"id":"b-767a5bb9704cd099c6ac9b65","url":"#b-767a5bb9704cd099c6ac9b65","role":"problem-context"}],"relatedBlocks":[]}]}
