ADASYN generates synthetic minority examples like SMOTE, but distributes them unevenly: it creates more points around minority samples that are surrounded by majority neighbours, and fewer around minority samples already sitting comfortably inside their own region. The intuition is that the model does not need help where it is already correct. The same mechanism is also its main risk, because a mislabelled minority point is by definition surrounded by the other class, so ADASYN concentrates generation exactly on the errors.

ADASYN is SMOTE with a difficulty weighting. That weighting helps when the boundary is genuinely hard and hurts when the boundary is noisy — and telling those apart is the actual work.

Updated 23 Aug 2026 · Data and Data Quality hub

Clinical screening review workstation used for grading borderline cases
Borderline cases carry the clinical value and are where adaptive sampling concentrates. Contextual photo.

What problem does this solve?

A retinal screening programme trains a referable-disease classifier. Roughly 6% of images are referable. SMOTE lifted recall to a usable level, but the residual errors cluster in one place: mild cases that look very close to healthy.

Those borderline images are the clinically important ones. A clearly advanced case is easy for both the model and the grader; the marginal case is where a screening programme earns or loses its value. Uniform oversampling spreads synthetic points evenly across the minority class, so it spends most of its effort in the region the model already handles.

The team wants generation concentrated where the classifier is weakest — which is exactly what ADASYN was designed to do, and exactly why it must be paired with a hard look at label quality first.

How the solution works

ADASYN measures, for each minority sample, how many of its k nearest neighbours belong to the majority class. That ratio becomes a difficulty score.

It then allocates the synthetic-sample budget in proportion to those scores. A minority point surrounded by majority neighbours receives many synthetic companions; one surrounded by its own class receives few or none.

Generation itself is the same interpolation SMOTE uses. The difference is entirely in how many points are created around each seed, not in how each point is made.

Because difficulty and mislabelling look identical from the algorithm's point of view, a label audit on the highest-difficulty samples should precede any ADASYN run.

  1. 1
    Measure the imbalance Compute how many synthetic samples are needed in total to reach the requested class ratio.
  2. 2
    Score each minority point For each minority sample, find its k nearest neighbours across the whole dataset and compute the fraction that belong to the majority class.
  3. 3
    Normalise the scores Divide each score by the sum of all scores so they form a distribution over the minority samples.
  4. 4
    Allocate the budget Multiply that distribution by the total number of synthetic samples needed, giving a per-seed generation count.
  5. 5
    Interpolate For each seed, generate its allocated number of points by interpolating toward randomly chosen minority neighbours, exactly as SMOTE does.

Reference architecture

ADASYN occupies the same pipeline slot as SMOTE, but it adds a dependency on label quality that SMOTE does not have to the same degree.

LayerWhat it contains
Label quality layerReviewed before generation. High-difficulty samples are the most likely mislabels and the most heavily amplified.
Split boundaryFolds created before any sampling, as with every resampler.
Training foldDifficulty scored and synthetic points allocated within the fold only.
EvaluationOriginal distribution retained, with per-region error analysis to confirm the boundary actually improved.

Deployment options: Clinical and insurance data usually cannot leave the entity's environment, so both the label review and the training run happen inside the approved boundary.

Key capabilities

Difficulty scoring and review

A ranked list of the minority samples ADASYN will amplify most, produced before generation rather than after.

available

Label audit on hard cases

A second grading pass on the highest-difficulty samples so noise is corrected instead of multiplied.

available

Boundary-region error analysis

Performance reported separately for borderline and clear-cut cases, not pooled into one score.

custom development

Sampler benchmarking

SMOTE, ADASYN and class weighting compared on identical folds with variance reported.

custom development

Integrations

ADASYN is a training-pipeline component whose real integration point is the annotation platform, because its output quality depends on label quality more than most samplers.

SystemIntegration point & data exchangedDirection
Annotation platformHigh-difficulty samples routed for a second opinion before they are amplified. → Label Noise: The Accuracy Ceiling Nobody Put There Deliberatelybi-directional
Training pipelineSampler and its parameters versioned so a retrain reproduces the same allocation. → SMOTE: Inventing Minority Examples Without Copying Thembi-directional
Evaluation harnessError reported per difficulty band so the intended improvement can be confirmed.bi-directional

Industry use cases

Screening programmes

Borderline cases carry the clinical value and are exactly where uniform oversampling under-invests.

Insurance claims triage

Ambiguous claims sit near the boundary; clear-cut ones are already handled by rules.

