{"id":506,"date":"2026-10-03T21:49:57","date_gmt":"2026-10-03T13:49:57","guid":{"rendered":"https:\/\/www.triode.cc\/?p=506"},"modified":"2026-10-03T22:48:07","modified_gmt":"2026-10-03T14:48:07","slug":"mlnote","status":"publish","type":"post","link":"https:\/\/www.triode.cc\/index.php\/2026\/10\/03\/mlnote\/","title":{"rendered":"\u673a\u5668\u5b66\u4e60\u7b14\u8bb0"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u6a21\u578b\u8bc4\u4f30\u65b9\u6cd5<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u4e8e\u4e00\u4e2a\u5305\u542b\\(m\\)\u4e2a\u6837\u4f8b\u7684\u6570\u636e\u96c6\\(D=\\{(x_i,y_i)|i=1,2,\\cdots,m\\}\\)\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u5bf9\\(D\\)\u8fdb\u884c\u4e00\u5b9a\u5904\u7406\uff0c\u4ece\u4e2d\u4ea7\u751f\u8bad\u7ec3\u96c6\\(S\\)\u548c\u6d4b\u8bd5\u96c6\\(T\\)\u5206\u522b\u8fdb\u884c\u6d4b\u8bd5\u548c\u8bc4\u4f30.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u7559\u51fa\u6cd5\uff08hold-out\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7559\u51fa\u6cd5\u5373\u5c06\u6570\u636e\u96c6\u5212\u5206\u4e3a\u4e24\u4e2a\u4e92\u65a5\u7684\u96c6\u5408\\(S\\)\uff08\u6570\u636e\u96c6\uff09\u4ee5\u53ca\\(T\\)\uff08\u6d4b\u8bd5\u96c6\uff09\uff0c\u6ee1\u8db3\uff1a<br>\\[<br>\\begin{cases}<br>S\\cup T=D\\\\<br>S\\cap T=\\emptyset<br>\\end{cases}<br>\\]<br>\u5728\u4f7f\u7528\\(S\\)\u8bad\u7ec3\u51fa\u6a21\u578b\u4e4b\u540e\u7528\\(T\\)\u6765\u8bc4\u4f30\u5176\u6d4b\u8bd5\u8bef\u5dee.<br>\u8be5\u65b9\u6cd5\u6700\u597d\u4f7f\u7528\u6570\u636e\u96c6\u4e2d\u5927\u7ea6\\(67\\%\\sim80\\%\\)\u6837\u672c\u4f5c\u4e3a\u8bad\u7ec3\u6570\u636e\uff0c\u5176\u4f59\u7528\u4e8e\u6d4b\u8bd5\uff0c\u5e76\u4e14\u5728\u4f7f\u7528\u8be5\u65b9\u6cd5\u65f6\u9700\u8981\u91c7\u7528\u82e5\u5e72\u6b21\u968f\u673a\u5212\u5206\u3001\u91cd\u590d\u8fdb\u884c\u5b9e\u9a8c\u8bc4\u4f30\u540e\u53d6\u5e73\u5747\u503c\u4f5c\u4e3a\u8bc4\u4f30\u7ed3\u679c.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4ea4\u53c9\u9a8c\u8bc1\u6cd5\uff08cross validation\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ea4\u53c9\u9a8c\u8bc1\u6cd5\u5373\u5c06\u6570\u636e\u96c6\\(D\\)\u5212\u5206\u4e3a\\(k\\)\u4e2a\u5927\u5c0f\u76f8\u4f3c\u7684\u4e92\u65a5\u5b50\u96c6\\(D_i(i=1,2,\\cdots,k)\\)\uff0c\u6ee1\u8db3\uff1a<br>\\[<br>\\begin{cases}<br>D_1\\cup D_2\\cup\\cdots\\cup D_k=D\\\\<br>D_i\\cap D_j=\\emptyset, i\\neq j<br>\\end{cases}<br>\\]<br>\u6bcf\u4e2a\u5b50\u96c6\u90fd\u5c3d\u53ef\u80fd\u4fdd\u6301\u6570\u636e\u5206\u5e03\u7684\u4e00\u81f4\u6027\uff0c\u4e4b\u540e\u6bcf\u6b21\u91c7\u7528\\(k-1\\)\u4e2a\u5b50\u96c6\u7684\u5e76\u96c6\u4f5c\u4e3a\u8bad\u7ec3\u96c6\uff0c\u5e76\u7528\u5269\u4e0b\u4e00\u4e2a\u5b50\u96c6\u4f5c\u4e3a\u6d4b\u8bd5\u96c6\uff0c\u8fd9\u6837\u5c31\u53ef\u4ee5\u5f97\u5230\\(k\\)\u7ec4\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\uff1a<br>\\[<br>\\begin{cases}<br>\\text{\u7ec4\\(1\\)}:&amp;<br>\\begin{cases}<br>S=D_2\\cup D_3\\cup\\cdots\\cup D_k\\\\<br>T=D_1<br>\\end{cases}\\\\<br>\\text{\u7ec4\\(2\\)}:&amp;<br>\\begin{cases}<br>S=D_1\\cup D_3\\cup\\cdots\\cup D_k\\\\<br>T=D_2<br>\\end{cases}\\\\<br>\\text{\u7ec4\\(3\\)}:&amp;<br>\\begin{cases}<br>S=D_1\\cup D_2\\cup D_4\\cup\\cdots\\cup D_k\\\\<br>T=D_3<br>\\end{cases}\\\\<br>\\cdots\\\\<br>\\text{\u7ec4\\(k-1\\)}:&amp;<br>\\begin{cases}<br>S=D_1\\cup D_2\\cup\\cdots\\cup D_{k-2}\\cup D_k\\\\<br>T=D_{k-1}<br>\\end{cases}\\\\<br>\\text{\u7ec4\\(k\\)}:&amp;<br>\\begin{cases}<br>S=D_1\\cup D_2\\cup\\cdots\\cup D_{k-1}\\\\<br>T=D_k<br>\\end{cases}\\\\<br>\\end{cases}<br>\\]<br>\u8fdb\u884c\\(k\\)\u6b21\u6d4b\u8bd5\u9a8c\u8bc1\u540e\u5bf9\u6d4b\u8bd5\u7ed3\u679c\u53d6\u5e73\u5747\u4f5c\u4e3a\u8bc4\u4f30\u7ed3\u679c\u3002\u5bf9\u4e8e\u4efb\u4e00\u7ec4\uff0c\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\u540c\u6837\u6ee1\u8db3\\(S\\cup T=D,S\\cap T=\\emptyset\\)\uff0c\u901a\u5e38\u5c06\u4ea4\u53c9\u9a8c\u8bc1\u6cd5\u79f0\u4e3a\\(k\\)\u6298\u4ea4\u53c9\u9a8c\u8bc1\uff08\u5e38\u53d6\\(k=10\\)\uff09.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u81ea\u52a9\u6cd5\uff08bootstrapping\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u79cd\u65b9\u6cd5\u662f\u4ee5\u81ea\u4e3b\u91c7\u6837\u6cd5\uff08bootstrap sampling\uff09\u4e3a\u57fa\u7840\u7684\uff1a<br>\u5bf9\u4e8e\u4e00\u4e2a\u5305\u542b\\(m\\)\u4e2a\u6837\u672c\u7684\u6570\u636e\u96c6\\(D\\)\uff0c\u5bf9\u5b83\u91c7\u6837\u4ea7\u751f\u6570\u636e\u96c6\\(D&#8217;\\)\uff08\u91c7\u6837\u65b9\u6cd5\u4e3a\\(m\\)\u6b21\u6709\u653e\u56de\u968f\u673a\u91c7\u6837\uff09\uff0c\u53ef\u4ee5\u77e5\u9053\u4efb\u610f\u4e00\u4e2a\u6837\u672c\\(s\\in D\\)\u59cb\u7ec8\u6ca1\u6709\u88ab\u91c7\u6837\u5230\u7684\u6982\u7387\u4e3a\uff1a<br>\\[<br>\\left(1-\\frac{1}{m}\\right)^m<br>\\]<br>\u6709\uff1a<br>\\[<br>\\lim_{m\\rightarrow\\infty}\\left(1-\\frac{1}{m}\\right)^m=\\frac{1}{e}\\approx0.368<br>\\]<br>\u53ef\u4ee5\u77e5\u9053\u6570\u636e\u96c6\\(D\\)\u4e2d\u6709\u5927\u7ea6\\(36.8\\%\\)\u7684\u6837\u672c\u4e0d\u4f1a\u88ab\u91c7\u6837\u5230\uff0c\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u7528\\(D&#8217;\\)\u4f5c\u4e3a\u8bad\u7ec3\u96c6\uff0c\\(D-D&#8217;\\)\u4f5c\u4e3a\u6d4b\u8bd5\u96c6\u8fdb\u884c\u8bad\u7ec3\u548c\u6d4b\u8bd5.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u81ea\u52a9\u6cd5\u9002\u5408\u5728\u6570\u636e\u96c6\u8f83\u5c0f\u3001\u96be\u4ee5\u6709\u6548\u5212\u5206\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\u7684\u65f6\u5019\u6bd4\u8f83\u6709\u7528\uff0c\u5728\u6570\u636e\u91cf\u8db3\u591f\u5927\u7684\u65f6\u5019\u6700\u597d\u4f7f\u7528\u7559\u51fa\u6cd5\u6216\u4ea4\u53c9\u9a8c\u8bc1\u6cd5<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ebf\u6027\u6a21\u578b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ed9\u5b9a\u7531\\(d\\)\u4e2a\u5c5e\u6027\u63cf\u8ff0\u7684\u793a\u4f8b\\(\\pmb{x}=(x_1,x_2,\\cdots,x_d)^T\\)\uff0c\u5176\u4e2d\\(x_i\\)\u4e3a\\(\\pmb{x}\\)\u5728\u7b2c\\(i\\)\u4e2a\u5c5e\u6027\u4e0a\u7684\u53d6\u503c\uff0c\u7ebf\u6027\u6a21\u578b\u8bd5\u56fe\u5b66\u5f97\u4e00\u4e2a\u5173\u4e8e\\(\\pmb{x}\\)\u7684\u7ebf\u6027\u51fd\u6570\u6765\u8fdb\u884c\u9884\u6d4b\u7684\u51fd\u6570\uff1a<br>\\[<br>f(\\pmb{x})=w_1x_1+w_2x_2+\\cdots+w_dx_d+b<br>\\]<br>\u5411\u91cf\u8868\u793a\u4e3a\uff1a<br>\\[<br>f(\\pmb{x})=\\pmb{w}^{T}\\pmb{x}+b<br>\\]<br>\u5176\u4e2d\\(\\pmb{w}=(w_1,w_2,\\cdots,w_d)^T\\)\uff0c\u5728\\(\\pmb{w}\\)\u548c\\(b\\)\u5b66\u5f97\u4e4b\u540e\uff0c\u6a21\u578b\u5c31\u53ef\u4ee5\u786e\u5b9a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u7ebf\u6027\u56de\u5f52<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u7ed9\u5b9a\u6570\u636e\u96c6\\(D=\\{(\\pmb{x}_i,y_i)|i=1,2,\\cdots,m\\}\\)\uff0c\u5176\u4e2d\\(\\pmb{x}_i=(x_{i1},x_{i2},\\cdots,x_{id})^T,y_i\\in\\mathbb{R}\\)\uff0c\u7ebf\u6027\u56de\u5f52\u8bd5\u56fe\u5b66\u5f97\u4e00\u4e2a\u7ebf\u6027\u6a21\u578b\u4ee5\u5c3d\u53ef\u80fd\u51c6\u786e\u5730\u9884\u6d4b\u5b9e\u503c\u8f93\u51fa\u6807\u8bb0\uff0c\u53ef\u91c7\u7528\u591a\u5143\u7ebf\u6027\u56de\u5f52\u7b97\u6cd5\u6765\u8bd5\u56fe\u5b66\u5f97\u51fd\u6570\\(f(\\pmb{x})\\)\u4f7f\u5f97\uff1a<br>\\[<br>f(\\pmb{x}_i)=\\pmb{w}^{T}\\pmb{x}_i+b\\simeq y_i<br>\\]<br>\u591a\u5143\u7ebf\u6027\u56de\u5f52\u91c7\u7528\u6700\u5c0f\u4e8c\u4e58\u6cd5\u6765\u5bf9\\(\\pmb{w}\\)\u4ee5\u53ca\\(b\\)\u8fdb\u884c\u4f30\u8ba1\uff0c\u7b97\u6cd5\u5982\u4e0b\uff1a<br>\u9996\u5148\u5c06\u6570\u636e\u96c6\\(D\\)\u8868\u793a\u4e3a\u4e00\u4e2a\\(m\\times(d+1)\\)\u7684\u77e9\u9635\\(\\pmb{X}\\)\uff1a<br>\\[<br>\\pmb{X}=\\left(\\begin{matrix}<br>x_{11}&amp;x_{12}&amp;\\cdots&amp;x_{1d}&amp;1\\\\<br>x_{21}&amp;x_{22}&amp;\\cdots&amp;x_{2d}&amp;1\\\\<br>\\vdots&amp;\\vdots&amp;\\ddots&amp;\\vdots&amp;\\vdots\\\\<br>x_{m1}&amp;x_{m2}&amp;\\cdots&amp;x_{md}&amp;1<br>\\end{matrix}\\right)=\\left(\\begin{matrix}<br>\\pmb{x}_1^T&amp;1\\\\<br>\\pmb{x}_2^T&amp;1\\\\<br>\\vdots&amp;\\vdots\\\\<br>\\pmb{x}_m^T&amp;1<br>\\end{matrix}\\right)<br>\\]<br>\u5e76\u5c06\u6807\u8bb0\\(y_1,y_2,\\cdots,y_{m}\\)\u5199\u6210\u5411\u91cf\u5f62\u5f0f\\(\\pmb{y}=(y_1,y_2,\\cdots,y_{m})^{T}\\)\uff0c\u6709\\(\\pmb{w}\\)\u7684\u8fd1\u4f3c\u5411\u91cf\uff1a<br>\\[<br>\\hat{\\pmb{w}}^{*}=(\\pmb{X}^{T}\\pmb{X})^{-1}\\pmb{X}^T\\pmb{y}<br>\\]<br>\u4ee4\\(\\hat{\\pmb{x}}_i=(\\pmb{x}_i^{T},1)^T\\)\uff08\u5373\u5728\\(\\pmb{x}_i\\)\u7684\u6700\u540e\u62fc\u4e0a\u4e00\u4e2a\\(1\\)\uff09\uff0c\u53ef\u4ee5\u5f97\u5230\u4e00\u4e2a\u591a\u5143\u7ebf\u6027\u56de\u5f52\u6a21\u578b\uff1a<br>\\[<br>f(\\hat{\\pmb{x}}_i)=\\hat{\\pmb{x}}_i^T\\hat{\\pmb{w}}^{*}=\\hat{\\pmb{x}}_i^T(\\pmb{X}^{T}\\pmb{X})^{-1}\\pmb{X}^T\\pmb{y}<br>\\]<br>\u8fd9\u91cc\u4ee5\u52a0\u5229\u798f\u5c3c\u4e9a\u623f\u5c4b\u4ef7\u683c\u6570\u636e\u96c6\u4e3a\u4f8b\uff0c\u8be5\u6570\u636e\u96c6\u63cf\u8ff0\u5982\u4e0b\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>.. _california_housing_dataset:\n\nCalifornia Housing dataset\n--------------------------\n\n**Data Set Characteristics:**\n\n:Number of Instances: 20640\n\n:Number of Attributes: 8 numeric, predictive attributes and the target\n\n:Attribute Information:\n    - MedInc        median income in block group\n    - HouseAge      median house age in block group\n    - AveRooms      average number of rooms per household\n    - AveBedrms     average number of bedrooms per household\n    - Population    block group population\n    - AveOccup      average number of household members\n    - Latitude      block group latitude\n    - Longitude     block group longitude\n\n:Missing Attribute Values: None\n\nThis dataset was obtained from the StatLib:\nhttps:\/\/lib.stat.cmu.edu\/datasets\/houses.zip\n\nThe target variable is the median house value for California districts,\nexpressed in hundreds of thousands of dollars ($100,000).\n\nThis dataset was derived from the 1990 U.S. census, using one row per census\nblock group. A block group is the smallest geographical unit for which the U.S.\nCensus Bureau publishes sample data (a block group typically has a population\nof 600 to 3,000 people).\n\nA household is a group of people residing within a home. Since the average\nnumber of rooms and bedrooms in this dataset are provided per household, these\ncolumns may take surprisingly large values for block groups with few households\nand many empty houses, such as vacation resorts.\n\nIt can be downloaded\/loaded using the\n:func:`sklearn.datasets.fetch_california_housing` function.<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #d8dee9ff\">.. _california_housing_dataset:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">California Housing dataset<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">--------------------------<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">**Data Set Characteristics:**<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Number of Instances: 20640<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Number of Attributes: 8 numeric, predictive attributes and the target<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Attribute Information:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - MedInc        median income in block group<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - HouseAge      median house age in block group<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - AveRooms      average number of rooms per household<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - AveBedrms     average number of bedrooms per household<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - Population    block group population<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - AveOccup      average number of household members<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - Latitude      block group latitude<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - Longitude     block group longitude<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Missing Attribute Values: None<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">This dataset was obtained from the StatLib:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">https:\/\/lib.stat.cmu.edu\/datasets\/houses.zip<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">The target variable is the median house value for California districts,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">expressed in hundreds of thousands of dollars ($100,000).<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">This dataset was derived from the 1990 U.S. census, using one row per census<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">block group. A block group is the smallest geographical unit for which the U.S.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">Census Bureau publishes sample data (a block group typically has a population<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">of 600 to 3,000 people).<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">A household is a group of people residing within a home. Since the average<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">number of rooms and bedrooms in this dataset are provided per household, these<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">columns may take surprisingly large values for block groups with few households<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">and many empty houses, such as vacation resorts.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">It can be downloaded\/loaded using the<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:func:`sklearn.datasets.fetch_california_housing` function.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u7531\u63cf\u8ff0\u53ef\u4ee5\u770b\u5230\u8be5\u6570\u636e\u96c6\u4e2d\u542b\u670920640\u4e2a\u5b9e\u4f8b\uff0c\u6bcf\u4e2a\u5b9e\u4f8b\u5305\u542b\u516b\u4e2a\u5c5e\u6027\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table class=\"has-fixed-layout\"><thead><tr><th>\u5c5e\u6027\u540d<\/th><th>\u5c5e\u6027\u4fe1\u606f<\/th><\/tr><\/thead><tbody><tr><td><code>MedInc<\/code><\/td><td>\u8857\u533a\u7ec4\u7684\u6536\u5165\u4e2d\u4f4d\u6570<\/td><\/tr><tr><td><code>HouseAge<\/code><\/td><td>\u8857\u533a\u7ec4\u623f\u5c4b\u5e74\u9f84\u4e2d\u4f4d\u6570<\/td><\/tr><tr><td><code>AveRooms<\/code><\/td><td>\u6bcf\u6237\u5e73\u5747\u623f\u95f4\u6570<\/td><\/tr><tr><td><code>AveBedrms<\/code><\/td><td>\u6bcf\u6237\u5e73\u5747\u5367\u5ba4\u6570<\/td><\/tr><tr><td><code>Population<\/code><\/td><td>\u8857\u533a\u7ec4\u4eba\u53e3<\/td><\/tr><tr><td><code>AveOccup<\/code><\/td><td>\u5e73\u5747\u6bcf\u6237\u4eba\u6570<\/td><\/tr><tr><td><code>Latitude<\/code><\/td><td>\u8857\u533a\u7ec4\u6240\u5728\u7eac\u5ea6<\/td><\/tr><tr><td><code>Longitude<\/code><\/td><td>\u8857\u533a\u7ec4\u6240\u5728\u7ecf\u5ea6<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u76ee\u6807\u503c\u4e3a\u52a0\u5229\u798f\u5c3c\u4e9a\u5404\u533a\u7684\u623f\u5c4b\u4e2d\u4f4d\u6570\u4ef7\u683c\uff0c\u5728\u8fd9\u91cc\u91c7\u7528\u7559\u51fa\u6cd5\u5212\u5206\u6570\u636e\u96c6\uff0c\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u4ee3\u7801\u6765\u8bad\u7ec3\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u5e76\u8f93\u51fa\u8bc4\u4f30\u7ed3\u679c\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># \u5bfc\u5165\u5fc5\u8981\u7684\u5e93\nimport numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.metrics import mean_squared_error, r2_score\nfrom sklearn.datasets import fetch_california_housing # \u4e00\u4e2a\u7ecf\u5178\u7684\u591a\u53d8\u91cf\u6570\u636e\u96c6\n\ncalifornia = fetch_california_housing()\ndf = pd.DataFrame(california.data, columns=california.feature_names)\ndf&#91;'MedHouseVal'&#93; = california.target\n\n# \u7279\u5f81\nX = df.drop('MedHouseVal', axis=1)\n\n# \u76ee\u6807\u503c\uff08\u623f\u5c4b\u4e2d\u4f4d\u6570\u4ef7\u683c\uff09\ny = df&#91;'MedHouseVal'&#93;\n\n# \u901a\u8fc7\u7559\u51fa\u6cd5\u5212\u5206\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)\n\n# \u521b\u5efa\u5e76\u8bad\u7ec3\u7ebf\u6027\u56de\u5f52\u6a21\u578b\nmodel = LinearRegression()\nmodel.fit(X_train, y_train)\n\n# \u4f7f\u7528\u6d4b\u8bd5\u96c6\u8fdb\u884c\u9884\u6d4b\u5e76\u8bc4\u4f30\u6a21\u578b\u6027\u80fd\ny_pred = model.predict(X_test)\n\nmse = mean_squared_error(y_test, y_pred)\nr2 = r2_score(y_test, y_pred)\n\nprint(f'MSE: {mse:.2f}')\nprint(f'R-squared: {r2:.2f}')<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># \u5bfc\u5165\u5fc5\u8981\u7684\u5e93<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> numpy <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> np<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> pandas <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> matplotlib<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">pyplot <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> plt<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">model_selection <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> train_test_split<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">linear_model <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> LinearRegression<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">metrics <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> mean_squared_error<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> r2_score<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">datasets <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> fetch_california_housing <\/span><span style=\"color: #616E88\"># \u4e00\u4e2a\u7ecf\u5178\u7684\u591a\u53d8\u91cf\u6570\u636e\u96c6<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">california <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">fetch_california_housing<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">DataFrame<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">california<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">columns<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">california<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">feature_names<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">MedHouseVal<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> california<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">target<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u7279\u5f81<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">X <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> df<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">drop<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">MedHouseVal<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">axis<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u76ee\u6807\u503c\uff08\u623f\u5c4b\u4e2d\u4f4d\u6570\u4ef7\u683c\uff09<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">y <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> df<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">MedHouseVal<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u901a\u8fc7\u7559\u51fa\u6cd5\u5212\u5206\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">X_train<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> X_test<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_train<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_test <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">train_test_split<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">X<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">test_size<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">0.3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">random_state<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">42<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u521b\u5efa\u5e76\u8bad\u7ec3\u7ebf\u6027\u56de\u5f52\u6a21\u578b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">model <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">LinearRegression<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">model<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">fit<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">X_train<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_train<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u4f7f\u7528\u6d4b\u8bd5\u96c6\u8fdb\u884c\u9884\u6d4b\u5e76\u8bc4\u4f30\u6a21\u578b\u6027\u80fd<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">y_pred <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> model<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">predict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">X_test<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">mse <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">mean_squared_error<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">y_test<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_pred<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">r2 <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">r2_score<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">y_test<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_pred<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;MSE: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">mse<\/span><span style=\"color: #81A1C1\">:.2f<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;R-squared: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">r2<\/span><span style=\"color: #81A1C1\">:.2f<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u770b\u5230\u7ebf\u6027\u56de\u5f52\u6a21\u578b\u7684MSE\u7ea6\u4e3a\\(0.53\\)\uff0c\\(R^2\\)\u4e3a\\(0.60\\)\uff0c\u53ef\u89c6\u5316\u9884\u6d4b\u7ed3\u679c\u53ef\u4ee5\u770b\u5230\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260806224138-1.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260806224138-1.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"842\" height=\"546\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260806224138-1.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-512\"  sizes=\"auto, (max-width: 842px) 100vw, 842px\" \/><\/div><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u89c6\u5316\u7279\u5f81\u91cd\u8981\u6027\uff08\u53c2\u6570\u7684\u7edd\u5bf9\u503c\uff09\u53ef\u4ee5\u770b\u5230\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260806224306.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260806224306.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"885\" height=\"546\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260806224306.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-513\"  sizes=\"auto, (max-width: 885px) 100vw, 885px\" \/><\/div><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5f88\u660e\u663e\uff0c\u6bcf\u6237\u5e73\u5747\u5367\u5ba4\u6570\uff08AveBedrms\uff09\u5bf9\u623f\u4ef7\u7684\u5f71\u54cd\u6700\u5927\uff0c\u8857\u533a\u7ec4\u4eba\u53e3\uff08Population\uff09\u5bf9\u623f\u4ef7\u7684\u5f71\u54cd\u6700\u5c0f.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5e7f\u4e49\u7ebf\u6027\u56de\u5f52<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5df2\u77e5\u7ebf\u6027\u56de\u5f52\u6a21\u578b\uff1a<br>\\[<br>f(\\pmb{x})=\\pmb{w}^{T}\\pmb{x}+b<br>\\]<br>\u4ee4\\(f(\\pmb{x})=\\varphi(g(\\pmb{x}))\\)\uff08\u5176\u4e2d\\(\\varphi(\\cdot)\\)\u4e3a\u4e00\u4e2a\u5355\u8c03\u53ef\u5fae\u51fd\u6570\uff09\uff0c\u53ef\u4ee5\u5f97\u5230\uff1a<br>\\[<br>\\varphi(g(\\pmb{x}))=\\pmb{w}^{T}\\pmb{x}+b<br>\\]<br>\u4ece\u800c\u5f97\u5230\u5e7f\u4e49\u7ebf\u6027\u6a21\u578b\uff1a<br>\\[<br>g(\\pmb{x})=\\varphi^{-1}(\\pmb{w}^{T}\\pmb{x}+b)<br>\\]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5bf9\u6570\u51e0\u7387\u56de\u5f52<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u6570\u51e0\u7387\u56de\u5f52\u6a21\u578b\u4e3b\u8981\u7528\u4e8e\u4e8c\u5206\u7c7b\u4efb\u52a1\uff0c\u5373\u5c06\u8f93\u5165\u5206\u4e3a\u4e24\u7c7b\uff08\u53ef\u4ee5\u5c06\u8f93\u51fa\u6807\u8bb0\u7b80\u5355\u5730\u8bbe\u4e3a\\(y\\in\\{0,1\\}\\)\uff0c\u5176\u4e2d\u79f0\u7ed3\u679c\u4e3a\\(0\\)\u7684\u8f93\u5165\u4e3a\u53cd\u4f8b\uff0c\u7ed3\u679c\u4e3a\\(1\\)\u7684\u8f93\u5165\u4e3a\u6b63\u4f8b\uff09\uff0c\u6700\u7406\u60f3\u7684\u60c5\u51b5\u4e3a\u5355\u4f4d\u9636\u8dc3\u51fd\u6570\uff1a<br>\\[<br>\\delta(x)=\\begin{cases}<br>0&amp;,x&lt;0\\\\<br>\\frac{1}{2}&amp;,x=0\\\\<br>1&amp;,x&gt;0<br>\\end{cases}<br>\\]<br>\u5373\u5f53\u9884\u6d4b\u503c\u4e3a\\(0\\)\u65f6\u5224\u4e3a\u53cd\u4f8b\uff0c\u9884\u6d4b\u503c\u4e3a\\(1\\)\u65f6\u5224\u4e3a\u6b63\u4f8b\uff0c\u9884\u6d4b\u503c\u4e3a\\(1\/2\\)\u65f6\u53ef\u4efb\u610f\u5224\u522b\uff0c\u4f46\u662f\u5355\u4f4d\u9636\u8dc3\u51fd\u6570\u4e0d\u8fde\u7eed\uff0c\u65e0\u6cd5\u7528\u4e8e\u5e7f\u4e49\u7ebf\u6027\u56de\u5f52\uff0c\u6240\u4ee5\u4e00\u822c\u91c7\u7528\u5bf9\u6570\u51e0\u7387\u51fd\u6570\u8fdb\u884c\u8fd1\u4f3c\u66ff\u4ee3\uff1a<br>\\[<br>g(x)=\\frac{1}{1+e^{-x}}<br>\\]<br>\u8be5\u51fd\u6570\u56fe\u50cf\u5982\u4e0b\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260807114257-1.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260807114257-1.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"453\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260807114257-1.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-520\"  sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/div><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u4ee4\\(\\varphi(x)=g^{-1}(x)\\)\u4ee3\u5165\u5230\u5e7f\u4e49\u7ebf\u6027\u56de\u5f52\u4e2d\u6709\uff1a<br>\\[<br>z=\\varphi^{-1}(\\pmb{w}^{T}\\pmb{x}+b)=g(\\pmb{w}^{T}\\pmb{x}+b)=\\frac{1}{1+e^{-(\\pmb{w}^{T}\\pmb{x}+b)}}<br>\\]<br>\u53ef\u4ee5\u5f97\u5230\uff1a<br>\\[<br>\\ln{\\frac{z}{1-z}}=\\pmb{w}^{T}\\pmb{x}+b<br>\\]<br>\u5f88\u663e\u7136\uff0c\\(z\\)\u7684\u53d6\u503c\u8303\u56f4\u4e3a\\((0,1)\\)\uff0c\u6545\u53ef\u4ee5\u5c06\\(z\\)\u89c6\u4f5c\u6837\u672c\\(\\pmb{x}\\)\u4e3a\u6b63\u4f8b\u7684\u6982\u7387\uff08\u8bb0\u4e3a\\(p(y=1|\\pmb{x})\\)\uff09\uff0c\u90a3\u4e48\u53ef\u4ee5\u77e5\u9053\\(1-z\\)\u53ef\u4ee5\u89c6\u4f5c\u6837\u672c\\(\\pmb{x}\\)\u4e3a\u53cd\u4f8b\u7684\u6982\u7387\uff08\u8bb0\u4e3a\\(p(y=0|\\pmb{x})\\)\uff09\uff0c\u90a3\u4e48\u8be5\u5f0f\u53ef\u4ee5\u6539\u5199\u4e3a\uff1a<br>\\[<br>\\ln{\\frac{p(y=1|\\pmb{x})}{p(y=0|\\pmb{x})}}=\\pmb{w}^{T}\\pmb{x}+b<br>\\]<br>\u663e\u7136\u53ef\u4ee5\u77e5\u9053\uff1a<br>\\[<br>\\begin{cases}<br>\\frac{p(y=1|\\pmb{x})}{p(y=0|\\pmb{x})}=e^{\\pmb{w}^{T}\\pmb{x}+b}\\<br>p(y=1|\\pmb{x})+p(y=0|\\pmb{x})=1<br>\\end{cases}<br>\\]<br>\u6d88\u53bb\\(p(y=0|\\pmb{x})\\)\u53ef\u4ee5\u5f97\u5230\uff1a<br>\\[<br>p(y=1|\\pmb{x})+\\frac{p(y=1|\\pmb{x})}{e^{\\pmb{w}^{T}\\pmb{x}+b}}=\\frac{p(y=1|\\pmb{x})(e^{\\pmb{w}^{T}\\pmb{x}+b}+1)}{e^{\\pmb{w}^{T}\\pmb{x}+b}}=1<br>\\]<br>\u4ece\u800c\u53ef\u4ee5\u5f97\u5230\uff1a<br>\\[<br>\\begin{aligned}<br>&amp;p(y=1|\\pmb{x})=\\frac{e^{\\pmb{w}^{T}\\pmb{x}+b}}{1+e^{\\pmb{w}^{T}\\pmb{x}+b}}\\<br>&amp;p(y=0|\\pmb{x})=1-p(y=1|\\pmb{x})=\\frac{1}{1+e^{\\pmb{w}^{T}\\pmb{x}+b}}\\<br>\\end{aligned}<br>\\]<br>\u5bf9\u6570\u636e\u96c6\\(D=\\{(\\pmb{x}_i,y_i)|i=1,2,\\cdots,m\\}\\)\u53ef\u4ee5\u901a\u8fc7\u6700\u5927\u4f3c\u7136\u4f30\u8ba1\u6cd5\u6765\u4f30\u8ba1\\(\\pmb{w}\\)\u548c\\(b\\)\uff0c\u4ee4\\(\\pmb{\\beta}=\\left(\\begin{matrix}\\pmb{w}\\\\b\\end{matrix}\\right),\\hat{\\pmb{x}}=\\left(\\begin{matrix}\\pmb{x}\\\\1\\end{matrix}\\right)\\)\uff0c\u6709\uff1a<br>\\[<br>\\pmb{w}^{T}\\pmb{x}+b=\\pmb{\\beta}^{T}\\hat{\\pmb{x}}<br>\\]<br>\u6709\u4f3c\u7136\u51fd\u6570\uff1a<br>\\[<br>L(\\pmb{\\beta})=\\prod_{i=1}^{m}p(y_i|\\hat{\\pmb{x}}_i;\\pmb{\\beta})<br>\\]<br>\u53d6\u5bf9\u6570\u5f97\uff1a<br>\\[<br>l(\\pmb{\\beta})=\\ln{L(\\pmb{\\beta})}=\\sum_{i=1}^{m}\\ln{p(y_i|\\hat{\\pmb{x}}_i;\\pmb{\\beta})}=\\sum_{i=1}^{m}\\ln{[y_ip(y_i=1|\\hat{\\pmb{x}}_i;\\pmb{\\beta})+(1-y_i)p(y_i=0|\\hat{\\pmb{x}}_i;\\pmb{\\beta})]}<br>\\]<br>\u4ece\u800c\u53ef\u4ee5\u5f97\u5230\uff1a<br>\\[<br>l(\\pmb{\\beta})=\\sum_{i=1}^{m}\\left[-y_i\\pmb{\\beta}^T\\hat{\\pmb{x}}_i+\\ln{\\left(1+e^{-\\pmb{\\beta}^T\\hat{\\pmb{x}}_i}\\right)}\\right]<br>\\]<br>\u663e\u7136\u8be5\u51fd\u6570\u5173\u4e8e\\(\\pmb{\\beta}\\)\u53ef\u5bfc\uff0c\u90a3\u4e48\u53ef\u4ee5\u901a\u8fc7\u6c42\u4e0b\u8ff0\u65b9\u7a0b\u6765\u5f97\u5230\u53c2\u6570\\(\\pmb{\\beta}\\)\uff1a<br>\\[<br>\\frac{\\partial l(\\pmb{\\beta})}{\\partial\\pmb{\\beta}}=0<br>\\]<br>\u8fd9\u91cc\u4ee5Iris\u6570\u636e\u96c6\u4e3a\u4f8b\uff0c\u8be5\u6570\u636e\u96c6\u7684\u63cf\u8ff0\u5982\u4e0b\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>.. _iris_dataset:\n\nIris plants dataset\n--------------------\n\n**Data Set Characteristics:**\n\n:Number of Instances: 150 (50 in each of three classes)\n:Number of Attributes: 4 numeric, predictive attributes and the class\n:Attribute Information:\n    - sepal length in cm\n    - sepal width in cm\n    - petal length in cm\n    - petal width in cm\n    - class:\n            - Iris-Setosa\n            - Iris-Versicolour\n            - Iris-Virginica\n\n:Summary Statistics:\n\n============== ==== ==== ======= ===== ====================\n                Min  Max   Mean    SD   Class Correlation\n============== ==== ==== ======= ===== ====================\nsepal length:   4.3  7.9   5.84   0.83    0.7826\nsepal width:    2.0  4.4   3.05   0.43   -0.4194\npetal length:   1.0  6.9   3.76   1.76    0.9490  (high!)\npetal width:    0.1  2.5   1.20   0.76    0.9565  (high!)\n============== ==== ==== ======= ===== ====================\n\n:Missing Attribute Values: None\n:Class Distribution: 33.3% for each of 3 classes.\n:Creator: R.A. Fisher\n:Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n:Date: July, 1988\n\nThe famous Iris database, first used by Sir R.A. Fisher. The dataset is taken\nfrom Fisher's paper. Note that it's the same as in R, but not as in the UCI\nMachine Learning Repository, which has two wrong data points.\n\nThis is perhaps the best known database to be found in the\npattern recognition literature.  Fisher's paper is a classic in the field and\nis referenced frequently to this day.  (See Duda &amp; Hart, for example.)  The\ndata set contains 3 classes of 50 instances each, where each class refers to a\ntype of iris plant.  One class is linearly separable from the other 2; the\nlatter are NOT linearly separable from each other.<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #d8dee9ff\">.. _iris_dataset:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">Iris plants dataset<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">--------------------<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">**Data Set Characteristics:**<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Number of Instances: 150 (50 in each of three classes)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Number of Attributes: 4 numeric, predictive attributes and the class<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Attribute Information:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - sepal length in cm<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - sepal width in cm<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - petal length in cm<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - petal width in cm<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">    - class:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">            - Iris-Setosa<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">            - Iris-Versicolour<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">            - Iris-Virginica<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Summary Statistics:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">============== ==== ==== ======= ===== ====================<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">                Min  Max   Mean    SD   Class Correlation<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">============== ==== ==== ======= ===== ====================<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">sepal length:   4.3  7.9   5.84   0.83    0.7826<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">sepal width:    2.0  4.4   3.05   0.43   -0.4194<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">petal length:   1.0  6.9   3.76   1.76    0.9490  (high!)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">petal width:    0.1  2.5   1.20   0.76    0.9565  (high!)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">============== ==== ==== ======= ===== ====================<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Missing Attribute Values: None<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Class Distribution: 33.3% for each of 3 classes.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Creator: R.A. Fisher<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">:Date: July, 1988<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">from Fisher&#39;s paper. Note that it&#39;s the same as in R, but not as in the UCI<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">Machine Learning Repository, which has two wrong data points.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\"><\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">This is perhaps the best known database to be found in the<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">pattern recognition literature.  Fisher&#39;s paper is a classic in the field and<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">is referenced frequently to this day.  (See Duda &amp; Hart, for example.)  The<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">data set contains 3 classes of 50 instances each, where each class refers to a<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">type of iris plant.  One class is linearly separable from the other 2; the<\/span><\/span>\n<span class=\"line\"><span style=\"color: #d8dee9ff\">latter are NOT linearly separable from each other.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u8fd9\u91cc\u6211\u4eec\u53ea\u53d6<code>sepal length<\/code>\u548c<code>sepal width<\/code>\u4e24\u4e2a\u7279\u5f81\uff0c\u5e76\u5c06\u8be5\u95ee\u9898\u8f6c\u6362\u4e3a\u4e8c\u5206\u7c7b\u95ee\u9898\uff0c\u4e4b\u540e\u901a\u8fc7<code>sklearn<\/code>\u7684<code>LogisticRegression<\/code>\u7c7b\u6765\u8fdb\u884c\u8bad\u7ec3\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.datasets import load_iris\nfrom sklearn.metrics import accuracy_score\n\niris = load_iris()\n\n# \u7b80\u5316\u95ee\u9898\nX = iris.data&#91;:, :2&#93;\ny = np.where(iris.target == 0, 0, 1)\n\n# \u901a\u8fc7\u7559\u51fa\u6cd5\u5212\u5206\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)\n\n# \u5efa\u7acb\u5bf9\u6570\u51e0\u7387\u56de\u5f52\u6a21\u578b\u5e76\u8bad\u7ec3\nmodel = LogisticRegression()\nmodel.fit(X_train, y_train)\n\n# \u8bc4\u4f30\u6a21\u578b\u6548\u679c\ny_pred = model.predict(X_test)\naccuracy = accuracy_score(y_test, y_pred)\nprint(f'Accuracy: {accuracy:.2f}')<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> numpy <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> np<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> pandas <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> matplotlib<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">pyplot <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> plt<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">linear_model <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> LogisticRegression<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">model_selection <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> train_test_split<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">datasets <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> load_iris<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">metrics <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> accuracy_score<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">iris <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">load_iris<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u7b80\u5316\u95ee\u9898<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">X <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> iris<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">&#91;:,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">y <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> np<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">iris<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">target <\/span><span style=\"color: #81A1C1\">==<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u901a\u8fc7\u7559\u51fa\u6cd5\u5212\u5206\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">X_train<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> X_test<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_train<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_test <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">train_test_split<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">X<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">test_size<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">0.3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">random_state<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">42<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u5efa\u7acb\u5bf9\u6570\u51e0\u7387\u56de\u5f52\u6a21\u578b\u5e76\u8bad\u7ec3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">model <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">LogisticRegression<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">model<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">fit<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">X_train<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_train<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u8bc4\u4f30\u6a21\u578b\u6548\u679c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">y_pred <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> model<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">predict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">X_test<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">accuracy <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">accuracy_score<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">y_test<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_pred<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;Accuracy: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">accuracy<\/span><span style=\"color: #81A1C1\">:.2f<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u89c6\u5316\u6d4b\u8bd5\u96c6\u7684\u5206\u7c7b\u9884\u6d4b\u7ed3\u679c\u53ef\u4ee5\u770b\u5230\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260807204701.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260807204701.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"568\" height=\"454\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260807204701.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-521\"  sizes=\"auto, (max-width: 568px) 100vw, 568px\" \/><\/div><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u770b\u5230\u5206\u7c7b\u6548\u679c\u6bd4\u8f83\u663e\u8457\uff0c\u7531\u4ee3\u7801\u8f93\u51fa\u53ef\u77e5\u5206\u7c7b\u51c6\u786e\u7387\u4e3a100%<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u51b3\u7b56\u6811<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u51b3\u7b56\u6811\u57fa\u4e8e\u6811\u7ed3\u6784\u6765\u8fdb\u884c\u51b3\u7b56\uff0c\u4e00\u68f5\u51b3\u7b56\u6811\u5305\u542b\u4e00\u4e2a\u6839\u7ed3\u70b9\u3001\u82e5\u5e72\u4e2a\u5185\u90e8\u7ed3\u70b9\u548c\u82e5\u5e72\u4e2a\u53f6\u5b50\u7ed3\u70b9\uff0c\u5176\u4e2d\u53f6\u5b50\u7ed3\u70b9\u5bf9\u5e94\u51b3\u7b56\u7684\u7ed3\u679c\uff0c\u800c\u5176\u5b83\u7ed3\u70b9\u5bf9\u5e94\u4e00\u4e2a\u5c5e\u6027\u6d4b\u8bd5\u3002\u6bcf\u4e2a\u7ed3\u70b9\u5305\u542b\u7684\u6837\u672c\u96c6\u5408\u6839\u636e\u5c5e\u6027\u6d4b\u8bd5\u7684\u7ed3\u679c\u88ab\u5212\u5206\u5230\u5b50\u7ed3\u70b9\u4e2d\uff0c\u6839\u8282\u70b9\u5305\u542b\u6837\u672c\u5168\u96c6\uff0c\u4ece\u6839\u7ed3\u70b9\u5230\u6bcf\u4e2a\u53f6\u5b50\u7ed3\u70b9\u7684\u8def\u5f84\u5bf9\u5e94\u4e00\u4e2a\u5224\u5b9a\u6d4b\u8bd5\u5e8f\u5217\uff0c\u5bf9\u4e8e\u8bad\u7ec3\u96c6\\(D=\\{(\\pmb{x}_i,y_i)|i=1,2,\\cdots,m\\}\\)\uff0c\u5c5e\u6027\u96c6\\(A=\\{a_1,a_2,\\cdots,a_d\\}\\)\uff0c\u51b3\u7b56\u6811\u7684\u5efa\u6811\u7b56\u7565\u4f2a\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>GenerateTree(D, A):\n\t\u751f\u6210\u7ed3\u70b9node\n\tif D\u4e2d\u6837\u672c\u5168\u90fd\u5c5e\u4e8e\u540c\u4e00\u7c7b\u522bC:\n\t\t\u5c06node\u6807\u8bb0\u4e3aC\u7c7b\u7ed3\u70b9\n\tif A\u4e3a\u7a7a\u96c6\u6216\u8005D\u4e2d\u7684\u6837\u672c\u5728A\u4e0a\u7684\u53d6\u503c\u76f8\u540c:\n\t\t\u5c06node\u6807\u8bb0\u4e3a\u53f6\u5b50\u7ed3\u70b9\u9ed8\u5951\u7c7b\u522b\u6807\u8bb0\u4e3aD\u4e2d\u6837\u672c\u6570\u6700\u591a\u7684\u7c7b\n\t\u4eceA\u4e2d\u9009\u62e9\u6700\u4f18\u5212\u5206\u5c5e\u6027a0\n\tfor a0\u7684\u6bcf\u4e2a\u503ca0i:\n\t\t\u4e3anode\u751f\u6210\u4e00\u4e2a\u5206\u652f\n\t\t\u4ee4Dv\u8868\u793aD\u4e2d\u5728a0\u4e0a\u53d6\u503c\u4e3aa0i\u7684\u6837\u672c\u5b50\u96c6\n\t\tif Dv\u4e3a\u7a7a\u96c6:\n\t\t\t\u5c06\u5206\u652f\u7ed3\u70b9\u6807\u8bb0\u4e3a\u53f6\u5b50\u7ed3\u70b9\uff0c\u5176\u7c7b\u522b\u6807\u8bb0\u4e3aD\u4e2d\u6837\u672c\u6700\u591a\u7684\u7c7b\n\t\telse:\n\t\t\t\u4ee5GenerateTree(D, A-{a0})\u4f5c\u4e3a\u5206\u652f\u7ed3\u70b9\n\t\u8fd4\u56de\u4ee5node\u4e3a\u6839\u8282\u70b9\u7684\u4e00\u68f5\u51b3\u7b56\u6811<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">GenerateTree<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">D<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> A<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\u751f\u6210\u7ed3\u70b9node<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t<\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> D\u4e2d\u6837\u672c\u5168\u90fd\u5c5e\u4e8e\u540c\u4e00\u7c7b\u522bC<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\t\u5c06node\u6807\u8bb0\u4e3aC\u7c7b\u7ed3\u70b9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t<\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> A\u4e3a\u7a7a\u96c6\u6216\u8005D\u4e2d\u7684\u6837\u672c\u5728A\u4e0a\u7684\u53d6\u503c\u76f8\u540c<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\t\u5c06node\u6807\u8bb0\u4e3a\u53f6\u5b50\u7ed3\u70b9\u9ed8\u5951\u7c7b\u522b\u6807\u8bb0\u4e3aD\u4e2d\u6837\u672c\u6570\u6700\u591a\u7684\u7c7b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\u4eceA\u4e2d\u9009\u62e9\u6700\u4f18\u5212\u5206\u5c5e\u6027a0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t<\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> a0\u7684\u6bcf\u4e2a\u503ca0i<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\t\u4e3anode\u751f\u6210\u4e00\u4e2a\u5206\u652f<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\t\u4ee4Dv\u8868\u793aD\u4e2d\u5728a0\u4e0a\u53d6\u503c\u4e3aa0i\u7684\u6837\u672c\u5b50\u96c6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\t<\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> Dv\u4e3a\u7a7a\u96c6<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\t\t\u5c06\u5206\u652f\u7ed3\u70b9\u6807\u8bb0\u4e3a\u53f6\u5b50\u7ed3\u70b9\uff0c\u5176\u7c7b\u522b\u6807\u8bb0\u4e3aD\u4e2d\u6837\u672c\u6700\u591a\u7684\u7c7b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\t<\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\t\t<\/span><span style=\"color: #88C0D0\">\u4ee5GenerateTree<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">D<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> A<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\">a0<\/span><span style=\"color: #ECEFF4\">})<\/span><span style=\"color: #D8DEE9FF\">\u4f5c\u4e3a\u5206\u652f\u7ed3\u70b9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\t\u8fd4\u56de\u4ee5node\u4e3a\u6839\u8282\u70b9\u7684\u4e00\u68f5\u51b3\u7b56\u6811<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u5212\u5206\u9009\u62e9<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728<code>\u4eceA\u4e2d\u9009\u62e9\u6700\u4f18\u5212\u5206\u5c5e\u6027a0<\/code>\u8fd9\u4e00\u6b65\uff0c\u6211\u4eec\u5e0c\u671b\u51b3\u7b56\u6811\u7684\u5206\u652f\u7ed3\u70b9\u6240\u5305\u542b\u7684\u6837\u672c\u5c3d\u53ef\u80fd\u5c5e\u4e8e\u540c\u4e00\u7c7b\u522b\uff0c\u5373\u7ed3\u70b9\u7684\u201c\u7eaf\u5ea6\u201d\u8d8a\u6765\u8d8a\u9ad8\uff0c\u800c\u6837\u672c\u96c6\u5408\u7684\u7eaf\u5ea6\u4e00\u822c\u7531\u4fe1\u606f\u71b5\u8fdb\u884c\u5ea6\u91cf\uff0c\u5bf9\u4e8e\u8bad\u7ec3\u96c6\\(D\\)\uff0c\u8bbe\u5176\u4e2d\u7b2c\\(k\\)\u7c7b\u6837\u672c\u6240\u5360\u7684\u6bd4\u4f8b\u4e3a\\(p_k,k=1,2,\\cdots,|\\mathcal{Y}|\\)\uff08\u5176\u4e2d\\(\\mathcal{Y}\\)\u4e3a\u6807\u8bb0\u7a7a\u95f4\uff09\uff0c\u5219\u5b9a\u4e49\\(D\\)\u4e4b\u4fe1\u606f\u71b5\uff1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\\[<br>\\text{Ent}(D)=-\\sum_{k=1}^{|\\mathcal{Y}|}p_k\\log_2{p_k}<br>\\]<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u82e5\\(p_k=0\\)\uff0c\u5b9a\u4e49\\(p_k\\log_2{p_k}=0\\)<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f88\u663e\u7136\uff0c\\(\\text{Ent}(D)\\)\u8d8a\u5c0f\uff0c\\(D\\)\u7684\u7eaf\u5ea6\u8d8a\u9ad8\u3002\u53c8\u5047\u5b9a\u79bb\u6563\u5c5e\u6027\\(a\\)\u6709\\(V\\)\u4e2a\u53ef\u80fd\u7684\u53d6\u503c\\({a^1,a^2,\\cdots,a^V}\\)\uff0c\u82e5\u7528\\(a\\)\u6765\u5bf9\u6837\u672c\u96c6\\(D\\)\u8fdb\u884c\u5212\u5206\uff0c\u4f1a\u4ea7\u751f\\(V\\)\u4e2a\u5206\u652f\u7ed3\u70b9\uff0c\u5176\u4e2d\u7b2c\\(v\\)\u4e2a\u5206\u652f\u7ed3\u70b9\u5305\u542b\u4e86\\(D\\)\u4e2d\u6240\u6709\u5728\u5c5e\u6027\\(a\\)\u4e0a\u53d6\u503c\u4e3a\\(a^v\\)\u7684\u6837\u672c\uff0c\u8bb0\u4e3a\\(D^v\\)\uff0c\u53ef\u4ee5\u5b9a\u4e49\u7528\u5c5e\u6027\\(a\\)\u5bf9\u6837\u672c\u96c6\\(D\\)\u8fdb\u884c\u5212\u5206\u6240\u5f97\u5230\u7684\u4fe1\u606f\u589e\u76ca\uff1a<br>\\[<br>\\text{Gain}(D,a)=\\text{Ent}(D)-\\sum_{v=1}^V\\frac{|D^v|}{|D|}\\text{Ent}(D^v)<br>\\]<br>\u4fe1\u606f\u589e\u76ca\\(\\text{Gain}(D,a)\\)\u8d8a\u5927\uff0c\u8bf4\u660e\u7528\u5c5e\u6027\\(a\\)\u8fdb\u884c\u5212\u5206\u6240\u83b7\u5f97\u7684\u7eaf\u5ea6\u63d0\u5347\u8d8a\u5927\uff0c\u6240\u4ee5\u53ef\u4ee5\u901a\u8fc7\u4fe1\u606f\u589e\u76ca\u6765\u8fdb\u884c\u51b3\u7b56\u6811\u7684\u5212\u5206\u5c5e\u6027\u9009\u62e9\u3002\u4f46\u662f\u4fe1\u606f\u589e\u76ca\u5bf9\u53ef\u53d6\u503c\u6570\u76ee\u8f83\u591a\u7684\u5c5e\u6027\u6709\u6240\u504f\u597d\uff0c\u4e3a\u4e86\u51cf\u5c11\u8fd9\u79cd\u504f\u597d\u53ef\u80fd\u5e26\u6765\u7684\u4e0d\u5229\u5f71\u54cd\uff0cC4.5\u51b3\u7b56\u6811\u7b97\u6cd5\u5f15\u5165\u589e\u76ca\u7387\u6765\u9009\u62e9\u6700\u4f18\u5316\u5206\u5c5e\u6027\uff0c\u589e\u76ca\u7387\u5b9a\u4e49\u5982\u4e0b\uff1a<br>\\[<br>\\text{Gain_ratio}(D,a)=\\frac{\\text{Gain}(D,a)}{\\text{IV}(a)}<br>\\]<br>\u5176\u4e2d\uff1a<br>\\[<br>\\text{IV}(a)=-\\sum_{v=1}^{V}\\frac{|D^v|}{|D|}\\log_2\\frac{|D^v|}{|D|}<br>\\]<br>\\(\\text{IV}(a)\\)\u79f0\u4e3a\u5c5e\u6027\u503c\\(a\\)\u7684\u56fa\u6709\u503c\uff0c\\(a\\)\u7684\u53ef\u80fd\u53d6\u503c\u6570\u76ee\u8d8a\u591a\uff0c\\(\\text{IV}(a)\\)\u7684\u53d6\u503c\u4e00\u822c\u5c31\u8d8a\u5927\uff0c\u6b64\u65f6\\(\\text{Gain_ratio}(D,a)\\)\u901a\u5e38\u4e0d\u4f1a\u5f88\u5927\uff0c\u6545\u5728\u51b3\u7b56\u6811\u7684\u5212\u5206\u5c5e\u6027\u7684\u9009\u62e9\u8fd9\u4e00\u6b65\u4e2d\uff0c\u53ef\u4ee5\u5148\u627e\u51fa\u5019\u9009\u5212\u5206\u5c5e\u6027\u4e2d\\(\\text{Gain}(D,a)\\)\u9ad8\u4e8e\u5e73\u5747\u6c34\u5e73\u7684\u5212\u5206\u5c5e\u6027\uff0c\u518d\u4ece\u4e2d\u9009\u62e9\\(\\text{Gain_ratio}(D,a)\\)\u6700\u9ad8\u7684\u5212\u5206\u5c5e\u6027\u4f5c\u4e3a\u6700\u4f18\u5212\u5206\u5c5e\u6027\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u57fa\u5c3c\u6307\u6570\uff08Gini index\uff09<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">CART\u51b3\u7b56\u6811\u91c7\u7528\u57fa\u5c3c\u6307\u6570\u6765\u9009\u62e9\u5212\u5206\u5c5e\u6027\uff0c\u91c7\u7528\u57fa\u5c3c\u503c\u6765\u5ea6\u91cf\u6570\u636e\u96c6\\(D\\)\u7684\u7eaf\u5ea6\uff1a<br>\\[<br>\\text{Gini}(D)=\\sum_{k=1}^{|\\mathcal{Y}|}\\sum_{k&#8217;\\neq k}p_kp_{k&#8217;}=1-\\sum_{k=1}^{|\\mathcal{Y}|}p_k^2<br>\\]<br>\u57fa\u5c3c\u503c\\(\\text{Gini}(D)\\)\u53cd\u6620\u4ece\u6570\u636e\u96c6\\(D\\)\u4e2d\u968f\u673a\u62bd\u53d6\u4e24\u4e2a\u6837\u672c\uff0c\u5176\u7c7b\u522b\u6807\u8bb0\u4e0d\u4e00\u81f4\u7684\u6982\u7387\uff0c\u57fa\u5c3c\u503c\u8d8a\u5c0f\u5219\u8bf4\u660e\u6570\u636e\u96c6\u7eaf\u5ea6\u8d8a\u9ad8\uff0c\u800c\u5bf9\u4e8e\u5c5e\u6027\\(a\\)\uff0c\u53ef\u4ee5\u5b9a\u4e49\u57fa\u5c3c\u6307\u6570\u5982\u4e0b\uff1a<br>\\[<br>\\text{Gini_index}(D,a)=\\sum_{v=1}^{V}\\frac{|D^v|}{|D|}\\text{Gini}(D^v)<br>\\]<br>\u53ef\u4ee5\u5229\u7528\u57fa\u5c3c\u6307\u6570\u5728\u5019\u9009\u5212\u5206\u5c5e\u6027\u96c6\u5408\u4e2d\u9009\u62e9\u4f7f\u5f97\u5212\u5206\u540e\u57fa\u5c3c\u6307\u6570\u6700\u5c0f\u7684\u5212\u5206\u5c5e\u6027\u4f5c\u4e3a\u6700\u4f18\u5212\u5206\u5c5e\u6027.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u526a\u679d\u5904\u7406<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u526a\u679d\u4e3b\u8981\u7528\u53bb\u9632\u6b62\u51b3\u7b56\u6811\u7684\u8fc7\u62df\u5408\uff0c\u57fa\u672c\u7b56\u7565\u6709\u9884\u526a\u679d\u548c\u540e\u526a\u679d\u4e24\u79cd\uff1a<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u9884\u526a\u679d<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u9884\u526a\u679d\u662f\u5728\u51b3\u7b56\u6811\u751f\u6210\u8fc7\u7a0b\u4e2d\u5bf9\u6bcf\u4e2a\u7ed3\u70b9\u5728\u5212\u5206\u524d\u8fdb\u884c\u4f30\u8ba1\uff0c\u82e5\u5f53\u524d\u7ed3\u70b9\u7684\u5212\u5206\u4e0d\u80fd\u5e26\u6765\u51b3\u7b56\u6811\u6cdb\u5316\u6027\u80fd\u7684\u63d0\u5347\u5219\u505c\u6b62\u5212\u5206\u5e76\u5c06\u8be5\u7ed3\u70b9\u6807\u8bb0\u4e3a\u53f6\u5b50\u7ed3\u70b9.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u540e\u526a\u679d<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u540e\u526a\u679d\u662f\u5728\u8bad\u7ec3\u96c6\u5b8c\u6574\u751f\u6210\u51b3\u7b56\u6811\u540e\u81ea\u5e95\u5411\u4e0a\u5730\u5bf9\u975e\u53f6\u5b50\u7ed3\u70b9\u8fdb\u884c\u8003\u5bdf\uff0c\u82e5\u5c06\u8be5\u7ed3\u70b9\u5bf9\u5e94\u7684\u5b50\u6811\u66ff\u6362\u4e3a\u53f6\u5b50\u7ed3\u70b9\u540e\uff0c\u51b3\u7b56\u6811\u7684\u6cdb\u5316\u6027\u80fd\u63d0\u5347\u5c31\u5c06\u8be5\u7ed3\u70b9\u5bf9\u5e94\u7684\u5b50\u6811\u66ff\u6362\u4e3a\u53f6\u5b50\u7ed3\u70b9.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u6cdb\u5316\u6027\u80fd\u53ef\u4ee5\u901a\u8fc7\u6d4b\u8bd5\u96c6\u7684\u9884\u6d4b\u7cbe\u5ea6\u6765\u8861\u91cf<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">\u8fde\u7eed\u503c\u5904\u7406<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u4e8e\u8fde\u7eed\u5c5e\u6027\uff0c\u6211\u4eec\u4e0d\u53ef\u80fd\u50cf\u79bb\u6563\u5c5e\u6027\u8fd9\u6837\u628a\u6bcf\u4e2a\u53d6\u503c\u62c9\u51fa\u6765\u5212\u5206\uff0c\u9700\u8981\u8fdb\u884c\u5904\u7406\uff0c\u5728C4.5\u51b3\u7b56\u6811\u7b97\u6cd5\u4e2d\u91c7\u7528\u4e8c\u5206\u6cd5\u6765\u5904\u7406\uff1a<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u4e8c\u5206\u6cd5<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u4e8e\u6837\u672c\u96c6\\(D\\)\u4ee5\u53ca\u5176\u4e2d\u4e00\u4e2a\u8fde\u7eed\u5c5e\u6027\\(a\\)\uff0c\u5047\u5b9a\\(a\\)\u5728\\(D\\)\u4e2d\u51fa\u73b0\u4e86\\(n\\)\u4e2a\u4e0d\u540c\u53d6\u503c\uff0c\u5c06\u8fd9\\(n\\)\u4e2a\u503c\u4ece\u5c0f\u5230\u5927\u6392\u5e8f\u5e76\u8bb0\u4e3a\\({a^1,a^2,\\cdots,a^n}\\)\uff0c\u57fa\u4e8e\u5212\u5206\u70b9\\(t\\)\u53ef\u4ee5\u5c06\\(D\\)\u5206\u4e3a\u4e24\u4e2a\u5b50\u96c6\\(D^-_t\\)\u548c\\(D^+_t\\)\uff0c\u5176\u4e2d\\(D^-_t\\)\u5305\u542b\\(D\\)\u4e2d\u5728\u5c5e\u6027\\(a\\)\u4e0a\u53d6\u503c\u4e0d\u5927\u4e8e\\(t\\)\u7684\u6837\u672c\uff0c\\(D^+_t\\)\u5305\u542b\\(D\\)\u4e2d\u5728\u5c5e\u6027\\(a\\)\u4e0a\u53d6\u503c\u5927\u4e8e\\(t\\)\u7684\u6837\u672c\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u5728\u5982\u4e0b\u96c6\u5408\u4e0a\u8003\u5bdf\u5212\u5206\u70b9\uff1a<br>\\[<br>T_a=\\left\\{\\frac{a^i+a^{i+1}}{2}|1\\le i\\le n-1\\right\\}<br>\\]<br>\u57fa\u4e8e\u5212\u5206\u70b9\\(t\\)\uff0c\u6211\u4eec\u53ef\u4ee5\u5c06\u4fe1\u606f\u589e\u76ca\u6539\u5199\u4e3a\uff1a<br>\\[<br>\\text{Gain}(D,a,t)=\\text{Ent}(D)-\\sum_{\\lambda\\in\\{-,+\\}}\\frac{|D^{\\lambda}_t|}{|D|}\\text{Ent}(D_t^\\lambda)<br>\\]<br>\u6211\u4eec\u53ef\u4ee5\u5728\\(T_a\\)\u4e2d\u9009\u62e9\\(\\text{Gain}(D,a,t)\\)\u6700\u5927\u7684\\(t\\)\u4f5c\u4e3a\u5212\u5206\u70b9.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u82e5\u5f53\u524d\u8282\u70b9\u5212\u5206\u5c5e\u6027\u4e3a\u79bb\u6563\u5c5e\u6027\uff0c\u8be5\u5c5e\u6027\u8fd8\u53ef\u4ee5\u4f5c\u4e3a\u5176\u540e\u4ee3\u7ed3\u70b9\u7684\u5212\u5206\u5c5e\u6027<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">\u7f3a\u5931\u503c\u5904\u7406<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u82e5\u6570\u636e\u96c6\u4e2d\u67d0\u4e9b\u6837\u672c\u7684\u90e8\u5206\u5c5e\u6027\u503c\u7f3a\u5931\uff0c\u6216\u8005\u6570\u636e\u96c6\u4e2d\u67d0\u4e9b\u6837\u672c\u5728\u5212\u5206\u5c5e\u6027\u4e0a\u7684\u5c5e\u6027\u503c\u7f3a\u5931\uff0c\u5219\u6ca1\u6709\u529e\u6cd5\u8fdb\u884c\u6b63\u5e38\u7684\u51b3\u7b56\u6811\u8bad\u7ec3\u6216\u8005\u9884\u6d4b\uff0c\u9700\u8981\u5728\u8bad\u7ec3\u65f6\u8fdb\u884c\u5904\u7406\uff1a<br>\u7ed9\u5b9a\u8bad\u7ec3\u96c6\\(D\\)\u548c\u5c5e\u6027\\(a\\)\uff0c\u4ee4\\(\\tilde{D}\\)\u8868\u793a\\(D\\)\u4e2d\u5728\u5c5e\u6027\\(a\\)\u4e0a\u6ca1\u6709\u7f3a\u5931\u503c\u7684\u6837\u672c\u5b50\u96c6\uff0c\u5728\u8bad\u7ec3\u4e2d\u6211\u4eec\u53ef\u4ee5\u76f4\u63a5\u7528\\(\\tilde{D}\\)\u6765\u5224\u65ad\u5c5e\u6027\\(a\\)\u7684\u4f18\u52a3\uff0c\u5047\u5b9a\u5c5e\u6027\\(a\\)\u6709\\(V\\)\u4e2a\u53ef\u53d6\u503c\\({a^1,a^2,\\cdots,a^V}\\)\uff0c\u4ee4\\(\\tilde{D}\\)\u4e2d\u5728\u5c5e\u6027\\(a\\)\u4e0a\u53d6\u503c\u4e3a\\(a_v\\)\u7684\u5b50\u96c6\u4e3a\\(\\tilde{D}^v\\)\uff0c\\(\\tilde{D}_k\\)\u8868\u793a\\(\\tilde{D}\\)\u4e2d\u5c5e\u4e8e\u7b2c\\(k\\)\u7c7b\uff08\\(k=1,2,\\cdots,|\\mathcal{Y}|\\)\uff09\u7684\u6837\u672c\u5b50\u96c6\uff0c\u663e\u7136\u6709\uff1a<br>\\[<br>\\bigcup_{k=1}^{|\\mathcal{Y}|}\\tilde{D}_k=\\bigcup_{v=1}^{V}\\tilde{D}^v=\\tilde{D}<br>\\]<br>\u5047\u5b9a\u7ed9\u6bcf\u4e2a\u6837\u672c\\(\\pmb{x}\\)\u8d4b\u4e88\u4e00\u4e2a\u6743\u91cd\\(w_{\\pmb{x}}\\)\uff0c\u5e76\u5b9a\u4e49\uff1a<br>\\[<br>\\begin{aligned}<br>&amp;\\rho=\\frac{\\sum_{\\pmb{x}\\in\\tilde{D}}w_{\\pmb{x}}}{\\sum_{\\pmb{x}\\in D}w_{\\pmb{x}}},\\\\<br>&amp;\\tilde{p}_k=\\frac{\\sum_{\\pmb{x}\\in\\tilde{D}_k}w_{\\pmb{x}}}{\\sum_{\\pmb{x}\\in \\tilde{D}}w_{\\pmb{x}}}(1\\le k\\le|\\mathcal{Y}|),\\\\<br>&amp;\\tilde{r}_v=\\frac{\\sum_{\\pmb{x}\\in\\tilde{D}^v}w_{\\pmb{x}}}{\\sum_{\\pmb{x}\\in \\tilde{D}}w_{\\pmb{x}}}(1\\le v\\le V)<br>\\end{aligned}<br>\\]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u770b\u5230\uff0c\u5bf9\u4e8e\u5c5e\u6027\\(a\\)\uff0c\\(\\rho\\)\u8868\u793a\u65e0\u7f3a\u5931\u6837\u672c\u5360\u603b\u6837\u672c\u7684\u6bd4\u4f8b\uff0c\\(\\tilde{p}_k\\)\u8868\u793a\u65e0\u7f3a\u5931\u6837\u672c\u4e2d\u7b2c\\(k\\)\u7c7b\u6240\u5360\u7684\u6bd4\u4f8b\uff0c\\(\\tilde{r}v\\)\u8868\u793a\u65e0\u7f3a\u5931\u6837\u672c\u4e2d\u5728\\(a\\)\u4e0a\u53d6\u503c\u4e3a\\(a^v\\)\u6240\u5360\u7684\u6bd4\u4f8b\uff0c\u53ef\u4ee5\u63a8\u5e7f\u51fa\u6709\u7f3a\u5931\u503c\u7684\u6570\u636e\u96c6\u7684\u4fe1\u606f\u589e\u76ca\u4e3a\uff1a<br>\\[<br>\\text{Gain}(D,a)=\\rho\\times\\text{Gain}(\\tilde{D},a)=\\rho\\times\\left(\\text{Ent}(\\tilde{D})-\\sum{v=1}^V\\text{Ent}(\\tilde{D}^v)\\right)<br>\\]<br>\u5176\u4e2d\\(\\tilde{D}\\)\u7684\u4fe1\u606f\u71b5\u7531\u4e0b\u5f0f\u8ba1\u7b97\uff1a<br>\\[<br>\\text{Ent}(\\tilde{D})=-\\sum_{k=1}^{|\\mathcal{Y}|}\\tilde{p}_k\\log_2\\tilde{p}_k<br>\\]<br>\u5229\u7528\u8fd9\u6837\u7684\u51b3\u7b56\u6811\u8fdb\u884c\u6837\u672c\u9884\u6d4b\u7684\u65f6\u5019\uff0c\u82e5\u6837\u672c\\(\\pmb{x}\\)\u5728\\(a\\)\u4e0a\u65e0\u7f3a\u5931\u503c\uff0c\u5219\u5c06\\(\\pmb{x}\\)\u76f4\u63a5\u5212\u5165\u5bf9\u5e94\u5b50\u7ed3\u70b9\uff0c\u4e14\u6837\u672c\u6743\u503c\u5728\u8be5\u5b50\u7ed3\u70b9\u4e2d\u4fdd\u6301\u4e3a\\(w_{\\pmb{x}}\\)\uff0c\u82e5\u6837\u672c\\(\\pmb{x}\\)\u5728\\(a\\)\u4e0a\u53d6\u503c\u7f3a\u5931\uff0c\u5219\u5c06\\(\\pmb{x}\\)\u5212\u5165\u6240\u6709\u5b50\u7ed3\u70b9\uff0c\u4e14\u6837\u672c\u6743\u503c\u5728\u5c5e\u6027\u503c\\(a^v\\)\u5bf9\u5e94\u7684\u5b50\u7ed3\u70b9\u5904\u4e3a\\(\\tilde{r}_vw_{\\pmb{x}}\\).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9e\u4f8b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5Iris\u6570\u636e\u96c6\u4e3a\u4f8b\uff0c\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0b\u4ee3\u7801\u8fdb\u884c\u8bad\u7ec3\u5e76\u6d4b\u8bd5\u51c6\u786e\u7387\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.datasets import load_iris\nfrom sklearn.metrics import accuracy_score\n\n# \u52a0\u8f7dIris\u6570\u636e\u96c6\niris = load_iris()\n\n# \u5212\u5206\u7279\u5f81\u548c\u6807\u7b7e\ndf = pd.DataFrame(data=iris.data, columns=iris.feature_names)\ny = iris.target\n\n# \u901a\u8fc7\u7559\u51fa\u6cd5\u5212\u5206\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\nX_train, X_test, y_train, y_test = train_test_split(df, y, test_size=0.3, random_state=42)\n\n# \u521b\u5efa\u51b3\u7b56\u6811\u5206\u7c7b\u5668\nclf = DecisionTreeClassifier(random_state=42)\n\n# \u8bad\u7ec3\u6a21\u578b\nclf.fit(X_train, y_train)\n\n# \u5728\u6d4b\u8bd5\u96c6\u4e0a\u8fdb\u884c\u9884\u6d4b\ny_pred = clf.predict(X_test)\n\n# \u8ba1\u7b97\u51c6\u786e\u7387\naccuracy = accuracy_score(y_test, y_pred)\nprint(f\"\u6a21\u578b\u5728\u6d4b\u8bd5\u96c6\u4e0a\u7684\u51c6\u786e\u7387: {accuracy:.2f}\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> numpy <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> np<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> pandas <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> matplotlib<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">pyplot <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> plt<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">tree <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> DecisionTreeClassifier<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">model_selection <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> train_test_split<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">datasets <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> load_iris<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> sklearn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">metrics <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> accuracy_score<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u52a0\u8f7dIris\u6570\u636e\u96c6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">iris <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">load_iris<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u5212\u5206\u7279\u5f81\u548c\u6807\u7b7e<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">df <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> pd<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">DataFrame<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">data<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">iris<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">columns<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">iris<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">feature_names<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">y <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> iris<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">target<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u901a\u8fc7\u7559\u51fa\u6cd5\u5212\u5206\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">X_train<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> X_test<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_train<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_test <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">train_test_split<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">df<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">test_size<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">0.3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">random_state<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">42<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u521b\u5efa\u51b3\u7b56\u6811\u5206\u7c7b\u5668<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">clf <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DecisionTreeClassifier<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">random_state<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">42<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u8bad\u7ec3\u6a21\u578b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">clf<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">fit<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">X_train<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_train<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u5728\u6d4b\u8bd5\u96c6\u4e0a\u8fdb\u884c\u9884\u6d4b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">y_pred <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> clf<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">predict<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">X_test<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u8ba1\u7b97\u51c6\u786e\u7387<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">accuracy <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">accuracy_score<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">y_test<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y_pred<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&quot;\u6a21\u578b\u5728\u6d4b\u8bd5\u96c6\u4e0a\u7684\u51c6\u786e\u7387: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">accuracy<\/span><span style=\"color: #81A1C1\">:.2f<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u89c6\u5316\u51b3\u7b56\u6811\u53ef\u4ee5\u770b\u5230\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260813143732-1.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260813143732-1.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"657\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260813143732-1.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-518\"  sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/div><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u795e\u7ecf\u7f51\u7edc<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u795e\u7ecf\u5143\u6a21\u578b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u795e\u7ecf\u7f51\u7edc\u662f\u7531\u5177\u6709\u9002\u5e94\u6027\u7684\u7b80\u5355\u5355\u5143\u7ec4\u6210\u7684\u5e7f\u6cdb\u5e76\u884c\u4e92\u8fde\u7684\u7f51\u7edc\uff0c\u5b83\u7684\u7ec4\u7ec7\u53ef\u4ee5\u6a21\u62df\u751f\u7269\u795e\u7ecf\u7cfb\u7edf\u5bf9\u771f\u5b9e\u7269\u4f53\u6240\u4f5c\u51fa\u7684\u4ea4\u4e92\u53cd\u5e94\uff0c\u795e\u7ecf\u5143\u6a21\u578b\u662f\u795e\u7ecf\u7f51\u7edc\u6700\u57fa\u672c\u7684\u6210\u5206\uff0c\u795e\u7ecf\u5143\u6a21\u578b\u53ef\u4ee5\u7531\u5982\u4e0bM-P\u795e\u7ecf\u5143\u6a21\u578b\u8fdb\u884c\u63cf\u8ff0\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/0be8739c82c945c96a183f156df04160-scaled.jpg\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/0be8739c82c945c96a183f156df04160-1024x500.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/0be8739c82c945c96a183f156df04160-1024x500.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-523\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5728\u8fd9\u4e2a\u6a21\u578b\u4e2d\uff0c\u4e00\u4e2a\u795e\u7ecf\u5143\u4f1a\u63a5\u53d7\\(n\\)\u4e2a\u6765\u81ea\u5176\u5b83\u795e\u7ecf\u5143\u4f20\u9012\u8fc7\u6765\u7684\u8f93\u5165\u4fe1\u53f7\uff0c\u8fd9\u4e9b\u4fe1\u53f7\u901a\u8fc7\u5e26\u6743\u91cd\u7684\u8fde\u63a5\u8fdb\u884c\u4f20\u9012\uff0c\u795e\u7ecf\u5143\u63a5\u6536\u5230\u7684\u603b\u8f93\u5165\u503c\u5c06\u4e0e\u795e\u7ecf\u5143\u7684\u9608\u503c\u8fdb\u884c\u6bd4\u8f83\uff0c\u7136\u540e\u901a\u8fc7\u6fc0\u6d3b\u51fd\u6570\u5904\u7406\u4ee5\u4ea7\u751f\u795e\u7ecf\u5143\u7684\u8f93\u51fa\uff0c\u4f8b\u5982\u5bf9\u4e8e\\(n\\)\u4e2a\u8f93\u5165\u4fe1\u53f7\\(x_1,x_2,\\ldots,x_{n}\\)\uff0c\u5b83\u4eec\u5bf9\u5e94\u7684\u8fde\u63a5\u6743\u91cd\u5206\u522b\u4e3a\\(w_1,w_2,\\ldots,w_{n}\\)\uff0c\u9608\u503c\u4e3a\\(\\theta\\)\uff0c\u6fc0\u6d3b\u51fd\u6570\u4e3a\\(f\\)\uff0c\u5219\u8be5\u795e\u7ecf\u5143\u7684\u8f93\u51fa\u4e3a\uff1a<br>\\[<br>y=f\\left(\\sum_{i=i}^{n}w_ix_i-\\theta\\right)<br>\\]<br>\u5176\u4e2d\u6fc0\u6d3b\u51fd\u6570\\(f\\)\u5e38\u7528Sigmoid\u51fd\u6570\\(f=\\frac{1}{1+e^{-x}}\\).<br>\u5c06\u591a\u4e2a\u795e\u7ecf\u5143\u6309\u4e00\u5b9a\u5c42\u6b21\u7ed3\u6784\u7ec4\u5408\u8d77\u6765\u5c31\u5f97\u5230\u4e86\u795e\u7ecf\u7f51\u7edc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u611f\u77e5\u673a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u611f\u77e5\u673a\u7531\u4e24\u5c42\u795e\u7ecf\u5143\u7ec4\u6210\uff0c\u5176\u4e2d\u8f93\u5165\u5c42\u63a5\u6536\u5916\u754c\u8f93\u5165\u4fe1\u53f7\u540e\u4f20\u9012\u7ed9\u8f93\u51fa\u5c42\uff0c\u8f93\u51fa\u5c42\u5219\u662fM-P\u795e\u7ecf\u5143\uff0c\u5bf9\u8f93\u5165\u5c42\u4f20\u9012\u8fc7\u6765\u7684\u8f93\u5165\u4fe1\u53f7\u8fdb\u884c\u5904\u7406\u540e\u5f97\u5230\u8f93\u51fa\u3002<br>\u800c\u5bf9\u7ed9\u5b9a\u8bad\u7ec3\u96c6\uff0c\u6743\u91cd\\(w_i(i=1,2,\\cdots,n)\\)\u4ee5\u53ca\u9608\u503c\\(\\theta\\)\u53ef\u4ee5\u901a\u8fc7\u5b66\u4e60\u5f97\u5230\uff0c\u56e0\u4e3a\u795e\u7ecf\u5143\u7684\u8f93\u51fa\u4e3a\uff1a<br>\\[<br>y=f\\left(\\sum_{i=i}^{n}w_ix_i-\\theta\\right)<br>\\]<br>\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u5c06\u9608\u503c\\(\\theta\\)\u89c6\u4f5c\u8f93\u51fa\u56fa\u5b9a\u4e3a\\(x_{n+1}=-1\\)\u7684\u54d1\u7ed3\u70b9\uff0c\u8fde\u63a5\u6743\u91cd\u4e3a\\(w_{n+1}\\)\uff0c\u90a3\u4e48\u6211\u4eec\u53ef\u4ee5\u5c06\u795e\u7ecf\u5143\u7684\u8f93\u51fa\u6539\u5199\u4e3a\uff1a<br>\\[<br>y=f\\left(\\sum_{i=i}^{n+1}w_ix_i\\right)<br>\\]<br>\u8fd9\u6837\u6211\u4eec\u5c31\u53ef\u4ee5\u5c06\u6743\u91cd\u548c\u9608\u503c\u7684\u5b66\u4e60\u7edf\u4e00\u4e3a\u6743\u91cd\u7684\u5b66\u4e60\uff0c\u5b66\u4e60\u8fc7\u7a0b\u5982\u4e0b\uff1a\u5bf9\u8bad\u7ec3\u6837\u4f8b\\((\\pmb{x},y)\\)\uff0c\u82e5\u5f53\u524d\u7684\u8f93\u51fa\u4e3a\\(\\hat{y}\\)\uff0c\u5219\u8c03\u6574\u6743\u91cd\uff1a<br>\\[<br>w_{i}\\leftarrow w_{i}+\\eta(y-\\hat{y})x_i<br>\\]<br>\u5176\u4e2d\\(\\eta\\in(0,1)\\)\u79f0\u4e3a\u5b66\u4e60\u7387\u3002<br>\u800c\u611f\u77e5\u673a\u7684\u5b66\u4e60\u80fd\u529b\u975e\u5e38\u6709\u9650\uff0c\u82e5\u4e24\u7c7b\u6a21\u5f0f\u662f\u7ebf\u6027\u53ef\u5206\uff08\u5373\u5b58\u5728\u4e00\u4e2a\u7ebf\u6027\u8d85\u5e73\u9762\u5c06\u4e24\u7c7b\u6a21\u5f0f\u5206\u5f00\uff09\u7684\uff0c\u5219\u611f\u77e5\u673a\u7684\u5b66\u4e60\u8fc7\u7a0b\u4e00\u5b9a\u4f1a\u6536\u655b\uff08\u5373\u53ef\u4ee5\u6c42\u5f97\u9002\u5f53\u7684\u6743\u91cd\\(w_1,w_2,\\ldots,w_{n+1}\\)\uff09\uff1b\u82e5\u975e\u7ebf\u6027\u53ef\u5206\u7684\u5219\u611f\u77e5\u673a\u5b66\u4e60\u8fc7\u7a0b\u5219\u4f1a\u632f\u8361\uff08\u5373\u6743\u91cd\\(w_1,w_2,\\ldots,w_{n+1}\\)\u96be\u4ee5\u7a33\u5b9a\uff09\uff0c\u4e3a\u89e3\u51b3\u975e\u7ebf\u6027\u53ef\u5206\u95ee\u9898\uff0c\u9700\u8981\u8003\u8651\u4f7f\u7528\u591a\u5c42\u529f\u80fd\u795e\u7ecf\u5143\uff08\u5373\u5728\u8f93\u5165\u5c42\u548c\u8f93\u51fa\u5c42\u4e4b\u95f4\u52a0\u5165\u591a\u4e2a\u9690\u5c42\uff09\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u795e\u7ecf\u7f51\u7edc<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u5e38\u89c1\u7684\u795e\u7ecf\u7f51\u7edc\u4e3a\u591a\u5c42\u524d\u9988\u795e\u7ecf\u7f51\u7edc\uff0c\u5373\u6bcf\u5c42\u795e\u7ecf\u5143\u4e0e\u4e0b\u4e00\u5c42\u7684\u795e\u7ecf\u5143\u5168\u4e92\u8fde\uff0c\u795e\u7ecf\u5143\u4e4b\u95f4\u4e0d\u5b58\u5728\u8de8\u5c42\u8fde\u63a5\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/2cb79e58955c01cc36661f1fde5789f2.jpg\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/2cb79e58955c01cc36661f1fde5789f2-1024x628.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"628\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/2cb79e58955c01cc36661f1fde5789f2-1024x628.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-524\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5176\u4e2d\u8f93\u5165\u5c42\u795e\u7ecf\u5143\u63a5\u6536\u5916\u754c\u8f93\u5165\uff0c\u9690\u5c42\u548c\u8f93\u51fa\u5c42\u795e\u7ecf\u5143\u5219\u5bf9\u4fe1\u53f7\u8fdb\u884c\u52a0\u5de5\uff0c\u6700\u7ec8\u7ed3\u679c\u5219\u7531\u8f93\u51fa\u5c42\u795e\u7ecf\u5143\u8f93\u51fa\u3002\u795e\u7ecf\u7f51\u7edc\u7684\u5b66\u4e60\u8fc7\u7a0b\u5c31\u662f\u6839\u636e\u8bad\u7ec3\u6570\u636e\u6765\u8c03\u6574\u795e\u7ecf\u5143\u4e4b\u95f4\u7684\u8fde\u63a5\u6743\u91cd\u4ee5\u53ca\u6bcf\u4e2aM-P\u795e\u7ecf\u5143\u7684\u9608\u503c\uff0c\u8be6\u7ec6\u7684\u8bad\u7ec3\u8fc7\u7a0b\u5206\u5982\u4e0b\u51e0\u6b65\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u524d\u5411\u4f20\u64ad\uff1a\u8f93\u5165\u8bad\u7ec3\u6570\u636e\u901a\u8fc7\u591a\u5c42\u8ba1\u7b97\u540e\u5f97\u5230\u9884\u6d4b\u8f93\u51fa<\/li>\n\n\n\n<li>\u8ba1\u7b97\u635f\u5931\uff1a\u901a\u8fc7\u635f\u5931\u51fd\u6570\u8861\u91cf\u9884\u6d4b\u8f93\u51fa\u4e0e\u9884\u671f\u8f93\u51fa\u7684\u5dee\u8ddd<\/li>\n\n\n\n<li>\u53cd\u5411\u4f20\u64ad\uff1a\u8ba1\u7b97\u6240\u6709\u6743\u91cd\u5bf9\u8bef\u5dee\u7684\u5f71\u54cd<\/li>\n\n\n\n<li>\u66f4\u65b0\u6743\u91cd\uff1a\u901a\u8fc7\u4f18\u5316\u7b97\u6cd5\u8c03\u6574\u6743\u91cd\u548c\u9608\u503c<\/li>\n\n\n\n<li>\u91cd\u590d\u8fed\u4ee3\uff1a\u4f7f\u7528\u5176\u5b83\u8bad\u7ec3\u6570\u636e\u91cd\u590d\u4e0a\u8ff0\u6b65\u9aa4<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u8bef\u5dee\u9006\u4f20\u64ad\u7b97\u6cd5\uff08BP\u7b97\u6cd5\uff09<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5e38\u7528\u8bef\u5dee\u9006\u4f20\u64ad\u7b97\u6cd5\uff08BP\u7b97\u6cd5\uff09\u5bf9\u591a\u5c42\u524d\u9988\u795e\u7ecf\u7f51\u7edc\u8fdb\u884c\u8bad\u7ec3\uff0c\u4ee5\u5355\u9690\u5c42\u524d\u9988\u7f51\u7edc\u4e3a\u4f8b\uff0c\u7b97\u6cd5\u6d41\u7a0b\u5982\u4e0b\uff1a<br>\u7ed9\u5b9a\u8bad\u7ec3\u96c6\\(D=\\{(x_i,y_i)|i=1,2,\\cdots,m\\}\\)\uff0c\u5176\u4e2d\\(x_i\\in\\mathbb{R}^d,y_i\\in\\mathbb{R}^l\\)\uff08\u5373\u8f93\u5165\u793a\u4f8b\u7531\\(d\\)\u4e2a\u5c5e\u6027\u63cf\u8ff0\uff0c\u8f93\u51fa\\(l\\)\u7ef4\u5b9e\u503c\u51fd\u6570\uff09\uff0c\u8bbe\u8f93\u51fa\u5c42\u7b2c\\(j\\)\u4e2a\u795e\u7ecf\u5143\u9608\u503c\u4e3a\\(\\theta_j\\)\uff0c\u9690\u5c42\u7b2c\\(h\\)\u4e2a\u795e\u7ecf\u5143\u9608\u503c\u4e3a\\(\\gamma_h\\)\uff0c\u8f93\u5165\u5c42\u7b2c\\(i\\)\u4e2a\u795e\u7ecf\u5143\u4e0e\u9690\u5c42\u7b2c\\(h\\)\u4e2a\u795e\u7ecf\u5143\u7684\u8fde\u63a5\u6743\u4e3a\\(v_{ih}\\)\uff0c\u9690\u5c42\u7b2c\\(h\\)\u4e2a\u795e\u7ecf\u5143\u4e0e\u8f93\u51fa\u5c42\u7b2c\\(j\\)\u4e2a\u795e\u7ecf\u5143\u7684\u8fde\u63a5\u6743\u4e3a\\(w_{hj}\\)\u5e76\u8bb0\u9690\u5c42\u7b2c\\(h\\)\u4e2a\u795e\u7ecf\u5143\u7684\u8f93\u5165\u4e3a\uff1a<br>\\[<br>\\alpha_h=\\sum_{i=1}^{d}v_{ih}x_{i}<br>\\]<br>\u9690\u5c42\u7b2c\\(h\\)\u4e2a\u795e\u7ecf\u5143\u7684\u8f93\u51fa\u4e3a\\(b_h\\)\uff1b\u8f93\u51fa\u5c42\u7b2c\\(j\\)\u4e2a\u795e\u7ecf\u5143\u63a5\u6536\u5230\u7684\u8f93\u5165\u4e3a\uff1a<br>\\[<br>\\beta_{j}=\\sum_{h=1}^{l}w_{hj}b_h<br>\\]<br>\u5e76\u4e14\u8bbe\u8f93\u51fa\u5c42\u548c\u9690\u5c42\u90fd\u4f7f\u7528Sigmoid\u51fd\u6570\uff0c\u5219\u5bf9\u7b2c\\(k\\)\u4e2a\u8bad\u7ec3\u793a\u4f8b\\((x_k,y_k)\\)\u3002\u5047\u5b9a\u795e\u7ecf\u7f51\u7edc\u7684\u8f93\u51fa\u4e3a\\(\\hat{y}_k=(\\hat{y}_1^{k},\\hat{y}_2^{k},\\ldots,\\hat{y}_l^{k})\\)\uff0c\u6709\uff1a<br>\\[<br>\\hat{y}_{j}^k=f(\\beta_j-\\theta{j})=f\\left(\\sum_{h=1}^{l}w_{hj}b_h-\\theta_j\\right)<br>\\]<br>\u5219\u6709\u5747\u65b9\u8bef\u5dee\uff1a<br>\\[<br>E_k=\\frac{1}{2}\\sum_{j=1}^{l}(\\hat{y}_{j}^k-y_{j}^k)^2<br>\\]<br>BP\u7b97\u6cd5\u91c7\u7528\u68af\u5ea6\u4e0b\u964d\u7b56\u7565\u6765\u8bbe\u6cd5\u964d\u4f4e\\(E_k\\)\uff0c\u5e76\u4e14\u4f1a\u6839\u636e\u7c7b\u4f3c\u611f\u77e5\u673a\u7684\u5b66\u4e60\u89c4\u5219\u8fdb\u884c\u66f4\u65b0\u6743\u91cd\u8c03\u6574\uff0c\u5bf9\u4e8e\u7ed9\u5b9a\u5b66\u4e60\u7387\uff0c\u6709\uff1a<br>\\[<br>\\Delta w_{hj}=-\\eta\\frac{\\partial E_k}{\\partial w_{hj}}<br>\\]<br>\u6839\u636e\u4f20\u64ad\u6d41\u7a0b\u53ef\u4ee5\u77e5\u9053\\(w_{hj}\\)\u4f1a\u5148\u5f71\u54cd\u7b2c\\(j\\)\u4e2a\u8f93\u51fa\u5c42\u795e\u7ecf\u5143\u7684\u8f93\u5165\u503c\\(\\beta_{j}\\)\uff0c\u518d\u5f71\u54cd\u8f93\u51fa\u503c\\(\\hat{y}^{k}_j\\)\uff0c\u6700\u540e\u5f71\u54cd\u5230\u5747\u65b9\u8bef\u5dee\\(E_k\\)\uff0c\u6240\u4ee5\u6709\uff1a<br>\\[<br>\\frac{\\partial E_k}{\\partial w_{hj}}=\\frac{\\partial E_k}{\\partial \\hat{y}^{k}_j}\\cdot\\frac{\\partial \\hat{y}^{k}_j}{\\partial \\beta_{j}}\\cdot\\frac{\\partial \\beta_{j}}{\\partial w_{hj}}<br>\\]<br>\u800c\\(\\beta_{j}=\\sum_{h=1}^{l}w_{hj}b_h\\)\uff0c\u6240\u4ee5\u6709\\(\\frac{\\partial \\beta_{j}}{\\partial w_{hj}}=b_h\\)\uff0c\u90a3\u4e48\u53ef\u4ee5\u77e5\u9053\uff1a<br>\\[<br>\\Delta w_{hj}=-\\eta\\frac{\\partial E_k}{\\partial w_{hj}}=-\\eta\\frac{\\partial E_k}{\\partial \\hat{y}^{k}_j}\\cdot\\frac{\\partial \\hat{y}^{k}_j}{\\partial \\beta_{j}}\\cdot\\frac{\\partial \\beta_{j}}{\\partial w_{hj}}=-\\eta b_{h}\\frac{\\partial E_k}{\\partial \\hat{y}^{k}_j}\\cdot\\frac{\\partial \\hat{y}^{k}_j}{\\partial \\beta_{j}}<br>\\]<br>\u800c\u5bf9\u4e8eSigmoid\u51fd\u6570\\(f(x)=\\frac{1}{1+e^{-x}}\\)\uff0c\u6709\uff1a<br>\\[<br>f'(x)=\\frac{e^{-x}}{(1+e^{-x})^2}=\\frac{1}{1+e^{-x}}\\cdot\\frac{e^{-x}}{1+e^{-x}}=f(x)(1-f(x))<br>\\]<br>\u90a3\u4e48\u6709\uff1a<br>\\[<br>g_j=-\\frac{\\partial E_k}{\\partial \\hat{y}^{k}_j}\\cdot\\frac{\\partial \\hat{y}^{k}_j}{\\partial \\beta_{j}}=-(\\hat{y}_{j}^k-y_{j}^k)f'(\\beta_j-\\theta_j)=(y_{j}^k-\\hat{y}_{j}^k)\\hat{y}_{j}^k(1-\\hat{y}_{j}^k)<br>\\]<br>\u4ece\u800c\u6709\uff1a<br>\\[<br>\\Delta w_{hj}=-\\eta\\frac{\\partial E_k}{\\partial w_{hj}}=-\\eta b_hg_j<br>\\]<br>\u90a3\u4e48\u6211\u4eec\u53ef\u4ee5\u5f97\u5230\u6743\u91cd\\(w_{hj}\\)\u7684\u66f4\u65b0\u516c\u5f0f\uff1a<br>\\[<br>w_{hj}\\leftarrow w_{hj}+\\Delta w_{hj}<br>\\]<br>\u5373\uff1a<br>\\[<br>w_{hj}\\leftarrow w_{hj}+\\eta b_h g_j<br>\\]<br>\u540c\u7406\u53ef\u4ee5\u5f97\u5230\uff1a<br>\\[<br>\\begin{aligned}<br>&amp;\\Delta\\theta_{j}=-\\eta g_j\\\\<br>&amp;\\Delta v_{ih}=\\eta x_i e_h\\\\<br>&amp;\\Delta \\gamma_h=-\\eta e_h<br>\\end{aligned}<br>\\]<br>\u5176\u4e2d\uff1a<br>\\[<br>e_h=b_h(1-b_h)\\sum_{j=1}^lw_{hj}g_j<br>\\]<br>\u5b66\u4e60\u7387\\(\\eta\\in(0,1)\\)\u63a7\u5236\u7740\u7b97\u6cd5\u6bcf\u8f6e\u8fed\u4ee3\u7684\u66f4\u65b0\u6b65\u957f\uff0c\u4e0d\u540c\u5c42\u7684\u5b66\u4e60\u7387\u53ef\u4ee5\u4e0d\u540c\uff0cBP\u7b97\u6cd5\u7684\u6700\u7ec8\u76ee\u6807\u662f\u6700\u5c0f\u5316\u8bad\u7ec3\u96c6\\(D\\)\u4e0a\u7684\u7d2f\u8ba1\u8bef\u5dee\uff1a<br>\\[<br>E=\\frac{1}{m}\\sum_{k=1}^m E_k<br>\\]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9e\u4f8b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f7f\u7528PyTorch\u8bad\u7ec3\u4e00\u795e\u7ecf\u7f51\u7edc\u7528\u4e8e\u5bf9MNIST\u6570\u636e\u96c6\u8fdb\u884c\u5206\u7c7b\u5e76\u4f7f\u7528\u6d4b\u8bd5\u96c6\u8fdb\u884c\u6d4b\u8bd5\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import os\nos.environ&#91;\"KMP_DUPLICATE_LIB_OK\"&#93; = \"TRUE\"\n\nimport matplotlib\n%matplotlib inline\nimport matplotlib.pyplot as plt\n\nimport torch\nfrom torch import nn, optim\nfrom torch.utils.data import DataLoader\nfrom torchvision import datasets, transforms\n\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n\n# \u5bfc\u5165 MNIST \u6570\u636e\u96c6\ntransform = transforms.ToTensor()\ntrain_dataset = datasets.MNIST(root='.\/data', train=True, download=True, transform=transform)\ntrain_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)\n\n# \u5b9a\u4e49\u4e00\u4e2a\u7b80\u5355\u7684\u795e\u7ecf\u7f51\u7edc\u6a21\u578b\nmodel = nn.Sequential(\n    nn.Flatten(),\n    nn.Linear(28 * 28, 256),\n    nn.Sigmoid(),\n    nn.Linear(256, 10)\n).to(device)\n\n# \u5b9a\u4e49\u635f\u5931\u51fd\u6570\u548c\u4f18\u5316\u5668\nloss_fn = nn.CrossEntropyLoss() # \u4ea4\u53c9\u71b5\noptimizer = torch.optim.SGD(model.parameters(), lr=0.01) # \u968f\u673a\u68af\u5ea6\u4e0b\u964d\u4f18\u5316\u5668\uff0c\u5b66\u4e60\u7387=0.01\n\nfor epoch in range(5):  # \u8fed\u4ee35\u6b21\n    for x, y in train_loader:\n        x, y = x.to(device), y.to(device)\n\n        # \u524d\u5411\u4f20\u64ad\n        predictions = model(x)\n        loss = loss_fn(predictions, y)\n\n        # \u53cd\u5411\u4f20\u64ad\u548c\u4f18\u5316\n        optimizer.zero_grad()\n        loss.backward()\n        optimizer.step()\n    print(f\"Epoch {epoch + 1}, Loss: {loss.item():.4f}\")\n\n# \u53ef\u89c6\u5316\u9884\u6d4b\ndataiter = iter(train_loader)\nimages, labels = next(dataiter)\noutputs = model(images.to(device))\n\n_, predicted = torch.max(outputs, 1)\n\nfig, axes = plt.subplots(1, 6, figsize=(12, 2))\nfor i in range(6):\n    axes&#91;i&#93;.imshow(images&#91;i&#93;.squeeze(), cmap='gray')\n    axes&#91;i&#93;.set_title(f'Pred: {predicted&#91;i&#93;.item()}')\n    axes&#91;i&#93;.axis('off')\nplt.show()<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> os<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">os<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">environ<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">KMP_DUPLICATE_LIB_OK<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">TRUE<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> matplotlib<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\">matplotlib inline<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> matplotlib<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">pyplot <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> plt<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> torch<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> torch <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> nn<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> optim<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> torch<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">utils<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">data <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> DataLoader<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> torchvision <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> datasets<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> transforms<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">device <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> torch<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">device<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">cuda<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> torch<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">cuda<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">is_available<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">cpu<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u5bfc\u5165 MNIST \u6570\u636e\u96c6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">transform <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> transforms<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">ToTensor<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">train_dataset <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> datasets<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">MNIST<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">root<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">.\/data<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">train<\/span><span style=\"color: #81A1C1\">=True<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">download<\/span><span style=\"color: #81A1C1\">=True<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">transform<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">transform<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">train_loader <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DataLoader<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">train_dataset<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">batch_size<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">64<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">shuffle<\/span><span style=\"color: #81A1C1\">=True<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u5b9a\u4e49\u4e00\u4e2a\u7b80\u5355\u7684\u795e\u7ecf\u7f51\u7edc\u6a21\u578b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">model <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Sequential<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Flatten<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Linear<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">28<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">28<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">256<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Sigmoid<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Linear<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">256<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">).<\/span><span style=\"color: #88C0D0\">to<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">device<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u5b9a\u4e49\u635f\u5931\u51fd\u6570\u548c\u4f18\u5316\u5668<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">loss_fn <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">CrossEntropyLoss<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\"># \u4ea4\u53c9\u71b5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">optimizer <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> torch<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">optim<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">SGD<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">model<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">parameters<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">lr<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">0.01<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #616E88\"># \u968f\u673a\u68af\u5ea6\u4e0b\u964d\u4f18\u5316\u5668\uff0c\u5b66\u4e60\u7387=0.01<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> epoch <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">range<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">):<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #616E88\"># \u8fed\u4ee35\u6b21<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> train_loader<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> x<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">device<\/span><span style=\"color: #ECEFF4\">),<\/span><span style=\"color: #D8DEE9FF\"> y<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">device<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #616E88\"># \u524d\u5411\u4f20\u64ad<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        predictions <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">model<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">x<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        loss <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">loss_fn<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">predictions<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> y<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #616E88\"># \u53cd\u5411\u4f20\u64ad\u548c\u4f18\u5316<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        optimizer<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">zero_grad<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        loss<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">backward<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        optimizer<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">step<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&quot;Epoch <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">epoch <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">, Loss: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">loss<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">item<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">:.4f<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u53ef\u89c6\u5316\u9884\u6d4b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">dataiter <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">iter<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">train_loader<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">images<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> labels <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">next<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">dataiter<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">outputs <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">model<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">images<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">to<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">device<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">_<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> predicted <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> torch<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">max<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">outputs<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">fig<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> axes <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> plt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">subplots<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">6<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">figsize<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">12<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> i <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">range<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">6<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    axes<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">imshow<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">images<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">squeeze<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">cmap<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">gray<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    axes<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">set_title<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;Pred: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">predicted<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">item<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    axes<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">axis<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">off<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">plt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">show<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u770b\u5230\u6d4b\u8bd5\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260923213321.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260923213321.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"301\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260923213321.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-525\"  sizes=\"auto, (max-width: 982px) 100vw, 982px\" \/><\/div><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5176\u4e2d\u795e\u7ecf\u7f51\u7edc\u6a21\u578b\u7684\u5b9a\u4e49\u5982\u4e0b\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>model = nn.Sequential(\n    nn.Flatten(),\n    nn.Linear(28 * 28, 256),\n    nn.Sigmoid(),\n    nn.Linear(256, 10)\n).to(device)<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">model <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Sequential<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Flatten<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Linear<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">28<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">28<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">256<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Sigmoid<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Linear<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">256<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">).<\/span><span style=\"color: #88C0D0\">to<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">device<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u5176\u4e2d\u7b2c\u4e00\u884c\u7684<code>nn.Flatten()<\/code>\u8868\u793a\u5c06\u4e8c\u7ef4\u56fe\u50cf\u5c55\u5e73\u6210\u4e00\u7ef4\u5411\u91cf\uff0c<code>nn.Linear(28 * 28, 256)<\/code>\u8868\u793a\u4e00\u4e2a28\\times28\u7ef4\uff08\u5373\u56fe\u7247\u5927\u5c0f\uff09\u7684\u8f93\u5165\u538b\u7f29\u4e3a256\u7ef4\u7684\u8f93\u51fa\u7684\u9690\u85cf\u5c42\uff0c<code>nn.Sigmoid()<\/code>\u8868\u793a\u4f7f\u7528Sigmoid\u51fd\u6570\u4f5c\u4e3a\u9690\u85cf\u5c42\u7684\u6fc0\u6d3b\u51fd\u6570\uff0c<code>nn.Linear(256, 10)<\/code>\u8868\u793a\u4e00\u4e2a\u5c06256\u7ef4\u8f93\u5165\u538b\u7f29\u4e3a10\u7ef4\u8f93\u51fa\u7684\u8f93\u51fa\u5c42.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5e38\u7528\u6fc0\u6d3b\u51fd\u6570<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Sigmoid<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\\[<br>\\text{Sigmoid}(x) = \\frac{1}{1+e^{-x}}<br>\\]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">tanh<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\\[<br>\\tanh(x)=\\frac{e^{x}-e^{-x}}{e^x+e^{-x}}<br>\\]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">ReLU<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\\[<br>\\text{ReLU}(x)=\\max(0,x)<br>\\]<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Leaky ReLU<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\\[<br>\\text{LeakyReLU}(x)=\\max(\\alpha x,x)<br>\\]<br>\\(\\alpha\\)\u56fa\u5b9a\uff0c\u4e00\u822c\u53d6\\(\\alpha=0.01\\)<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">PReLU<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\\[<br>\\text{PReLU}(x)=\\max(\\alpha x, x)<br>\\]<br>\\(\\alpha\\)\u4e3a\u53ef\u5b66\u4e60\u53c2\u6570<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Softmax\uff08\u7528\u4e8e\u591a\u5206\u7c7b\u5b66\u4e60\u7684\u8f93\u51fa\u5c42\uff09<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\\[<br>\\text{Softmax}(x_i)=\\frac{e^{x_i}}{\\sum_{j}e^{x_j}}<br>\\]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5377\u79ef\u795e\u7ecf\u7f51\u7edc<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5377\u79ef\u795e\u7ecf\u7f51\u7edc (Convolutional Neural Networks, CNN) \u662f\u4e00\u7c7b\u4e13\u95e8\u7528\u4e8e\u5904\u7406\u5177\u6709\u7f51\u683c\u72b6\u62d3\u6251\u7ed3\u6784\u6570\u636e\uff08\u5982\u56fe\u50cf\uff09\u7684\u6df1\u5ea6\u5b66\u4e60\u6a21\u578b\uff0c\u5176\u5305\u62ec\u5982\u4e0b\u51e0\u79cd\u5c42\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5377\u79ef\u5c42<\/li>\n\n\n\n<li>\u6fc0\u6d3b\u5c42<\/li>\n\n\n\n<li>\u5f52\u4e00\u5316\u5c42<\/li>\n\n\n\n<li>\u6c60\u5316\u5c42<\/li>\n\n\n\n<li>\u5168\u8fde\u63a5\u5c42<\/li>\n\n\n\n<li>\u8f93\u51fa\u5c42<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u5377\u79ef\u5c42<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5377\u79ef\u5c42\u5229\u7528\u5377\u79ef\u6838\u63d0\u53d6\u5c40\u90e8\u7279\u5f81\uff0c\u5bf9\u4e8e\u8f93\u5165\u77e9\u9635\\(x\\)\uff0c\u5377\u79ef\u6838\\(k\\)\uff0c\u4ee5\u53ca\u504f\u7f6e\\(b\\)\uff0c\u5377\u79ef\u5c42\u7684\u8f93\u51fa\u4e3a\u4e00\u4e2a\u77e9\u9635\\(y\\)\uff0c\u5176\u4e2d\uff1a<br>\\[<br>y[i,j]=\\sum_{m}\\sum_{n}x[i+m,j+n]k[m,n]+b<br>\\]<br>\u4f8b\u5982\u5bf9\u4e8e\u5982\u4e0b\u77e9\u9635\uff1a<br>\\[<br>x=\\left(\\begin{matrix}<br>0&amp;1&amp;2\\\\3&amp;4&amp;5\\\\6&amp;7&amp;8<br>\\end{matrix}\\right),<br>k=\\left(\\begin{matrix}<br>0&amp;1\\\\2&amp;3<br>\\end{matrix}\\right)<br>\\]<br>\u4ee5\u53ca\u504f\u7f6e\\(b=2\\)\uff0c\u6709\uff1a<br>\\[<br>\\begin{aligned}<br>y[0,0]=\\sum_{m=0}^1\\sum_{n=0}^1x[0+m,0+n]k[m,n]+b=0\\times0+1\\times1+3\\times2+4\\times3+2=21\\\\<br>y[0,1]=\\sum_{m=0}^1\\sum_{n=0}^1x[0+m,1+n]k[m,n]+b=1\\times0+2\\times1+4\\times2+5\\times3+2=27\\\\<br>y[1,0]=\\sum_{m=0}^1\\sum_{n=0}^1x[1+m,0+n]k[m,n]+b=3\\times0+4\\times1+6\\times2+7\\times3+2=39\\\\<br>y[1,1]=\\sum_{m=0}^1\\sum_{n=0}^1x[1+m,1+n]k[m,n]+b=4\\times0+5\\times1+7\\times2+8\\times3+2=45<br>\\end{aligned}<br>\\]<br>\u53ef\u4ee5\u5f97\u5230\uff1a<br>\\[<br>y=\\left(\\begin{matrix}<br>21&amp;27\\\\39&amp;45<br>\\end{matrix}\\right)<br>\\]<br>\u5728\u5377\u79ef\u5c42\u4e2d\uff0c\u5377\u79ef\u6838\u548c\u504f\u7f6e\u662f\u9700\u8981\u5b66\u4e60\u7684.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u6fc0\u6d3b\u51fd\u6570<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u822c\u5728\u5377\u79ef\u5c42\u4e4b\u540e\u4f1a\u5e94\u7528\u975e\u7ebf\u6027\u6fc0\u6d3b\u51fd\u6570\uff0c\u7528\u4e8e\u5f15\u5165\u975e\u7ebf\u6027\u7279\u5f81\uff0c\u5e38\u7528ReLU\u51fd\u6570<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5f52\u4e00\u5316\u5c42<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f52\u4e00\u5316\u5c42\u4e00\u822c\u7528\u4e8e\u5bf9\u4e2d\u95f4\u7279\u5f81\u505a\u7edf\u8ba1\u6807\u51c6\u5316\uff0c\u8ba9\u8bad\u7ec3\u66f4\u7a33\u5b9a\u3001\u66f4\u5feb\uff0c\u5e38\u7528\u7684\u65b9\u6cd5\u662f\u6279\u5f52\u4e00\u5316\uff08Batch Norm\uff0c\u7b80\u79f0BN\uff09\uff0c\u5bf9\u4e8e\u4e00\u7ec4\u8f93\u5165\uff0c\u8be5\u65b9\u6cd5\u4f1a\u5bf9\u4e00\u7ec4\u8f93\u5165\u7279\u5f81\u56fe\u4e2d\u6bcf\u4e2a\u901a\u9053\u7684\u7279\u5f81\\(x\\)\u505a\u5982\u4e0b\u8ba1\u7b97\uff1a<br>\\[<br>y_i=\\gamma \\frac{x_i-\\mu}{\\sqrt{\\sigma^2+\\varepsilon}}+\\beta<br>\\]<br>\u5176\u4e2d\\(\\mu\\)\u4e3a\u8fd9\u7ec4\u8f93\u5165\u5728\u8be5\u901a\u9053\u4e0a\u7684\u5747\u503c\uff0c\\(\\sigma^2\\)\u4e3a\u8fd9\u7ec4\u8f93\u5165\u5728\u8be5\u901a\u9053\u4e0a\u7684\u65b9\u5dee\uff0c\\(\\gamma\\)\u4ee5\u53ca\\(\\beta\\)\u5219\u5206\u522b\u4e3a\u9700\u8981\u5b66\u4e60\u7684\u7f29\u653e\u53c2\u6570\u4ee5\u53ca\u5e73\u79fb\u53c2\u6570<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u6c60\u5316\u5c42<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6c60\u5316\u5c42\u4e00\u822c\u7528\u4e8e\u964d\u4f4e\u7279\u5f81\u56fe\u7684\u7a7a\u95f4\u7ef4\u5ea6\uff0c\u4ee5\u51cf\u5c11\u8ba1\u7b97\u91cf\uff0c\u4e00\u822c\u5bf9\u7279\u5f81\u56fe\u7684\u6bcf\u4e2a\u901a\u9053\u90fd\u8fdb\u884c\u6c60\u5316\uff0c\u6c60\u5316\u65b9\u6cd5\u4e3b\u8981\u6709\u5982\u4e0b\u4e24\u79cd\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6700\u5927\u6c60\u5316\uff1a\u63d0\u53d6\u5f85\u6c60\u5316\u7a97\u53e3\u5185\u7684\u6700\u5927\u503c<\/li>\n\n\n\n<li>\u5e73\u5747\u6c60\u5316\uff1a\u8ba1\u7b97\u5f85\u6c60\u5316\u7a97\u53e3\u5185\u7684\u5e73\u5747\u503c<br>\u7ecf\u6c60\u5316\u540e\u5bbd\u9ad8\u4f1a\u53d8\u5c0f\uff0c\u901a\u9053\u6570\u4e0d\u53d8<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u5168\u8fde\u63a5\u5c42<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0e\u591a\u5c42\u611f\u77e5\u673a\u7684\u4e00\u822c\u9690\u5c42\u65e0\u5f02\uff0c\u5bf9\u4e8e\u8f93\u5165\u5411\u91cf\\(x\\)\uff0c\u6743\u91cd\u77e9\u9635\\(W\\)\u4ee5\u53ca\u504f\u7f6e\\(b\\)\uff0c\u91c7\u7528\u6fc0\u6d3b\u51fd\u6570\\(f\\)\u5f97\u5230\u7684\u8f93\u51fa\u4e3a\uff1a<br>\\[<br>y=f(Wx+b)<br>\\]<br>\u5728CNN\u4e2d\uff0c\u5168\u8fde\u63a5\u5c42\u548c\u524d\u9762\u7684\u5c42\u4e4b\u95f4\u5fc5\u987b\u8981\u52a0\u4e00\u6b65\u5c55\u5e73\u64cd\u4f5c\u5c06\u7279\u5f81\u56fe\u5c55\u5e73\u4e3a\u4e00\u4e2a\u4e00\u7ef4\u5411\u91cf\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CNN\u4e00\u822c\u7ed3\u6784<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">CNN\u7684\u5178\u578b\u7ed3\u6784\u4e00\u822c\u4e3a\uff1a<br>\\[<br>\\text{\u8f93\u5165}\\rightarrow[\\text{\u5377\u79ef}\\rightarrow\\text{\u6fc0\u6d3b}\\rightarrow\\text{\u6c60\u5316}]\\times N\\rightarrow\\text{\u5c55\u5e73}\\rightarrow[\\text{\u5168\u8fde\u63a5}\\rightarrow\\text{\u6fc0\u6d3b}]\\times M\\rightarrow\\text{\u8f93\u51fa}<br>\\]<br>\u66f4\u5e38\u7528\u7684\u7ed3\u6784\u4e3a\uff1a<br>\\[<br>\\text{\u8f93\u5165}\\rightarrow[\\text{\u5377\u79ef}\\rightarrow\\text{\u5f52\u4e00\u5316}\\rightarrow\\text{\u6fc0\u6d3b}]\\times N\\rightarrow\\text{\u5168\u5c40\u5e73\u5747\u6c60\u5316}\\rightarrow\\text{\u5168\u8fde\u63a5}\\rightarrow\\text{Softmax}<br>\\]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CNN\u8bad\u7ec3\u4f8b\u2014\u2014MNIST\u5206\u7c7b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u7b80\u5316\u7248LeNet-5\u6a21\u578b\u4e3a\u4f8b\uff0c\u8be5\u6a21\u578b\u7684\u7ed3\u6784\u5982\u4e0b\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/\u672a\u547d\u540d\u7ed8\u56fe.drawio-8.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/\u672a\u547d\u540d\u7ed8\u56fe.drawio-8.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"121\" height=\"601\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/\u672a\u547d\u540d\u7ed8\u56fe.drawio-8.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-526\"\/><\/div><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5176\u4e2d\u7b2c\u4e00\u4e2a\u5377\u79ef\u5c42\u9700\u8981\u5c06\\(28\\times28\\)\u7684\u8f93\u5165\u586b\u5145\u5230\\(32\\times32\\)\uff0c\u800c\u5168\u8fde\u63a5\u5c42\u5305\u542b\u4e24\u4e2a\u9690\u5c42\u3002\u8fdb\u884c\u5341\u8f6e\u8bad\u7ec3\u5e76\u8fdb\u884c\u9884\u6d4b\u7684\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"\u590d\u5236\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>import os\nos.environ&#91;'KMP_DUPLICATE_LIB_OK'&#93; = 'True'\n\nimport torch\nfrom torch import nn, optim\nfrom torch.utils.data import DataLoader\nfrom torchvision import datasets, transforms\nimport matplotlib.pyplot as plt\n\nEPOCHS = 5\nLEARNING_RATE = 0.0001\nTEST_NUM = 10\n\ntransform = transforms.ToTensor()\nMNIST_data = datasets.MNIST(root=\"D:\\\\AI Security\\\\data\", train=True, download=True, transform=transform)\ndata_loader = DataLoader(MNIST_data, batch_size=64, shuffle=True)\n\nLeNet5 = nn.Sequential(\n    nn.Conv2d(1, 6, kernel_size=5, stride=1, padding=2),\n    nn.Tanh(),\n    nn.AvgPool2d(kernel_size=2, stride=2),\n    nn.Conv2d(6, 16, kernel_size=5, stride=1),\n    nn.Tanh(),\n    nn.AvgPool2d(kernel_size=2, stride=2),\n    nn.Flatten(),\n    nn.Linear(16 * 5 * 5, 120),\n    nn.Tanh(),\n    nn.Linear(120, 84),\n    nn.Tanh(),\n    nn.Linear(84, 10)\n)\n\nloss_function = nn.CrossEntropyLoss()\noptimizer = optim.Adam(LeNet5.parameters(), lr=LEARNING_RATE)\n\nlosses = []\n\nfor epoch in range(EPOCHS):\n    for batch_idx, (data, target) in enumerate(data_loader):\n        optimizer.zero_grad()\n        output = LeNet5(data)\n        loss = loss_function(output, target)\n        loss.backward()\n        optimizer.step()\n\n    print(f'Epoch {epoch + 1}\/{EPOCHS}, Loss: {loss.item()}')\n    losses.append(loss.item())\n\n# \u53ef\u89c6\u5316\u9884\u6d4b\u7ed3\u679c\ndata, target = next(iter(data_loader))\noutput = LeNet5(data)\n\n_, predicted = torch.max(output, 1)\n\nfig, axes = plt.subplots(1, TEST_NUM, figsize=(TEST_NUM * 2, 2))\nfor i in range(TEST_NUM):\n    axes&#91;i&#93;.imshow(data&#91;i&#93;&#91;0&#93;, cmap='gray')\n    axes&#91;i&#93;.set_title(f'Pred: {predicted&#91;i&#93;.item()}\\nTrue: {target&#91;i&#93;.item()}')\n    axes&#91;i&#93;.axis('off')\nplt.show()\n\n# \u53ef\u89c6\u5316\u635f\u5931\nplt.plot(range(1, EPOCHS + 1), losses)\nplt.xlabel('Epochs')\nplt.ylabel('Loss')\nplt.title('Training Loss over Epochs')\nplt.show()<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> os<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">os<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">environ<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">KMP_DUPLICATE_LIB_OK<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">True<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> torch<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> torch <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> nn<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> optim<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> torch<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">utils<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">data <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> DataLoader<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> torchvision <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> datasets<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> transforms<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> matplotlib<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\">pyplot <\/span><span style=\"color: #81A1C1\">as<\/span><span style=\"color: #D8DEE9FF\"> plt<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">EPOCHS <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">LEARNING_RATE <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0.0001<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">TEST_NUM <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">transform <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> transforms<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">ToTensor<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">MNIST_data <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> datasets<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">MNIST<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">root<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">D:<\/span><span style=\"color: #EBCB8B\">\\\\<\/span><span style=\"color: #A3BE8C\">AI Security<\/span><span style=\"color: #EBCB8B\">\\\\<\/span><span style=\"color: #A3BE8C\">data<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">train<\/span><span style=\"color: #81A1C1\">=True<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">download<\/span><span style=\"color: #81A1C1\">=True<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">transform<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">transform<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">data_loader <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">DataLoader<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">MNIST_data<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">batch_size<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">64<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">shuffle<\/span><span style=\"color: #81A1C1\">=True<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">LeNet5 <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Sequential<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Conv2d<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">6<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">kernel_size<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">stride<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">padding<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Tanh<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">AvgPool2d<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">kernel_size<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">stride<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Conv2d<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">6<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">16<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">kernel_size<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">stride<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Tanh<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">AvgPool2d<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">kernel_size<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">stride<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Flatten<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Linear<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">16<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Tanh<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Linear<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">84<\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Tanh<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Linear<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">84<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">loss_function <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> nn<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">CrossEntropyLoss<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">optimizer <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> optim<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Adam<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">LeNet5<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">parameters<\/span><span style=\"color: #ECEFF4\">(),<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">lr<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\">LEARNING_RATE<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">losses <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[]<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> epoch <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">range<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">EPOCHS<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> batch_idx<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> target<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">enumerate<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">data_loader<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        optimizer<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">zero_grad<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        output <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">LeNet5<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        loss <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">loss_function<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">output<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> target<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        loss<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">backward<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        optimizer<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">step<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">print<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;Epoch <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">epoch <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">\/<\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">EPOCHS<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">, Loss: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">loss<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">item<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    losses<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">append<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">loss<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">item<\/span><span style=\"color: #ECEFF4\">())<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u53ef\u89c6\u5316\u9884\u6d4b\u7ed3\u679c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> target <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">next<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">iter<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">data_loader<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">output <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">LeNet5<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">_<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> predicted <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> torch<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">max<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">output<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">fig<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> axes <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> plt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">subplots<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> TEST_NUM<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">figsize<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">TEST_NUM <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> i <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">range<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">TEST_NUM<\/span><span style=\"color: #ECEFF4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    axes<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">imshow<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;&#91;<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">&#93;,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">cmap<\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">gray<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    axes<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">set_title<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">f<\/span><span style=\"color: #A3BE8C\">&#39;Pred: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">predicted<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">item<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #EBCB8B\">}\\n<\/span><span style=\"color: #A3BE8C\">True: <\/span><span style=\"color: #EBCB8B\">{<\/span><span style=\"color: #D8DEE9FF\">target<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">item<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #EBCB8B\">}<\/span><span style=\"color: #A3BE8C\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    axes<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">i<\/span><span style=\"color: #ECEFF4\">&#93;.<\/span><span style=\"color: #88C0D0\">axis<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">off<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">plt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">show<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \u53ef\u89c6\u5316\u635f\u5931<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">plt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">plot<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">range<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> EPOCHS <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">),<\/span><span style=\"color: #D8DEE9FF\"> losses<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">plt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">xlabel<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Epochs<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">plt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">ylabel<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Loss<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">plt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">title<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Training Loss over Epochs<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">plt<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">show<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u9884\u6d4b\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260925204607.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260925204607-1024x127.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"127\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260925204607-1024x127.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-527\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/a><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u770b\u5230\u9884\u6d4b\u6548\u679c\u8f83\u597d.<br>\u635f\u5931\u4e0b\u964d\u66f2\u7ebf\u5982\u4e0b\uff1a<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260926155305.png\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260926155305.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"454\" data-original=\"https:\/\/www.triode.cc\/wp-content\/uploads\/2026\/10\/Pasted-image-20260926155305.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-528\"  sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/div><\/a><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>\u524d\u6bb5\u65f6\u95f4\u5b66\u7684\u673a\u5668\u5b66\u4e60\u76f8\u5173\u7684\u4e00\u70b9\u4e1c\u897f<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[27],"class_list":["post-506","post","type-post","status-publish","format-standard","hentry","category-28","tag-27"],"_links":{"self":[{"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/posts\/506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/comments?post=506"}],"version-history":[{"count":20,"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/posts\/506\/revisions"}],"predecessor-version":[{"id":542,"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/posts\/506\/revisions\/542"}],"wp:attachment":[{"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/media?parent=506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/categories?post=506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.triode.cc\/index.php\/wp-json\/wp\/v2\/tags?post=506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}