/api/purchasing_segmentation_dendrogram

Header
X-Customer-Api-Id: <uuid> 
X-Secret:          <secret> 
Content-Type:      application/json 
Request Body Schema
customers: array<object>  
  id: string  
  frequency: int ≥ 1  
  amount_spent: float ≥ 0  
  product_types: array<string> (≥ 1) 
Example Request Body
{
  "customers": [
    { "id": "C001", "frequency": 28, "amount_spent": 4120.75, "product_types": ["laptop","mouse","keyboard","monitor"] },
    { "id": "C002", "frequency": 5,  "amount_spent":  190.40,  "product_types": ["tea","coffee"] },
    { "id": "C003", "frequency": 12, "amount_spent":  845.10,  "product_types": ["jeans","t-shirt","sneakers"] },
    { "id": "C004", "frequency": 2,  "amount_spent":   75.00,  "product_types": ["notebook"] },
    { "id": "C005", "frequency": 17, "amount_spent": 1324.55, "product_types": ["smartphone","earbuds"] },
    { "id": "C006", "frequency": 8,  "amount_spent":  510.30, "product_types": ["dog food","cat food"] },
    { "id": "C007", "frequency": 24, "amount_spent": 2780.90, "product_types": ["smart-tv","soundbar","hdmi-cable"] },
    { "id": "C008", "frequency": 10, "amount_spent":  660.00, "product_types": ["yogurt","milk","cheese"] },
    { "id": "C009", "frequency": 3,  "amount_spent":  120.00, "product_types": ["stationery"] },
    { "id": "C010", "frequency": 15, "amount_spent":  975.65, "product_types": ["beer","wine","snacks"] },

    { "id": "C011", "frequency": 7,  "amount_spent":  450.25, "product_types": ["books","pens"] },
    { "id": "C012", "frequency": 25, "amount_spent": 3015.90, "product_types": ["tablet","stylus","cover"] },
    { "id": "C013", "frequency": 6,  "amount_spent":  210.10, "product_types": ["pasta","sauce"] },
    { "id": "C014", "frequency": 20, "amount_spent": 1884.00, "product_types": ["fitness-watch"] },
    { "id": "C015", "frequency": 1,  "amount_spent":   40.00, "product_types": ["batteries"] },
    { "id": "C016", "frequency": 13, "amount_spent": 1105.35, "product_types": ["printer","ink"] },
    { "id": "C017", "frequency": 4,  "amount_spent":  160.00, "product_types": ["flour","sugar","eggs"] },
    { "id": "C018", "frequency": 30, "amount_spent": 4522.60, "product_types": ["gaming-pc","rgb-mouse","gaming-chair","headset"] },
    { "id": "C019", "frequency": 11, "amount_spent":  720.00, "product_types": ["makeup","skincare"] },
    { "id": "C020", "frequency": 9,  "amount_spent":  585.40, "product_types": ["toys","board-games"] },

    { "id": "C021", "frequency": 2,  "amount_spent":   55.00, "product_types": ["candles"] },
    { "id": "C022", "frequency": 18, "amount_spent": 1410.70, "product_types": ["camera","sd-card"] },
    { "id": "C023", "frequency": 14, "amount_spent":  992.00, "product_types": ["office-chair","desk-lamp"] },
    { "id": "C024", "frequency": 3,  "amount_spent":  135.00, "product_types": ["juice","cookies"] },
    { "id": "C025", "frequency": 12, "amount_spent":  830.20, "product_types": ["running-shoes","sports-socks"] },
    { "id": "C026", "frequency": 23, "amount_spent": 2560.00, "product_types": ["fridge","water-filter"] },
    { "id": "C027", "frequency": 6,  "amount_spent":  260.40, "product_types": ["vitamins"] },
    { "id": "C028", "frequency": 5,  "amount_spent":  195.99, "product_types": ["wine","cheese"] },
    { "id": "C029", "frequency": 19, "amount_spent": 1599.95, "product_types": ["e-reader","ebooks"] },
    { "id": "C030", "frequency": 22, "amount_spent": 2345.00, "product_types": ["washing-machine","detergent"] },

    { "id": "C031", "frequency": 4,  "amount_spent":  175.50, "product_types": ["herbs","spices"] },
    { "id": "C032", "frequency": 8,  "amount_spent":  540.00, "product_types": ["diapers","baby-wipes","formula"] },
    { "id": "C033", "frequency": 27, "amount_spent": 3350.80, "product_types": ["console","controller","games"] },
    { "id": "C034", "frequency": 10, "amount_spent":  705.35, "product_types": ["sunscreen","after-sun"] },
    { "id": "C035", "frequency": 3,  "amount_spent":  150.00, "product_types": ["frozen-pizza"] },
    { "id": "C036", "frequency": 16, "amount_spent": 1240.60, "product_types": ["tool-set","drill"] },
    { "id": "C037", "frequency": 9,  "amount_spent":  610.10, "product_types": ["organic-vegetables"] },
    { "id": "C038", "frequency": 21, "amount_spent": 2105.00, "product_types": ["air-fryer","cookbook"] },
    { "id": "C039", "frequency": 7,  "amount_spent":  435.75, "product_types": ["flowers","vase"] },
    { "id": "C040", "frequency": 14, "amount_spent": 1015.90, "product_types": ["winter-jacket","gloves","scarf"] }
  ]
}
Example Response Body
{
  "benchmark":[
    {"algo":"agglo","k":2,"silhouette":0.7077199816703796,"davies_bouldin":0.4514254286596703},
    {"algo":"agglo","k":3,"silhouette":0.678362250328064,"davies_bouldin":0.376151934569577},
    {"algo":"agglo","k":4,"silhouette":0.5551854372024536,"davies_bouldin":0.4501147341595592},
    {"algo":"agglo","k":5,"silhouette":0.6081505417823792,"davies_bouldin":0.43129043959670116},
    {"algo":"agglo","k":6,"silhouette":0.6091357469558716,"davies_bouldin":0.4559881260676169},
    {"algo":"agglo","k":7,"silhouette":0.5880967378616333,"davies_bouldin":0.41722555780136483},
    {"algo":"agglo","k":8,"silhouette":0.5805333852767944,"davies_bouldin":0.4236382619863599},
    {"algo":"agglo","k":9,"silhouette":0.5868553519248962,"davies_bouldin":0.44715188445995646},
    {"algo":"agglo","k":10,"silhouette":0.5709341764450073,"davies_bouldin":0.4166849713218054}
  ],
  "best_model":{"algo":"agglo","k":2,"silhouette":0.7077199816703796,"davies_bouldin":0.4514254286596703,"n_clusters":2},
  "centroids":[
    [24.44444465637207,2964.99462890625,2.6666667461395264],
    [8.806451797485352,591.1141967773438,1.9677419662475586]
  ],
  "labels":{
    "C001":0,"C002":1,"C003":1,"C004":1,"C005":1,"C006":1,"C007":0,"C008":1,"C009":1,"C010":1,
    "C011":1,"C012":0,"C013":1,"C014":0,"C015":1,"C016":1,"C017":1,"C018":0,"C019":1,"C020":1,
    "C021":1,"C022":1,"C023":1,"C024":1,"C025":1,"C026":0,"C027":1,"C028":1,"C029":1,"C030":0,
    "C031":1,"C032":1,"C033":0,"C034":1,"C035":1,"C036":1,"C037":1,"C038":0,"C039":1,"C040":1
  },
  "dendrogram":{
    "linkage_matrix":[[1,27,5.59,2],[16,34,10.25,2],[10,38,14.5,2],…],
    "columns":["child1","child2","distance","sample_count"],
    "leaf_labels":["C001","C002",…,"C040"],
    "cluster_legend":[
      {"cluster_id":0,"n_customers":9,"avg_spend":2964.99,"avg_frequency":24.44,"top_categories":"laptop, mouse, air-fryer"},
      {"cluster_id":1,"n_customers":31,"avg_spend":591.11,"avg_frequency":8.81,"top_categories":"wine, cheese, diapers"}
    ]
  }
}
Description

Return Ward‐linkage matrix, centroids, and labels via Agglomerative clustering (k=2…10 auto‐selected) for interactive dendrogram and cluster‐explorer UIs.

Business Usage

Ideal for visual drill‐downs; feed dendrogram into /api/segment_hierarchy_chart for nodes/links; render in D3/Plotly; save labels to your database; combine with CLV/churn for 360° segmentation.

← Back to all routes