I am currently using an isolation forest (from sklearn library) to detect anomalies in a data frame (basically it's a dynamic data frame more of a kind of time series I am. But I have certain criteria which dictate that if rows follow them I can confirm they are not anomalies. How can I use this knowledge to improve the accuracy of anomaly detection?

Before I further describe I'll say I am new to data science and AI; the question may sound utterly stupid but please bear with me. Now description:

I have just mentioned the isolation forest for reference but I am not bound to use it. I thought about using a small dnn or decision tree or doing hyperparameter optimization of anomaly method based on good row criteria; but in this case, I felt there were some issues, there will be high disbalance in the data class, an advantage of anomaly detection of deciding anomaly based on the current scope (i.e. they can adapt with the changes in statistics of the data frames) and also I think then the model will become susceptible to kind of positive feedback (i.e. error attracts more error kind of scenario). So I am trying to find something which do not consider the past (i.e. only consider the current time slot values which are used for anomaly detection) and kind of modify or instruct the anomaly detection algorithm because these are good points you should consider points nearer to this also good and based on this assumption do the anomaly detection.

I may be wrong in my approach, again the question may sound stupid but please correct me


1 Answer 1


Here are some steps you can consider to combine unsupervised and supervised learning:

  1. Preprocessing: Start by identifying and extracting the features that are relevant to both anomaly detection and the criteria you have for determining if certain rows are not anomalies. This may involve feature engineering or selecting specific features from your data.

  2. Unsupervised Anomaly Detection: Apply the isolation forest or any other suitable unsupervised anomaly detection algorithm to your data. This will help you identify potential anomalies based on the overall distribution and patterns in your data.

  3. Labeling: Use your criteria or prior knowledge to label the instances in your data that you can confirm are not anomalies. Assign a positive or negative label to indicate whether they adhere to your identified criteria.

  4. Supervised Learning: Train a supervised learning algorithm using the labeled data and the features extracted in step 1. You can consider using decision trees, random forests, or even neural networks, depending on your needs and the complexity of the problem. The supervised learning model will learn from the labeled data and the defined criteria to make predictions on new instances.

  5. Integration: Combine the unsupervised and supervised approaches by incorporating the predictions from the anomaly detection algorithm (step 2) and the predictions from the supervised learning model (step 4). You can define rules or thresholds based on these predictions to determine the final classification of each instance as an anomaly or non-anomaly.

It's important to note that finding the right balance between the unsupervised and supervised components, as well as the feature engineering process, may require some experimentation and fine-tuning. You may also need to consider the trade-off between adaptability to changing data patterns and the potential for positive feedback or error propagation.


You must log in to answer this question.

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