【发布时间】:2022-01-24 16:48:56
【问题描述】:
我想写一个通用函数,可以接受不同的机器学习算法及其参数并初始化模型。
我写道:
def create_model(model_name,kernel='rbf',C=1.0):
clf = model_name()
print(create_model('SVC'))
错误是:
clf = model_name()
TypeError: 'str' object is not callable
我了解错误是您不能将字符串 ('SVC') 作为模型对象。然后我尝试添加evaluate(model_name)() 将字符串转换为对象,但得到了name 'evaluate' is not defined。
有人可以告诉我正确的方法吗?我想这样做,然后我可以向函数添加一组可选参数,然后例如在同一函数中用逻辑回归替换 SVC。
【问题讨论】:
-
一开始就不要把它变成字符串。试试
create_model(SVC)。 IE。传递实际的模型类对象,而不是模型的 name。