我正在修一门介绍我认识sklearn.ensemble.RandomForestClassifier的课程。最初,它使用的是默认值为10的n_estimators,其结果的精确度约为0.28。如果将n_estimators更改为15,精度将达到0.32
下面是一些代码:
pl = Pipeline([
('union', FeatureUnion(
transformer_list = [
('numeric_features', Pipeline([
('selector', get_numeric_data),
('imputer', Imputer())
])),
('text_features', Pipeline([
('selector', get_text_data),
('vectorizer', CountVectorizer())
]))
]
)),
('clf', RandomForestClassifier())
])我认为增加RandomForestClassifier中的树数(RandomForestClassifier)会提供更好的准确性,但有时如果我使用一个值为100,则可以得到0.30到0.32之间的值。谁能解释一下吗?你如何找到获得尽可能高的准确度的最小值?
发布于 2020-10-19 23:35:13
如果你说的是在这种情况下测试的准确性(也就是说,你是在比较你没有训练过的数据的结果)--增加更多的估计器在你的训练集上是过分合适的,因此在你的坚持集上表现很差。如果是这样的话,我建议使用一种更基本的方法来解决这个问题,比如LogisticRegression,因为与集成方法相比,它不太适合。
至于寻找最好的参数-试着学习的RandomizedSearchCV微调你的超参数,以最大限度地提高性能。
https://datascience.stackexchange.com/questions/84249
复制相似问题