你的第二个问题已经回答了;因此,我将尝试回答您的第一个问题“我还能做些什么吗?”:
由于时间是最有价值的商品,我建议花时间确定原因,而不是随机改变直觉(精确度和召回率并不总是回答关于偏差和方差的问题,也不是选择用于分类的模型的适当性。因为这样的:
在您的神经网络实现中,确定您是否具有高偏差或方差(例如,请参见此处),即您的高精度和低召回率是由于拟合不足高偏差还是过度拟合高方差您的正样本作为解决这些问题的方法与高方差的不同,即:
- 获得更多训练示例 - 修复高方差
- 尝试较小的功能集 - 修复高方差
- 增加 lambda - 修复高方差
- 添加功能 - 修复高偏差
- 添加多项式特征 - 修复高偏差
- 减少 lambda - 修复高偏差
检查分类错误的案例可以帮助确定模型未能正确分类这些案例的原因(在 2d 图上绘制和着色特征有时会有所帮助(特征缩放/压缩可能有用/在某些情况下可以使这成为可能)。
其他不错的选择包括在您的神经网络上使用不同的架构、不同的算法或修改功能如下:
考虑将您的问题视为异常检测,即在规范化数据时(选择特征的函数,以便获得高斯分布,即:x
- f1(x)=log(x+c)
- f(x)2=x.1/2
- ...
- f8(x)=x.1/3
(通过绘制直方图检查)多元高斯模型也可能对具有某种相关性的新特征有价值(例如,参见此处)。
可以应用密度检测算法,它可能比神经网络更适合您的需求(可以在上面的 Wikipedia 和此公开文章中找到该公式,如果使用此方法创建 3 个子集也是可能的在您的 +- 27 000neg 和 +- 3000pos 示例中略有不同,即允许您的训练集有 60% 的负例(16 200)并且它没有正例,允许您的交叉验证集有(5400 neg和 1500 pos)和你的测试集有(5400 neg 和 1500pos)。
您可以使用交叉验证集自动选择阈值,并允许您调整系统并调整它。
由于成功的衡量标准考虑了不同的评估格式和计数(有时查看项目如何以不同的衡量标准分类可以帮助您更清楚地想象问题):
计算您的 F 分数(因为这可能是查看算法执行情况的一种很好的第二种方法,因为您的数据集偏向于负样本,其公式很简单:。 2∗((precision∗recall)/(precision+recall))
最后使用您的测试集来验证分类器的能力,而无需根据这些结果进行任何调整。