之前已经在sklearn里训练好了一个分类模型,现在因为有了新的训练数据,如何在之前模型的基础之上利用新数据更新模型呢?
谢谢~!
3个回答
只要有partial_fit方法,就可以在原有模型的基础上继续训练。
sklearn中有partial_fit的方法有:
分类算法
sklearn.naive_bayes.MultinomialNB
sklearn.naive_bayes.BernoulliNB
sklearn.linear_model.Perceptron
sklearn.linear_model.SGDClassifier
sklearn.linear_model.PassiveAggressiveClassifier
回归算法
sklearn.linear_model.SGDRegressor
sklearn.linear_model.PassiveAggressiveRegressor
无监督
sklearn.cluster.MiniBatchKMeans
sklearn.decomposition.MiniBatchDictionaryLearning
SofaSofa数据科学社区DS面试题库 DS面经
感谢!
-
PyGeek
2022-05-04 23:42
假设模型有N个可训练参数,一个训练好的模型是N维参数空间一点。当训练数据确定后,loss function是一曲面,训练就是找到局部或全局最小值。新加入数据后,loss对应曲面会变化,要从上次最小值开始找新的最小值。(loss曲面在每个mini batch都会变,只是训练次数多了,统计意义上相当于一个曲面,可理解为曲面的平均。)
需要注意的是新旧数据比例,学习率 learning rate,学习次数。需要设置提前结束条件,也不能只用新数据训练,否则很容易过拟合到新数据,而“忘记”旧数据。
SofaSofa数据科学社区DS面试题库 DS面经
在sklearn里具体怎么做呢?
-
R琳
2020-03-07 23:51
就是混合新旧数据,继续训练。就是新加一行model.fit(newdata)
-
Zealing
2020-03-08 00:02