I'm trying to classify my set of data into two classes (introvert / extrovert). I was thinking of using a decision tree at first, but I don't have any potential known results in order to create my decision tree model. Thus I decided to use a k-means clustering algorithm with k = 2.

  1. Since the clustering algorithm accepts only numeric values, can I use the decision tree algorithm to transform some type of values I have into numeric ones at first (based on some rules I define within the tree) before I start clustering?

  2. Let's suppose at the end of the algorithm I get my 2 clusters: cluster 1 and cluster 2. How can I classify these two clusters based on my 2 classes? Am I supposed to use supervised or semi-supervised clustering? (I don't know how semi- and supervised clustering work).

  3. Is there any other simple and efficient classification technique that can satisfy my needs?

P.S. I'm new to this domain and all your advice and remarks are appreciated.

  • 4
    $\begingroup$ Can't speak to the statistical issues as I'm inexperienced with clustering methods, but as a personality psychologist, I discourage the decision to dichotomize extraversion/introversion. It is a continuous trait dimension, most people fall somewhere nearer to the middle than to either extreme (and as such aren't always strongly distinguishable from people on the other side of the mean), and some nontrivial subset of people aren't well-described as either introverted or extraverted (nor even in-between necessarily). If you have continuous trait data, try leaving it that way if you can. $\endgroup$ Jul 17, 2014 at 7:49
  • 1
    $\begingroup$ +1 to @NickStauner's comment. See also here. $\endgroup$ Jul 17, 2014 at 8:06
  • $\begingroup$ @Nick I really agree with what you have said. However, i really made a deep study about introversion and extraversion dimensions before start collecting learners' behavior. My problem is i really need to verify to which class each learner belongs even if the results are not 100% correct. By the way, do u suggest any other method or technique? thanks for your answer. $\endgroup$ Jul 17, 2014 at 14:50
  • $\begingroup$ @Stephan thanks for your further details.Do you suggest any other techniques or methods should i use? $\endgroup$ Jul 17, 2014 at 14:51
  • 2
    $\begingroup$ You have a big task ahead of you in any case if you don't have any data with known classes. If you do unsupervised learning and clustering into two clusters, you can't be sure in advance that your two clusters correspond to introversion and extraversion (leaving the dichotomization issue aside) - your unsupervised clustering may simply cluster into male/female, tall/short, smart/stupid or along a host of other potential one-dimensional characterizations. So try to get a classified sample. Then you may want to look at simple logistic regression, which gives you a continuous output. $\endgroup$ Jul 17, 2014 at 17:35

2 Answers 2


Don't abuse clustering for classification.

How do you plan on directing the algorithm to not produce two clusters that correspond to

  • Males vs. Females?
  • Blondes vs. Brunettes (with red haired noise)
  • Short vs. Tall people?
  • People whose first name has even length vs. odd length?

All of these would be meaningful clusters, wouldn't they?

If you have a particular objective to solve - in your case, introverts vs. extroverts - you need to direct your algorithm accordingly. Algorithms cannot do magic, they need direction. So most likely you need training data.

  • $\begingroup$ Thank you for your reply. Well i guess i need a supervised techniques for classifications. I have thought about using decision trees but as i said i dont have an already known set of examples. However based on a deep study regarding Introvert/Extrovert i have extracted some rules that can help me in the classification. My question is how can we create a decision tree from a set of rules not from already known sets ( I have read some papers but couldnt fully understand the steps). Thank you in advance for your time. $\endgroup$ Jul 17, 2014 at 23:59

If you are indeed researching with interest to the effect of extraversion, you will mostly likely use a reliable and validated questionaire, which results in an extraversion score.

If you did not do so, and you now want to seperate a dataset (which you did not further describe) into two categories, you can do so.

There are plenty of algorithms (k-means, EM for GMM, DBSCAN,...) which will cluster your data. Yet the clustering is based on some underlying assumption about the nature of data and the definition of a cluster. For example most algorithms will consider all features equally relevant.

Yet resulting groups are most probably not related - at all - to the psychological construct of extraversion. (Examples of possible clustering results not related to extraversion in the answer of @Anony-Mousse)

If you want to group (=cluster) people regarding their extraversion, you will have to start from a theoretical perspective and think about which features capture behaviour related/influenced by extraversion and which do not. You are effectively constructing a questionaire doing so and you will have to think about both reliability and validity.

Or you will just use a validated instrument such as the NEO-PI-R (as linked in the first sentence).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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