0
$\begingroup$

I have a dataset and my objective is to run a Binary Classification, but my target feature, that is supposed to have "True" and "False", only has "True", as a value.

I was wondering, is this kind of data useable or not for Machine Learning in general?

I was thinking about using SMOTE (SMOTE is an oversampling technique where the synthetic samples are generated for the minority class), and the generated data of course will have True for the target feature then I change it to False and aggregate them, hence I'll have a balanced target.

Is this a reasonable approach, otherwise how can I fix this issue?

$\endgroup$
4
  • 4
    $\begingroup$ Can you please clarify why you think resampling the true instances will give you some usable false instances? It's not clear how this would help, maybe you should give more details about your data. Fyi what you have is not an imbalanced dataset: an imbalanced dataset contains two classes with one much more frequent than the other. Your case looks more like a one-class classification problem. $\endgroup$
    – Erwan
    Jul 2 at 18:25
  • $\begingroup$ @Erwan I was thinking about using SMOTE (SMOTE is an oversampling technique where the synthetic samples are generated for the minority class), and the generated data of course will have True for the target feature then I change it to False and aggregate them, hence I'll have a balanced target. $\endgroup$
    – MXK
    Jul 3 at 19:05
  • 1
    $\begingroup$ The aim of SMOTE is to synthetically generate data which is similar to the resampled data. So it's kind of counter-intuitive to then assign a different class to this data which is intended to be similar to the original data - Unless maybe in your specific task and with your specific data SMOTE is expected to generate data which does actually not represent the original data well. But that's a far stretched assumption IMO $\endgroup$
    – Sammy
    Jul 3 at 19:27
  • $\begingroup$ @Sammy that makes sense and it confirms my hesitation, thank you. Do you suggest a solution? $\endgroup$
    – MXK
    Jul 3 at 19:34
2
$\begingroup$

If you don't have any way to obtain negative instances, the standard option is one-class classification:

one-class classification (OCC), also known as unary classification or class-modelling, tries to identify objects of a specific class amongst all objects, by primarily learning from a training set containing only the objects of that class.

I think the most common method is One-Class SVM, there might be others as well.

$\endgroup$
1
$\begingroup$

There are three common approaches to deal with imbalanced datasets:

  1. Collect more data for the minority class (usually not feasible)
  2. Adding weights to datasets for error calculation by giving a higher penalty for the minority class.
  3. Make Synthetic samples for minority classes - this needs knowing about the distribution of the data for the minority class (here "False"). if you don't have enough samples to estimate statistics of the "False" class, you can't use this technique.

So, binary classification is not possible if you don't have (enough) data for two classes

$\endgroup$
1
  • $\begingroup$ so I guess even SMOTE won't be a good option then. $\endgroup$
    – MXK
    Jul 3 at 19:06

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