I'm doing a machine learning project and was looking for suggestions. It's meant to get the date, household, age, sex, doctor, date of the medical appointment, and type of medical appointment of a patient in order to predict whether he will actually attend the appointment or not (many simply don't show up, without any further notice). The data set consists of around 26000 people.

I'm new to ML, and I was wondering if it makes sense to build an AI out of this situation. If the answer is yes, what model should I use? I'm using sklearn in Google Colab. I have tried DecisionTreeClassifier and MLPClassifier and both gave horrible accuracy, although that may be due to other reasons I'm not aware of.

Thanks in advance.


1 Answer 1


The model you're using is not telling the entire story. Lets briefly describe some approaches you should consider:

The Data itself

In most cases, working on the data itself may be more important than choosing the right model to train.

  • how descriptive are the features? can you use dummy variables on some of your textual features?
  • Are you working with balanced data? or perhaps $90\%$ of it is instances of "patient did now show up". If so, can you add more samples? can you remove samples? is augmented data relevant to your case?
  • do you have features in the form of free text? perhaps you can convert those to meaningful features using (for example) Word2Vec

Evaluating your model

In terms of the algorithmic approach, the model is not the only parameter

  • how do you validate the success of your model? what metrics are important to you? for example, the accuracy might not be as relevant if the data is unbalanced.
  • Do you care about Type 1 or Type 2 errors? If so, avoid a basic misclassification loss
  • Can you identify overfitting when comparing the training loss to the test loss? If so, try adding a meaningful regularization. If not - your model may not be complex enough.
  • To what baseline are you comparing your results? How does a simple linear regression perform?


  • classical ML approaches usually benefit when using ensemble methods
  • How are you tweaking the hyper-parameters of your model? are you working with a validation set? have you tried using k-Fold cross validation?

I think that answering those questions may help you with reaching your goal. I would also not advise considering big guns like deep neural networks unless you have exhausted more approachable methods


Not the answer you're looking for? Browse other questions tagged .