Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,因此它是on-topic,用于堆栈溢出。
3年前关闭。
我有一个由181个样本和10个要素以及一个目标变量组成的数据集。这10个功能本质上是数字的并且是连续的。我必须执行二进制分类。我做了以下工作:
请指导我如何为这种大小的数据集选择最佳模型,并确保我的模型不过度拟合?我已按照sklearn地图http://scikit-learn.org/stable/tutorial/machine_learning_map/中的步骤进行操作
想改善这个问题吗? Update the question,因此它是on-topic,用于堆栈溢出。
3年前关闭。
我有一个由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地图http://scikit-learn.org/stable/tutorial/machine_learning_map/中的步骤进行操作
最佳答案
您永远无法完全消除它,尤其是对于这么小的样本。
首先交叉验证-您已经在执行此操作。其次使用默认参数。如果使用交叉验证的输出来更改参数,则可能会过拟合。
最后,查看整个混淆矩阵或度量,例如f1而不是准确性,该度量总结了这一点。如果有99%的人没有癌症,那么可以预测没有人有癌症的模型可以达到99%的准确率,但效果不是很好。
关于python - 小于200个样本的小型数据集的二进制分类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41603503/
10-12 19:37