我想定义一个类,然后创建该类的动态数量的副本。
现在,我有这个:
class xyz(object):
def __init__(self):
self.model_type = ensemble.RandomForestClassifier()
self.model_types = {}
self.model = {}
for x in range(0,5):
self.model_types[x] = self.model_type
def fit_model():
for x in range(0,5):
self.model[x] = self.model_types[x].fit(data[x])
def score_model():
for x in range(0,5):
self.pred[x] = self.model[x].predict(data[x])
我想要适应5个不同的模型,但我认为Python指向同一个类5次,而不是在模型字典中创建5个不同的类。
这意味着当我使用" score_model"方法,它只是评分适合的LAST模型,而不是5个独特的模型。
我认为我只需要使用继承来填充带有5个不同类的model []字典,但我不知道该怎么做?
答案 0 :(得分:2)
在您的原始代码中,您创建了一个实例并使用了五次。相反,只有在将类添加到model_types数组时才需要初始化类,如此代码中所示。
class xyz(object):
def __init__(self):
self.model_type = ensemble.RandomForestClassifier
self.model_types = {}
self.model = {}
for x in range(0,5):
self.model_types[x] = self.model_type()
def fit_model():
for x in range(0,5):
self.model[x] = self.model_types[x].fit(data[x])
def score_model():
for x in range(0,5):
self.pred[x] = self.model[x].predict(data[x])
在python中,一切都是一个对象,所以你的变量也可以指向一个类,然后你的变量可以被视为一个类。