今天训练了一个不大不小的数据集(~150k data points, ~50MB size),想用random forest算法,可是训练起来很慢,不知道要等多久,于是想到一个可以估算模型训练时间的方法。
先写下我的做法:
已知训练集中有150k rows,将训练集大小分别缩减到5k, 8k, 11k, 14k, 17k, 20k, 23k,……以此类推,直到60k,同时用%%time记录下各次训练所需的时间。
此时我们有了一系列的(数据集大小,训练时间)数据,用此可以建立一个简单的模型来预估出150k时训练所需时间。
因常见的复杂度通常为, , , ,所以我们的模型与参数如下所示:
(不需bias项,因为数据大小为0k时,训练时间为0)
之后可以选择(繁琐程度依次递减):
1. 根据收集到的(数据集大小,训练时间)数据拟合出模型,做预估;
2. plot出收集到的(数据集大小,训练时间)数据,肉眼判断可能的走势,做预估;
3. 直接看数据(数据集大小,训练时间),找其中的数学关系,做预估。
(后续待贴1, 2方法代码+例子)
网友评论