add more data to training set I am using the LinearSVC() available on scikit learn to classify texts into a max of 7 seven labels. So, it is a multilabel classification problem. I am training on a small amount of data and testing it. I need to add more data to the training set, retrain the model and evaluate using the same test set to see if the performance improves.
Question:
To retrain the model, is it necessary use a dataset that has the data of the initial training + the new data merged? How can this be done?
My code so far is below:
def preprocess(data, x, y): 
    global Xfeatures 
    global y_train
    global labels
    porter = PorterStemmer()
    multilabel=MultiLabelBinarizer()
    y_train=multilabel.fit_transform(data[y])
    print("\nLabels are now binarized\n")
    data[multilabel.classes_] = y_train
    labels = multilabel.classes_
    print(labels)
    data[x].apply(lambda x:nt.TextFrame(x).noise_scan())
    print("\English stop words were extracted\n")
    data[x].apply(lambda 
    x:nt.TextExtractor(x).extract_stopwords())
    corpus = data[x].apply(nfx.remove_stopwords)
    corpus = data[x].apply(lambda x: porter.stem(x))
    tfidf = TfidfVectorizer()
    Xfeatures = tfidf.fit_transform(corpus).toarray()
    print('\nThe text is now vectorized\n')
    return Xfeatures, y_train


  Xfeatures, y_train = preprocess(df1, 'corpus', 
  'zero_level_name')

  Xfeatures_train=Xfeatures[:300]
  y_train_features = y_train[:300]
  X_test=Xfeatures[300:400]
  y_test=y_train[300:400]
  X_pool=Xfeatures[400:]
  y_pool=y_train[400:]

  def model(modelo, tipo):
    svc= modelo
    clf = tipo(svc)
    clf.fit(Xfeatures_train,y_train_features)
    clf_predictions = clf.predict(X_test)
    return clf_predictions 

  preds_pool = model(LinearSVC(class_weight='balanced'), 
  OneVsRestClassifier)


Most SVC implementations will have a "warm start" option, that starts from the dual parameters from the previous training.  This is normally useful when performing model selection as you can change the hyper-parameters (e.g. $C$) slightly and retraining won't take so long.
You can also use warm start when adding new patterns, however you will need to extend the vector of dual parameters and set them to zero for all of the new patterns.  I wrote my own SVM solver, so that is easy for me to do, but if you are using a package written by someone else they may not have provided an option for doing so.
If it is a fairly small dataset though, it is probably easier just to retrain from scratch with the extended dataset as the saving in time is probably going to be less than the time taken to write the code to implement the warm start, and with more complicated code, there is more to go wrong.  The optimal hyper-parameters for the old dataset are probably going to be a good starting point for re-tuning them for the augmented dataset, so you will certainly be able to find some computational savings there.
