1
$\begingroup$

I've around 100 rows of data with labels

Country    |    Category    |   Label
-----------+----------------+----------
[US,UK,JP] |   Electronic   |     1
[US]       |   Sports       |     1
[TW,UK]    |   Grocery      |     2
[JP]       |   Book         |     3

And around 900 rows of data without labels

Country    |    Category   
-----------+--------------
[US,UK]    |   Sports   
[TW]       |   Sports    
[US]       |   Grocery     
[JP]       |   Electronic       

Will it be ok to do classification model using such a small dataset? If so, how can I encode Country? Or is there any other clustering/mathematical approach which I can use to handle this situation?

It's a total of 5 labels and they represent a rank where 1 is the best and 5 is the worst.

$\endgroup$
8
  • 4
    $\begingroup$ What are the data about? What are the labels? $\endgroup$ Commented May 12 at 5:00
  • $\begingroup$ I recommend you consider Bayesian model-driven imputation. This is described in Statistical Rethinking 2023 - 18 - Missing Data and the examples are implemented in PyMC5. "Bayes-ically", PyMC sets up this imputation for you. $\endgroup$
    – Galen
    Commented May 12 at 6:11
  • 1
    $\begingroup$ How many individual countries are there? How many different categories? How many labels, and what do they represent? $\endgroup$
    – J-J-J
    Commented May 12 at 10:56
  • 1
    $\begingroup$ Are you aiming to use Country and Category to predict Label? Do you have knowledge of what having multiple countries signifies? $\endgroup$
    – Henry
    Commented May 12 at 15:45
  • 1
    $\begingroup$ Your example labels sets of countries with labels. What is that intended to mean? That the label applies separately to each member of the set, or are you actually labeling collections of countries? $\endgroup$
    – whuber
    Commented May 12 at 19:33

1 Answer 1

5
$\begingroup$

900 rows should be enough to at least test some model assumptions. If you consider this an extremely small data set, I would assume you come from a more AI-heavy background. As such, I would not recommend using hard-to-tune with thousands of parameters.

If the data is really just three categories, this will still be a bit unstable. First, encode countries with some numbers. If you use python, the "sklearn" library provides methods for that. Second, assuming this is the whole data set I would suggest an Association Mining algorithm, you might for example look at mlxtend, especially the frequent_patterns subclass.

Hope this helps!

$\endgroup$
1
  • 1
    $\begingroup$ Apparently there are only 100 labelled rows $\endgroup$
    – Henry
    Commented May 12 at 15:46

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