首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于数据集大小选择n_estimators分类器

基于数据集大小选择n_estimators分类器
EN

Stack Overflow用户
提问于 2017-11-10 05:31:11
回答 1查看 1.8K关注 0票数 0

我正在尝试训练和预测一个模型,使用下面的代码在一个数据集上有大约300条记录和100个特性。我想知道我在下面代码中搜索的n_estimators的选择是否太高了?既然我只有300张唱片,那么为n_estimators尝试10,20,30这样的记录会更有意义吗?n_estimators是否与用于培训数据的数据集大小相关?学习率怎么样?

代码:

代码语言:javascript
复制
from sklearn.grid_search import GridSearchCV
from sklearn.metrics import accuracy_score, make_scorer
from sklearn.ensemble import AdaBoostClassifier, GradientBoostingClassifier


# TODO: Initialize the classifier
clf = AdaBoostClassifier(random_state=0)

# TODO: Create the parameters list you wish to tune
parameters = {'n_estimators':[100,200,300],'learning_rate':[1.0,2.0,4.0]}

# TODO: Make an fbeta_score scoring object
scorer = make_scorer(accuracy_score)

# TODO: Perform grid search on the classifier using 'scorer' as the scoring method
grid_obj = GridSearchCV(clf,parameters,scoring=scorer)

# TODO: Fit the grid search object to the training data and find the optimal parameters
grid_fit = grid_obj.fit(X_train,y_train)

# Get the estimator
best_clf = grid_fit.best_estimator_

# Make predictions using the unoptimized and model
predictions = (clf.fit(X_train, y_train)).predict(X_test)
best_predictions = best_clf.predict(X_test)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-10 06:04:47

让我们一次接一次地接受:

  1. n_estimators:我认为根据n_estimators的定义,你的估测者越多,就会有越多的树被建起来并用于投票。所以,是的,通过最大化估计量,你做得很对。
  2. learning_rate:从定义上来说,学习率决定了输出中每棵树的影响,而参数控制着影响的大小。在此基础上,您应该从非常低的learning_rate ( 0.001或0.01 )开始,这将使您的模型更加健壮,因此您将能够控制开发/测试集中的差异。

希望这会有所帮助:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47216224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档