我有一个由 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/