有没有办法使用“点调用”?在 foo 循环中?
问题我正在尝试使用 for 循环更新我的分类器函数,但是“.I”不适用。
clf = XGBClassifier(base_score=None, booster=None, colsample_bylevel=None,
colsample_bynode=None, colsample_bytree=0.5, gamma=0.1,
gpu_id=None, importance_type='gain', interaction_constraints=None,
learning_rate=101, max_delta_step=None, max_depth=2,
min_child_weight=3, missing=nan, monotone_constraints=None,
n_estimators=100, n_jobs=None, num_parallel_tree=None,
objective='binary:logistic', random_state=None, reg_alpha=None,
reg_lambda=None, scale_pos_weight=None, subsample=None,
tree_method=None, validate_parameters=False, verbosity=None)
d = {'learning_rate': , 'colsample_bytree': ,'gamma' : }
m = pd.DataFrame(data=d)
parameters = ['learning_rate', 'colsample_bytree', 'gamma']
for iin parameters:
clf.i = m
我的期望:
使用新值切换参数。
回答
您可以尝试使用 setattr 。
https://docs.python.org/3/library/functions.html#setattr
在您的示例中,您将使用:
for iin parameters:
setattr(clf, i, m)
页:
[1]