1.5 欠拟合和过拟合
欠拟合(Underfitting):选择的模型过于简单,以致于模型对训练集和未知数据的预测都很差的现象。
过拟合(Overfitting):选择的模型过于复杂(所包含的参数过多),以致于模型对训练集的预测很好,但对未知数据预测很差的现象(泛化能力差)。
过拟合可以通过观测训练集和验证集的loss变化判断:随着epoch或step的增加,训练集 loss不断下降,而验证集loss先下降后抬升。
解决过拟合和欠拟合的方法
#mermaid-svg-o5DuawPOx7WQuVek .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-o5DuawPOx7WQuVek .label text{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek .node rect,#mermaid-svg-o5DuawPOx7WQuVek .node circle,#mermaid-svg-o5DuawPOx7WQuVek .node ellipse,#mermaid-svg-o5DuawPOx7WQuVek .node polygon,#mermaid-svg-o5DuawPOx7WQuVek .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-o5DuawPOx7WQuVek .node .label{text-align:center;fill:#333}#mermaid-svg-o5DuawPOx7WQuVek .node.clickable{cursor:pointer}#mermaid-svg-o5DuawPOx7WQuVek .arrowheadPath{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-o5DuawPOx7WQuVek .flowchart-link{stroke:#333;fill:none}#mermaid-svg-o5DuawPOx7WQuVek .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-o5DuawPOx7WQuVek .edgeLabel rect{opacity:0.9}#mermaid-svg-o5DuawPOx7WQuVek .edgeLabel span{color:#333}#mermaid-svg-o5DuawPOx7WQuVek .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-o5DuawPOx7WQuVek .cluster text{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-o5DuawPOx7WQuVek .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-o5DuawPOx7WQuVek text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-o5DuawPOx7WQuVek .actor-line{stroke:grey}#mermaid-svg-o5DuawPOx7WQuVek .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-o5DuawPOx7WQuVek .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-o5DuawPOx7WQuVek #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-o5DuawPOx7WQuVek .sequenceNumber{fill:#fff}#mermaid-svg-o5DuawPOx7WQuVek #sequencenumber{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek #crosshead path{fill:#333;stroke:#333}#mermaid-svg-o5DuawPOx7WQuVek .messageText{fill:#333;stroke:#333}#mermaid-svg-o5DuawPOx7WQuVek .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-o5DuawPOx7WQuVek .labelText,#mermaid-svg-o5DuawPOx7WQuVek .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-o5DuawPOx7WQuVek .loopText,#mermaid-svg-o5DuawPOx7WQuVek .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-o5DuawPOx7WQuVek .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-o5DuawPOx7WQuVek .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-o5DuawPOx7WQuVek .noteText,#mermaid-svg-o5DuawPOx7WQuVek .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-o5DuawPOx7WQuVek .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-o5DuawPOx7WQuVek .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-o5DuawPOx7WQuVek .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-o5DuawPOx7WQuVek .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek .section{stroke:none;opacity:0.2}#mermaid-svg-o5DuawPOx7WQuVek .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-o5DuawPOx7WQuVek .section2{fill:#fff400}#mermaid-svg-o5DuawPOx7WQuVek .section1,#mermaid-svg-o5DuawPOx7WQuVek .section3{fill:#fff;opacity:0.2}#mermaid-svg-o5DuawPOx7WQuVek .sectionTitle0{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek .sectionTitle1{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek .sectionTitle2{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek .sectionTitle3{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-o5DuawPOx7WQuVek .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek .grid path{stroke-width:0}#mermaid-svg-o5DuawPOx7WQuVek .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-o5DuawPOx7WQuVek .task{stroke-width:2}#mermaid-svg-o5DuawPOx7WQuVek .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek .taskText:not([font-size]){font-size:11px}#mermaid-svg-o5DuawPOx7WQuVek .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-o5DuawPOx7WQuVek .task.clickable{cursor:pointer}#mermaid-svg-o5DuawPOx7WQuVek .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-o5DuawPOx7WQuVek .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-o5DuawPOx7WQuVek .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-o5DuawPOx7WQuVek .taskText0,#mermaid-svg-o5DuawPOx7WQuVek .taskText1,#mermaid-svg-o5DuawPOx7WQuVek .taskText2,#mermaid-svg-o5DuawPOx7WQuVek .taskText3{fill:#fff}#mermaid-svg-o5DuawPOx7WQuVek .task0,#mermaid-svg-o5DuawPOx7WQuVek .task1,#mermaid-svg-o5DuawPOx7WQuVek .task2,#mermaid-svg-o5DuawPOx7WQuVek .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-o5DuawPOx7WQuVek .taskTextOutside0,#mermaid-svg-o5DuawPOx7WQuVek .taskTextOutside2{fill:#000}#mermaid-svg-o5DuawPOx7WQuVek .taskTextOutside1,#mermaid-svg-o5DuawPOx7WQuVek .taskTextOutside3{fill:#000}#mermaid-svg-o5DuawPOx7WQuVek .active0,#mermaid-svg-o5DuawPOx7WQuVek .active1,#mermaid-svg-o5DuawPOx7WQuVek .active2,#mermaid-svg-o5DuawPOx7WQuVek .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-o5DuawPOx7WQuVek .activeText0,#mermaid-svg-o5DuawPOx7WQuVek .activeText1,#mermaid-svg-o5DuawPOx7WQuVek .activeText2,#mermaid-svg-o5DuawPOx7WQuVek .activeText3{fill:#000 !important}#mermaid-svg-o5DuawPOx7WQuVek .done0,#mermaid-svg-o5DuawPOx7WQuVek .done1,#mermaid-svg-o5DuawPOx7WQuVek .done2,#mermaid-svg-o5DuawPOx7WQuVek .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-o5DuawPOx7WQuVek .doneText0,#mermaid-svg-o5DuawPOx7WQuVek .doneText1,#mermaid-svg-o5DuawPOx7WQuVek .doneText2,#mermaid-svg-o5DuawPOx7WQuVek .doneText3{fill:#000 !important}#mermaid-svg-o5DuawPOx7WQuVek .crit0,#mermaid-svg-o5DuawPOx7WQuVek .crit1,#mermaid-svg-o5DuawPOx7WQuVek .crit2,#mermaid-svg-o5DuawPOx7WQuVek .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-o5DuawPOx7WQuVek .activeCrit0,#mermaid-svg-o5DuawPOx7WQuVek .activeCrit1,#mermaid-svg-o5DuawPOx7WQuVek .activeCrit2,#mermaid-svg-o5DuawPOx7WQuVek .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-o5DuawPOx7WQuVek .doneCrit0,#mermaid-svg-o5DuawPOx7WQuVek .doneCrit1,#mermaid-svg-o5DuawPOx7WQuVek .doneCrit2,#mermaid-svg-o5DuawPOx7WQuVek .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-o5DuawPOx7WQuVek .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-o5DuawPOx7WQuVek .milestoneText{font-style:italic}#mermaid-svg-o5DuawPOx7WQuVek .doneCritText0,#mermaid-svg-o5DuawPOx7WQuVek .doneCritText1,#mermaid-svg-o5DuawPOx7WQuVek .doneCritText2,#mermaid-svg-o5DuawPOx7WQuVek .doneCritText3{fill:#000 !important}#mermaid-svg-o5DuawPOx7WQuVek .activeCritText0,#mermaid-svg-o5DuawPOx7WQuVek .activeCritText1,#mermaid-svg-o5DuawPOx7WQuVek .activeCritText2,#mermaid-svg-o5DuawPOx7WQuVek .activeCritText3{fill:#000 !important}#mermaid-svg-o5DuawPOx7WQuVek .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-o5DuawPOx7WQuVek g.classGroup text .title{font-weight:bolder}#mermaid-svg-o5DuawPOx7WQuVek g.clickable{cursor:pointer}#mermaid-svg-o5DuawPOx7WQuVek g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-o5DuawPOx7WQuVek g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-o5DuawPOx7WQuVek .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-o5DuawPOx7WQuVek .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-o5DuawPOx7WQuVek .dashed-line{stroke-dasharray:3}#mermaid-svg-o5DuawPOx7WQuVek #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek .commit-id,#mermaid-svg-o5DuawPOx7WQuVek .commit-msg,#mermaid-svg-o5DuawPOx7WQuVek .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-o5DuawPOx7WQuVek g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-o5DuawPOx7WQuVek g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-o5DuawPOx7WQuVek g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-o5DuawPOx7WQuVek .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-o5DuawPOx7WQuVek .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-o5DuawPOx7WQuVek .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-o5DuawPOx7WQuVek .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-o5DuawPOx7WQuVek .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-o5DuawPOx7WQuVek .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-o5DuawPOx7WQuVek .edgeLabel text{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o5DuawPOx7WQuVek .node circle.state-start{fill:black;stroke:black}#mermaid-svg-o5DuawPOx7WQuVek .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-o5DuawPOx7WQuVek #statediagram-barbEnd{fill:#9370db}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-state .divider{stroke:#9370db}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-o5DuawPOx7WQuVek .note-edge{stroke-dasharray:5}#mermaid-svg-o5DuawPOx7WQuVek .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-o5DuawPOx7WQuVek .error-icon{fill:#522}#mermaid-svg-o5DuawPOx7WQuVek .error-text{fill:#522;stroke:#522}#mermaid-svg-o5DuawPOx7WQuVek .edge-thickness-normal{stroke-width:2px}#mermaid-svg-o5DuawPOx7WQuVek .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-o5DuawPOx7WQuVek .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-o5DuawPOx7WQuVek .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-o5DuawPOx7WQuVek .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-o5DuawPOx7WQuVek .marker{fill:#333}#mermaid-svg-o5DuawPOx7WQuVek .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-o5DuawPOx7WQuVek {color: rgba(0, 0, 0, 0.75);font: ;}
解决欠拟合的方法
增加特征数
高斯特征
组合特征
增加模型复杂度
或者采用拟合能力更强的模型
神经网络
#mermaid-svg-SR7RaOzrU5TT60AZ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .label text{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .node rect,#mermaid-svg-SR7RaOzrU5TT60AZ .node circle,#mermaid-svg-SR7RaOzrU5TT60AZ .node ellipse,#mermaid-svg-SR7RaOzrU5TT60AZ .node polygon,#mermaid-svg-SR7RaOzrU5TT60AZ .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-SR7RaOzrU5TT60AZ .node .label{text-align:center;fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .node.clickable{cursor:pointer}#mermaid-svg-SR7RaOzrU5TT60AZ .arrowheadPath{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-SR7RaOzrU5TT60AZ .flowchart-link{stroke:#333;fill:none}#mermaid-svg-SR7RaOzrU5TT60AZ .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-SR7RaOzrU5TT60AZ .edgeLabel rect{opacity:0.9}#mermaid-svg-SR7RaOzrU5TT60AZ .edgeLabel span{color:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-SR7RaOzrU5TT60AZ .cluster text{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-SR7RaOzrU5TT60AZ .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-SR7RaOzrU5TT60AZ text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-SR7RaOzrU5TT60AZ .actor-line{stroke:grey}#mermaid-svg-SR7RaOzrU5TT60AZ .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-SR7RaOzrU5TT60AZ #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .sequenceNumber{fill:#fff}#mermaid-svg-SR7RaOzrU5TT60AZ #sequencenumber{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ #crosshead path{fill:#333;stroke:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .messageText{fill:#333;stroke:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-SR7RaOzrU5TT60AZ .labelText,#mermaid-svg-SR7RaOzrU5TT60AZ .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-SR7RaOzrU5TT60AZ .loopText,#mermaid-svg-SR7RaOzrU5TT60AZ .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-SR7RaOzrU5TT60AZ .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-SR7RaOzrU5TT60AZ .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-SR7RaOzrU5TT60AZ .noteText,#mermaid-svg-SR7RaOzrU5TT60AZ .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-SR7RaOzrU5TT60AZ .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-SR7RaOzrU5TT60AZ .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-SR7RaOzrU5TT60AZ .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-SR7RaOzrU5TT60AZ .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ .section{stroke:none;opacity:0.2}#mermaid-svg-SR7RaOzrU5TT60AZ .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-SR7RaOzrU5TT60AZ .section2{fill:#fff400}#mermaid-svg-SR7RaOzrU5TT60AZ .section1,#mermaid-svg-SR7RaOzrU5TT60AZ .section3{fill:#fff;opacity:0.2}#mermaid-svg-SR7RaOzrU5TT60AZ .sectionTitle0{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .sectionTitle1{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .sectionTitle2{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .sectionTitle3{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-SR7RaOzrU5TT60AZ .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ .grid path{stroke-width:0}#mermaid-svg-SR7RaOzrU5TT60AZ .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-SR7RaOzrU5TT60AZ .task{stroke-width:2}#mermaid-svg-SR7RaOzrU5TT60AZ .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ .taskText:not([font-size]){font-size:11px}#mermaid-svg-SR7RaOzrU5TT60AZ .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-SR7RaOzrU5TT60AZ .task.clickable{cursor:pointer}#mermaid-svg-SR7RaOzrU5TT60AZ .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-SR7RaOzrU5TT60AZ .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-SR7RaOzrU5TT60AZ .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-SR7RaOzrU5TT60AZ .taskText0,#mermaid-svg-SR7RaOzrU5TT60AZ .taskText1,#mermaid-svg-SR7RaOzrU5TT60AZ .taskText2,#mermaid-svg-SR7RaOzrU5TT60AZ .taskText3{fill:#fff}#mermaid-svg-SR7RaOzrU5TT60AZ .task0,#mermaid-svg-SR7RaOzrU5TT60AZ .task1,#mermaid-svg-SR7RaOzrU5TT60AZ .task2,#mermaid-svg-SR7RaOzrU5TT60AZ .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-SR7RaOzrU5TT60AZ .taskTextOutside0,#mermaid-svg-SR7RaOzrU5TT60AZ .taskTextOutside2{fill:#000}#mermaid-svg-SR7RaOzrU5TT60AZ .taskTextOutside1,#mermaid-svg-SR7RaOzrU5TT60AZ .taskTextOutside3{fill:#000}#mermaid-svg-SR7RaOzrU5TT60AZ .active0,#mermaid-svg-SR7RaOzrU5TT60AZ .active1,#mermaid-svg-SR7RaOzrU5TT60AZ .active2,#mermaid-svg-SR7RaOzrU5TT60AZ .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-SR7RaOzrU5TT60AZ .activeText0,#mermaid-svg-SR7RaOzrU5TT60AZ .activeText1,#mermaid-svg-SR7RaOzrU5TT60AZ .activeText2,#mermaid-svg-SR7RaOzrU5TT60AZ .activeText3{fill:#000 !important}#mermaid-svg-SR7RaOzrU5TT60AZ .done0,#mermaid-svg-SR7RaOzrU5TT60AZ .done1,#mermaid-svg-SR7RaOzrU5TT60AZ .done2,#mermaid-svg-SR7RaOzrU5TT60AZ .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-SR7RaOzrU5TT60AZ .doneText0,#mermaid-svg-SR7RaOzrU5TT60AZ .doneText1,#mermaid-svg-SR7RaOzrU5TT60AZ .doneText2,#mermaid-svg-SR7RaOzrU5TT60AZ .doneText3{fill:#000 !important}#mermaid-svg-SR7RaOzrU5TT60AZ .crit0,#mermaid-svg-SR7RaOzrU5TT60AZ .crit1,#mermaid-svg-SR7RaOzrU5TT60AZ .crit2,#mermaid-svg-SR7RaOzrU5TT60AZ .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-SR7RaOzrU5TT60AZ .activeCrit0,#mermaid-svg-SR7RaOzrU5TT60AZ .activeCrit1,#mermaid-svg-SR7RaOzrU5TT60AZ .activeCrit2,#mermaid-svg-SR7RaOzrU5TT60AZ .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-SR7RaOzrU5TT60AZ .doneCrit0,#mermaid-svg-SR7RaOzrU5TT60AZ .doneCrit1,#mermaid-svg-SR7RaOzrU5TT60AZ .doneCrit2,#mermaid-svg-SR7RaOzrU5TT60AZ .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-SR7RaOzrU5TT60AZ .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-SR7RaOzrU5TT60AZ .milestoneText{font-style:italic}#mermaid-svg-SR7RaOzrU5TT60AZ .doneCritText0,#mermaid-svg-SR7RaOzrU5TT60AZ .doneCritText1,#mermaid-svg-SR7RaOzrU5TT60AZ .doneCritText2,#mermaid-svg-SR7RaOzrU5TT60AZ .doneCritText3{fill:#000 !important}#mermaid-svg-SR7RaOzrU5TT60AZ .activeCritText0,#mermaid-svg-SR7RaOzrU5TT60AZ .activeCritText1,#mermaid-svg-SR7RaOzrU5TT60AZ .activeCritText2,#mermaid-svg-SR7RaOzrU5TT60AZ .activeCritText3{fill:#000 !important}#mermaid-svg-SR7RaOzrU5TT60AZ .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-SR7RaOzrU5TT60AZ g.classGroup text .title{font-weight:bolder}#mermaid-svg-SR7RaOzrU5TT60AZ g.clickable{cursor:pointer}#mermaid-svg-SR7RaOzrU5TT60AZ g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-SR7RaOzrU5TT60AZ g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-SR7RaOzrU5TT60AZ .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-SR7RaOzrU5TT60AZ .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-SR7RaOzrU5TT60AZ .dashed-line{stroke-dasharray:3}#mermaid-svg-SR7RaOzrU5TT60AZ #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ .commit-id,#mermaid-svg-SR7RaOzrU5TT60AZ .commit-msg,#mermaid-svg-SR7RaOzrU5TT60AZ .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-SR7RaOzrU5TT60AZ g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-SR7RaOzrU5TT60AZ g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-SR7RaOzrU5TT60AZ g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-SR7RaOzrU5TT60AZ .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-SR7RaOzrU5TT60AZ .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-SR7RaOzrU5TT60AZ .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-SR7RaOzrU5TT60AZ .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-SR7RaOzrU5TT60AZ .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-SR7RaOzrU5TT60AZ .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-SR7RaOzrU5TT60AZ .edgeLabel text{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-SR7RaOzrU5TT60AZ .node circle.state-start{fill:black;stroke:black}#mermaid-svg-SR7RaOzrU5TT60AZ .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-SR7RaOzrU5TT60AZ #statediagram-barbEnd{fill:#9370db}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-state .divider{stroke:#9370db}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-SR7RaOzrU5TT60AZ .note-edge{stroke-dasharray:5}#mermaid-svg-SR7RaOzrU5TT60AZ .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-SR7RaOzrU5TT60AZ .error-icon{fill:#522}#mermaid-svg-SR7RaOzrU5TT60AZ .error-text{fill:#522;stroke:#522}#mermaid-svg-SR7RaOzrU5TT60AZ .edge-thickness-normal{stroke-width:2px}#mermaid-svg-SR7RaOzrU5TT60AZ .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-SR7RaOzrU5TT60AZ .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-SR7RaOzrU5TT60AZ .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-SR7RaOzrU5TT60AZ .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-SR7RaOzrU5TT60AZ .marker{fill:#333}#mermaid-svg-SR7RaOzrU5TT60AZ .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-SR7RaOzrU5TT60AZ {color: rgba(0, 0, 0, 0.75);font: ;}
解决过拟合的方法
增加训练数据量
减小模型复杂度
在目标函数中添加正则项
提前终止 EARLY STOPPING
DROP OUT
过拟合常见解决方法
1. 增加训练样本数目
从理论上说,只要有足够多的样本数量,任何模型都不会出现过拟合的情况。
生成200个训练样本
# 设置随机种子
np.random.seed(34)sample_num = 200# 从-10到10中随机抽取100个浮点数
x_train = np.random.uniform(-5, 5, size=sample_num)# 将x从shape为(sample_num,)变为(sample_num,1)
X_train = x_train.reshape(-1,1)# 生成y值的实际函数
y_train_real = 0.5 * x_train ** 3 + x_train ** 2 + 2 * x_train + 1# 生成误差值
err_train = np.random.normal(0, 5, size=sample_num)# 真实y值加上误差值,得到样本的y值
y_train = y_train_real + err_train# 画出样本的散点图
plt.scatter(x_train, y_train, marker='o', color='g')# 画出实际函数曲线
plt.plot(np.sort(x_train), y_train_real[np.argsort(x_train)], color='b', label='real curve')
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.show()
30阶多项式模型训练
# 生成多项式数据
poly = PolynomialFeatures(degree=30, include_bias=False)
X_train_poly = poly.fit_transform(X_train)# 数据标准化(减均值除标准差)
scaler = StandardScaler()
X_train_poly_scaled = scaler.fit_transform(X_train_poly)# 线性回归模型训练
reg30 = LinearRegression()
reg30.fit(X_train_poly_scaled, y_train)# 模型预测
y_train_pred30 = reg30.predict(X_train_poly_scaled)# 画出样本的散点图
plt.scatter(x_train, y_train, marker='o', color='g')# 画出实际函数曲线
plt.plot(np.sort(x_train), y_train_real[np.argsort(x_train)], color='b', label='real curve')# 画出预测函数曲线
plt.plot(np.sort(x_train), y_train_pred30[np.argsort(x_train)], color='r', label='prediction curve')
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.show()# 计算MSE
mse = mean_squared_error(y_train_pred30, y_train)
print('MSE: {}'.format(mse))
MSE: 24.92469385931622
明显过拟合的情况相较于100个数据点时候,要好很多,MSE也小了不少
30阶多项式模型预测
# 生成多项式数据
poly = PolynomialFeatures(degree=30, include_bias=False)
X_test_poly = poly.fit_transform(X_test)# 数据标准化(减均值除标准差)
scaler = StandardScaler()
X_test_poly_scaled = scaler.fit_transform(X_test_poly)# 模型预测
y_test_pred30 = reg30.predict(X_test_poly_scaled)# 画出样本的散点图
plt.scatter(x_test, y_test, marker='o', color='c', label='test dataset')# 画出预测函数曲线
plt.plot(np.sort(x_test), y_test_pred30[np.argsort(x_test)], color='r', label='30 order')
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.show()
计算MSE
mse30 = mean_squared_error(y_test_pred30, y_test)# 打印结果
print('MSE:')
print('30 order polynomial: {:.2f}'.format(mse30))
输出结果:
MSE:
30 order polynomial: 32.32
2. 在目标函数中增加正则项
多项式拟合:
y=w0+w1x+w2x2+w3x3+⋯+wnxny=w_0+w_1x+w_2x^2+w_3x^3+\cdots+w_nx^ny=w0+w1x+w2x2+w3x3+⋯+wnxn
查看回归系数www
将结果转换为pd.DataFrame表格形式
coef1 = pd.DataFrame(reg1.coef_, index=['w1'], columns=['coef'])
coef3 = pd.DataFrame(reg3.coef_, index=['w1', 'w2', 'w3'], columns=['coef'])
coef10 = pd.DataFrame(reg10.coef_, index=['w'+str(i) for i in range(1,11)], columns=['coef'])
coef30 = pd.DataFrame(reg30.coef_, index=['w'+str(i) for i in range(1,31)], columns=['coef'])
1阶多项式模型参数
coef1
3阶多项式模型参数
coef3
|
coef3
|
w1
|
7.789175
|
w2
|
7.000036
|
w3
|
25.295452
|
10阶多项式模型参数
coef10
|
coef10
|
w1
|
7.998547
|
w2
|
4.203915
|
w3
|
20.728305
|
w4
|
15.694967
|
w5
|
10.679321
|
w6
|
-53.302415
|
w7
|
-5.051154
|
w8
|
72.956004
|
w9
|
-1.464603
|
w10
|
-32.583643
|
30阶多项式模型参数
coef30
|
coef
|
w1
|
1.274825e+01
|
w2
|
-1.515071e+02
|
w3
|
-2.784062e+02
|
w4
|
9.881947e+03
|
w5
|
8.313355e+03
|
w6
|
-2.294226e+05
|
w7
|
-1.443295e+05
|
w8
|
2.805398e+06
|
w9
|
1.540533e+06
|
w10
|
-2.094909e+07
|
w11
|
-1.036432e+07
|
w12
|
1.035820e+08
|
w13
|
4.594186e+07
|
w14
|
-3.558672e+08
|
w15
|
-1.390464e+08
|
w16
|
8.741809e+08
|
w17
|
2.938075e+08
|
w18
|
-1.558118e+09
|
w19
|
-4.373421e+08
|
w20
|
2.020758e+09
|
w21
|
4.563577e+08
|
w22
|
-1.888828e+09
|
w23
|
-3.264643e+08
|
w24
|
1.240156e+09
|
w25
|
1.523610e+08
|
w26
|
-5.429771e+08
|
w27
|
-4.173929e+07
|
w28
|
1.424089e+08
|
w29
|
5.084136e+06
|
w30
|
-1.693219e+07
|
可以发现30阶的模型系数www绝对值已经到了10810^8108量级
模型太复杂(阶数过多),发生过拟合时,系数www绝对值往往会很大,输入xxx的很小变化都可能带来输出yyy较大的变化,导致函数变化剧烈。
添加正则项的实质就是限制系数www的大小,使得输入xxx的变化尽量小的影响输出yyy的变化
训练Ridge回归(加L2正则)
使用到的api:
加L2正则的线性回归sklearn.linear_model.Ridge
用到的参数:
# 生成多项式数据
poly = PolynomialFeatures(degree=30, include_bias=False)
X_train_poly = poly.fit_transform(X_train)# 数据标准化(减均值除标准差)
scaler = StandardScaler()
X_train_poly_scaled = scaler.fit_transform(X_train_poly)# 线性回归模型训练
ridge30 = Ridge(alpha=1e-5)
ridge30.fit(X_train_poly_scaled, y_train)# 模型预测
y_train_pred30 = ridge30.predict(X_train_poly_scaled)# 画出样本的散点图
plt.scatter(x_train, y_train, marker='o', color='g')# 画出实际函数曲线
plt.plot(np.sort(x_train), y_train_real[np.argsort(x_train)], color='b', label='real curve')# 画出预测函数曲线
plt.plot(np.sort(x_train), y_train_pred30[np.argsort(x_train)], color='r', label='prediction curve')
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.show()# 计算MSE
mse = mean_squared_error(y_train_pred30, y_train)
print('MSE: {}'.format(mse))
查看加正则后的回归系数
将结果转换为pd.DataFrame表格形式
coef30 = pd.DataFrame(ridge30.coef_, index=['w'+str(i) for i in range(1,31)], columns=['coef'])
coef30
|
coef
|
w1
|
10.011475
|
w2
|
3.557561
|
w3
|
-4.055929
|
w4
|
7.173610
|
w5
|
100.444037
|
w6
|
26.619616
|
w7
|
-75.014554
|
w8
|
-90.566477
|
w9
|
-182.926719
|
w10
|
-16.985566
|
w11
|
172.986261
|
w12
|
101.786157
|
w13
|
257.743920
|
w14
|
114.148736
|
w15
|
14.865359
|
w16
|
11.446064
|
w17
|
-256.410161
|
w18
|
-117.329198
|
w19
|
-313.210520
|
w20
|
-169.444870
|
w21
|
-113.923504
|
w22
|
-95.081605
|
w23
|
205.527434
|
w24
|
73.135599
|
w25
|
413.318846
|
w26
|
222.862258
|
w27
|
261.405745
|
w28
|
183.223254
|
w29
|
-458.772049
|
w30
|
-248.055649
|
可以发现,系数www的确小了很多
模型检验
# 生成多项式数据
poly = PolynomialFeatures(degree=30, include_bias=False)
X_test_poly = poly.fit_transform(X_test)# 数据标准化(减均值除标准差)
scaler = StandardScaler()
X_test_poly_scaled = scaler.fit_transform(X_test_poly)# 模型预测
y_test_pred30 = ridge30.predict(X_test_poly_scaled)# 画出样本的散点图
plt.scatter(x_test, y_test, marker='o', color='c', label='test dataset')# 画出预测函数曲线
plt.plot(np.sort(x_test), y_test_pred30[np.argsort(x_test)], color='r', label='30 order')
plt.legend()
plt.xlabel('x')
plt.ylabel('y')
plt.show()
计算MSE
mse30 = mean_squared_error(y_test_pred30, y_test)# 打印结果
print('MSE:')
print('30 order polynomial: {:.2f}'.format(mse30))
MSE:
30 order polynomial: 43.50
添加正则项是有效的
1.5 欠拟合和过拟合相关推荐
- 欠拟合和过拟合学习笔记
欠拟合和过拟合学习笔记 https://www.cnblogs.com/DicksonJYL/p/9620464.html 在建模的过程中会经常出现1.模型的效果,但是泛化能力弱,2.模型的结果很差的 ...
- 1.8 欠拟合和过拟合-机器学习笔记-斯坦福吴恩达教授
欠拟合和过拟合 问题 在上一节中,我们利用多项式回归获得更加准确的拟合曲线,实现了对训练数据更好的拟合.然而,我们也发现,过渡地对训练数据拟合也会丢失信息规律.首先,引出两个概念: 欠拟合(under ...
- [pytorch、学习] - 3.11 模型选择、欠拟合和过拟合
参考 3.11 模型选择.欠拟合和过拟合 3.11.1 训练误差和泛化误差 在解释上述现象之前,我们需要区分训练误差(training error)和泛化误差(generalization error ...
- 欠拟合和过拟合以及如何选择模型
模型选择.欠拟合和过拟合 在前几节基于Fashion-MNIST数据集的实验中,我们评价了机器学习模型在训练数据集和测试数据集上的表现.如果你改变过实验中的模型结构或者超参数,你也许发现了:当模型在训 ...
- 从零开始学Pytorch(五)之欠拟合和过拟合
本文首发于微信公众号"计算机视觉cv" 模型选择.过拟合和欠拟合 训练误差和泛化误差 训练误差(training error)指模型在训练数据集上表现出的误差,泛化误差(gener ...
- 机器学习:什么是欠拟合和过拟合
https://blog.csdn.net/u011630575/article/details/71158656 1. 什么是欠拟合和过拟合 先看三张图片,这三张图片是线性回归模型 拟合的函数和训练 ...
- 欠拟合和过拟合的一般解决方法
欠拟合和过拟合的一般解决方法 参考文章: (1)欠拟合和过拟合的一般解决方法 (2)https://www.cnblogs.com/excellent-ship/p/9090949.html 备忘一下 ...
- 线性回归;欠拟合和过拟合
线性回归 定义:线性回归通过一个或者多个自变量与因变量之间之间进行建模的回归分析.其中特点为一个或多个称为回归系数的模型参数的线性组合. 线性回归的误差大小通过损失函数来计算–最小二乘法,目的是去寻找 ...
- 解决欠拟合和过拟合的几种方法
深度学习 欠拟合和过拟合的问题 ... 如何解决欠拟合和过拟合的问题? 深度学习 前言 一.介绍 二.如何解决欠拟合问题 三.如何解决过拟合问题 总结 前言 我们可以将搭建的模型是否发生欠拟合或者 ...
最新文章
- 《Python数据科学指南》——1.17 使用映射函数
- android 缓存文件的工具类,总结的一些android公共库,包含缓存(图片缓存、预取缓存)、...
- java 只显示文本文件_Java设计并实现一个应用程序,能够读取一个文本文件中的内容并显示,同时能够计算出文本中的行数。...
- FindBugs Maven插件教程
- Transformers Assemble(PART II)
- python和c先学哪个-C 和 Python语言先学哪个好?
- ListView控件数据操作——通过代码在窗体上添加控件
- 什么软件能测试电脑能不能玩lol,怎么测试自己电脑能不能玩英雄联盟
- esp32触摸touch功能使用过程详述arduino
- 在python中if是什么意思_python中为什么需要使用“if
- 一文详解 TCP/IP 协议
- 网易Python爬虫:爬取网易科技频道文章存入MySQL数据库
- 【计算机基础恶补】南桥北桥
- struct files_struct和struct fdtable
- 不可思议有氧机器人_不思议迷宫机器人生产线选什么好 机器人合成公式一览...
- 2015年度个人总结(公司版)
- npm ERR! nested aliases not supported 报错原因
- 小红书爆款笔记推送周期是多久?做小红书是视频好还是图文好
- [OHIF-Viewers]医疗数字阅片-医学影像-es6-Element.querySelector()
- 零代码极限封装的【接口自动化测试框架】震碎你的三观
热门文章
- OpenGL基础50:HDR
- Codeforces Round #383 (Div. 1): D. Arpa’s letter-marked tree…(dsu on tree+状压)
- Codeforces Round #499 (Div. 2): F. Mars rover(DFS)
- Perceptual Losses for Real-Time Style Transfer and Super-Resolution 运行程序
- matlab关于向量的基本操作
- 标志位操作指令七条CLC,STC,CLD,STD,CLI,STI,CMC
- 模板能够让我们花更少的时间,得到更多的东西
- 【转】几款移动跨平台App开发框架比较
- 【2016北京集训测试赛(八)】 直径 (虚树+树的直径)
- STL之ForwordList