- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在寻找有关解决当前机器学习问题的最佳方法的建议
问题的概要和我所做的如下:
您可以在此处找到代码的简化版本:http://pastebin.com/Xu13ciL4
我的问题:
现在,这似乎是过度拟合的经典案例。然而,这里的过度拟合不太可能是由特征与样本数量不成比例(32 个特征,900 个样本)引起的。我已经尝试了很多方法来缓解这个问题:
我很高兴继续思考这个问题,但此时我正在寻找正确方向的插入力。我的问题可能出在哪里,我可以做些什么来解决它?
完全有可能我的特征集无法区分这两个类别,但在得出这个结论之前我想尝试一些其他选项。此外,如果我的特征无法区分,那么这可以解释测试集分数低的原因,但在这种情况下如何获得完美的训练集分数?这可能吗?
最佳答案
我会首先尝试在参数空间上进行网格搜索,同时还会对训练集使用 k 折交叉验证(当然,将测试集放在一边)。然后选择一组参数,然后从 k 折交叉验证中概括出最好的参数。我建议使用 GridSearchCV与 StratifiedKFold (当将分类器作为估计器传递时,它已经是 GridSearchCV 的 default strategy)。
假设具有 rbf 的 SVM 可以完美地适应任何训练集,因为 VC 维度是无限的。因此,如果调整参数无助于减少过度拟合,那么您可能希望针对更简单的假设尝试类似的参数调整策略,例如线性 SVM 或您认为可能适合您的领域的其他分类器。
您提到的正则化如果可用的话绝对是个好主意。
相同标签的预测让我认为标签不平衡可能是一个问题,对于这种情况,您可以使用不同的类别权重。所以在 SVM 的情况下,每个类都有自己的 C 惩罚权重。 sklearn 中的一些估计器接受拟合参数,允许您设置样本权重以设置单个训练样本的惩罚量。
现在,如果您认为这些特征可能是个问题,我会通过查看 f_classif 提供的 F 值来使用特征选择,并且可以与 SelectKBest 之类的东西一起使用。另一种选择是使用交叉验证进行递归特征消除。如果您使用 sklearns Pipeline API,特征选择也可以包含在网格搜索中。
关于python - sklearn - 模型保持过度拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31956501/
我正在开发适用于 Wordpress 的 PSD,并面临着根据颜色过度对齐背景图像或相反的问题。 在桌面上一切都很好,但在移动设备上背景图像变小了(我使用了 background-size: 100%
在标准 Modelica 流体流量源中,通常指定流量或压力。例如,以下边界设置(P 表示压力边界,F 表示流量边界)通常会围绕管道组件: P - 管道 - P F - 管道 - P 但是,有时在同一侧
我正处于设计基于 Azure 的应用程序的早期阶段。考虑到我可能预期的需求的变化性,Azure 吸引我的地方之一是它的可扩展性。因此,我试图保持事物松散耦合,以便我可以在需要时添加实例。 我看到的关于
我与 Xcode 4 dot notation code sense problem 正好相反!点符号的代码完成不仅显示属性,还显示我的方法(在每个完成的左侧标记 P 或 M 分别指示它是属性还是方法
我是一名优秀的程序员,十分优秀!