背景:
- 监督机器学习
- 数据形状
- 10 多个特征,仅目标 = 1 或 0,100,000 多个样本(因此应该不存在过采样问题)
80% 训练,20% 测试
train_test_split(X_train, Y_train, test_size=0.2)
使用 svm.LinearSVC(max_iter = N ).fit( ) 训练标记数据
- 尚未应用缩放(所有特征值都在 0-100 (float64) 左右)
- 其他参数(例如 c = )使用默认值
结果:
print("Accuracy:", metrics.accuracy_score(y_test, y_pred))
print("Precision:", metrics.precision_score(y_test, y_pred))
print("Recall:", metrics.recall_score(y_test, y_pred))
问题:
我将 max_iter = 从 1,000 增加到 10,000 和 100,000,但高于 3 的分数并没有显示出递增的趋势。10000 的分数比 1000 和 100000 差。
例如,max_iter = 100,000
Accuracy: 0.9728548424200598
Precision: 0.9669730040206778
Recall: 0.9653096330275229
max_iter = 10,000
Accuracy: 0.9197914270378038
Precision: 0.9886761615689937
Recall: 0.8093463302752294
max_iter = 1,000
Accuracy: 0.9838969404186796
Precision: 0.964741810105497
Recall: 0.9962729357798165
- 可能是什么原因?
- 我是否需要测试不同的 max_iter 值并选择最佳性能?例如,使用 GridSearchCV( )