I am pretty new to machine learning and data analysis in general. I have been learning about different algorithms as part of my course. Now, I am stuck with a particular problem. I have been given a dataset which has 52 variables (columns) and 500 observations (rows). The task is to classify the data into normal, overload and faulty operating conditions but there and no labels or classes in my dataset. My question is, are the given variables same as features of my dataset or do I have to do feature extraction and how to add classes to unlabelled datasets?


I have working regarding faulty conditions as well.

In the case you don't have the conditions as a class, you need to perform a clustering to detect which shares the same conditions and then name them based on your experience of where conditions are the normal ones, etc. But I would say you have too few data to do that.

On the other hand, you can manually categorize the conditions of each observation based on some rules (f.i. if the response is temperature, temperature of normal condition must be in the range (-). And then you can perform a MLRegression with the rest of your columns to predict your response and determine the conditions based on your rules.

Let me know if you need anything else I will try to help you!


  • $\begingroup$ Thanks Pablo for the help. The thing is, I have a classification problem, not regression. I have to use anyone from Bayes, Decision trees, Neural, SVM. Going by what you said, I think I could probably choose decision trees and set the branching criteria to be temperature range, isn't it? $\endgroup$ – Ambarish Nov 28 '17 at 19:56
  • $\begingroup$ That is correct. I will say that if you want to classify based on so many parameters is going to be difficult. I will suggest you to reduce features that are less relevant (stepwise, or look for pruning method which is non-linear way but maths are harder). Also, I will make sure I have enough observations for all the different conditions, not only for the normal operation. Otherwise, your model may not capture the faulty ones. $\endgroup$ – Pablo Ruiz Ruiz Nov 28 '17 at 20:01
  • $\begingroup$ Is it possible to use stepwise regression or lasso for feature selection and then use those features for classification? $\endgroup$ – Ambarish Nov 28 '17 at 20:19
  • $\begingroup$ You can always follow backward elimination. You build your model with all the variables and then determine your accuracy. Based on a parameter that gives you the feature importance, you can remove the least important one, and check back your accuracy. Keep on that loop until you see a significant loss of accuracy. You can always perform PCA but this will lead you to a worse understanding of your process as you lose the name of the categories you have. $\endgroup$ – Pablo Ruiz Ruiz Nov 29 '17 at 17:12
  • $\begingroup$ Thanks, Pablo. I tried clustering to find out labels and it worked!!!. $\endgroup$ – Ambarish Nov 29 '17 at 21:46

The given variables are the features, aka independent variables or covariates.

Generally, one of the variables should be the class, aka dependent variable or response variable. You might double check to make sure one of them isn't the class.

If you do actually have to create your own classes, it's a pretty difficult problem. It may be that there are clusters, so you could use a clustering algorithm (unsupervised learning) to see which classes there are and then label according to clusters and train a classifier to differentiate those clusters. This would however require that you be able to discern which cluster is which class, which might not be easy.

  • $\begingroup$ Hi, Thanks for the reply. I asked my supervisor about the missing classes. The task is fault detection and I have 23 of them. Each fault has its own training and testing data set. My supervisor asked me to add class to each data set, like a column of 1 for the first fault, a column of 2 for the second fault and so on. Is this a probable solution? $\endgroup$ – Ambarish Nov 28 '17 at 18:53
  • $\begingroup$ Also, could you please tell me how to reduce features. There might be redundant features that are reducing my algorithm's accuracy. Which is the best possible way to do so? I tried PCA, but instead of removing features( columns ), it removed rest of the observations (rows) and returned a 52*52 matrix. I am using MATLAB by the way $\endgroup$ – Ambarish Nov 28 '17 at 18:58

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.