我正在研究一个挑战,它模拟我的服务器接收实时信息,因此我只能逐行进行预测。我正在使用随机森林回归器-针对速度进行了优化。
问题不在于predict()
函数,而是逐行调用它,这会产生大量开销。
我可以做些什么来提高运行时性能吗?
还是在提高运行时间的同时达到相同模型精度的替代方法?
也许是另一个predict()
函数不需要那么大开销的库?
尝试了不同的sklearn模型,从复杂到简单(线性回归),仍然存在性能问题。这说明问题出在预测函数所需的开销上,而不是模型本身。
我试图对具有30万个标签的样本数据集进行预测,而经过预训练的模型将在4秒内对其进行预测。
Class test(b):
def predict(self, data, model):
#form feature dataframe X using data
prediction = model.predict()
return prediction[0]
def run(self):
model = pickle.load("model.pkl")
streaming_data_row = #gets a row of data. Dimensions 1x11
prediction = predict(streaming_data_row, model)
self.submit(prediction)
#MUST EXECUTE self.submit() before next streaming_data_row can be received.