Government eligibility assessment

Edge cases drive appeals, so boundary performance matters more than aggregate accuracy.

Credit risk

Marginal applicants are where the decision has commercial consequence and where the model is weakest.

UAE & GCC considerations

Health and insurance data in the UAE and GCC is normally subject to residency restrictions and sector-specific approval, which rules out sending it to a managed sampling or AutoML service. Both the label review and the training run should be planned inside the entity's approved environment. Where a second grading opinion is needed, confirm in advance who is permitted to view the images or records, because the label audit ADASYN depends on is itself a data-access event.

Implementation approach

  1. 1
    Score difficulty first Compute the neighbour ratios and look at the distribution before deciding whether ADASYN is appropriate at all.
  2. 2
    Audit the hardest samples Manually review the top-ranked points. Correct or remove mislabels before generation.
  3. 3
    Benchmark against SMOTE Run both on identical folds and report standard deviation alongside the mean.
  4. 4
    Analyse by region Confirm the improvement appears in the boundary band, which is the only reason to prefer ADASYN.
  5. 5
    Fix the parameters Record k, the sampling ratio and the seed; ADASYN's allocation is sensitive to all three.

Security & deployment

The label audit ADASYN depends on requires human access to the underlying records, which for clinical or claims data is a controlled event. Log who reviewed which samples, keep the review inside the approved environment, and treat the resulting synthetic points as derived personal data carrying the classification of their source.

A worked example

Three minority images, k = 5 neighbours each, and a total synthetic budget of 100 points.

  1. Image A — deep inside the minority region. 1 of 5 neighbours is majority. r = 0.2.
  2. Image B — near the boundary. 3 of 5 neighbours are majority. r = 0.6.
  3. Image C — nearly surrounded. 4 of 5 neighbours are majority. r = 0.8.
  4. Normalise. Sum = 1.6, so the shares are 0.125, 0.375 and 0.500.
  5. Allocate. A gets about 13 synthetic points, B about 37, and C about 50.

Half the entire budget goes to a single image. If C is a genuinely difficult borderline case, that is exactly right. If C was graded incorrectly, ADASYN has just built fifty synthetic examples of a mistake — which is why the highest-r samples are the ones to inspect before running it.

ADASYN difficulty weightingThree minority seeds with increasing proportions of majority neighbours receive increasing shares of the synthetic sample budget.ADASYN difficulty weightingInside the regionr = 0.213 synthetic pointsNear the boundaryr = 0.637 synthetic pointsNearly surroundedr = 0.850 synthetic pointsBudget follows difficulty: half of it goes to a single seed.A mislabelled point looks identical to a hard one - and attracts the same share.
Half the synthetic budget goes to a single seed. That is the intent when the point is genuinely hard, and the risk when it is mislabelled.

In code

The useful pattern is to inspect the difficulty scores before generating anything, then compare ADASYN against SMOTE on the same folds.

import numpy as np
from sklearn.neighbors import NearestNeighbors
from sklearn.model_selection import StratifiedKFold, cross_val_score
from sklearn.linear_model import LogisticRegression
from imblearn.over_sampling import ADASYN, SMOTE
from imblearn.pipeline import Pipeline

def difficulty_scores(X, y, minority_label=1, k=5):
    """Fraction of each minority point's neighbours that are majority class."""
    nn = NearestNeighbors(n_neighbors=k + 1).fit(X)
    idx = np.where(y == minority_label)[0]
    _, neigh = nn.kneighbors(X[idx])
    neigh = neigh[:, 1:]              # drop the point itself
    return idx, (y[neigh] != minority_label).mean(axis=1)

idx, r = difficulty_scores(X_train, y_train)
hardest = idx[np.argsort(-r)][:20]
print("inspect these labels first:", hardest.tolist())
print("difficulty range:", r.min().round(2), "to", r.max().round(2))

cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)
for name, sampler in [("smote", SMOTE(random_state=0)), ("adasyn", ADASYN(random_state=0))]:
    pipe = Pipeline([("s", sampler), ("clf", LogisticRegression(max_iter=2000))])
    s = cross_val_score(pipe, X_train, y_train, cv=cv, scoring="average_precision")
    print(f"{name}: PR-AUC {s.mean():.3f} +/- {s.std():.3f}")

A list of the twenty hardest minority samples to review manually, the range of difficulty scores, and a like-for-like PR-AUC comparison between SMOTE and ADASYN. If ADASYN wins by less than its own standard deviation, the difference is not real.

