请问在sklearn怎么在已有的模型的基础上训练新的数据?

  统计/机器学习 监督式学习 Python    浏览次数:4802        分享
3

之前已经在sklearn里训练好了一个分类模型,现在因为有了新的训练数据,如何在之前模型的基础之上利用新数据更新模型呢?

谢谢~!

 

R琳   2020-03-05 08:57



   3个回答 
7

只要有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面经

abuu   2020-04-02 22:54

感谢! - PyGeek   2022-05-04 23:42
1

假设模型有N个可训练参数,一个训练好的模型是N维参数空间一点。当训练数据确定后,loss function是一曲面,训练就是找到局部或全局最小值。新加入数据后,loss对应曲面会变化,要从上次最小值开始找新的最小值。(loss曲面在每个mini batch都会变,只是训练次数多了,统计意义上相当于一个曲面,可理解为曲面的平均。)

需要注意的是新旧数据比例,学习率 learning rate,学习次数。需要设置提前结束条件,也不能只用新数据训练,否则很容易过拟合到新数据,而“忘记”旧数据。

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2020-03-07 15:34

在sklearn里具体怎么做呢? - R琳   2020-03-07 23:51
就是混合新旧数据,继续训练。就是新加一行model.fit(newdata) - Zealing   2020-03-08 00:02
0

继续fit


SofaSofa数据科学社区DS面试题库 DS面经

bopowang   2020-03-06 11:40

怎么fit呢? - R琳   2020-03-07 23:51


  相关讨论

sklearn实现adaboost算法了吗?

sklearn中的predict_proba方法的返回值的意义

sklearn分类模型中预测结果怎么调整概率的阈值

sklearn里learning_rate什么意思?

sklearn predict的默认阈值

sklearn.linear_model.SGDClassifier能做小批量学习(mini-batch)吗?

CatBoostClassifier里的rsm参量是什么意思?

sklearn SGDClassifier的partial_fit是什么意思?

sklearn.linear_model.SGDClassifier中的参数n_iter设置问题

怎么获取sklearn.linear_model.SGDRegressor的回归系数、截距?

  随便看看

python里怎么求一个矩阵的秩?

特征归一化对K Means有影响吗?

二元分类为什么不能用MSE做为损失函数?

怎么直观理解ROC AUC的概率统计意义?

sklearn可以用gpu加速吗?