我猜你可以完全摆脱字典。以下是创建具有不同参数的不同分类器实例的可能方法:
from sklearn.ensemble import RandomForestClassifier, BaggingClassifier
for model in [RandomForestClassifier, BaggingClassifier]:
for n in [5, 10, 20]:
clf = model(random_state=12345, n_estimators=n)
print(clf)
上面的代码产生:
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
max_depth=None, max_features='auto', max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=5, n_jobs=1,
oob_score=False, random_state=12345, verbose=0,
warm_start=False)
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
max_depth=None, max_features='auto', max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=1,
oob_score=False, random_state=12345, verbose=0,
warm_start=False)
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
max_depth=None, max_features='auto', max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=20, n_jobs=1,
oob_score=False, random_state=12345, verbose=0,
warm_start=False)
BaggingClassifier(base_estimator=None, bootstrap=True,
bootstrap_features=False, max_features=1.0, max_samples=1.0,
n_estimators=5, n_jobs=1, oob_score=False, random_state=12345,
verbose=0, warm_start=False)
BaggingClassifier(base_estimator=None, bootstrap=True,
bootstrap_features=False, max_features=1.0, max_samples=1.0,
n_estimators=10, n_jobs=1, oob_score=False, random_state=12345,
verbose=0, warm_start=False)
BaggingClassifier(base_estimator=None, bootstrap=True,
bootstrap_features=False, max_features=1.0, max_samples=1.0,
n_estimators=20, n_jobs=1, oob_score=False, random_state=12345,
verbose=0, warm_start=False)