Diagnostic checks

  • Plot the distribution of difficulty scores. A large mass at r near 1.0 suggests label noise rather than a hard boundary.
  • Manually inspect the twenty highest-scoring minority samples. If several are obviously mislabelled, fix the labels before running ADASYN.
  • Compare per-band performance. If ADASYN improves the aggregate but not the boundary band, it is not doing what you selected it for.
  • Report standard deviation across folds. On small minority classes ADASYN's advantage over SMOTE is frequently inside the noise.
  • Check for minority points with zero minority neighbours; ADASYN can fail or behave degenerately on isolated outliers.

When to use it

  • Residual errors cluster near the decision boundary rather than being spread evenly.
  • Labels have been reviewed and the boundary difficulty is genuine rather than annotation noise.
  • The minority class is large enough that neighbour ratios are meaningful.
  • Boundary-region performance is what the business actually cares about.

When not to use it

  • Label quality is unknown or known to be poor — ADASYN will concentrate generation on the errors.
  • The minority class contains genuine outliers that are rare but not informative; they will attract a large share of the budget.
  • SMOTE has not been tried yet, since ADASYN's only advantage is the weighting and you need the baseline to see it.
  • The minority class is very small, where the difficulty estimate is too noisy to allocate against.

Limitations & prerequisites

  • ADASYN cannot distinguish a hard example from a wrong one, and treats both as deserving amplification.
  • It ignores the majority class distribution when interpolating, so synthetic points can land inside majority territory.
  • Allocation is sensitive to k; changing it redistributes the budget substantially.
  • On small or sparse minority classes the difficulty estimate is unstable and the advantage over SMOTE disappears.

ADASYN against SMOTE

Same interpolation, different allocation. The distinction only matters when the boundary is where the errors live.

AspectSMOTEADASYN
Where points are generatedEvenly across minority samplesWeighted toward hard ones
Sensitivity to label noiseModerateHigh — noise attracts the budget
Best caseBroadly sparse minority regionErrors concentrated at the boundary
Outlier behaviourTreats outliers like any other pointOver-invests in isolated outliers
PrerequisiteContinuous featuresContinuous features plus audited labels

Run SMOTE first. ADASYN is worth trying when error analysis shows the residual failures sitting at the boundary, and only after the hardest labels have been checked.

Key takeaways

  • ADASYN is SMOTE with a difficulty weighting on how many points each seed generates.
  • It concentrates effort at the decision boundary, which is where borderline cases live.
  • The same weighting means a mislabelled point attracts the largest share of the synthetic budget.
  • Audit the highest-difficulty samples before generating anything.
  • Benchmark against SMOTE on identical folds and report variance, not just the mean.

FAQ

The interpolation is identical. ADASYN changes how many synthetic points each minority seed produces, allocating more to seeds surrounded by majority neighbours.

No. It helps when residual errors sit at the boundary and hurts when the boundary is noisy. Benchmark both on the same folds and report variance.

A mislabelled minority point is surrounded by the other class, which produces a maximal difficulty score, so ADASYN allocates it the largest share of the synthetic budget.

Not directly, for the same reason as SMOTE — interpolation between category codes produces values that do not exist. Encode deliberately or use a categorical-aware variant.

Five is the common default. Smaller values make the difficulty estimate noisier; larger values smooth it and reduce the adaptive effect toward uniform sampling.

It receives the maximum difficulty weight and may cause degenerate behaviour. Such points are usually either outliers or mislabels and should be examined directly.

Not necessarily. Auditing the highest-difficulty samples captures most of the risk for a fraction of the effort, because those are the ones ADASYN will amplify.

Working with data that cannot leave your environment?

Send the class distribution, the label provenance and the residency constraints. We will scope a training approach that stays inside your boundary and can be validated on your own hardware.

Discuss an on-prem AI deployment

+971 56 404 6555 · info@swedishtechnology.com

Sources & evidence

  1. He et al., ADASYN (IJCNN 2008) — The original adaptive synthetic sampling paper.
  2. imbalanced-learn: ADASYN — Official API reference and parameter behaviour.
  3. imbalanced-learn: comparison of over-sampling methods — Official visual comparison of SMOTE, ADASYN and variants.
  4. scikit-learn: nearest neighbours — Reference for the neighbour computation underlying the difficulty score.

Vendor and product names are trademarks of their respective owners; references are for technical context and do not imply partnership, certification or endorsement unless stated on the vendor's official pages.