python - 对 < 200 个样本的小数据集进行二元分类

标签 python machine-learning classification data-mining prediction

我有一个由 181 个样本、10 个特征和一个目标变量组成的数据集。这 10 个特征本质上是数字且连续的。我必须执行二元分类。我做了以下工作:-

I have performed 3 Fold cross validation and got following accuracy results using various models:-

LinearSVC:
0.873
DecisionTreeClassifier:
0.840
Gaussian Naive Bayes:
0.845
Logistic Regression:
0.867
Gradient Boosting Classifier
0.867
Support vector classifier rbf:
0.818
Random forest:
0.867
K-nearest-neighbors:
0.823

请指导我如何为这种大小的数据集选择最佳模型并确保我的模型不会过度拟合?我已按照 sklearn map http://scikit-learn.org/stable/tutorial/machine_learning_map/ 中的步骤进行操作

最佳答案

你永远无法完全消除它,尤其是对于如此小的样本。

首先进行交叉验证 - 您已经在这样做了。其次使用默认参数。如果您使用交叉验证的输出来更改参数,那么您可能会过度拟合。

最后,查看整个混淆矩阵或总结这一点的指标,例如 f1 而不是准确性。如果 99% 的人没有患癌症,那么预测没有人患癌症的模型的准确度为 99%,但帮助不大。

关于python - 对 < 200 个样本的小数据集进行二元分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41603503/

相关文章:

python - 当我使用 django 运行syncdb 时,它是否指定 mysql 的排序规则设置?

python - tensorflow - 如何使用张量名称构建操作?

python - NumPy 相当于 Keras 函数 utils.to_categorical

python-3.x - Wine 质量数据集分析

machine-learning - 多输出神经网络

python - Windows 和 Linux 的 PIL 库是否不同? PIL 图像过滤器不适用于 Rasp Pi

python - 具有默认值的参数和关键字参数之间有什么区别?

algorithm - 按逻辑类别对博客进行集群和排名

machine-learning - scikit-learn 中的 SVC 和 LinearSVC 在什么参数下等效?

python - 分类报告 - 精度和 F 分数定义不明确