如何解决为什么使用以下两种方法混洗 Pandas 数据框会导致非常不同的结果?
1- 如果我使用以下代码对数据进行混洗,然后用它训练随机森林,则预测结果很好(F1-score=0.69):
training_all = training_all.sample(frac=1).reset_index(drop=True)
test_data = test_data.sample(frac=1).reset_index(drop=True)
randomCV = RandomizedSearchCV(estimator=RandomForestClassifier(verbose=1),param_distributions=hyperparameters,n_iter=10,cv=5,scoring="f1")
# Note,the first column in the train and test data includes samples' IDs
# And the last column is the Label
randomCV.fit(training_all.iloc[:,1:-1],training_all['Label'])
2- 当我使用此代码 shuffle 时,预测性能下降很多(F1-score = 0.43):
training_all = training_all.sample(frac=1)
test_data = test_data.sample(frac=1)
randomCV = RandomizedSearchCV(estimator=RandomForestClassifier(verbose=1),training_all['Label'])
3- 当我完全不洗牌时(每个类的所有样本都相邻),性能与 1 相似。
我想知道是什么导致了这种不一致。请注意,每个实验的超参数都是相同的,我多次重复所有实验,似乎参数的随机选择不是问题,而是混洗。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。