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

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

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

谢谢~!

 

R琳   2020-03-05 08:57



   3个回答 
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面经

abuu   2020-04-02 22:54

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 predict的默认阈值   2回答

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

sklearn里learning_rate什么意思?   2回答

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

sklearn模型当中的verbose是什么意思?   2回答

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

sklearn实现adaboost算法了吗?   1回答

sklearn错误ImportError: cannot import name 'joblib'   1回答

sklearn里的LabelEncoder什么用?   3回答

python sklearn模型中random_state参数的意义   2回答

怎么自定义sklearn GridSearchCV中评估函数的阈值   1回答

sklearn中除了sgd以外,还有什么可以使用partial_fit方法吗?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!