1
$\begingroup$

I'm studying SVC and I understood that a decision boundary of SVC only uses subset data of entire data set, which are so called support vectors. However, why do we need test data of a model of SVC?

Let's assume that we split train/test data. Important data, which are support vectors are included in the test set. Then, our decision boundary which is constructed by training data can't seperate data properly. In this case, the model builds wrong decision boundary.

So can you tell me why does SVC need to split entire data to train/test data?

$\endgroup$
1
$\begingroup$

The support vectors, which are the data points that define the decision boundary, should not be so terribly rare or unique that your learning model absolutely depends on each of them being in your training data. That's why we do a train/test split, in order do estimate the robustness of a method. It is undesirable for an algorithm to depend very heavily on the specific particulars of a training dataset - rather, the goal is to extract some kind of higher level knowledge that can be applied to other datasets from the same distribution. If you can't learn an appropriate boundary from a training set, either your problem is too difficult, your dataset is too small, or your testing data is not sufficiently well-represented by the training data. It is theoretically possible for an unlucky train/test split to remove all SVs from the training data by chance, but this would be rather unlikely and wouldn't be an issue when doing multiple repeated splits.

The point of doing a train/test split is to get an unbiased estimate of the method's performance on unseen data. This train/test paradigm can, and should be applied to any algorithmic method in order to properly measre its performance.

$\endgroup$
0
$\begingroup$

You should split data into train/validation to choose best model parameters. I recommend you do it by using cross validation. After parameter tuning you can learn your model on whole training data to increase quality of classification future unlabeled data.

If your task is to label some data set. You shouldn't use this data in a supervised training.

$\endgroup$
  • $\begingroup$ You can use a single train/test split to tune model parameters, but if you then apply the learned parameters to the whole dataset, you don't have any unbiased measure of performance. This is a good way to get a single, final model (where CV gives you k models), but the performance measure over the training folds will be over-optimistic since you've optimized for performance on the test fold. $\endgroup$ – Nuclear Wang Jan 29 '19 at 18:56
0
$\begingroup$

Let's assume that we split train/test data. Important data, which are support vectors are included in the test set. Then, our decision boundary which is constructed by training data can't separate data properly. In this case, the model builds wrong decision boundary.

This is exactly the case. You split data to train and test set, because you want to check how wrong can your model possibly be on external data, given the hyperparameters and kind of data that you have. You always need consider that your model can overfit, that is, it has a good fit to the data that you used for training, but it performs poorly on external data. The problem is that with predictive models, we usually don't want to make predictions about training data (we have it, so there is nothing to predict), but about external data, to predict something that is unknown to you. We split data to train and test set, to imitate how the algorithm could potentially behave on external data.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.