AdaBoostClassifier在test_size=0.25时指标异常完美,其他test_size值报样本数不一致错误的问题求助
AdaBoostClassifier在test_size=0.25时指标异常完美,其他test_size值报样本数不一致错误的问题求助
我现在遇到一个特别诡异的问题,想请各位帮忙分析解惑:
我正在用AdaBoostClassifier搭配弱学习器DecisionTreeClassifier做数据集分类,这个数据集一共有7857个样本,维度信息如下:
X.shape # Output: (7857, 5) y.shape # Output: (7857,)
下面是我拆分数据集和训练模型的代码:
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.25, random_state=28 ) weak_learner = DecisionTreeClassifier(max_depth=1) adb = AdaBoostClassifier(estimator=weak_learner, n_estimators=50, random_state=42) adb_model = adb.fit(X_train, y_train) y_pred = adb_model.predict(X_test) print(classification_report(y_test, y_pred))
当我设置test_size=0.25时,分类指标居然全是100%,这明显不符合实际——我已经通过绘图确认过数据点并不是完全可分的:
precision recall f1-score support Cheap 1.00 1.00 1.00 496 Expensive 1.00 1.00 1.00 506 Reasonable 1.00 1.00 1.00 963 accuracy 1.00 1965 macro avg 1.00 1.00 1.00 1965 weighted avg 1.00 1.00 1.00 1965
更奇怪的是,只要我把test_size改成其他值(比如0.3或者0.2),就会弹出这个错误:
ValueError: Found input variables with inconsistent numbers of samples
我已经检查过的内容:
- 确认了
X和y的样本数量完全一致 - 检查过
X和y里都没有缺失值
我的疑问:
- 为什么
test_size=0.25的时候会出现完美到不真实的指标,而其他test_size值却会报样本数不一致的错误? - 我该怎么解决这个问题,才能正常使用不同的
test_size值?
备注:内容来源于stack exchange,提问作者Asser
相关产品推荐
相关产品推荐

