我想使用经过训练的4种模型预测数据。因此,我尝试将模型合并到列表中,但是在追加模型后,我无法调用“预测”,并且出现如下错误:
AttributeError: 'list' object has no attribute 'predict'
我的代码是这样的:
vect_tes = features.transform(frame['text'])
model = [[]]
for i in range(4):
mod = open('model_'+str(i+1)+'.pkl', 'rb')
model.append(pickle.load(mod))
mod.close()
predict = model.predict(vect_tes)
答案 0 :(得分:1)
不确定是否要合并模型,我认为最好查看ensemble methods。
关于import pandas as pd
import matplotlib.pyplot as plt
d = ({
'Time' : ['7:00:00','10:30:00','12:40:00','16:25:00','18:30:00','22:40:00','00:40:00'],
'Value' : [1,2,3,4,5,4,10],
})
df = pd.DataFrame(d)
df['Time'] = pd.to_timedelta(df['Time'])
plt.plot(df['Time'], df['Value'])
plt.show()
print(df)
,您最初将model声明为列表列表:
AttributeError
。因此,当您将训练好的模型附加到循环中时,模型将存储model = [[]]
,因此,如果要使用模型,则需要访问列表,例如:[ [], model1, model2, model3, model4 ]
。您还可以在初始时将模型声明为model[1].predict
,在这种情况下,您将从0索引而不是1访问模型。