Encode multi-class response variable
It depends on the meaning of the classes, and whether they have any meaningful order.
If they are ordinal or a scale, then there is a meaningful ordering, and it can potentially be reasonable to order them and then assign labels $1, 2, \dots, n$ in order to the classes.  This is what you call &quot;LabelEncode&quot;.  In some cases, some form of regression might also be appropriate and worth trying.
If they are categorical or nominal, with no meaningful ordering, then LabelEncode makes no sense and will be no better than a one-hot encoding -- and potentially worse.  So, the default is one-hot encoding.
If they are categorical but have some hierarchy, there are smarter methods.  You can build a tree that represents the hierarchy, then have a multi-hot encoding.  If there are $n$ classes, you will have a tree with $n$ leaves and (say) $m$ nodes in total  (where $m &gt; n$).  Then you can encode the class as a $m$-vector, whose $i$th entry is 1 if the class is a descendant of node $i$ in the tree, or 0 otherwise.
If the classes are categorical but have various attributes, you can try an encoding that has one element for each possible attribute.  For instance, if there are $k$ binary attributes, you can have a $k$-vector with a 0 or 1 in the $i$th entry according to whether the corresponding class has the $i$th attribute or not.  You can generalize from there for more general situations.
See this and this for more about different types of measurements.