1、当预测结果误差很大时怎么办?
①过拟合解决办法
可以去增加更多的训练数据可以尝试简化模型数据增强:人为扩展数据量以增加数据量来解决过拟合正则化:通过减少每个节点的权重来解决过拟合正则参数λ:如果有正则项则可以考虑增大正则项参数λDropout(随机失活):专门用在神经网络的正规化的方法,叫作Dropout。在训练时,每次随机(如50%概率)忽略隐层的某些节点。流程是每个网络只会见过一个训练数据(每次都是随机的新网络),而不同模型之间权值共享。随机地删除网络中的一般隐藏的神经元,这样可以迫使节点分散权重(使权重降低,然后解决过拟合),然后使模型泛化性更强。early stopping(早停):在训练中计算模型在验证集上的error,当模型在验证集上的表现开始下降的时候,停止训练,这样就能避免继续训练导致过拟合的问题batch normalization
②欠拟合解决办法
可以去尝试使用更复杂的模型可以增加新特征正则参数λ:如果有正则项则可以考虑减小正则项参数λ
2、如何评估算法?(以logistics regression为例)
先将数据集随机的按3/7分,划分为训练集和测试集通过训练集训练的出使cost function最小的θ将得到的θ带入新的cost function,得到
J
t
e
s
t
(
θ
)
=
−
1
m
t
e
s
t
∑
i
=
1
m
t
e
s
t
y
t
e
s
t
(
i
)
l
o
g
h
θ
(
x
t
e
s
t
(
i
)
)
+
(
1
−
y
t
e
s
t
(
i
)
)
l
o
g
h
θ
(
x
t
e
s
t
(
i
)
)
J_{test}(\theta)=-\frac{1}{m_{test}}\sum_{i=1}^{m_{test}}y_{test}^{(i)}logh_{\theta}(x_{test}^{(i)})+(1-y_{test}^{(i)})logh_{\theta}(x_{test}^{(i)})
Jtest(θ)=−mtest1∑i=1mtestytest(i)loghθ(xtest(i))+(1−ytest(i))loghθ(xtest(i))然后计算分类误差率misclassification error,
e
r
r
(
h
θ
(
x
)
,
y
)
=
{
1
h(x)>=0.5,y=0 or h(x)=0.5,y=0 or h(x) |