i want to classify persons using their electrical consumption data, imagine the following data set:

enter image description here

"result" is the class variable that I want to detect by using the mean and max Consumptions.

I am sure that it is important for the supervised machine learning algorithm to know whether the data was recorded at the weekend or during the week. Because I were not very happy with the results, I converted the data and now have the following dataset:

enter image description here

The results got worse using SVM and J48-Decision Tree. It makes sense to me why: The column "day" has no correlation to the class "result". Feature selection algorithms would remove the column "day" and a decision tree would realize that the variable "day" has not any correlation to "result".

So my question: Is the first dataset the only option I can use in this case? Are there any classifiers / Feature Selection Algorithms that can deal well with the second data set?

I am using the weka-framwork. If you have any other hints how to get appropiate results, please tell me :) Currently I am using a Feature Selection Algorithm and then run SVM, Decision Tree and k-Nearest-Neighbours on it.

Thanks a lot! Best

  • $\begingroup$ What's the difference between good and bad results? Just looking at your data, Persons 1 and 3 have low and high values, but are both good, while Person 2 has values close to both Persons 1 and 3 and is bad. If this is the data you fed to an algorithm like an SVM (what kind of kernel, BTW?), I'm not surprised you got bad results - SVMs find boundaries between classes, but your good class seems to have a range of values that includes much of your bad class. $\endgroup$
    – learner
    Nov 20 '13 at 14:23
  • $\begingroup$ The result got bad because what you are trying to classify is people (each person will go to some class) and when you modified the data set you duplicated the people hence in a way averaged their weekend and weekday consumptions. This will definitely bring the two classes together instead of separating them as much as possible. And adding the day variable doesn't solve this problem. What you are classifying in the new dataset is the (person, day) pair (the unique key) which is I believe not what you want. $\endgroup$ Nov 20 '13 at 17:39

First things first. have you tried running this without the feature selection algorithm ? because the number of features seem to be quite less.

Next, try a different classification procedure for the weekends and the weekdays because the underlying pattern may be quite different for the two values.

Third, try the logistic regression and the single hidden layer backpropagation neural net as well just for the sake of comparison.

P.S : before you try any of this, just plot the data and see if there is any pattern there. you have the luxury of working with less number of variables.


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.