Skip to content

Conversation

MohsenTaheriShalmani
Copy link
Contributor

No description provided.


val modelMetricsFullHistory: ModelMetricsFullHistory = ModelMetricsFullHistory()
val modelMetrics: ModelMetrics = ModelMetricsWithTimeWindow(20)
val modelMetricsWithTimeWindow: ModelMetrics = ModelMetricsWithTimeWindow(1000)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this wise? as this is per endpoint, and there might be 100s in an API, this might endup being the whole history. maybe something like 100 could be more reasonable, unless there was some specific reason for such a value. note that, in typical experiments with 1 hour budget, total number of calls is typically in the range 100k to 300k


companion object {
private const val NOT_400 = 200
private const val MAX_SAMPLES = 10_000 // Fixed-size buffer for samples to avoid memory overload
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why in KNN this is a constant, but a variable (having same 10_000 value) in KDE?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically, it must be a constant. I'll fix it.


/** Cap on stored samples based on the reservoir-style uniform downsampling to avoid memory overload.*/
companion object {
private const val MAX_SAMPLES = 20_000
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why some have 10_000 and others 20_000? is bit confusing. also it might open to critiscims from reviewers, unless we can document good reasons for this (and, in such case, those good reeasons should be briefly mentioned here)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree, I'll add it to the Config with a clear explanation

//TODO any better way to use this accuracy?
if(!randomness.nextBoolean(accuracy)){
/**
* Skips repair if the classifier is still weak, as indicated by low accuracy and F1-score
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and or or?

Copy link
Contributor Author

@MohsenTaheriShalmani MohsenTaheriShalmani Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think AND, because the classifier needs to perform well in both accuracy and precision–recall, otherwise, its knowledge of true positives is no better than a random guess.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants