Machine learning 是否可以增量训练sklearn模型(如SVM)?

Machine learning 是否可以增量训练sklearn模型(如SVM)?,machine-learning,scikit-learn,svm,logistic-regression,Machine Learning,Scikit Learn,Svm,Logistic Regression,我正在尝试对twitter数据集“感伤140”进行情绪分析,该数据集包含160万条标签推文。我正在使用单词袋(Unigram)模型构建我的特征向量,因此每条tweet都由大约20000个特征表示。现在要使用这个数据集训练我的sklearn模型(SVM、逻辑回归、朴素贝叶斯),我必须将整个1.6m x 20000特征向量加载到一个变量中,然后将其输入模型。即使在我的服务器机器上(总共有115GB内存),它也会导致进程被终止 所以我想知道我是否可以逐个实例训练模型,而不是将整个数据集加载到一个变量中

我正在尝试对twitter数据集“感伤140”进行情绪分析,该数据集包含160万条标签推文。我正在使用单词袋(Unigram)模型构建我的特征向量,因此每条tweet都由大约20000个特征表示。现在要使用这个数据集训练我的sklearn模型(SVM、逻辑回归、朴素贝叶斯),我必须将整个1.6m x 20000特征向量加载到一个变量中,然后将其输入模型。即使在我的服务器机器上(总共有115GB内存),它也会导致进程被终止

所以我想知道我是否可以逐个实例训练模型,而不是将整个数据集加载到一个变量中


如果sklearn没有这种灵活性,那么您是否可以推荐其他库(支持顺序学习)?

实际上没有必要(更不用说高效)去另一个极端,逐个实例进行培训;您所寻找的实际上被称为增量学习或在线学习,它在scikit learn的线性支持向量机和逻辑回归中提供,其中确实包含一种方法

下面是一个包含虚拟数据的快速示例:

将numpy导入为np
从sklearn导入线性_模型
X=np.数组([[-1,-1],-2,-1],[1,1],[2,1]]
Y=np.数组([1,1,2,2])
clf=线性模型。SGDClassizer(最大iter=1000,tol=1e-3)
clf.部分拟合(X,Y,类=np.唯一(Y))
X_new=np.数组([[-1,-1],[2,0],[0,1],[1,1]]
Y_new=np.array([1,1,2,1])
clf.局部拟合(X_新,Y_新)
损失
惩罚
参数(
'铰链
'l2'
分别)的默认值是a的值,因此上述代码基本上增量地适合具有l2正则化的线性SVM分类器;这些设置当然可以更改-查看文档了解更多详细信息


有必要在第一次调用中包含
classes
参数,该参数应包含问题中的所有现有类(即使其中一些类在某些部分拟合中可能不存在);在后续调用
partial_fit
时可以忽略它-再次,请参阅链接文档以了解更多详细信息。

实际上没有必要(更不用说高效)转到另一个极端并逐个实例进行训练;您所寻找的实际上被称为增量学习或在线学习,它在scikit learn的线性支持向量机和逻辑回归中提供,其中确实包含一种方法

下面是一个包含虚拟数据的快速示例:

将numpy导入为np
从sklearn导入线性_模型
X=np.数组([[-1,-1],-2,-1],[1,1],[2,1]]
Y=np.数组([1,1,2,2])
clf=线性模型。SGDClassizer(最大iter=1000,tol=1e-3)
clf.部分拟合(X,Y,类=np.唯一(Y))
X_new=np.数组([[-1,-1],[2,0],[0,1],[1,1]]
Y_new=np.array([1,1,2,1])
clf.局部拟合(X_新,Y_新)
损失
惩罚
参数(
'铰链
'l2'
分别)的默认值是a的值,因此上述代码基本上增量地适合具有l2正则化的线性SVM分类器;这些设置当然可以更改-查看文档了解更多详细信息


有必要在第一次调用中包含
classes
参数,该参数应包含问题中的所有现有类(即使其中一些类在某些部分拟合中可能不存在);在后续调用
partial\u fit
时可以忽略此项-再次,有关更多详细信息,请参阅链接文档。

如果数据不适合内存,您可以考虑通过PCA或Word2Vec降低维度如果数据不适合内存,您可以考虑通过PCA或Word2Vec降低维度(classes=np.unique(Y))只针对这个特定的数据片?还是它必须是存储在某个地方的整个类集?@desertnaut:你能解释一下一个实例一个实例的含义吗training@aspiring1它只是意味着一个样本(实例)同时是类(classes=np.unique(Y))只针对这个特定的数据片?还是必须是存储在某个地方的整个类集?@desertnaut:你能解释一下一个实例一个实例的含义吗training@aspiring1它只是指一次一个样本(实例)