Project_Carmignac/Clustering_Fund_Family_+k3_k10.ipynb

3995 lines
5.9 MiB
Plaintext
Raw Permalink Normal View History

2026-04-13 18:33:17 +02:00
{
"cells": [
{
"cell_type": "markdown",
"id": "ae7ea32e",
"metadata": {},
"source": [
"# Clustering by Fund Family — Final Notebook\n",
"\n",
"Ce notebook construit des **familles de fonds**, crée des **features comportementales au niveau client × famille**, réalise un **clustering séparé pour chacune des top 15 familles**, puis ajoute des **analyses métier** :\n",
"- taille économique des clusters,\n",
"- churn par cluster,\n",
"- comportement vs performance,\n",
"- visualisation PCA."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "fb3f5ba7",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import re\n",
"import s3fs\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"\n",
"from sklearn.preprocessing import RobustScaler\n",
"from sklearn.cluster import KMeans\n",
"from sklearn.metrics import silhouette_score, davies_bouldin_score\n",
"from sklearn.decomposition import PCA\n",
"from sklearn.impute import SimpleImputer\n",
"\n",
"sns.set_style(\"whitegrid\")\n",
"pd.set_option(\"display.max_columns\", 200)\n",
"pd.set_option(\"display.max_rows\", 200)\n",
"\n",
"EPS = 1e-9\n",
"RANDOM_STATE = 42"
]
},
{
"cell_type": "markdown",
"id": "945ca540",
"metadata": {},
"source": [
"## 1. Accès aux données\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "2d063d7d",
"metadata": {},
"outputs": [],
"source": [
"ID_COL = \"Registrar Account - ID\"\n",
"ISIN_COL = \"Product - Isin\"\n",
"FUND_COL = \"Product - Fund\"\n",
"ASSET_COL = \"Product - Asset Type\"\n",
"\n",
"FLOW_DATE_COL = \"Centralisation Date\"\n",
"AUM_DATE_COL = \"Centralisation Date\"\n",
"\n",
"FLOW_QTY_COL = \"Quantity - NetFlows\"\n",
"FLOW_SUB_COL = \"Quantity - Subscription\"\n",
"FLOW_RED_COL = \"Quantity - Redemption\"\n",
"\n",
"AUM_QTY_COL = \"Quantity - AUM\"\n",
"AUM_VAL_COL = \"Value - AUM €\"\n",
"\n",
"REGION_COL = \"Registrar Account - Region\"\n",
"COUNTRY_COL = \"RegistrarAccount - Country\"\n",
"\n",
"NAV_DATE_COL = \"Dat\"\n",
"NAV_ISIN_COL = \"Isin\"\n",
"NAV_PRICE_COL = \"Price (TF PartPrice)\"\n",
"\n",
"RATE_DATE_COL = \"Date\"\n",
"RATE_VAL_COL = \"Yld to Maturity\"\n",
"\n",
"PATH_FLOWS = \"s3://projet-bdc-data/carmignac/Flows ENSAE V2 -20251105.csv\"\n",
"PATH_NAV = \"s3://projet-bdc-data/carmignac/Data Modélisation/Nav/NAV_Bench_data.csv\"\n",
"PATH_RATES = \"s3://projet-bdc-data/carmignac/Data Modélisation/market data/esterRates.csv\"\n",
"PATH_AUM = \"s3://projet-bdc-carmignac-g3/paco/AUM_repaired.csv\""
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "aeddcb9b",
"metadata": {},
"outputs": [],
"source": [
"def robust_zscore(s):\n",
" med = np.nanmedian(s)\n",
" mad = np.nanmedian(np.abs(s - med))\n",
" if mad == 0 or np.isnan(mad):\n",
" return np.zeros(len(s))\n",
" return (s - med) / (1.4826 * mad)\n",
"\n",
"def plot_heatmap(dfc, profile_vars, cluster_col, title, figsize=(16, 5)):\n",
" dfc_viz = dfc[profile_vars + [cluster_col]].copy()\n",
" for col in profile_vars:\n",
" vals = pd.to_numeric(dfc_viz[col], errors=\"coerce\").to_numpy(dtype=float)\n",
" lo = np.nanpercentile(vals, 2)\n",
" hi = np.nanpercentile(vals, 98)\n",
" dfc_viz[col] = np.clip(vals, lo, hi)\n",
" prof = dfc_viz.groupby(cluster_col)[profile_vars].median()\n",
" prof_z = prof.apply(lambda col: robust_zscore(col.values), axis=0)\n",
" prof_z = prof_z.clip(-3, 3)\n",
" plt.figure(figsize=figsize)\n",
" sns.heatmap(\n",
" prof_z, cmap=\"RdBu_r\", center=0, annot=True, fmt=\".2f\",\n",
" xticklabels=profile_vars,\n",
" yticklabels=[f\"Cluster {i}\" for i in prof.index]\n",
" )\n",
" plt.title(title)\n",
" plt.xticks(rotation=45, ha=\"right\")\n",
" plt.tight_layout()\n",
" plt.show()\n",
" return prof\n",
"\n",
"def winsorize_mad(series, n_sigma=3):\n",
" vals = pd.to_numeric(series, errors=\"coerce\").to_numpy(dtype=float)\n",
" med = np.nanmedian(vals)\n",
" mad = np.nanmedian(np.abs(vals - med)) * 1.4826\n",
" if mad > 0:\n",
" return np.clip(vals, med - n_sigma * mad, med + n_sigma * mad)\n",
" return np.clip(vals, 0, np.nanpercentile(vals, 95))\n",
"\n",
"def add_months_since_last_tx_by_group(df, id_cols, active_col=\"active_month\", month_col=\"month\", suffix=\"\"):\n",
" col_name = f\"months_since_last_tx{suffix}\"\n",
" reference_date = df[month_col].max()\n",
" last_active = (\n",
" df[df[active_col] == 1]\n",
" .groupby(id_cols)[month_col]\n",
" .max()\n",
" .reset_index(name=\"last_active_month\")\n",
" )\n",
" last_active[col_name] = (\n",
" (reference_date.to_period(\"M\") - last_active[\"last_active_month\"].dt.to_period(\"M\"))\n",
" .apply(lambda x: x.n)\n",
" )\n",
" return last_active[[*id_cols, col_name]]"
]
},
{
"cell_type": "markdown",
"id": "041c588b",
"metadata": {},
"source": [
"## 2. Chargement et nettoyage"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "7a2e4bb5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"flows: (2514419, 25)\n",
"aum: (4824814, 19)\n",
"nav: (623914, 6)\n",
"rates: (2826, 3)\n"
]
}
],
"source": [
"df_flows = pd.read_csv(PATH_FLOWS, sep=\";\")\n",
"df_nav = pd.read_csv(PATH_NAV, sep=\";\")\n",
"df_rates = pd.read_csv(PATH_RATES, sep=\";\")\n",
"df_aum = pd.read_csv(PATH_AUM, low_memory=False)\n",
"\n",
"for df, col in [\n",
" (df_flows, FLOW_DATE_COL),\n",
" (df_aum, AUM_DATE_COL),\n",
" (df_nav, NAV_DATE_COL),\n",
" (df_rates, RATE_DATE_COL)\n",
"]:\n",
" df[col] = pd.to_datetime(df[col], errors=\"coerce\")\n",
" df[\"month\"] = df[col].dt.to_period(\"M\").dt.to_timestamp()\n",
"\n",
"for col in [FLOW_QTY_COL, FLOW_SUB_COL, FLOW_RED_COL]:\n",
" df_flows[col] = pd.to_numeric(df_flows[col], errors=\"coerce\")\n",
"\n",
"for col in [AUM_QTY_COL, AUM_VAL_COL]:\n",
" df_aum[col] = pd.to_numeric(df_aum[col], errors=\"coerce\")\n",
"\n",
"df_nav[NAV_PRICE_COL] = pd.to_numeric(df_nav[NAV_PRICE_COL], errors=\"coerce\")\n",
"df_rates[RATE_VAL_COL] = pd.to_numeric(df_rates[RATE_VAL_COL], errors=\"coerce\")\n",
"\n",
"for df in [df_flows, df_aum]:\n",
" df[ISIN_COL] = df[ISIN_COL].astype(str).str.strip()\n",
" df[FUND_COL] = df[FUND_COL].astype(str).str.strip()\n",
"\n",
"df_nav[NAV_ISIN_COL] = df_nav[NAV_ISIN_COL].astype(str).str.strip()\n",
"\n",
"bad_accounts = [\"Off Distribution\", \"Private Clients\", \"Private Client\"]\n",
"df_flows = df_flows[~df_flows[ID_COL].isin(bad_accounts)]\n",
"df_aum = df_aum[~df_aum[ID_COL].isin(bad_accounts)]\n",
"\n",
"print(\"flows:\", df_flows.shape)\n",
"print(\"aum: \", df_aum.shape)\n",
"print(\"nav: \", df_nav.shape)\n",
"print(\"rates:\", df_rates.shape)"
]
},
{
"cell_type": "markdown",
"id": "66fbc3b9",
"metadata": {},
"source": [
"## 3. Construction conservative des fund families"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "9aab6824",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Nombre de couples ISIN/Fund : 387\n",
"Nombre de funds uniques : 69\n",
"Nombre de families uniques : 65\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Product - Isin</th>\n",
" <th>Product - Fund</th>\n",
" <th>fund_family</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>FR0000999999</td>\n",
" <td>Carmignac Court Terme</td>\n",
" <td>Carmignac Court Terme</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>FR0010135103</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>FR0010147603</td>\n",
" <td>Carmignac Investissement Latitude</td>\n",
" <td>Carmignac Investissement Latitude</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>FR0010148981</td>\n",
" <td>Carmignac Investissement</td>\n",
" <td>Carmignac Investissement</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>FR0010148999</td>\n",
" <td>Carmignac Profil Réactif 75</td>\n",
" <td>Carmignac Profil Réactif &lt;NUM&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>FR0010149096</td>\n",
" <td>Carmignac Innovation</td>\n",
" <td>Carmignac Innovation</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>FR0010149112</td>\n",
" <td>Carmignac Euro-Entrepreneurs</td>\n",
" <td>Carmignac Euro-Entrepreneurs</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>FR0010149120</td>\n",
" <td>Carmignac Sécurité</td>\n",
" <td>Carmignac Sécurité</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>FR0010149161</td>\n",
" <td>Carmignac Court Terme</td>\n",
" <td>Carmignac Court Terme</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>FR0010149179</td>\n",
" <td>Carmignac Absolute Return Europe</td>\n",
" <td>Carmignac Absolute Return Europe</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>FR0010149203</td>\n",
" <td>Carmignac Multi Expertise</td>\n",
" <td>Carmignac Multi Expertise</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>FR0010149211</td>\n",
" <td>Carmignac Profil Réactif 100</td>\n",
" <td>Carmignac Profil Réactif &lt;NUM&gt;</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>FR0010149278</td>\n",
" <td>Carmignac Euro-Investissement</td>\n",
" <td>Carmignac Euro-Investissement</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>FR0010149302</td>\n",
" <td>Carmignac Emergents</td>\n",
" <td>Carmignac Emergents</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>FR0010306142</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>FR0010312660</td>\n",
" <td>Carmignac Investissement</td>\n",
" <td>Carmignac Investissement</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>FR0010956607</td>\n",
" <td>Carmignac Emergents</td>\n",
" <td>Carmignac Emergents</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>FR0010956615</td>\n",
" <td>Carmignac Investissement</td>\n",
" <td>Carmignac Investissement</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>FR0010956649</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>FR0011147446</td>\n",
" <td>Carmignac Emergents</td>\n",
" <td>Carmignac Emergents</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Product - Isin Product - Fund \\\n",
"0 FR0000999999 Carmignac Court Terme \n",
"1 FR0010135103 Carmignac Patrimoine \n",
"2 FR0010147603 Carmignac Investissement Latitude \n",
"3 FR0010148981 Carmignac Investissement \n",
"4 FR0010148999 Carmignac Profil Réactif 75 \n",
"5 FR0010149096 Carmignac Innovation \n",
"6 FR0010149112 Carmignac Euro-Entrepreneurs \n",
"7 FR0010149120 Carmignac Sécurité \n",
"8 FR0010149161 Carmignac Court Terme \n",
"9 FR0010149179 Carmignac Absolute Return Europe \n",
"10 FR0010149203 Carmignac Multi Expertise \n",
"11 FR0010149211 Carmignac Profil Réactif 100 \n",
"12 FR0010149278 Carmignac Euro-Investissement \n",
"13 FR0010149302 Carmignac Emergents \n",
"14 FR0010306142 Carmignac Patrimoine \n",
"15 FR0010312660 Carmignac Investissement \n",
"16 FR0010956607 Carmignac Emergents \n",
"17 FR0010956615 Carmignac Investissement \n",
"18 FR0010956649 Carmignac Patrimoine \n",
"19 FR0011147446 Carmignac Emergents \n",
"\n",
" fund_family \n",
"0 Carmignac Court Terme \n",
"1 Carmignac Patrimoine \n",
"2 Carmignac Investissement Latitude \n",
"3 Carmignac Investissement \n",
"4 Carmignac Profil Réactif <NUM> \n",
"5 Carmignac Innovation \n",
"6 Carmignac Euro-Entrepreneurs \n",
"7 Carmignac Sécurité \n",
"8 Carmignac Court Terme \n",
"9 Carmignac Absolute Return Europe \n",
"10 Carmignac Multi Expertise \n",
"11 Carmignac Profil Réactif <NUM> \n",
"12 Carmignac Euro-Investissement \n",
"13 Carmignac Emergents \n",
"14 Carmignac Patrimoine \n",
"15 Carmignac Investissement \n",
"16 Carmignac Emergents \n",
"17 Carmignac Investissement \n",
"18 Carmignac Patrimoine \n",
"19 Carmignac Emergents "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def build_fund_family_numeric_only(fund_name):\n",
" if pd.isna(fund_name):\n",
" return np.nan\n",
" s = str(fund_name).strip()\n",
" family = re.sub(r\"\\d+\", \"<NUM>\", s)\n",
" family = re.sub(r\"\\s+\", \" \", family).strip()\n",
" return family\n",
"\n",
"fund_family_table = (\n",
" df_aum[[ISIN_COL, FUND_COL]]\n",
" .dropna(subset=[ISIN_COL, FUND_COL])\n",
" .drop_duplicates()\n",
" .sort_values([ISIN_COL, FUND_COL])\n",
" .reset_index(drop=True)\n",
")\n",
"\n",
"fund_family_table[\"fund_family\"] = fund_family_table[FUND_COL].apply(build_fund_family_numeric_only)\n",
"\n",
"print(\"Nombre de couples ISIN/Fund :\", fund_family_table.shape[0])\n",
"print(\"Nombre de funds uniques :\", fund_family_table[FUND_COL].nunique())\n",
"print(\"Nombre de families uniques :\", fund_family_table[\"fund_family\"].nunique())\n",
"\n",
"fund_family_table.head(20)"
]
},
{
"cell_type": "markdown",
"id": "51efc12a",
"metadata": {},
"source": [
"## 4. Panel relationnel mensuel client × ISIN × mois"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "0a45bb6d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"df_rel_m shape: (5184382, 20)\n"
]
}
],
"source": [
"df_flows_m = (\n",
" df_flows\n",
" .dropna(subset=[ID_COL, ISIN_COL, \"month\"])\n",
" .assign(\n",
" gross_flow_qty=lambda x: x[FLOW_QTY_COL].abs(),\n",
" sub_qty=lambda x: x[FLOW_SUB_COL].fillna(0),\n",
" red_qty=lambda x: x[FLOW_RED_COL].fillna(0)\n",
" )\n",
" .groupby([ID_COL, ISIN_COL, \"month\"], as_index=False)\n",
" .agg(\n",
" net_flow_qty=(FLOW_QTY_COL, \"sum\"),\n",
" gross_flow_qty=(\"gross_flow_qty\", \"sum\"),\n",
" sub_qty=(\"sub_qty\", \"sum\"),\n",
" red_qty=(\"red_qty\", \"sum\"),\n",
" n_tx=(FLOW_QTY_COL, \"size\"),\n",
" region=(REGION_COL, \"last\"),\n",
" country=(COUNTRY_COL, \"last\")\n",
" )\n",
")\n",
"\n",
"df_aum_m = (\n",
" df_aum\n",
" .dropna(subset=[ID_COL, ISIN_COL, FUND_COL, \"month\"])\n",
" .groupby([ID_COL, ISIN_COL, FUND_COL, \"month\"], as_index=False)\n",
" .agg(\n",
" aum_qty=(AUM_QTY_COL, \"sum\"),\n",
" aum_val=(AUM_VAL_COL, \"sum\"),\n",
" asset_type=(ASSET_COL, \"last\"),\n",
" region=(REGION_COL, \"last\"),\n",
" country=(COUNTRY_COL, \"last\")\n",
" )\n",
")\n",
"\n",
"keys = pd.concat([\n",
" df_flows_m[[ID_COL, ISIN_COL, \"month\"]],\n",
" df_aum_m[[ID_COL, ISIN_COL, \"month\"]]\n",
"]).drop_duplicates()\n",
"\n",
"df_rel_m = (\n",
" keys\n",
" .merge(df_aum_m, on=[ID_COL, ISIN_COL, \"month\"], how=\"left\")\n",
" .merge(df_flows_m, on=[ID_COL, ISIN_COL, \"month\"], how=\"left\", suffixes=(\"\", \"_flow\"))\n",
")\n",
"\n",
"for c in [\"aum_qty\", \"aum_val\", \"net_flow_qty\", \"gross_flow_qty\", \"sub_qty\", \"red_qty\", \"n_tx\"]:\n",
" df_rel_m[c] = df_rel_m[c].fillna(0)\n",
"\n",
"df_rel_m[\"region\"] = df_rel_m[\"region\"].fillna(df_rel_m.get(\"region_flow\"))\n",
"df_rel_m[\"country\"] = df_rel_m[\"country\"].fillna(df_rel_m.get(\"country_flow\"))\n",
"\n",
"df_rel_m[\"active_rel_month\"] = (df_rel_m[\"gross_flow_qty\"] > 0).astype(int)\n",
"df_rel_m[\"holding_rel_month\"] = (df_rel_m[\"aum_qty\"] > 0).astype(int)\n",
"\n",
"df_rel_m[\"flow_to_aum_rel\"] = np.where(\n",
" df_rel_m[\"aum_qty\"].abs() > 0,\n",
" df_rel_m[\"net_flow_qty\"] / df_rel_m[\"aum_qty\"].abs(),\n",
" np.nan\n",
")\n",
"\n",
"df_rel_m[\"turnover_rel\"] = np.where(\n",
" df_rel_m[\"aum_qty\"].abs() > 0,\n",
" df_rel_m[\"gross_flow_qty\"] / df_rel_m[\"aum_qty\"].abs(),\n",
" np.nan\n",
")\n",
"\n",
"print(\"df_rel_m shape:\", df_rel_m.shape)"
]
},
{
"cell_type": "markdown",
"id": "f01d71f0",
"metadata": {},
"source": [
"## 5. NAV mensuel et taux"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "7f9c6e2a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Panel with NAV/rates: (5184382, 22)\n"
]
}
],
"source": [
"df_nav_m = (\n",
" df_nav\n",
" .dropna(subset=[NAV_ISIN_COL, \"month\", NAV_PRICE_COL])\n",
" .sort_values([NAV_ISIN_COL, \"month\"])\n",
" .groupby([NAV_ISIN_COL, \"month\"], as_index=False)\n",
" .tail(1)\n",
")\n",
"\n",
"df_nav_m[\"ret_fund_m\"] = df_nav_m.groupby(NAV_ISIN_COL)[NAV_PRICE_COL].pct_change()\n",
"\n",
"df_nav_m = df_nav_m.rename(columns={NAV_ISIN_COL: ISIN_COL})[\n",
" [ISIN_COL, \"month\", \"ret_fund_m\"]\n",
"]\n",
"\n",
"df_rates_m = (\n",
" df_rates\n",
" .dropna(subset=[\"month\", RATE_VAL_COL])\n",
" .sort_values(RATE_DATE_COL)\n",
" .groupby(\"month\", as_index=False)\n",
" .tail(1)\n",
")\n",
"\n",
"df_rates_m[\"delta_rate_m\"] = df_rates_m[RATE_VAL_COL].diff()\n",
"df_rates_m = df_rates_m[[\"month\", \"delta_rate_m\"]]\n",
"\n",
"df_rel_m = df_rel_m.merge(df_nav_m, on=[ISIN_COL, \"month\"], how=\"left\")\n",
"df_rel_m = df_rel_m.merge(df_rates_m, on=\"month\", how=\"left\")\n",
"\n",
"for c in [\"ret_fund_m\", \"delta_rate_m\"]:\n",
" df_rel_m[c] = df_rel_m[c].fillna(0)\n",
"\n",
"print(\"Panel with NAV/rates:\", df_rel_m.shape)"
]
},
{
"cell_type": "markdown",
"id": "4bfa5ec6",
"metadata": {},
"source": [
"## 6. Merge des familles"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "70386604",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Missing fund_family: 527529\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Product - Isin</th>\n",
" <th>Product - Fund</th>\n",
" <th>fund_family</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>LU0099161993</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>LU0164455502</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>LU0336083497</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>LU0336083810</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>LU0553415323</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>LU0592698954</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>LU0592699093</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>LU0592699259</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>LU0705572823</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>LU0807689582</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>LU0807690838</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>LU0992624949</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>LU0992625086</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>LU0992626993</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>LU0992627611</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>LU0992629153</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69</th>\n",
" <td>LU0992629401</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>71</th>\n",
" <td>LU0992631563</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>73</th>\n",
" <td>LU1163533422</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>79</th>\n",
" <td>LU1299306321</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Product - Isin Product - Fund fund_family\n",
"0 LU0099161993 NaN NaN\n",
"3 LU0164455502 NaN NaN\n",
"12 LU0336083497 NaN NaN\n",
"15 LU0336083810 NaN NaN\n",
"19 LU0553415323 NaN NaN\n",
"21 LU0592698954 NaN NaN\n",
"29 LU0592699093 NaN NaN\n",
"30 LU0592699259 NaN NaN\n",
"37 LU0705572823 NaN NaN\n",
"40 LU0807689582 NaN NaN\n",
"41 LU0807690838 NaN NaN\n",
"42 LU0992624949 NaN NaN\n",
"53 LU0992625086 NaN NaN\n",
"57 LU0992626993 NaN NaN\n",
"60 LU0992627611 NaN NaN\n",
"67 LU0992629153 NaN NaN\n",
"69 LU0992629401 NaN NaN\n",
"71 LU0992631563 NaN NaN\n",
"73 LU1163533422 NaN NaN\n",
"79 LU1299306321 NaN NaN"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_rel_m = df_rel_m.merge(\n",
" fund_family_table[[ISIN_COL, FUND_COL, \"fund_family\"]],\n",
" on=[ISIN_COL, FUND_COL],\n",
" how=\"left\"\n",
")\n",
"\n",
"print(\"Missing fund_family:\", df_rel_m[\"fund_family\"].isna().sum())\n",
"df_rel_m[[ISIN_COL, FUND_COL, \"fund_family\"]].drop_duplicates().head(20)"
]
},
{
"cell_type": "markdown",
"id": "67f27ac7",
"metadata": {},
"source": [
"## 7. Panel mensuel client × family × mois"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "6e7b1b9e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"df_family_month shape: (3805010, 23)\n"
]
}
],
"source": [
"tmp = df_rel_m.copy()\n",
"\n",
"tmp[\"isin_held_flag\"] = (tmp[\"aum_qty\"] > 0).astype(int)\n",
"tmp[\"isin_active_flag\"] = (tmp[\"gross_flow_qty\"] > 0).astype(int)\n",
"\n",
"df_family_month = (\n",
" tmp\n",
" .dropna(subset=[ID_COL, \"fund_family\", \"month\"])\n",
" .groupby([ID_COL, \"fund_family\", \"month\"], as_index=False)\n",
" .agg(\n",
" aum_qty=(\"aum_qty\", \"sum\"),\n",
" aum_val=(\"aum_val\", \"sum\"),\n",
" net_flow_qty=(\"net_flow_qty\", \"sum\"),\n",
" gross_flow_qty=(\"gross_flow_qty\", \"sum\"),\n",
" sub_qty=(\"sub_qty\", \"sum\"),\n",
" red_qty=(\"red_qty\", \"sum\"),\n",
" n_tx=(\"n_tx\", \"sum\"),\n",
" n_isin_held=(\"isin_held_flag\", \"sum\"),\n",
" n_isin_active=(\"isin_active_flag\", \"sum\"),\n",
" ret_fund_m=(\"ret_fund_m\", \"mean\"),\n",
" delta_rate_m=(\"delta_rate_m\", \"first\"),\n",
" region=(\"region\", \"first\"),\n",
" country=(\"country\", \"first\")\n",
" )\n",
" .sort_values([ID_COL, \"fund_family\", \"month\"])\n",
" .reset_index(drop=True)\n",
")\n",
"\n",
"df_family_month[\"active_month\"] = (df_family_month[\"gross_flow_qty\"] > 0).astype(int)\n",
"\n",
"df_family_month[\"flow_to_aum_m\"] = np.where(\n",
" df_family_month[\"aum_qty\"].abs() > 0,\n",
" df_family_month[\"net_flow_qty\"] / df_family_month[\"aum_qty\"].abs(),\n",
" np.nan\n",
")\n",
"\n",
"df_family_month[\"turnover_m\"] = np.where(\n",
" df_family_month[\"aum_qty\"].abs() > 0,\n",
" df_family_month[\"gross_flow_qty\"] / df_family_month[\"aum_qty\"].abs(),\n",
" np.nan\n",
")\n",
"\n",
"df_family_month[\"sub_share_m\"] = np.where(\n",
" df_family_month[\"gross_flow_qty\"] > 0,\n",
" df_family_month[\"sub_qty\"] / df_family_month[\"gross_flow_qty\"],\n",
" np.nan\n",
")\n",
"\n",
"df_family_month[\"red_share_m\"] = np.where(\n",
" df_family_month[\"gross_flow_qty\"] > 0,\n",
" df_family_month[\"red_qty\"] / df_family_month[\"gross_flow_qty\"],\n",
" np.nan\n",
")\n",
"\n",
"df_family_month[\"aum_peak_to_date\"] = df_family_month.groupby([ID_COL, \"fund_family\"])[\"aum_qty\"].cummax()\n",
"\n",
"df_family_month[\"aum_drawdown\"] = np.where(\n",
" df_family_month[\"aum_peak_to_date\"] > 0,\n",
" 1 - df_family_month[\"aum_qty\"] / df_family_month[\"aum_peak_to_date\"],\n",
" np.nan\n",
")\n",
"\n",
"print(\"df_family_month shape:\", df_family_month.shape)"
]
},
{
"cell_type": "markdown",
"id": "0e25471b",
"metadata": {},
"source": [
"## 8. Part de la famille dans le portefeuille client"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "e8a57c76",
"metadata": {},
"outputs": [],
"source": [
"df_client_total_month = (\n",
" df_rel_m\n",
" .groupby([ID_COL, \"month\"], as_index=False)\n",
" .agg(\n",
" total_client_aum_qty=(\"aum_qty\", \"sum\"),\n",
" total_client_aum_val=(\"aum_val\", \"sum\")\n",
" )\n",
")\n",
"\n",
"df_family_month = df_family_month.merge(\n",
" df_client_total_month,\n",
" on=[ID_COL, \"month\"],\n",
" how=\"left\"\n",
")\n",
"\n",
"df_family_month[\"family_share_of_client_aum\"] = np.where(\n",
" df_family_month[\"total_client_aum_val\"].abs() > 0,\n",
" df_family_month[\"aum_val\"] / df_family_month[\"total_client_aum_val\"].abs(),\n",
" np.nan\n",
")"
]
},
{
"cell_type": "markdown",
"id": "d8dfff3a",
"metadata": {},
"source": [
"## 9. Features temporelles au niveau client × family × mois"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "734e6d8a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(3805010, 49)\n"
]
}
],
"source": [
"tmp = df_family_month.sort_values([ID_COL, \"fund_family\", \"month\"]).reset_index(drop=True)\n",
"\n",
"tmp[\"prev_aum\"] = tmp.groupby([ID_COL, \"fund_family\"])[\"aum_qty\"].shift(1)\n",
"tmp[\"entry_event\"] = ((tmp[\"prev_aum\"].fillna(0) <= 0) & (tmp[\"aum_qty\"] > 0)).astype(int)\n",
"tmp[\"full_exit_event\"] = ((tmp[\"prev_aum\"] > 0) & (tmp[\"aum_qty\"] <= 0)).astype(int)\n",
"\n",
"tmp[\"ret_fund_m_lag1\"] = tmp.groupby([ID_COL, \"fund_family\"])[\"ret_fund_m\"].shift(1)\n",
"\n",
"tmp[\"buy_on_perf\"] = ((tmp[\"net_flow_qty\"] > 0) & (tmp[\"ret_fund_m_lag1\"] > 0)).astype(int)\n",
"tmp[\"sell_on_perf\"] = ((tmp[\"net_flow_qty\"] < 0) & (tmp[\"ret_fund_m_lag1\"] < 0)).astype(int)\n",
"\n",
"tmp[\"ret_fund_mean3_lag1\"] = (\n",
" tmp.groupby([ID_COL, \"fund_family\"])[\"ret_fund_m\"]\n",
" .transform(lambda s: s.shift(1).rolling(3, min_periods=1).mean())\n",
")\n",
"tmp[\"ret_fund_mean6_lag1\"] = (\n",
" tmp.groupby([ID_COL, \"fund_family\"])[\"ret_fund_m\"]\n",
" .transform(lambda s: s.shift(1).rolling(6, min_periods=1).mean())\n",
")\n",
"\n",
"tmp[\"buy_on_perf_mean3\"] = ((tmp[\"net_flow_qty\"] > 0) & (tmp[\"ret_fund_mean3_lag1\"] > 0)).astype(int)\n",
"tmp[\"sell_on_perf_mean3\"] = ((tmp[\"net_flow_qty\"] < 0) & (tmp[\"ret_fund_mean3_lag1\"] < 0)).astype(int)\n",
"tmp[\"buy_on_perf_mean6\"] = ((tmp[\"net_flow_qty\"] > 0) & (tmp[\"ret_fund_mean6_lag1\"] > 0)).astype(int)\n",
"tmp[\"sell_on_perf_mean6\"] = ((tmp[\"net_flow_qty\"] < 0) & (tmp[\"ret_fund_mean6_lag1\"] < 0)).astype(int)\n",
"\n",
"# Rolling means\n",
"for w in [3, 6, 12]:\n",
" tmp[f\"turnover_mean{w}_avg\"] = (\n",
" tmp.groupby([ID_COL, \"fund_family\"])[\"turnover_m\"]\n",
" .transform(lambda s: s.rolling(w, min_periods=1).mean())\n",
" )\n",
" tmp[f\"flow_to_aum_mean{w}_avg\"] = (\n",
" tmp.groupby([ID_COL, \"fund_family\"])[\"flow_to_aum_m\"]\n",
" .transform(lambda s: s.rolling(w, min_periods=1).mean())\n",
" )\n",
"\n",
"# Performance behavior features demandées\n",
"# Corrélation entre flow_to_aum_m et moyenne glissante passée des rendements\n",
"def safe_corr(x, y):\n",
" mask = (~pd.isna(x)) & (~pd.isna(y))\n",
" if mask.sum() < 3:\n",
" return np.nan\n",
" if np.nanstd(x[mask]) == 0 or np.nanstd(y[mask]) == 0:\n",
" return np.nan\n",
" return np.corrcoef(x[mask], y[mask])[0, 1]\n",
"\n",
"# Signal buy_after_good_perf à 3m / 6m\n",
"tmp[\"good_perf_3m\"] = (tmp[\"ret_fund_mean3_lag1\"] > 0).astype(int)\n",
"tmp[\"good_perf_6m\"] = (tmp[\"ret_fund_mean6_lag1\"] > 0).astype(int)\n",
"tmp[\"buy_flag\"] = (tmp[\"net_flow_qty\"] > 0).astype(int)\n",
"tmp[\"buy_after_good_perf_3m\"] = ((tmp[\"buy_flag\"] == 1) & (tmp[\"good_perf_3m\"] == 1)).astype(int)\n",
"tmp[\"buy_after_good_perf_6m\"] = ((tmp[\"buy_flag\"] == 1) & (tmp[\"good_perf_6m\"] == 1)).astype(int)\n",
"\n",
"print(tmp.shape)"
]
},
{
"cell_type": "markdown",
"id": "1458a477",
"metadata": {},
"source": [
"## 10. Table finale client × family"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "33ce904c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"df_family_client_base shape: (53891, 58)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Registrar Account - ID</th>\n",
" <th>fund_family</th>\n",
" <th>n_months</th>\n",
" <th>n_active_months</th>\n",
" <th>flow_freq</th>\n",
" <th>family_aum_qty_mean</th>\n",
" <th>family_aum_qty_median</th>\n",
" <th>family_aum_qty_max</th>\n",
" <th>family_aum_qty_last</th>\n",
" <th>family_aum_val_mean</th>\n",
" <th>family_aum_val_last</th>\n",
" <th>net_flow_qty_sum</th>\n",
" <th>gross_flow_qty_sum</th>\n",
" <th>gross_flow_qty_mean</th>\n",
" <th>sub_qty_sum</th>\n",
" <th>red_qty_sum</th>\n",
" <th>n_tx_total</th>\n",
" <th>avg_n_isin_held</th>\n",
" <th>max_n_isin_held</th>\n",
" <th>net_flow_qty_vol</th>\n",
" <th>flow_to_aum_mean</th>\n",
" <th>flow_to_aum_vol</th>\n",
" <th>turnover_mean</th>\n",
" <th>turnover_vol</th>\n",
" <th>sub_share_mean</th>\n",
" <th>red_share_mean</th>\n",
" <th>aum_drawdown_last</th>\n",
" <th>aum_drawdown_max</th>\n",
" <th>entry_count</th>\n",
" <th>full_exit_count</th>\n",
" <th>buy_on_perf_rate</th>\n",
" <th>sell_on_perf_rate</th>\n",
" <th>buy_on_perf_mean3_rate</th>\n",
" <th>sell_on_perf_mean3_rate</th>\n",
" <th>buy_on_perf_mean6_rate</th>\n",
" <th>sell_on_perf_mean6_rate</th>\n",
" <th>turnover_mean3_avg</th>\n",
" <th>turnover_mean6_avg</th>\n",
" <th>turnover_mean12_avg</th>\n",
" <th>flow_to_aum_mean3_avg</th>\n",
" <th>flow_to_aum_mean6_avg</th>\n",
" <th>flow_to_aum_mean12_avg</th>\n",
" <th>family_share_of_client_aum_mean</th>\n",
" <th>family_share_of_client_aum_max</th>\n",
" <th>ret_fund_m_mean</th>\n",
" <th>delta_rate_m_mean</th>\n",
" <th>region</th>\n",
" <th>country</th>\n",
" <th>months_since_last_tx_family</th>\n",
" <th>corr_flow_ret_3m</th>\n",
" <th>corr_flow_ret_6m</th>\n",
" <th>buy_after_good_perf_share_3m</th>\n",
" <th>buy_after_good_perf_share_6m</th>\n",
" <th>log_family_aum_val_mean</th>\n",
" <th>gross_flow_to_aum_family</th>\n",
" <th>flow_direction_balance</th>\n",
" <th>exit_rate_per_isin_family</th>\n",
" <th>family_aum_final_to_peak</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>100000014</td>\n",
" <td>Carmignac Portfolio Climate Transition</td>\n",
" <td>80</td>\n",
" <td>0</td>\n",
" <td>0.000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.0</td>\n",
" <td>0.00000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.001500</td>\n",
" <td>-0.008925</td>\n",
" <td>Switzerland</td>\n",
" <td>Switzerland</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>100000016</td>\n",
" <td>Carmignac Emergents</td>\n",
" <td>80</td>\n",
" <td>0</td>\n",
" <td>0.000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.0</td>\n",
" <td>0.00000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.000520</td>\n",
" <td>-0.008925</td>\n",
" <td>United Kingdom</td>\n",
" <td>United Kingdom</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>100000016</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>80</td>\n",
" <td>0</td>\n",
" <td>0.000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.0</td>\n",
" <td>0.00000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.002345</td>\n",
" <td>-0.008925</td>\n",
" <td>United Kingdom</td>\n",
" <td>United Kingdom</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>100000028</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>80</td>\n",
" <td>2</td>\n",
" <td>0.025</td>\n",
" <td>9.529013</td>\n",
" <td>0.0</td>\n",
" <td>109.235</td>\n",
" <td>0.0</td>\n",
" <td>1577.95273</td>\n",
" <td>0.0</td>\n",
" <td>-109.238</td>\n",
" <td>109.238</td>\n",
" <td>1.365475</td>\n",
" <td>0.0</td>\n",
" <td>-109.238</td>\n",
" <td>3.0</td>\n",
" <td>0.1</td>\n",
" <td>1</td>\n",
" <td>10.559919</td>\n",
" <td>-0.021356</td>\n",
" <td>0.060405</td>\n",
" <td>0.021356</td>\n",
" <td>0.060405</td>\n",
" <td>0.0</td>\n",
" <td>-1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.019933</td>\n",
" <td>0.021247</td>\n",
" <td>0.021228</td>\n",
" <td>-0.019933</td>\n",
" <td>-0.021247</td>\n",
" <td>-0.021228</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.002345</td>\n",
" <td>-0.008925</td>\n",
" <td>United Kingdom</td>\n",
" <td>United Kingdom</td>\n",
" <td>121.0</td>\n",
" <td>0.258199</td>\n",
" <td>0.258199</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>7.364517</td>\n",
" <td>11.463727</td>\n",
" <td>-1.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>100000038</td>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>80</td>\n",
" <td>0</td>\n",
" <td>0.000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.0</td>\n",
" <td>0.00000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0.003393</td>\n",
" <td>-0.008925</td>\n",
" <td>Switzerland</td>\n",
" <td>Switzerland</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Registrar Account - ID fund_family n_months \\\n",
"0 100000014 Carmignac Portfolio Climate Transition 80 \n",
"1 100000016 Carmignac Emergents 80 \n",
"2 100000016 Carmignac Patrimoine 80 \n",
"3 100000028 Carmignac Patrimoine 80 \n",
"4 100000038 Carmignac Patrimoine 80 \n",
"\n",
" n_active_months flow_freq family_aum_qty_mean family_aum_qty_median \\\n",
"0 0 0.000 0.000000 0.0 \n",
"1 0 0.000 0.000000 0.0 \n",
"2 0 0.000 0.000000 0.0 \n",
"3 2 0.025 9.529013 0.0 \n",
"4 0 0.000 0.000000 0.0 \n",
"\n",
" family_aum_qty_max family_aum_qty_last family_aum_val_mean \\\n",
"0 0.000 0.0 0.00000 \n",
"1 0.000 0.0 0.00000 \n",
"2 0.000 0.0 0.00000 \n",
"3 109.235 0.0 1577.95273 \n",
"4 0.000 0.0 0.00000 \n",
"\n",
" family_aum_val_last net_flow_qty_sum gross_flow_qty_sum \\\n",
"0 0.0 0.000 0.000 \n",
"1 0.0 0.000 0.000 \n",
"2 0.0 0.000 0.000 \n",
"3 0.0 -109.238 109.238 \n",
"4 0.0 0.000 0.000 \n",
"\n",
" gross_flow_qty_mean sub_qty_sum red_qty_sum n_tx_total avg_n_isin_held \\\n",
"0 0.000000 0.0 0.000 0.0 0.0 \n",
"1 0.000000 0.0 0.000 0.0 0.0 \n",
"2 0.000000 0.0 0.000 0.0 0.0 \n",
"3 1.365475 0.0 -109.238 3.0 0.1 \n",
"4 0.000000 0.0 0.000 0.0 0.0 \n",
"\n",
" max_n_isin_held net_flow_qty_vol flow_to_aum_mean flow_to_aum_vol \\\n",
"0 0 0.000000 NaN 0.000000 \n",
"1 0 0.000000 NaN 0.000000 \n",
"2 0 0.000000 NaN 0.000000 \n",
"3 1 10.559919 -0.021356 0.060405 \n",
"4 0 0.000000 NaN 0.000000 \n",
"\n",
" turnover_mean turnover_vol sub_share_mean red_share_mean \\\n",
"0 NaN 0.000000 NaN NaN \n",
"1 NaN 0.000000 NaN NaN \n",
"2 NaN 0.000000 NaN NaN \n",
"3 0.021356 0.060405 0.0 -1.0 \n",
"4 NaN 0.000000 NaN NaN \n",
"\n",
" aum_drawdown_last aum_drawdown_max entry_count full_exit_count \\\n",
"0 NaN NaN 0 0 \n",
"1 NaN NaN 0 0 \n",
"2 NaN NaN 0 0 \n",
"3 1.0 1.0 1 1 \n",
"4 NaN NaN 0 0 \n",
"\n",
" buy_on_perf_rate sell_on_perf_rate buy_on_perf_mean3_rate \\\n",
"0 0.0 0.0 0.0 \n",
"1 0.0 0.0 0.0 \n",
"2 0.0 0.0 0.0 \n",
"3 0.0 0.0 0.0 \n",
"4 0.0 0.0 0.0 \n",
"\n",
" sell_on_perf_mean3_rate buy_on_perf_mean6_rate sell_on_perf_mean6_rate \\\n",
"0 0.0 0.0 0.0 \n",
"1 0.0 0.0 0.0 \n",
"2 0.0 0.0 0.0 \n",
"3 0.0 0.0 0.0 \n",
"4 0.0 0.0 0.0 \n",
"\n",
" turnover_mean3_avg turnover_mean6_avg turnover_mean12_avg \\\n",
"0 NaN NaN NaN \n",
"1 NaN NaN NaN \n",
"2 NaN NaN NaN \n",
"3 0.019933 0.021247 0.021228 \n",
"4 NaN NaN NaN \n",
"\n",
" flow_to_aum_mean3_avg flow_to_aum_mean6_avg flow_to_aum_mean12_avg \\\n",
"0 NaN NaN NaN \n",
"1 NaN NaN NaN \n",
"2 NaN NaN NaN \n",
"3 -0.019933 -0.021247 -0.021228 \n",
"4 NaN NaN NaN \n",
"\n",
" family_share_of_client_aum_mean family_share_of_client_aum_max \\\n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 1.0 1.0 \n",
"4 NaN NaN \n",
"\n",
" ret_fund_m_mean delta_rate_m_mean region country \\\n",
"0 0.001500 -0.008925 Switzerland Switzerland \n",
"1 0.000520 -0.008925 United Kingdom United Kingdom \n",
"2 0.002345 -0.008925 United Kingdom United Kingdom \n",
"3 0.002345 -0.008925 United Kingdom United Kingdom \n",
"4 0.003393 -0.008925 Switzerland Switzerland \n",
"\n",
" months_since_last_tx_family corr_flow_ret_3m corr_flow_ret_6m \\\n",
"0 0.0 0.000000 0.000000 \n",
"1 0.0 0.000000 0.000000 \n",
"2 0.0 0.000000 0.000000 \n",
"3 121.0 0.258199 0.258199 \n",
"4 0.0 0.000000 0.000000 \n",
"\n",
" buy_after_good_perf_share_3m buy_after_good_perf_share_6m \\\n",
"0 0.0 0.0 \n",
"1 0.0 0.0 \n",
"2 0.0 0.0 \n",
"3 0.0 0.0 \n",
"4 0.0 0.0 \n",
"\n",
" log_family_aum_val_mean gross_flow_to_aum_family flow_direction_balance \\\n",
"0 0.000000 NaN NaN \n",
"1 0.000000 NaN NaN \n",
"2 0.000000 NaN NaN \n",
"3 7.364517 11.463727 -1.0 \n",
"4 0.000000 NaN NaN \n",
"\n",
" exit_rate_per_isin_family family_aum_final_to_peak \n",
"0 NaN NaN \n",
"1 NaN NaN \n",
"2 NaN NaN \n",
"3 1.0 0.0 \n",
"4 NaN NaN "
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"months_since_last_tx = add_months_since_last_tx_by_group(\n",
" tmp,\n",
" id_cols=[ID_COL, \"fund_family\"],\n",
" active_col=\"active_month\",\n",
" month_col=\"month\",\n",
" suffix=\"_family\"\n",
")\n",
"\n",
"# Corrélations client x family\n",
"corr_table = (\n",
" tmp.groupby([ID_COL, \"fund_family\"])\n",
" .apply(lambda g: pd.Series({\n",
" \"corr_flow_ret_3m\": safe_corr(g[\"flow_to_aum_m\"].to_numpy(dtype=float), g[\"ret_fund_mean3_lag1\"].to_numpy(dtype=float)),\n",
" \"corr_flow_ret_6m\": safe_corr(g[\"flow_to_aum_m\"].to_numpy(dtype=float), g[\"ret_fund_mean6_lag1\"].to_numpy(dtype=float)),\n",
" \"buy_after_good_perf_share_3m\":\n",
" np.nan if g[\"buy_flag\"].sum() == 0 else g[\"buy_after_good_perf_3m\"].sum() / g[\"buy_flag\"].sum(),\n",
" \"buy_after_good_perf_share_6m\":\n",
" np.nan if g[\"buy_flag\"].sum() == 0 else g[\"buy_after_good_perf_6m\"].sum() / g[\"buy_flag\"].sum(),\n",
" }))\n",
" .reset_index()\n",
")\n",
"\n",
"df_family_client_base = (\n",
" tmp\n",
" .groupby([ID_COL, \"fund_family\"], as_index=False)\n",
" .agg(\n",
" n_months=(\"month\", \"nunique\"),\n",
" n_active_months=(\"active_month\", \"sum\"),\n",
" flow_freq=(\"active_month\", \"mean\"),\n",
"\n",
" family_aum_qty_mean=(\"aum_qty\", \"mean\"),\n",
" family_aum_qty_median=(\"aum_qty\", \"median\"),\n",
" family_aum_qty_max=(\"aum_qty\", \"max\"),\n",
" family_aum_qty_last=(\"aum_qty\", \"last\"),\n",
"\n",
" family_aum_val_mean=(\"aum_val\", \"mean\"),\n",
" family_aum_val_last=(\"aum_val\", \"last\"),\n",
"\n",
" net_flow_qty_sum=(\"net_flow_qty\", \"sum\"),\n",
" gross_flow_qty_sum=(\"gross_flow_qty\", \"sum\"),\n",
" gross_flow_qty_mean=(\"gross_flow_qty\", \"mean\"),\n",
"\n",
" sub_qty_sum=(\"sub_qty\", \"sum\"),\n",
" red_qty_sum=(\"red_qty\", \"sum\"),\n",
" n_tx_total=(\"n_tx\", \"sum\"),\n",
"\n",
" avg_n_isin_held=(\"n_isin_held\", \"mean\"),\n",
" max_n_isin_held=(\"n_isin_held\", \"max\"),\n",
"\n",
" net_flow_qty_vol=(\"net_flow_qty\", \"std\"),\n",
" flow_to_aum_mean=(\"flow_to_aum_m\", \"mean\"),\n",
" flow_to_aum_vol=(\"flow_to_aum_m\", \"std\"),\n",
" turnover_mean=(\"turnover_m\", \"mean\"),\n",
" turnover_vol=(\"turnover_m\", \"std\"),\n",
"\n",
" sub_share_mean=(\"sub_share_m\", \"mean\"),\n",
" red_share_mean=(\"red_share_m\", \"mean\"),\n",
"\n",
" aum_drawdown_last=(\"aum_drawdown\", \"last\"),\n",
" aum_drawdown_max=(\"aum_drawdown\", \"max\"),\n",
"\n",
" entry_count=(\"entry_event\", \"sum\"),\n",
" full_exit_count=(\"full_exit_event\", \"sum\"),\n",
"\n",
" buy_on_perf_rate=(\"buy_on_perf\", \"mean\"),\n",
" sell_on_perf_rate=(\"sell_on_perf\", \"mean\"),\n",
" buy_on_perf_mean3_rate=(\"buy_on_perf_mean3\", \"mean\"),\n",
" sell_on_perf_mean3_rate=(\"sell_on_perf_mean3\", \"mean\"),\n",
" buy_on_perf_mean6_rate=(\"buy_on_perf_mean6\", \"mean\"),\n",
" sell_on_perf_mean6_rate=(\"sell_on_perf_mean6\", \"mean\"),\n",
"\n",
" turnover_mean3_avg=(\"turnover_mean3_avg\", \"mean\"),\n",
" turnover_mean6_avg=(\"turnover_mean6_avg\", \"mean\"),\n",
" turnover_mean12_avg=(\"turnover_mean12_avg\", \"mean\"),\n",
"\n",
" flow_to_aum_mean3_avg=(\"flow_to_aum_mean3_avg\", \"mean\"),\n",
" flow_to_aum_mean6_avg=(\"flow_to_aum_mean6_avg\", \"mean\"),\n",
" flow_to_aum_mean12_avg=(\"flow_to_aum_mean12_avg\", \"mean\"),\n",
"\n",
" family_share_of_client_aum_mean=(\"family_share_of_client_aum\", \"mean\"),\n",
" family_share_of_client_aum_max=(\"family_share_of_client_aum\", \"max\"),\n",
"\n",
" ret_fund_m_mean=(\"ret_fund_m\", \"mean\"),\n",
" delta_rate_m_mean=(\"delta_rate_m\", \"mean\"),\n",
"\n",
" region=(\"region\", \"last\"),\n",
" country=(\"country\", \"last\"),\n",
" )\n",
" .merge(months_since_last_tx, on=[ID_COL, \"fund_family\"], how=\"left\")\n",
" .merge(corr_table, on=[ID_COL, \"fund_family\"], how=\"left\")\n",
")\n",
"\n",
"# Features additionnelles \n",
"df_family_client_base[\"log_family_aum_val_mean\"] = np.log1p(\n",
" df_family_client_base[\"family_aum_val_mean\"].clip(lower=0)\n",
")\n",
"df_family_client_base[\"gross_flow_to_aum_family\"] = np.where(\n",
" df_family_client_base[\"family_aum_qty_mean\"].abs() > 0,\n",
" df_family_client_base[\"gross_flow_qty_sum\"] / df_family_client_base[\"family_aum_qty_mean\"].abs(),\n",
" np.nan\n",
")\n",
"df_family_client_base[\"flow_direction_balance\"] = np.where(\n",
" df_family_client_base[\"gross_flow_qty_sum\"].abs() > 0,\n",
" df_family_client_base[\"net_flow_qty_sum\"] / df_family_client_base[\"gross_flow_qty_sum\"].abs(),\n",
" np.nan\n",
")\n",
"df_family_client_base[\"exit_rate_per_isin_family\"] = np.where(\n",
" df_family_client_base[\"avg_n_isin_held\"].abs() > 0,\n",
" df_family_client_base[\"full_exit_count\"] / df_family_client_base[\"avg_n_isin_held\"].clip(lower=1),\n",
" np.nan\n",
")\n",
"df_family_client_base[\"family_aum_final_to_peak\"] = np.where(\n",
" df_family_client_base[\"aum_drawdown_last\"].notna(),\n",
" 1 - df_family_client_base[\"aum_drawdown_last\"],\n",
" np.nan\n",
")\n",
"\n",
"for col in [\n",
" \"net_flow_qty_vol\", \"flow_to_aum_vol\", \"turnover_vol\",\n",
" \"months_since_last_tx_family\", \"corr_flow_ret_3m\", \"corr_flow_ret_6m\",\n",
" \"buy_after_good_perf_share_3m\", \"buy_after_good_perf_share_6m\"\n",
"]:\n",
" if col in df_family_client_base.columns:\n",
" df_family_client_base[col] = df_family_client_base[col].fillna(0)\n",
"\n",
"print(\"df_family_client_base shape:\", df_family_client_base.shape)\n",
"df_family_client_base.head(5)"
]
},
{
"cell_type": "markdown",
"id": "d8625505",
"metadata": {},
"source": [
"## 11. Top 15 families"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "3c7f596f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Top 15 families:\n",
"01 - Carmignac Patrimoine\n",
"02 - Carmignac Sécurité\n",
"03 - Carmignac Investissement\n",
"04 - Carmignac Credit <NUM>\n",
"05 - Carmignac Portfolio Sécurité\n",
"06 - Carmignac Portfolio Flexible Bond\n",
"07 - Carmignac Portfolio Credit\n",
"08 - Carmignac Emergents\n",
"09 - Carmignac Court Terme\n",
"10 - Carmignac Portfolio Long-Short European Equities\n",
"11 - Carmignac Portfolio Grande Europe\n",
"12 - Carmignac Portfolio Emergents\n",
"13 - Carmignac Portfolio Global Bond\n",
"14 - Carmignac Portfolio Patrimoine\n",
"15 - Carmignac Portfolio Emerging Patrimoine\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>fund_family</th>\n",
" <th>n_clients</th>\n",
" <th>total_family_aum</th>\n",
" <th>avg_family_aum</th>\n",
" <th>total_gross_flow</th>\n",
" <th>total_tx</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>6183</td>\n",
" <td>6.668324e+09</td>\n",
" <td>2.730239e+06</td>\n",
" <td>1.199596e+07</td>\n",
" <td>49953.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Carmignac Sécurité</td>\n",
" <td>2825</td>\n",
" <td>5.359539e+09</td>\n",
" <td>3.274706e+06</td>\n",
" <td>5.239893e+06</td>\n",
" <td>36860.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Carmignac Investissement</td>\n",
" <td>4982</td>\n",
" <td>4.111151e+09</td>\n",
" <td>9.593080e+05</td>\n",
" <td>1.304787e+06</td>\n",
" <td>20269.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Carmignac Credit &lt;NUM&gt;</td>\n",
" <td>436</td>\n",
" <td>4.082249e+09</td>\n",
" <td>4.098273e+06</td>\n",
" <td>5.065680e+06</td>\n",
" <td>6893.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Carmignac Portfolio Sécurité</td>\n",
" <td>1264</td>\n",
" <td>2.688287e+09</td>\n",
" <td>2.178355e+06</td>\n",
" <td>1.756042e+07</td>\n",
" <td>13177.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Carmignac Portfolio Flexible Bond</td>\n",
" <td>1431</td>\n",
" <td>2.483972e+09</td>\n",
" <td>1.498464e+06</td>\n",
" <td>1.029621e+06</td>\n",
" <td>12046.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Carmignac Portfolio Credit</td>\n",
" <td>1135</td>\n",
" <td>2.356507e+09</td>\n",
" <td>1.132726e+06</td>\n",
" <td>4.493724e+06</td>\n",
" <td>8018.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Carmignac Emergents</td>\n",
" <td>4231</td>\n",
" <td>1.095901e+09</td>\n",
" <td>3.089076e+05</td>\n",
" <td>2.353374e+06</td>\n",
" <td>12011.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Carmignac Court Terme</td>\n",
" <td>1331</td>\n",
" <td>9.948195e+08</td>\n",
" <td>3.681887e+05</td>\n",
" <td>2.222615e+05</td>\n",
" <td>5745.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Carmignac Portfolio Long-Short European Equities</td>\n",
" <td>689</td>\n",
" <td>7.283139e+08</td>\n",
" <td>1.129733e+06</td>\n",
" <td>3.032355e+06</td>\n",
" <td>4884.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Carmignac Portfolio Grande Europe</td>\n",
" <td>2950</td>\n",
" <td>5.882891e+08</td>\n",
" <td>2.852247e+05</td>\n",
" <td>2.061285e+06</td>\n",
" <td>9341.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Carmignac Portfolio Emergents</td>\n",
" <td>650</td>\n",
" <td>5.466360e+08</td>\n",
" <td>6.443657e+05</td>\n",
" <td>1.722755e+06</td>\n",
" <td>9211.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Carmignac Portfolio Global Bond</td>\n",
" <td>2114</td>\n",
" <td>5.445575e+08</td>\n",
" <td>4.059678e+05</td>\n",
" <td>3.476952e+06</td>\n",
" <td>18356.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Carmignac Portfolio Patrimoine</td>\n",
" <td>1234</td>\n",
" <td>5.127245e+08</td>\n",
" <td>7.907827e+05</td>\n",
" <td>5.253474e+06</td>\n",
" <td>9133.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Carmignac Portfolio Emerging Patrimoine</td>\n",
" <td>1673</td>\n",
" <td>3.315211e+08</td>\n",
" <td>4.169396e+05</td>\n",
" <td>3.368469e+06</td>\n",
" <td>13732.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" fund_family n_clients \\\n",
"0 Carmignac Patrimoine 6183 \n",
"1 Carmignac Sécurité 2825 \n",
"2 Carmignac Investissement 4982 \n",
"3 Carmignac Credit <NUM> 436 \n",
"4 Carmignac Portfolio Sécurité 1264 \n",
"5 Carmignac Portfolio Flexible Bond 1431 \n",
"6 Carmignac Portfolio Credit 1135 \n",
"7 Carmignac Emergents 4231 \n",
"8 Carmignac Court Terme 1331 \n",
"9 Carmignac Portfolio Long-Short European Equities 689 \n",
"10 Carmignac Portfolio Grande Europe 2950 \n",
"11 Carmignac Portfolio Emergents 650 \n",
"12 Carmignac Portfolio Global Bond 2114 \n",
"13 Carmignac Portfolio Patrimoine 1234 \n",
"14 Carmignac Portfolio Emerging Patrimoine 1673 \n",
"\n",
" total_family_aum avg_family_aum total_gross_flow total_tx \n",
"0 6.668324e+09 2.730239e+06 1.199596e+07 49953.0 \n",
"1 5.359539e+09 3.274706e+06 5.239893e+06 36860.0 \n",
"2 4.111151e+09 9.593080e+05 1.304787e+06 20269.0 \n",
"3 4.082249e+09 4.098273e+06 5.065680e+06 6893.0 \n",
"4 2.688287e+09 2.178355e+06 1.756042e+07 13177.0 \n",
"5 2.483972e+09 1.498464e+06 1.029621e+06 12046.0 \n",
"6 2.356507e+09 1.132726e+06 4.493724e+06 8018.0 \n",
"7 1.095901e+09 3.089076e+05 2.353374e+06 12011.0 \n",
"8 9.948195e+08 3.681887e+05 2.222615e+05 5745.0 \n",
"9 7.283139e+08 1.129733e+06 3.032355e+06 4884.0 \n",
"10 5.882891e+08 2.852247e+05 2.061285e+06 9341.0 \n",
"11 5.466360e+08 6.443657e+05 1.722755e+06 9211.0 \n",
"12 5.445575e+08 4.059678e+05 3.476952e+06 18356.0 \n",
"13 5.127245e+08 7.907827e+05 5.253474e+06 9133.0 \n",
"14 3.315211e+08 4.169396e+05 3.368469e+06 13732.0 "
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"top_family_table = (\n",
" df_family_client_base\n",
" .groupby(\"fund_family\", as_index=False)\n",
" .agg(\n",
" n_clients=(ID_COL, \"nunique\"),\n",
" total_family_aum=(\"family_aum_val_last\", \"sum\"),\n",
" avg_family_aum=(\"family_aum_val_mean\", \"mean\"),\n",
" total_gross_flow=(\"gross_flow_qty_sum\", \"sum\"),\n",
" total_tx=(\"n_tx_total\", \"sum\")\n",
" )\n",
" .sort_values([\"total_family_aum\", \"n_clients\"], ascending=[False, False])\n",
" .reset_index(drop=True)\n",
")\n",
"\n",
"top_15_families = top_family_table.head(15)[\"fund_family\"].tolist()\n",
"\n",
"print(\"Top 15 families:\")\n",
"for i, fam in enumerate(top_15_families, 1):\n",
" print(f\"{i:02d} - {fam}\")\n",
"\n",
"top_family_table.head(15)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "e517fa73",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKYAAAJOCAYAAACN2Q8zAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XlcVdX+//HXATEccqZyQEVJVMQ4SJmKkliZmJqKOZtDZqY5Bxg3xdLENO0KEkaGSKalATml90o3E6cysyzHnBBnMTUEBQ78/vDH+XoCFHA4ou/n48Hjwd577bU+e60Dyae11jbk5OTkICIiIiIiIiIicpfZWDsAERERERERERF5MCkxJSIiIiIiIiIiVqHElIiIiIiIiIiIWIUSUyIiIiIiIiIiYhVKTImIiIiIiIiIiFUoMSUiIiIiIiIiIlahxJSIiIiIiIiIiFiFElMiIiIiIiIiImIVSkyJiIiIiIiIiIhVKDElIiIiIg+UTz/9lHbt2tGoUSO6dOly19t3cXEhNDT0puXOnTvHqFGjaN68OS4uLixcuPDOB3cdHx8fAgMDzcfbtm3DxcWFbdu2mc8FBgbi4+Nz1+MaNmzYXW3TWv45BiIi96NS1g5ARERERKzDxcWlUOUWLVpE8+bN72gsX3zxBVu3buW3337j5MmTdO3alZCQkDzlYmNjmThxYr51JCYm4uDgcMN2EhMTmTlzJp07d+bNN9+kcuXKtyX+O2H69Ols3LiRkSNHUq1aNZo0aWLtkB4Yp0+f5quvvuLZZ5+lUaNGxapjw4YN/Pbbb7z55pu3ObqCXbp0iVatWpGRkcGaNWuoX79+njL9+/fnr7/+YtWqVXmunT9/nhYtWjBy5Ehz3Nf/zC1evBhPT0+Le3JycnjmmWc4deoUzzzzDPPnz78DTyYi9zMlpkREREQeUB988IHF8TfffMOmTZvynM/vj9vb7dNPP+Xy5cu4ublx9uzZm5YfNWoUtWrVsjhXoUKFm963detWbGxsmDZtGqVLly52vHfD1q1badeuHUOGDLFK+2vXrsVgMNywzHvvvUdOTs5diujuOXPmDGFhYdSsWfOWElOLFy++q4mp3DFzcHBgxYoVjB079rbV/dBDD7Fq1ao8iakff/yRU6dO3fM/TyJy71JiSkREROQB9c9lbL/++iubNm2yyvK2mJgYatSogcFgwGg03rR8mzZtcHNzK3I7KSkp2Nvbl4g/olNSUgqVbLtTCtNHdnZ2dyESKawVK1bg7e1NjRo1WLVq1W1NTHl7e7N27Vr+9a9/UarU//0ZuWrVKlxdXblw4cJta0tEHizaY0pERERECpSWlkZISAje3t40adKE9u3bs2DBgjyzZFxcXHj33XdZsWIF7du3x83NjW7duvHTTz8Vqp2aNWvedHbOP6WmpmIymQpd3sXFhdjYWNLS0nBxcTEfJycnm7/P757r94MKDQ3FxcWFo0ePEhgYiKenJ82aNWPixImkp6db3JuRkcH777/P008/jdFo5PXXX+fUqVM3jTM2NhYXFxdycnJYvHixOVaACxcuMGPGDDp16oTRaMTDw4NXX32VvXv3WtSRux/UmjVrCAsLo3Xr1hiNRkaNGsXff/9NRkYG06ZNo0WLFhiNRiZOnEhGRoZFHYXZ3yi/Paays7NZuHAhHTt2xM3NjZYtWzJp0iQuXrxoUW7Xrl0MGTKE5s2b07RpU3x8fApcppmfxMREunTpgpubG76+vvznP/8xXzt27FiB+3Lt2LEDFxeXfJeywbW+8/PzA2DixIkWn5Vc3377Ld26daNp06Y0b96cCRMmcPr0aYt+Wbx4MYD5/uuXzi5YsIBevXqZn71bt26sXbu20M+enxMnTrB9+3Z8fX3p2LEjycnJ7Nix45bqvF7Hjh25cOECmzZtMp/LyMhg3bp1dOrU6ba1IyIPHs2YEhEREZF85eTkMHz4cPMf6o0aNWLjxo188MEHnD59mrffftui/E8//cSaNWvo378/pUuXZsmSJbz66qssW7aMBg0a3NbYBgwYQFpaGnZ2dnh5eREYGEjdunVveM8HH3zAV199xW+//cbUqVMB8PDwKFb7Y8aMoVatWowbN47du3ezbNkyqlSpwltvvWUuExQUxIoVK3jxxRfx8PBg69atvPbaazet+8knn+SDDz7A39+fVq1aWcxgO3bsGOvXr+eFF16gVq1anDt3ji+//JJ+/fqxevVqHn30UYu6PvnkE+zt7Xnttdc4evQon3/+OaVKlcJgMHDp0iVGjhzJr7/+SmxsLDVr1mTkyJHF6o/rTZo0ibi4OLp160b//v1JTk5m8eLF7N69myVLlmBnZ0dKSgpDhgyhcuXKvPbaa1SoUIHk5GT++9//FqqNI0eOMHbsWHr16kXXrl35+uuvGT16NJ9++imtWrXC0dERDw8PVqxYwcCBAy3uXblyJeXKlaNdu3b51l2/fn1GjRrF3Llz6dmzJ82aNQP+77OSu+eSm5sb48aNIyUlhUWLFrFjxw7i4+OpUKECPXv25MyZM/kujYVr+7b5+PjQqVMnMjMzWb16NaNHj2b+/Pk888wzhe/s66xatYoyZcrQtm1b7O3tqV27NitXriz2Z/yfatasibu7O6tXr8bb2xuAH374gb///htfX19iYmJuSzsi8uBRYkpERERE8pWQkMDWrVsZM2YMw4cPB6Bv376MGjWKRYsW0a9fP2rXrm0uv3//fr7++mvzJt0dO3bkhRdeYO7cuYSFhd2WmOzt7enWrRvNmzenfPny/P777yxcuJBevXoRFxdH9erVC7y3S5cubNmyhd27d1ske5KTk4scR6NGjXj//ffNxxcuXGD58uXmxNTevXtZsWIFffr0YfLkycC1vhs/fjz79u27Yd2Ojo44Ojri7+9P3bp1LWJ1cXFh3bp12Nj838KHLl260KFDB5YvX86IESMs6jKZTMTExJiX3P3111+sXr2a1q1bExkZaY4rKSmJ2NjYW05Mbd++nWXLljFr1iyLWTTNmzfn1VdfZe3atXTq1IlffvmFixcvsmDBAoslmYVdenbkyBFCQ0N5/vnnAfDz8+OFF15g1qxZtGrVCoCXXnqJSZMmcfDgQfM+aZmZmXz77bc8//zzlClTJt+6q1WrRps2bZg7dy7u7u4W/Z+ZmcmsWbNo0KABixcv5qGHHgKgWbNmDBs2jIULFzJq1CiMRiN169YtcGnsunXrsLe3Nx/37duXbt26ERUVVezE1MqVK2nXrp25Xl9fX7788kuCgoIslt7dik6dOvHhhx9y5coV7O3tWblyJU8++WSehKiISFFoKZ+IiIiI5OuHH37A1taW/v37W5wfPHgwOTk5/PDDDxbnjUajxZvjatSoQbt27UhMTCzSkrsb8fX1Zfr06bz00ks8++yzjBkzhk8//ZQLFy7w8ccf35Y2CqNXr14Wx56enly4cIHU1FTg2sbXQJ6+e+WVV26p3dKlS5uTUiaTib/++ouyZcvi5OTE7t2785Tv0qWLxT5QTZs2JScnh+7du1uUa9q0KSdPniQrK+uW4lu7di0PP/wwrVq14vz58+YvV1dXypYty7Zt2wB4+OGHAfj+++/JzMwscjuPPPIIzz33nPm4fPnyvPTSS+zevdu8eX6HDh146KGHWLlypblcYmIif/31F507dy7W8/3++++kpKTQu3dvc1IK4JlnnqFevXp8//33harn+qTUxYsX+fvvv2nWrFm+Y1gYe/fuZf/+/bz44ovmcx07duSvv/4iMTGxWHXmp0OHDly9epX//e9/pKam8v3332sZn4jcMs2YEhEREZF8HT9+nEceeYTy5ctbnM+dfXL8+HGL83Xq1MlTR926dUlPT+f8+fM4ODjckTg9PT154okn2LJlyx2pPz81atSwOM7dpPzixYuUL1+e48ePY2NjYzGjDKBevXq31G52djaLFi3iiy++IDk52SLhV6lSpZvGmZsQ+ufMsocffpjs7Gz+/vtvKleuXOz4jh49yt9//02LFi3yvZ6SkgLAU089Rfv27QkLC2PhwoU89dRTPPvss3Tq1KlQm67XqVMnz55kuUs
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAJOCAYAAABm7rQwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XlcVdX+//HXATGcEaVyQEVRVMQAKVNRCisTcwRznjNzuM4Bxr2KpYlD2hUljAyRTEsDUjO9V+7NxIEys8z5ioo4D6khinDg94c/ztcTKIMKJu/n48Hjwd577bU+ey0Oyae11jZkZ2dnIyIiIiIiIiIiUowsSjoAEREREREREREpfZSUEhERERERERGRYqeklIiIiIiIiIiIFDslpUREREREREREpNgpKSUiIiIiIiIiIsVOSSkRERERERERESl2SkqJiIiIiIiIiEixU1JKRERERERERESKnZJSIiIiIiIiIiJS7JSUEhEREZFi98knn9C+fXuaNGlC165di719JycnQkND8y138eJFxo4dS8uWLXFycmLZsmUPP7g7eHt7ExgYaDpOTEzEycmJxMRE07nAwEC8vb2LPa4RI0YUa5uPCicnJ959992SDqNAMjMzmTNnDl5eXjRu3JhRo0bdV315/awV9LMkIpKXMiUdgIiIiEhp5uTkVKByy5cvp2XLlg81ls8//5ydO3fy66+/cubMGbp3705ISEiucjExMUyZMiXPOhISErCzs7tnOwkJCcydO5cuXbrwt7/9japVqz6Q+B+GWbNmsXXrVsaMGUP16tVp1qxZSYckUmBfffUVS5cuZdCgQTRt2pSaNWuWdEhFsm7dOi5dusTgwYNLOhQRecCUlBIREREpQXPmzDE7/vrrr9m2bVuu8w0aNHjosXzyySdcv34dFxcXLly4kG/5sWPHUrt2bbNzlStXzve+nTt3YmFhwcyZMylbtmyR4y0OO3fupH379gwbNqxE2t+4cSMGg+GeZd577z2ys7OLKSL5K9m5cydPPfUU77zzzkNr49dff8XS0vKh1Q+wfv16jhw5oqSUyGNISSkRERGREvTnpWu//PIL27ZtK5ElbdHR0dSsWRODwYCbm1u+5du1a4eLi0uh27l06RLW1taPfEIKbsdakETbw1KQPrKysiqGSKQ4paenY2VlhYXF/e22Uhw/v0888cRDrV9E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
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Visualisation rapide des top 15 families\n",
"top15_plot = top_family_table.head(15).copy()\n",
"\n",
"plt.figure(figsize=(12, 6))\n",
"sns.barplot(data=top15_plot, y=\"fund_family\", x=\"total_family_aum\")\n",
"plt.title(\"Top 15 fund families by total AUM\")\n",
"plt.xlabel(\"Total family AUM\")\n",
"plt.ylabel(\"Fund family\")\n",
"plt.tight_layout()\n",
"plt.show()\n",
"\n",
"plt.figure(figsize=(12, 6))\n",
"sns.barplot(data=top15_plot, y=\"fund_family\", x=\"n_clients\")\n",
"plt.title(\"Top 15 fund families by number of clients\")\n",
"plt.xlabel(\"Number of clients\")\n",
"plt.ylabel(\"Fund family\")\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "bb693b49",
"metadata": {},
"source": [
"## 12. Features de clustering"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "0ea62167",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Nombre de features de clustering : 15\n",
"['flow_freq', 'log_family_aum_val_mean', 'gross_flow_to_aum_family', 'avg_n_isin_held', 'exit_rate_per_isin_family', 'flow_direction_balance', 'months_since_last_tx_family', 'family_share_of_client_aum_mean', 'turnover_mean3_avg', 'turnover_mean6_avg', 'turnover_mean12_avg', 'corr_flow_ret_3m', 'corr_flow_ret_6m', 'buy_after_good_perf_share_3m', 'buy_after_good_perf_share_6m']\n"
]
}
],
"source": [
"family_cluster_features = [\n",
" \"flow_freq\",\n",
" \"log_family_aum_val_mean\",\n",
" \"gross_flow_to_aum_family\",\n",
" \"avg_n_isin_held\",\n",
" \"exit_rate_per_isin_family\",\n",
" \"flow_direction_balance\",\n",
" \"months_since_last_tx_family\",\n",
" \"family_share_of_client_aum_mean\",\n",
" \"turnover_mean3_avg\",\n",
" \"turnover_mean6_avg\",\n",
" \"turnover_mean12_avg\",\n",
" \"corr_flow_ret_3m\",\n",
" \"corr_flow_ret_6m\",\n",
" \"buy_after_good_perf_share_3m\",\n",
" \"buy_after_good_perf_share_6m\",\n",
"]\n",
"\n",
"print(\"Nombre de features de clustering :\", len(family_cluster_features))\n",
"print(family_cluster_features)"
]
},
{
"cell_type": "markdown",
"id": "1e351d17",
"metadata": {},
"source": [
"## 13. Fonctions de clustering robustes"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "b7ba2680",
"metadata": {},
"outputs": [],
"source": [
"def prepare_family_matrix(df_family, features, winsorize_cols=None):\n",
" X = df_family[features].copy()\n",
"\n",
" imputer = SimpleImputer(strategy=\"median\")\n",
" X_imp = pd.DataFrame(imputer.fit_transform(X), columns=features, index=X.index)\n",
"\n",
" if winsorize_cols is None:\n",
" winsorize_cols = [\n",
" \"gross_flow_to_aum_family\",\n",
" \"turnover_mean3_avg\",\n",
" \"turnover_mean6_avg\",\n",
" \"turnover_mean12_avg\",\n",
" \"months_since_last_tx_family\",\n",
" \"family_share_of_client_aum_mean\",\n",
" \"exit_rate_per_isin_family\",\n",
" \"corr_flow_ret_3m\",\n",
" \"corr_flow_ret_6m\",\n",
" \"buy_after_good_perf_share_3m\",\n",
" \"buy_after_good_perf_share_6m\",\n",
" ]\n",
"\n",
" for col in winsorize_cols:\n",
" if col in X_imp.columns:\n",
" X_imp[col] = winsorize_mad(X_imp[col], n_sigma=3)\n",
"\n",
" scaler = RobustScaler()\n",
" X_scaled = scaler.fit_transform(X_imp)\n",
"\n",
" return X_imp, X_scaled, imputer, scaler\n",
"\n",
"\n",
"def evaluate_k_range(X_scaled, k_min=3, k_max=10, min_cluster_size=10, random_state=42):\n",
" n = X_scaled.shape[0]\n",
" if n <= k_min:\n",
" return pd.DataFrame()\n",
"\n",
" k_max = min(k_max, n - 1)\n",
" rows = []\n",
"\n",
" for k in range(k_min, k_max + 1):\n",
" km = KMeans(n_clusters=k, random_state=random_state, n_init=20)\n",
" labels = km.fit_predict(X_scaled)\n",
" cluster_sizes = pd.Series(labels).value_counts().sort_index()\n",
" min_size = int(cluster_sizes.min())\n",
"\n",
" if min_size < min_cluster_size:\n",
" sil = np.nan\n",
" dbi = np.nan\n",
" else:\n",
" sil = silhouette_score(X_scaled, labels)\n",
" dbi = davies_bouldin_score(X_scaled, labels)\n",
"\n",
" rows.append({\n",
" \"k\": k,\n",
" \"silhouette\": sil,\n",
" \"davies_bouldin\": dbi,\n",
" \"min_cluster_size\": min_size,\n",
" \"inertia\": km.inertia_\n",
" })\n",
"\n",
" return pd.DataFrame(rows)\n",
"\n",
"\n",
"def choose_best_k(metrics_df):\n",
" valid = metrics_df.dropna(subset=[\"silhouette\"]).copy()\n",
" if len(valid) == 0:\n",
" return None\n",
" return int(valid.sort_values([\"silhouette\", \"davies_bouldin\"], ascending=[False, True]).iloc[0][\"k\"])\n",
"\n",
"\n",
"def run_family_clustering(\n",
" df_base,\n",
" family_name,\n",
" features,\n",
" k_min=3,\n",
" k_max=10,\n",
" min_clients=50,\n",
" min_cluster_size=10,\n",
" random_state=42,\n",
" make_plots=True\n",
"):\n",
" df_family = df_base[df_base[\"fund_family\"] == family_name].copy()\n",
"\n",
" # filtre qualité\n",
" df_family = df_family[\n",
" (df_family[\"n_months\"] >= 6) &\n",
" (df_family[\"family_aum_val_mean\"] > 0)\n",
" ].copy()\n",
"\n",
" # filtre anti-outliers proche du notebook initial\n",
" for col in [\"family_aum_val_mean\", \"gross_flow_qty_sum\", \"n_tx_total\"]:\n",
" if col in df_family.columns and df_family[col].notna().sum() > 0:\n",
" cap = df_family[col].quantile(0.99)\n",
" df_family = df_family[df_family[col] <= cap].copy()\n",
"\n",
" n_clients = df_family[ID_COL].nunique()\n",
" if n_clients < min_clients:\n",
" print(f\"[SKIP] {family_name} : seulement {n_clients} clients exploitables.\")\n",
" return None\n",
"\n",
" X_imp, X_scaled, imputer, scaler = prepare_family_matrix(df_family, features)\n",
"\n",
" metrics_df = evaluate_k_range(\n",
" X_scaled,\n",
" k_min=k_min,\n",
" k_max=k_max,\n",
" min_cluster_size=min_cluster_size,\n",
" random_state=random_state\n",
" )\n",
"\n",
" if len(metrics_df) == 0:\n",
" print(f\"[SKIP] {family_name} : impossible d'évaluer K.\")\n",
" return None\n",
"\n",
" best_k = choose_best_k(metrics_df)\n",
" if best_k is None:\n",
" print(f\"[SKIP] {family_name} : aucun K valide avec cluster minimal >= {min_cluster_size}.\")\n",
" return None\n",
"\n",
" km = KMeans(n_clusters=best_k, random_state=random_state, n_init=20)\n",
" labels = km.fit_predict(X_scaled)\n",
"\n",
" df_family[\"cluster\"] = labels\n",
" cluster_profile = df_family.groupby(\"cluster\")[features].median().sort_index()\n",
" cluster_sizes = (\n",
" df_family[\"cluster\"].value_counts().sort_index()\n",
" .rename_axis(\"cluster\").reset_index(name=\"n_clients\")\n",
" )\n",
"\n",
" pca = PCA(n_components=2, random_state=random_state)\n",
" coords = pca.fit_transform(X_scaled)\n",
" df_family[\"pca1\"] = coords[:, 0]\n",
" df_family[\"pca2\"] = coords[:, 1]\n",
"\n",
" # churn analysis\n",
" df_family[\"churn_hard\"] = (df_family[\"family_aum_final_to_peak\"] < 0.10).astype(int)\n",
" df_family[\"churn_soft\"] = (\n",
" (df_family[\"family_aum_final_to_peak\"] < 0.40) &\n",
" (df_family[\"aum_drawdown_last\"] > 0.40)\n",
" ).astype(int)\n",
" df_family[\"churn_warning\"] = (\n",
" (df_family[\"flow_direction_balance\"] < 0) &\n",
" (df_family[\"aum_drawdown_last\"] > 0.20)\n",
" ).astype(int)\n",
"\n",
" result = {\n",
" \"family\": family_name,\n",
" \"n_clients\": n_clients,\n",
" \"best_k\": best_k,\n",
" \"metrics_df\": metrics_df,\n",
" \"df_family\": df_family,\n",
" \"cluster_profile\": cluster_profile,\n",
" \"cluster_sizes\": cluster_sizes,\n",
" \"features\": features,\n",
" \"pca_explained_var\": pca.explained_variance_ratio_,\n",
" \"X_scaled\": X_scaled,\n",
" \"labels\": labels,\n",
" }\n",
"\n",
" if make_plots:\n",
" fig, axes = plt.subplots(1, 3, figsize=(15, 4))\n",
" axes[0].plot(metrics_df[\"k\"], metrics_df[\"silhouette\"], marker=\"o\")\n",
" axes[0].set_title(f\"{family_name} - Silhouette\")\n",
" axes[1].plot(metrics_df[\"k\"], metrics_df[\"davies_bouldin\"], marker=\"o\")\n",
" axes[1].set_title(f\"{family_name} - Davies-Bouldin\")\n",
" axes[2].plot(metrics_df[\"k\"], metrics_df[\"inertia\"], marker=\"o\")\n",
" axes[2].set_title(f\"{family_name} - Inertia\")\n",
" for ax in axes:\n",
" ax.set_xlabel(\"k\")\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
" plot_heatmap(\n",
" df_family,\n",
" profile_vars=features,\n",
" cluster_col=\"cluster\",\n",
" title=f\"{family_name} - Cluster signatures\",\n",
" figsize=(18, 5)\n",
" )\n",
"\n",
" plt.figure(figsize=(7, 5))\n",
" sns.scatterplot(\n",
" data=df_family, x=\"pca1\", y=\"pca2\",\n",
" hue=\"cluster\", palette=\"tab10\", alpha=0.8\n",
" )\n",
" plt.title(\n",
" f\"{family_name} - PCA projection \"\n",
" f\"(var explained: {result['pca_explained_var'][0]:.2f}, {result['pca_explained_var'][1]:.2f})\"\n",
" )\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
" plt.figure(figsize=(6, 4))\n",
" sns.barplot(data=cluster_sizes, x=\"cluster\", y=\"n_clients\")\n",
" plt.title(f\"{family_name} - Cluster sizes\")\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
" churn_summary = (\n",
" df_family.groupby(\"cluster\")[[\"churn_hard\", \"churn_soft\", \"churn_warning\"]]\n",
" .mean()\n",
" .reset_index()\n",
" )\n",
" churn_summary.set_index(\"cluster\")[[\"churn_hard\", \"churn_soft\", \"churn_warning\"]].plot(\n",
" kind=\"bar\", figsize=(10, 5)\n",
" )\n",
" plt.title(f\"{family_name} - Churn analysis by cluster\")\n",
" plt.ylabel(\"Rate\")\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
" print(f\"\\n=== {family_name} ===\")\n",
" print(f\"Clients exploitables : {n_clients}\")\n",
" print(f\"K retenu : {best_k}\")\n",
" print(cluster_sizes)\n",
"\n",
" return result"
]
},
{
"cell_type": "markdown",
"id": "157de135",
"metadata": {},
"source": [
"## 14. Test sur une famille"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "b5e52bda",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAGGCAYAAACUkchWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAzTpJREFUeJzs3XlcVFX/B/DPzLCLoOwIoqCyg4C7oghq7ntuhZZZqY+Y2uLSopLrz9LStLI0LTPNElQUtczccUlRUXBfWEVk35fh/v4ghhBQwIHLDJ/36+XreebOuWe+58yle+93zj1HIgiCACIiIiIiIiIiIiIiqkAqdgBERERERERERERERA0Vk+hERERERERERERERFVgEp2IiIiIiIiIiIiIqApMohMRERERERERERERVYFJdCIiIiIiIiIiIiKiKjCJTkRERERERERERERUBSbRiYiIiIiIiIiIiIiqwCQ6EREREREREREREVEVmEQnIiIiIiIiIiIiIqoCk+ikkvz8/DB//nyxw1ALYvalun2P8+fPh5+fX7ltDg4O+OqrrxSvv/rqKzg4OCAlJaW+wyMiqhF1+2+0mHiubfjOnTsHBwcHnDt3TuxQ6k1QUBAcHBwQGxv73LJPH0eNsb+IqGZ4/lEeXkeortjYWDg4OCAoKEjsUEgJNMQOgBqO6OhobNq0CadPn8bjx4+hqakJe3t7DBw4EOPGjYOOjo7YIaqdiRMn4vz584rXhoaGaNmyJSZMmIBRo0ZBKq3+71x37tzBwYMHMXLkSFhbW9dFuI1WSkoKvv76a5w6dQrx8fFo0qQJrKys0KVLF/zvf/9DkyZNxA5RqXJzc7Fp0yZ07twZXbp0Kffe8ePHcfXqVcycOVOk6IhUG8+19Y/n2oYvNjYWffr0UbzW0NCAvr4+bG1t0blzZ4wfPx4tWrQQMcK6ERQUhAULFpTbZmRkhLZt2+LNN9+Ej4+PSJERUUPF64j6x+uIhq/0OmLu3LmYMmWKKDGEhIQgOTkZr7/+uiifT/WDSXQCABw7dgyzZs2ClpYWhg8fDnt7exQWFuLixYv47LPPcOfOHSxZskTsMBUOHToEiUQidhhKYWFhgXfffRcAkJqaij179uCjjz7CgwcP8P7771e7njt37mD9+vXo3LlzjU7IYvalKnyPaWlpGD16NLKysjB69GjY2dkhLS0NN2/exI4dOzBhwgRFEn3JkiUQBEHkiF9cbm4u1q9fj4CAgEqT6Nu3b2cSnagWeK4VD8+1qvE9DhkyBL169YIgCEhPT0dERAR+/PFH/PTTT1i2bBkGDx5cZ5/dqVMnXL16FZqamnX2GVV55513YG1tDUEQkJycjODgYLz99tv49ttv4evrW+/xVIeY/UXUWPE6Qjy8jlCP77Eu7d+/H7dv366QRLeyssLVq1ehocH0qzrgt0iIiYnBnDlz0KJFC/z4448wMzNTvPfqq6/i4cOHOHbs2At/jiAIyM/PV8qv41paWi9cR0PRtGlTDB8+XPF63LhxGDBgALZv345Zs2bVyc3Jf78LMftSFb7H33//HfHx8dixYwe8vLzKvZeVlVXu++GNJBFVhedacfFcqxqcnZ3LfU8AEBcXhzfeeAPz5s1DmzZt4OjoWCefLZVKoa2tXSd1P0+vXr3g5uameP3yyy+jR48e2L9/f4NNoovZX0SNEa8jxMXrCKpKTk4O9PT0qnxfIpHwfKlGOCc6YdOmTcjJycGyZcvKnYxLtWrVCq+99pri9e7duzFp0iR069YNrq6uGDRoEH755ZcK+/n5+WHq1Kk4efIkRo0aBXd3d+zcuVMxh2JoaCjWr1+Pnj17wtPTE++88w4yMzNRUFCAZcuWoVu3bvD09MSCBQtQUFBQoe6n5+W6ceMG/P394e7ujl69euHrr7/G7t27K8z1WBrXP//8g5dffhlubm7o06cP9uzZU66+tLQ0/N///R+GDh0KT09PeHl54c0338SNGzcqtDU/Px9fffUV+vfvDzc3N3h7eyMgIADR0dHV+g7+S1dXF+3bt0dOTg5SUlIQFxeHxYsXo3///nB3d0eXLl3wzjvvlGtTUFAQZs2aBQCYNGkSHBwcys1TWdV3UVlfls6P+c8//2Dp0qXo2rUrOnbsiIULF6KgoAAZGRmYO3cuOnXqhE6dOmHVqlUVRl/n5ORg5cqV8PHxgaurK/r374/NmzdXKFfVZ1+8eBErVqxA165d4eHhgRkzZlQ6h/jx48fxyiuvwMPDA56ennj77bdx+/btGvf5s0RHR0Mmk8HDw6PCe/r6+uVOiJXNiV6VzMxMzJ8/Hx07dkSHDh2wYMEC5ObmlitTVFSEDRs2oG/fvnB1dYWfnx/WrFlT4e/h6XnXS1X2d5KRkYFly5Ypvpt+/frhu+++Q3FxMYCSR+G6desGAFi/fr3iWPrqq68wf/58bN++XfGZpf9KFRcXY+vWrRg8eDDc3NzQvXt3LFy4EOnp6dXqEyJ1xnMtz7U819aOlZUVVq5cicLCQnz//feK7dU5dp48eQJnZ2esX7++Qr337t2Dg4MDfv75ZwBVz/F95coVTJkyBR06dED79u3h7++PixcvliuTlZWFZcuWwc/PD66urujWrRsmT56M69ev16rNBgYG0NbWrjBqrTrf+bPmXq3qeuG/BEHA119/jV69eqF9+/aYOHFipd93Zf01ceJEDBkyBHfu3MHEiRPRvn179OzZs9z3RkS1w+sIXkfwOqJm6iLO+fPnw9PTE9HR0Xjrrbfg6emJ999/HxMnTsSxY8cQFxen+F5L8wKVnZdv3LiB+fPno0+fPnBzc0OPHj2wYMECpKam1m2n0AvjSHTC33//jZYtW1YYZVuVHTt2oF27dvDz84OGhgb+/vtvBAYGQhAEvPrqq+XK3r9/H++99x7GjRuHsWPHwtbWVvHed999Bx0dHbz99tt4+PAhfv75Z2hoaEAikSAjIwMBAQG4cuUKgoKCYGVlhYCAgCpjSkxMVFw0vP3229DT08Nvv/1W5a+mDx8+xKxZs/Dyyy9j5MiR2L17N+bPnw8XFxe0a9cOQMmv/UeOHMGAAQNgbW2NJ0+e4Ndff4W/vz8OHDgAc3NzAIBcLsfUqVMRFhaGwYMHY9KkScjOzsbp06dx69Yt2NjYVKtf/ys2NhYymQwGBgY4fvw4wsPDMXjwYFhYWCAuLg47duzApEmTcODAAejq6qJTp06YOHEitm3bhmnTpsHOzg4A0KZNm2p9F5VZunQpTExMMHPmTFy5cgW//vormjZtivDwcFhaWmLOnDk4ceIENm/eDHt7e4wYMQJAyc3X9OnTce7cObz88stwcnLCyZMnsWrVKiQmJuLDDz98bvuXLl0KAwMDBAQEIC4uDj/++CM+/fRTfPnll4oye/bswfz58+Ht7Y33338fubm52LFjB1555RUEBwcrbY45KysryOVy7N27FyNHjlRKnQAwe/ZsWFtb491330VkZCR+++03GBkZ4YMPPlCU+fjjjxEcHIz+/ftj8uTJuHr1KjZu3Ii7d+9iw4YNNf7M3Nxc+Pv7IzExEePHj4elpSXCw8OxZs0aJCUl4aOPPoKRkREWL16MxYsXo1+/fujXrx+Akhvv3NxcPH78GKdPn8aqVasq1L9w4UIEBwdj1KhRmDhxImJjY7F9+3ZERkZix44dHKlPjRrPtTzXVobn2urx9PSEjY0Nzpw5o9hWnWPHxMQEnTp1wsGDBysc26GhoZDJZBgwYECVnxsWFoa33noLrq6uCAgIgEQiQVBQEF577TX88ssvcHd3BwAsWrQIhw8fhr+/P9q0aYO0tDRcvHgRd+/ehYuLy3Pbl5WVpbihT05OxrZt25CTk4Nhw4YpyijjO6+OtWvX4ptvvoGPjw98fHxw/fp1vPHGGygsLKzW/unp6XjzzTfRr18/DBw4EIcPH8bnn38Oe3t7zvFO9AJ4HcHriMrwOuL5lB1nUVGR4sf1efPmQUdHB6ampsjMzMSjR48Ua508a920M2fOICYmBqNGjYKpqSlu376NXbt24c6dO9i1axenz2nIBGrUMjMzBXt7e2H69OnV3ic
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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tmzZZDAYFBERoYEDB+qvv/7SunXr5OHhoYEDByYbU1BQkCl50rt3b+XKlUvff/99sr8Av3TpkgYPHqxXX31V7du319q1azV8+HBVrFhRZcuWlfSgJ8n27dvVsmVLFS1aVCEhIVq9erW6du2qn3/+2TSnQHx8vPr06SN/f3+1adNGb775pu7cuaO9e/fqn3/+UfHixZ+qXR8XGBgoe3t75c2bV7/99puOHDmiNm3aqFChQrp69apWrlypN998Uz///LNy5sypWrVqqVu3blq2bJn69u2rUqVKSZJKly79VO9FUiZMmCBXV1cNGjRIf/31l1avXi0nJycdOXJEhQsX1tChQ7V7924tXLhQXl5eateunaQHvTH69eunAwcO6NVXX1X58uW1Z88effbZZwoKCtLIkSP/8/wnTJigvHnzauDAgbp69aqWLFmicePGafr06aY6fn5+Gj58uBo0aKBhw4YpJiZGK1eu1BtvvKEff/wxzebZ2LFjhySZ9WpJL4MGDdLZs2fVtWtXeXh4KCwsTHv37tX169dVtGhRjRw5UuPHj1euXLnUt29fSZKrq6skKSYmRl27dlVQUJA6d+6swoUL68iRI5o2bZqCg4M1atQos2OtW7dO9+7dU8eOHeXo6ChnZ+ckYzpz5oz69Okjb29vvfvuu3J0dNSlS5f0559/PvFcdu3apaFDh8rLy0vvv/++bt++rVGjRiU7F8fGjRt1584dderUSQaDQd98840GDRqk7du3m3oN7du3T1euXFGHDh3k5uamM2fOaM2aNTp79qzWrFkjg8GgF154QRcvXtTGjRs1YsQI5c+fX5Lk4uKSZHLrvwwePFienp4aOnSoKbE2d+5cffXVV2rVqpVeffVVhYWF6bvvvlOXLl3k5+envHnzKjY2Vm+//bZiY2PVtWtXubq6KigoSLt27VJERIScnJxSHAsAAACyKCMAAEAmExkZafTy8jL269fvqbeJiYlJVNazZ09js2bNzMqaNGli9PLyMu7evdusfP/+/UYvLy9j27ZtjbGxsaby9957z+jt7W3s1auXWf1OnToZmzRpkmjfH330ken1+PHjjd7e3saTJ0+aysLDw42+vr5GLy8v45UrVxLFdejQIVNZaGiosVKlSsZPP/3UVHbv3j1jfHy82XGvXLlirFSpknHWrFmmsh9++MHo5eVlXLRoUaJ2SUhISFT2uK5duxpbtmxpDA0NNYaGhhrPnj1rHD9+vNHLy8vYp08fo9GYdHsfOXLE6OXlZfzxxx9NZZs3bzZ6eXkZ9+/fn6h+cu/Fw3WPt+XatWuNXl5exp49e5rF36lTJ6O3t7dxzJgxprL79+8bGzVqZOzataup7JdffjF6eXkZ58yZY3acQYMGGb29vY2XLl36z2N3797d7NiTJk0yli9f3hgREWE0Go3GqKgoY82aNY2jR482O0ZwcLCxRo0aicqfRbt27Yw1atR46vofffSR2fX68Hr/9/ty5coVo5eXl3Ht2rVGo9FovH37ttHLy8v4zTffPHH/bdq0MWvvh2bPnm2sWrWq8cKFC2blX3zxhbF8+fLGa9eumR23evXqxtDQ0P88n0WLFhm9vLyeWPff52I0Go1t27Y1NmrUyBgVFWUqO3DggNHLy8usfR5u6+vra7x165apfPv27UYvLy/jr7/
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAHqCAYAAAD4TK2HAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA/DRJREFUeJzs3Xd4VNXWwOHf9JJMek8IfUKAQEJv0gRFUBTkWoFru5bPXq9d7FiuBSv2jqgURSkKCqJU6SUQEkJ6r5NMnznfH2MGhhQCpBDc7/PwaM4+M2fPmbZmn7XXlkmSJCEIgiAIgiAIHYy8vTsgCIIgCIIgCKdCBLKCIAiCIAhChyQCWUEQBEEQBKFDEoGsIAiCIAiC0CGJQFYQBEEQBEHokEQgKwiCIAiCIHRIIpAVBEEQBEEQOiQRyAqCIAiCIAgdkghkBUEQBEEQhA5JBLJCqxk/fjwPPvhge3fjrNCe51I8jx3HrFmzmDVrVpsfd/PmzSQkJLB58+Y2PzaA2+3mwgsv5J133mmX459pTvU9m5ubS0JCAosXL26FXp2Y+Kw5c1RUVJCcnMy6devauysnJALZDiY7O5vHH3+cc889l6SkJAYMGMAVV1zBp59+itVqbe/unZVmzZpFQkKC99+QIUO49NJL+e6773C73Sd1X+np6bzxxhvk5ua2Um//meq+gOv+JSYmMnbsWG699VZSU1Pr7W+z2fjkk0/417/+xcCBA0lKSuL888/nqaeeIjMzs8FjvPjiiyQkJHDXXXe18qM5c3355ZftFuQ05ccff6SgoICZM2e2d1eEdvTOO+9w8803M2LECBISEnjjjTdO6vZ2u52XXnqJUaNG0a9fP/71r3/x559/Nrjv9u3bufLKK+nfvz8jR47kmWeeoba29rT6n5GRwfXXX09KSgpDhgzh/vvvp7y8vNm3X7NmDdOmTSMpKYmxY8cyb948nE5nvf2qq6t57LHHGDZsGMnJycyaNYt9+/b57BMcHMyMGTN4/fXXT+sxtQVle3dAaL61a9dy5513olarufjiizEajTgcDrZt28ZLL71Eeno6Tz/9dHt302vlypXIZLL27kaLiIqK4p577gE8v1SXLl3KI488wpEjR7jvvvuafT/p6em8+eabDBkyhLi4uGbfrj3PZUd6Hi+88EJGjx6N2+0mIyODBQsW8Pvvv/PNN9+QmJgIQHl5OTfccAP79u1j3LhxXHjhhej1ejIzM1m+fDnffPMNe/fu9blfSZL46aefiI2N5bfffqOmpgZ/f//2eIhN+vDDD1v1/hcsWEBwcDDTp0/32T548GB2796NSqVq1eM35sMPP2TKlCkYDIZ2Of7ZIjY2lt27d6NUdszQ4LXXXiM8PJzExET++OOPk779gw8+yKpVq5g9ezZdunRhyZIl3HjjjXz66acMGjTIu19qairXXHMN3bt358EHH6SwsJCPPvqII0eO8MEHH5xS3wsLC7n66qsxGAzcfffdmM1mPvroI9LS0vj2229Rq9VN3n7dunXceuutDBkyhMcee4y0tDTeeecdysrKePLJJ737ud1ubrzxRg4ePMj1119PcHAwX331FbNmzWLx4sV06dLFu++VV17J559/zsaNGxk+fPgpPa42IQkdQnZ2tpScnCxNmjRJKioqqtd+5MgR6ZNPPjnt47jdbslisZz2/ZxNZs6cKU2ZMsVnm9lslkaPHi0lJydLdru92fe1YsUKyWg0Sps2bTrhvuK5aL6cnBzJaDRKH3zwgc/2NWvWSEajUXrssce822688UapV69e0sqVK+vdj81mk+bOnVtv+8aNGyWj0Sht3LhR6tOnj7R48eKWfxANqK2tbZPjNNeUKVOkmTNntnc3fOzbt08yGo3Shg0b2vzYZ9rzU2fcuHHSf//73/buxkk73X7n5ORIkiRJZWVlktFolObNm9fs2+7ataveZ4jVapUmTJggXX755T773nDDDdLIkSMlk8nk3fbNN99IRqNRWr9+/Sn1/YknnpD69esn5eXlebf9+eefktFolL7++usT3n7y5MnS1KlTJYfD4d32yiuvSAkJCVJ6erp3208//SQZjUZpxYoV3m1lZWXSoEGDpHvuuafe/V544YXS/ffff0qPqa2I1IIO4oMPPsBsNvPss88SERFRr71z5878+9//9v69aNEiZs+ezfDhw+nbty+TJ0/mq6++qne78ePHc9NNN7F+/XqmT59Ov379+Prrr705b8uXL+fNN9/knHPOISUlhTvuuAOTyYTdbufZZ59l+PDhpKSk8NBDD2G32+vd9/H5TgcOHGDmzJn069eP0aNH8/bbb7No0SISEhJ8LrfX9euvv/5ixowZJCUlce6557J06VKf+6usrOSFF17goosuIiUlhQEDBnDDDTdw4MCBeo/VZrPxxhtvcP7555OUlMSoUaO47bbbyM7ObtZzcCydTkf//v0xm82Ul5eTl5fHnDlzOP/88+nXrx9Dhw7ljjvu8HlMixcv5s477wRg9uzZ3svgdXmFjT0XDZ3LxYsXk5CQwF9//cUzzzzDsGHDGDRoEI8//jh2u53q6moeeOABBg8ezODBg3nxxReRJMnnMZjNZubOncuYMWPo27cv559/Ph9++GG9/Ro79rZt23j++ee9l6duvfXWBi+DrVu3jquuuork5GRSUlK48cYbOXTo0Emf81MxbNgwAO/zsGvXLtauXcuMGTM4//zz6+2vVqv573//W2/7smXL6NGjB8OGDWP48OEsW7as2X1ISEjgqaee4ocffvC+9qZPn87WrVt99nvjjTdISEggPT2de++9l8GDB3PVVVcB4HQ6eeutt5gwYQJ9+/Zl/PjxvPLKK/Xecw3lyNrtdubNm8fEiRPp27cvY8aM4cUXX6x3W4Dvv/+eGTNm0L9/fwYPHszVV1/tHdkaP348hw4dYsuWLd7Xbt2xGsuRXbFihfe1PHToUO677z6Kiop89nnwwQdJSUmhqKiI//u//yMlJYVhw4bxwgsv4HK5Tnh+V69ejUql8hkxW7lyJQkJCWzZsqXe/l9//TUJCQmkpaUBns+kBx980JuuNXLkSB566CEqKip8btfU89OY6upqnn32We97bOLEibz33nvelCRJkpg1axbDhg2jrKzMezu73c5FF13EhAkTMJvNPsfPyMjgzjvvZMCAAQwdOpRnnnkGm83WZD+a+znZUI7syTw/brebTz75hClTppCUlMSIESN4/PHHqaqq8tlPkiTefvttRo8eTf/+/Zk1a1ajnwnZ2dnN/ow+matcx1u5ciUKhYLLL7/cu02j0TBjxgx27NhBQUEBADU1NWzYsIGpU6f6XJW5+OKL0ev1rFix4pSO//PPPzN27FhiYmK820aMGEGXLl1OeJ/p6emkp6dz2WWX+YymX3XVVUiSxKpVq7zbVq1aRVhYGOedd553W0hICBdccAFr1qyp97kwYsQIfvvtt3rfC2eSjnn94B/ot99+o1OnTgwYMKBZ+y9YsICePXsyfvx4lEolv/32G08++SSSJHH11Vf77JuZmcm9997L5ZdfzmWXXUbXrl29be+99x5arZYbb7yRrKwsvvjiC5RKJTKZjOrqam677TZ27drF4sWLiY2N5bbbbmu0T0VFRd5g+8Ybb0Sv1zd5ySQrK4s777yTGTNmMG3aNBYtWsSDDz5Inz596NmzJwA5OTmsXr2aSZMmERcXR2lpKQsXLmTmzJn89NNPREZGAuByubjpppvYuHEjU6ZMYfbs2dTW1vLnn3+SlpZGfHx8s87rsXJzc1EoFAQEBLBu3Tp27NjBlClTiIqKIi8vjwULFjB79mx++ukndDodgwcPZtasWXz++efcfPPNdOvWDYDu3bs367loyDPPPENYWBi33347u3btYuHChRgMBnbs2EF0dDR33303v//+Ox9++CFGo5FLLrkE8HyR3HLLLWzevJkZM2aQmJjI+vXrefHFFykqKuLhhx8+4eN/5plnCAgI4LbbbiMvL49PP/2Up556itdee827z9KlS3nwwQcZNWoU9913HxaLhQULFnDVVVexZMmS0/riaY66L8CgoCA
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAGGCAYAAACNCg6xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOjVJREFUeJzt3Xl8jPf+//9nMhKCJEhiC1qlGTQhsTZplKrtWM6xtKXHUkpRtZS2KI7aKijqKLXViX1pazn0aBWnSCuW+iZFay2NoKeS2EJCksn8/vAzHyPolRFmwuN+u7nVvK/3dc3rWirPvK/3XONmtVqtAgAAwJ9yd3YBAAAA+QXBCQAAwCCCEwAAgEEEJwAAAIMITgAAAAYRnAAAAAwiOAEAABhEcAIAADCI4AQAAGAQwQl4iBo1aqRhw4Y5u4xHgjOP5aN4HocNG6ZGjRo5u4yH6vTp0zKbzVqzZo2zS0E+UsDZBQD369SpU/rss8/0ww8/6Ny5c/Lw8FBQUJD+8pe/qEOHDipUqJCzS3zkdOnSRXv27LG99vX1Vfny5fXqq6+qXbt2cnc3/jvZ8ePH9fXXX6tt27YqV67cgyj3sXblyhUtXLhQ3377rRITE2WxWFShQgU1aNBAXbt2ValSpR5KHcuWLZOXl5fatWv3UN4PeFAITsjXtm3bpoEDB8rT01N/+9vfFBQUpMzMTO3bt08fffSRjh8/rnHjxjm7TJtvvvlGbm5uzi4jT5QuXVqDBw+WJF24cEHr1q3TiBEj9Ntvv+ndd981vJ3jx49r5syZqlu3bq6CkzOPZX45j4mJierWrZt+//13NW/eXB06dJCHh4eOHDmiL7/8Ulu2bNGmTZseSi0rVqxQ8eLFXSo4BQYGav/+/SpQgB+FMI6rBflWYmKiBg0apLJly2rRokUqWbKkbVmnTp2UkJCgbdu23ff7WK1WXb9+PU9Grjw9Pe97G67C29tbf/vb32yvO3TooObNm2vZsmUaOHCgPDw88vw9bz0XzjyW+eE8ZmVlqV+/fkpJSdHixYtVu3Ztu+WDBg3S/PnznVRd3sjKylJ2drbD58PNzU0FCxbM46rwqGOOE/Ktzz77TGlpafrwww/tQtNNTzzxhF577TXb69WrV6tr164KDw9XcHCwWrRooeXLl+dYr1GjRurdu7diYmLUrl07Va9eXStXrtTu3btlNpu1ceNGzZw5U/Xr11dYWJgGDBig1NRUZWRk6MMPP1R4eLjCwsL0/vvvKyMjI8e2b58bc/jwYXXu3FnVq1fX888/r08//VSrV6+W2WzW6dOnc9T1448/6qWXXlJISIhefPFFrVu3zm57Fy9e1KRJk9S6dWuFhYWpZs2a6tmzpw4fPpxjX69fv65PPvlEzZo1U0hIiCIjI9WvXz+dOnXK0Dm4lZeXl2rUqKG0tDSdP39eZ86c0ejRo9WsWTNVr15d9erV04ABA+z2ac2aNRo4cKAkqWvXrjKbzTKbzdq9e/c9z8WdjuWaNWtkNpv1448/avz48Xr22WdVu3ZtjRo1ShkZGbp8+bKGDBmiOnXqqE6dOpo8ebKsVqvdPqSlpWnixIlq0KCBgoOD1axZMy1YsCBHv7u99759+xQVFaVnn31WoaGheuutt3T+/Pkcx2r79u36+9//rtDQUIWFhalXr146duxYro/5vXz77bc6fPiw+vTpkyM0SVLRokU1aNCgu65/83q/eS5uutO8oKSkJL3//vt6/vnnFRwcrMjISL355pu2c92oUSMdO3ZMe/bssZ3jLl262Na/fPmyPvzwQ9txb9KkiebNm6fs7Owc77tgwQItXLhQjRs3VkhIiH799de77sMPP/ygV199VbVr11ZYWJiaNWumadOm3XVfbu7znf7cPv/LyDn8s+OC/IkRJ+Rb3333ncqXL6+aNWsa6r9ixQo9/fTTatSokQoUKKDvvvtOY8aMkdVqVadOnez6njx5Uu+88446dOigV155RRUrVrQtmzdvngoVKqRevXopISFBS5cuVYECBeTm5qbLly+rX79++umnn7RmzRoFBgaqX79+d63pjz/+sIW7Xr16qXDhwvriiy/u+ht0QkKCBg4cqJdeeklt27bV6tWrNWzYMD3zzDN6+umnJd0YiduyZYuaN2+ucuXKKTk5WatWrVLnzp31n//8xzanxWKxqHfv3oqNjVXLli3VtWtXXb16VT/88IOOHj2qChUqGDqutzp9+rRMJpN8fHy0fft2xcXFqWXLlipdurTOnDmjFStWqGvXrvrPf/4jLy8v1alTR126dNGSJUvUp08fPfXUU5KkSpUqGToXdzJ+/Hj5+/urf//++umnn7Rq1Sp5e3srLi5OZcqU0aBBg7Rjxw4tWLBAQUFBatOmjaQbo1lvvvmmdu/erZdeeklVq1ZVTEyMJk+erD/++EPDhw//0/0fP368fHx81K9fP505c0aLFi3S2LFjNX36dFufdevWadiwYYqMjNS7776r9PR0rVixQn//+9+1du3aPJvntXXrVkmyGxV8UPr376/jx4+rc+fOCgwM1Pnz5/XDDz/o999/V7ly5TR8+HCNGzdOhQsXVp8+fSRJ/v7+kqT09HR17txZf/zxhzp27KgyZcooLi5O06ZNU1JSkkaMGGH3XmvWrNH169f1yiuvyNPTU76+vnes6dixY+rdu7fMZrMGDBggT09PJSQk6P/9v/931/2oVKmSJk+ebNeWmpqqiRMnqkSJErY2o+fwz44L8ikrkA+lpqZag4KCrG+++abhddLT03O0vf7669YXX3zRru2FF16wBgUFWXfs2GHXvmvXLmtQUJC1VatW1oyMDFv74MGDrWaz2dqzZ0+7/h06dLC+8MILObY9dOhQ2+tx48ZZzWaz9ZdffrG1XbhwwVq3bl1rUFCQNTExMUdde/futbWlpKRYg4ODrRMnTrS1Xb9+3WqxWOzeNzEx0RocHGydOXOmre3LL7+0BgUFWaOjo3Mcl+zs7Bxtt+rcubO1efPm1pSUFGtKSor1+PHj1nHjxlmDgoKsvXv3tlqtdz7ecXFx1qCgIOvatWttbV9//bU1KCjIumvXrhz973Yubi679ViuXr3aGhQUZH399dft6u/QoYPVbDZbR40aZWvLysqyPv/889bOnTvb2jZv3mwNCgqyfvrpp3bv079/f6vZbLYmJCT86Xt369bN7r0nTJhgrVq1qvXy5ctWq9VqvXLlirV27drWkSNH2r1HUlKStVatWjna70ebNm2stWrVMtx/6NChdtfrzev99vOSmJhoDQoKsq5evdpqtVqtly5dsgYFBVk/++yze26/ZcuWdsf7plmzZllDQ0OtJ0+etGufMmWKtWrVqtazZ8/avW/NmjWtKSkpf7o/0dHR1qCgoHv2vX1fbpednW3t3bu3NTQ01Hrs2DGr1Wr8HBo9Lsh/uFWHfOnKlSuSpCJFihhe59Y5SqmpqTp//rzq1q2rxMREpaam2vUtV66c6tevf8ft/O1vf7Obv1O9enVZrVa1b9/erl/16tX1+++/Kysr6641xcTEKDQ0VFWrVrW1FStWTK1bt75j/8qVK9vddilRooQqVqyoxMREW5unp6ftU20Wi0UXLlxQ4cKFVbFiRf3yyy+2ft9++62KFy+uzp0753gfIxOfT5w4ofDwcIWHh6tFixZaunSpGjZsqAkTJkiyP96ZmZm6cOGCKlSoIB8fH7s6/sy9zsWdvPTSS3b13zw/L730kq3NZDIpODjY7rjt2LFDJpPJ7haSJL3++uuyWq3asWPHn773K6+8YvfetWvXlsVi0ZkzZyRJO3fu1OXLl9WyZUudP3/e9sfd3V01atTIcVvsfly5ciVX/384qlChQvLw8NCePXt06dKlXK//zTffqFatWvLx8bE7JhEREbJYLNq7d69d/6ZNm9qN/tyNj4+PpBsjb7fe8suNWbNm6bvvvtPEiRNVuXJlScbP4f0eF7gubtUhXypatKgk6erVq4bX2bdvnz755BPFx8crPT3dbllqaqq8vb1tr+81jF62bFm71zfXK1OmTI727Oxspaamqnjx4nfc1pkzZxQaGpqj/W6
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVOdJREFUeJzt3Xl8TGf///F3MhKR2pNYqnadsSQkdmorVUvtu9LFvre3tl+N6q3UEmu14S6K21ZVNCgt2tIW1dBSStVSpcRSRCyNJBKT+f3hl7mNLCaSk5F4PR+PPm5zznXO+ZyZM+fOe851neNms9lsAgAAAAAAmc7d1QUAAAAAAJBTEboBAAAAADAIoRsAAAAAAIMQugEAAAAAMAihGwAAAAAAgxC6AQAAAAAwCKEbAAAAAACDELoBAAAAADAIoRsAAAAAAIMQugHgIde0aVMFBwe7uowcwZXvZU78HF944QW1adPG1WU89GbPni2LxWLIuvfs2SOLxaI9e/ZkeF0P0+eZE78vAB5duVxdAAC4wpkzZ7Rw4ULt2rVLly5dkoeHh8xms1q1aqXu3bvLy8vL1SXmOC+88IJ++ukn++sCBQqoZMmS6tmzpzp16iR3d+d/Bz5x4oQ2b96sjh076oknnjCi3EdadHS0lixZoq+//loRERGyWq0qVaqUGjdurBdffFFFixZ1dYnAA4uNjdXChQtVu3Zt1alTx9XlAHgEELoBPHK+//57vfrqq/L09FT79u1lNpuVkJCgffv2afr06Tpx4oQmTJjg6jLttmzZIjc3N1eXkSmKFSum1157TZJ09epVrV+/XmPGjNFff/2lN954w+n1nDhxQnPmzFHt2rXTFbpd+V5ml88xIiJCL7/8si5cuKCWLVuqe/fu8vDw0LFjx/TZZ59p69at+uqrr1xdJv6/WrVq6eDBg/Lw8HB1KdlGbGys5syZo+HDhxO6AWQJQjeAR0pERIRGjhypxx9/XEuXLlWRIkXs83r16qXTp0/r+++/z/B2bDabbt26lSlXzD09PTO8jodFvnz51L59e/vr7t27q2XLllqxYoVeffVVQ4LD3Z+FK9/L7PA53r59W8OHD9eVK1e0bNky1axZ02H+yJEjtWDBgiyvKzY2Vnny5Mny7WYH7u7uyp07t6vLgKSYmBh5e3u7ugwADyHGdAN4pCxcuFAxMTGaNGmSQ+BOUrp0ab300kv212FhYXrxxRdVr149+fv7q3Xr1vrkk0+SLde0aVMNGjRIO3fuVKdOnVS1alV9+umn9vGWmzZt0pw5c9SwYUMFBQXplVde0T///KP4+HhNmjRJ9erVU1BQkEaPHq34+Phk6753bOPRo0fVu3dvVa1aVY0aNdKHH36osLAwWSwWnT17Nllde/fuVZcuXRQQEKBmzZpp/fr1Duu7du2apk6dqrZt2yooKEjVq1dX//79dfTo0WT7euvWLc2ePVstWrRQQECAGjRooOHDh+vMmTNOfQZ3y5Mnj6pVq6aYmBhFRUXp3LlzGjdunFq0aKGqVauqTp06euWVVxz2ae3atXr11VclSS+++KIsFovDmNbUPouU3su1a9fKYrFo7969mjhxourWrauaNWtq7Nixio+P140bNzRq1CjVqlVLtWrV0rRp02Sz2Rz2ISYmRlOmTFHjxo3l7++vFi1aaNGiRcnapbbtffv2KSQkRHXr1lVgYKCGDRumqKioZO/V9u3b9fzzzyswMFBBQUEaOHCg/vjjj3S/52n5+uuvdfToUQ0ePDhZ4JakvHnzauTIkcmmnzhxQi+88IKqVaumhg0bJgvmSft69+copTweOWlc8W+//aZevXqpWrVqeu+993T27FlZLBYtWrRIq1at0jPPPCN/f3917txZBw8evO++OXuM3/2dnTt3rho1aqSAgAC99NJLOn36tEPbvXv36pVXXlGTJk3k7++vxo0ba/LkyYqLi0uzlt69e6tdu3YpzmvRooX69etnf/3ll1+qU6dO9prbtm2rpUuXpvke/vXXXxoxYoSeeuopBQQEqFGjRho5cqT++eef+75PkvTbb7+pR48eqlq1qpo2baqVK1fa5928eVOBgYGaOHFisuX+/vtvVapUSfPnz09z/YmJiVq6dKnatm2rgIAA1a1bV/369dOhQ4dSXSa1cfEpHVuHDh1Sv379VKdOHfs+jB49WpJ09uxZ1atXT5I0Z84c+/lj9uzZ9uX//PNPvfLKK6pdu7YCAgLUqVMnbdu2LcXt/vTTTxo3bpzq1aunxo0bp7nfAB5dXOkG8Ej57rvvVLJkSVWvXt2p9itXrtSTTz6ppk2bKleuXPruu+80fvx42Ww29erVy6HtqVOn9Prrr6t79+7q1q2bypYta5/30UcfycvLSwMHDtTp06f18ccfK1euXHJzc9ONGzc0fPhw/frrr1q7dq1KlCih4cOHp1rTxYsX7T8MDBw4UN7e3lqzZk2qV1JPnz6tV199VV26dFHHjh0VFham4OBgValSRU8++aSkOz0Atm7dqpYtW+qJJ55QZGSkVq1apd69e+vLL7+0j+G1Wq0aNGiQwsPD9dxzz+nFF1/UzZs3tWvXLh0/flylSpVy6n2929mzZ2UymZQ/f35t375d+/fv13PPPadixYrp3LlzWrlypV588UV9+eWXypMnj2rVqqUXXnhBy5cv1+DBg1WuXDlJUvny5Z36LFIyceJE+fr6asSIEfr111+1atUq5cuXT/v371fx4sU1cuRI7dixQ4sWLZLZbFaHDh0k3bmKPmTIEO3Zs0ddunRRpUqVtHPnTk2bNk0XL17UW2+9dd/9nzhxovLnz6/hw4fr3LlzWrp0qd599129//779jbr169XcHCwGjRooDfeeEOxsbFauXKlnn/+ea1bty7TxrUnBYu7eyPcz/Xr19W/f381b95crVq10ldffaUZM2bIbDY/cAi5du2aBgwYoOeee07t2rWTj4+Pfd4XX3yhmzdvqnv37nJzc9PChQs1YsQIbd26Nc2eEs4e40kWLFggNzc39e3bV9HR0Vq4cKHeeOMNrVmzxt5my5YtiouLU8+ePVWwYEEdPHhQH3/8sf7++2+FhoamWkv79u319ttv6/jx4zKbzfbpBw8e1F9//aUhQ4ZIknbt2qXXXntN9erVsw+/OHnypH755ReHHwfvFh8fr379+ik+Pl69e/eWr6+vLl68qO+//143btxQvnz50njn73yeAwcOVKtWrfTcc89p8+bNGjdunDw8PNSlSxc99thjeuaZZ7R582aNHj1aJpPJvuwXX3whm82mtm3bprmNMWPGaO3atWrUqJG6dOkiq9WqvXv36tdff1VAQECay97PlStX1K9fPxUqVEgDBw5U/vz5dfbsWX3zzTeSpMKFC2vcuHEaN26cmjdvrubNm0uSPdD/8ccf6tmzp4oWLaoBAwbI29tbmzdv1rBhwzR79mx7+yTjx49X4cKFNWzYMMXExGSodgA5mA0AHhH//POPzWw224YMGeL0MrGxscmm9e3b19asWTOHaU8//bTNbDbbduzY4TB99+7dNrPZbGvTpo0tPj7ePv21116zWSwWW//+/R3ad+/e3fb0008nW/ebb75pfz1hwgSbxWKx/f777/ZpV69etdWuXdtmNpttERERyer6+eef7dOuXLli8/f3t02ZMsU+7datWzar1eqw3YiICJu/v79tzpw59mmfffaZzWw22xYvXpzsfUlMTEw27W69e/e2tWzZ0nblyhXblStXbCdOnLBNmDDBZjabbYMGDbLZbCm/3/v377eZzWbbunXr7NM2b95sM5vNtt27dydrn9pnkTTv7vcyLCzMZjabbX379nWov3v37jaLxWIbO3asfdrt27dtjRo1svXu3ds+7ZtvvrGZzWbbhx9+6LCdESNG2CwWi+306dP33fbLL7/ssO3JkyfbKlWqZLtx44bNZrPZoqOjbTVr1rS9/fbbDtu4fPmyrUaNGsmmZ0SHDh1sNWrUcLp97969k302t27dsj311FO2ESNG2Kcl7evdx6bN9r/vx92fY9I6V65c6dA2IiLCZjabbbVr17Zdu3bNPn3
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Patrimoine ===\n",
"Clients exploitables : 3058\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 2714\n",
"1 1 188\n",
"2 2 156\n"
]
}
],
"source": [
"test_family = top_15_families[0]\n",
"\n",
"result_test = run_family_clustering(\n",
" df_base=df_family_client_base,\n",
" family_name=test_family,\n",
" features=family_cluster_features,\n",
" k_min=3,\n",
" k_max=10,\n",
" min_clients=50,\n",
" min_cluster_size=10,\n",
" random_state=RANDOM_STATE,\n",
" make_plots=True\n",
")"
]
},
{
"cell_type": "markdown",
"id": "976e01e0",
"metadata": {
"jp-MarkdownHeadingCollapsed": true
},
"source": [
"## 15. Boucle sur les top 15 families"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "d4eb3668",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Patrimoine\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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tmzZZDAYFBERoYEDB+qvv/7SunXr5OHhoYEDByYbU1BQkCl50rt3b+XKlUvff/99sr8Av3TpkgYPHqxXX31V7du319q1azV8+HBVrFhRZcuWlfSgJ8n27dvVsmVLFS1aVCEhIVq9erW6du2qn3/+2TSnQHx8vPr06SN/f3+1adNGb775pu7cuaO9e/fqn3/+UfHixZ+qXR8XGBgoe3t75c2bV7/99puOHDmiNm3aqFChQrp69apWrlypN998Uz///LNy5sypWrVqqVu3blq2bJn69u2rUqVKSZJKly79VO9FUiZMmCBXV1cNGjRIf/31l1avXi0nJycdOXJEhQsX1tChQ7V7924tXLhQXl5eateunaQHvTH69eunAwcO6NVXX1X58uW1Z88effbZZwoKCtLIkSP/8/wnTJigvHnzauDAgbp69aqWLFmicePGafr06aY6fn5+Gj58uBo0aKBhw4YpJiZGK1eu1BtvvKEff/wxzebZ2LFjhySZ9WpJL4MGDdLZs2fVtWtXeXh4KCwsTHv37tX169dVtGhRjRw5UuPHj1euXLnUt29fSZKrq6skKSYmRl27dlVQUJA6d+6swoUL68iRI5o2bZqCg4M1atQos2OtW7dO9+7dU8eOHeXo6ChnZ+ckYzpz5oz69Okjb29vvfvuu3J0dNSlS5f0559/PvFcdu3apaFDh8rLy0vvv/++bt++rVGjRiU7F8fGjRt1584dderUSQaDQd98840GDRqk7du3m3oN7du3T1euXFGHDh3k5uamM2fOaM2aNTp79qzWrFkjg8GgF154QRcvXtTGjRs1YsQI5c+fX5Lk4uKSZHLrvwwePFienp4aOnSoKbE2d+5cffXVV2rVqpVeffVVhYWF6bvvvlOXLl3k5+envHnzKjY2Vm+//bZiY2PVtWtXubq6KigoSLt27VJERIScnJxSHAsAAACyKCMAAEAmExkZafTy8jL269fvqbeJiYlJVNazZ09js2bNzMqaNGli9PLyMu7evdusfP/+/UYvLy9j27ZtjbGxsaby9957z+jt7W3s1auXWf1OnToZmzRpkmjfH330ken1+PHjjd7e3saTJ0+aysLDw42+vr5GLy8v45UrVxLFdejQIVNZaGiosVKlSsZPP/3UVHbv3j1jfHy82XGvXLlirFSpknHWrFmmsh9++MHo5eVlXLRoUaJ2SUhISFT2uK5duxpbtmxpDA0NNYaGhhrPnj1rHD9+vNHLy8vYp08fo9GYdHsfOXLE6OXlZfzxxx9NZZs3bzZ6eXkZ9+/fn6h+cu/Fw3WPt+XatWuNXl5exp49e5rF36lTJ6O3t7dxzJgxprL79+8bGzVqZOzataup7JdffjF6eXkZ58yZY3acQYMGGb29vY2XLl36z2N3797d7NiTJk0yli9f3hgREWE0Go3GqKgoY82aNY2jR482O0ZwcLCxRo0aicqfRbt27Yw1atR46vofffSR2fX68Hr/9/ty5coVo5eXl3Ht2rVGo9FovH37ttHLy8v4zTffPHH/bdq0MWvvh2bPnm2sWrWq8cKFC2blX3zxhbF8+fLGa9eumR23evXqxtDQ0P88n0WLFhm9vLyeWPff52I0Go1t27Y1NmrUyBgVFWUqO3DggNHLy8usfR5u6+vra7x165apfPv27UYvLy/jr7/
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAHqCAYAAAD4TK2HAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA/DRJREFUeJzs3Xd4VNXWwOHf9JJMek8IfUKAQEJv0gRFUBTkWoFru5bPXq9d7FiuBSv2jqgURSkKCqJU6SUQEkJ6r5NMnznfH2MGhhQCpBDc7/PwaM4+M2fPmbZmn7XXlkmSJCEIgiAIgiAIHYy8vTsgCIIgCIIgCKdCBLKCIAiCIAhChyQCWUEQBEEQBKFDEoGsIAiCIAiC0CGJQFYQBEEQBEHokEQgKwiCIAiCIHRIIpAVBEEQBEEQOiQRyAqCIAiCIAgdkghkBUEQBEEQhA5JBLJCqxk/fjwPPvhge3fjrNCe51I8jx3HrFmzmDVrVpsfd/PmzSQkJLB58+Y2PzaA2+3mwgsv5J133mmX459pTvU9m5ubS0JCAosXL26FXp2Y+Kw5c1RUVJCcnMy6devauysnJALZDiY7O5vHH3+cc889l6SkJAYMGMAVV1zBp59+itVqbe/unZVmzZpFQkKC99+QIUO49NJL+e6773C73Sd1X+np6bzxxhvk5ua2Um//meq+gOv+JSYmMnbsWG699VZSU1Pr7W+z2fjkk0/417/+xcCBA0lKSuL888/nqaeeIjMzs8FjvPjiiyQkJHDXXXe18qM5c3355ZftFuQ05ccff6SgoICZM2e2d1eEdvTOO+9w8803M2LECBISEnjjjTdO6vZ2u52XXnqJUaNG0a9fP/71r3/x559/Nrjv9u3bufLKK+nfvz8jR47kmWeeoba29rT6n5GRwfXXX09KSgpDhgzh/vvvp7y8vNm3X7NmDdOmTSMpKYmxY8cyb948nE5nvf2qq6t57LHHGDZsGMnJycyaNYt9+/b57BMcHMyMGTN4/fXXT+sxtQVle3dAaL61a9dy5513olarufjiizEajTgcDrZt28ZLL71Eeno6Tz/9dHt302vlypXIZLL27kaLiIqK4p577gE8v1SXLl3KI488wpEjR7jvvvuafT/p6em8+eabDBkyhLi4uGbfrj3PZUd6Hi+88EJGjx6N2+0mIyODBQsW8Pvvv/PNN9+QmJgIQHl5OTfccAP79u1j3LhxXHjhhej1ejIzM1m+fDnffPMNe/fu9blfSZL46aefiI2N5bfffqOmpgZ/f//2eIhN+vDDD1v1/hcsWEBwcDDTp0/32T548GB2796NSqVq1eM35sMPP2TKlCkYDIZ2Of7ZIjY2lt27d6NUdszQ4LXXXiM8PJzExET++OOPk779gw8+yKpVq5g9ezZdunRhyZIl3HjjjXz66acMGjTIu19qairXXHMN3bt358EHH6SwsJCPPvqII0eO8MEHH5xS3wsLC7n66qsxGAzcfffdmM1mPvroI9LS0vj2229Rq9VN3n7dunXceuutDBkyhMcee4y0tDTeeecdysrKePLJJ737ud1ubrzxRg4ePMj1119PcHAwX331FbNmzWLx4sV06dLFu++VV17J559/zsaNGxk+fPgpPa42IQkdQnZ2tpScnCxNmjRJKioqqtd+5MgR6ZNPPjnt47jdbslisZz2/ZxNZs6cKU2ZMsVnm9lslkaPHi0lJydLdru92fe1YsUKyWg0Sps2bTrhvuK5aL6cnBzJaDRKH3zwgc/2NWvWSEajUXrssce822688UapV69e0sqVK+vdj81mk+bOnVtv+8aNGyWj0Sht3LhR6tOnj7R48eKWfxANqK2tbZPjNNeUKVOkmTNntnc3fOzbt08yGo3Shg0b2vzYZ9rzU2fcuHHSf//73/buxkk73X7n5ORIkiRJZWVlktFolObNm9fs2+7ataveZ4jVapUmTJggXX755T773nDDDdLIkSMlk8nk3fbNN99IRqNRWr9+/Sn1/YknnpD69esn5eXlebf9+eefktFolL7++usT3n7y5MnS1KlTJYfD4d32yiuvSAkJCVJ6erp3208//SQZjUZpxYoV3m1lZWXSoEGDpHvuuafe/V544YXS/ffff0qPqa2I1IIO4oMPPsBsNvPss88SERFRr71z5878+9//9v69aNEiZs+ezfDhw+nbty+TJ0/mq6++qne78ePHc9NNN7F+/XqmT59Ov379+Prrr705b8uXL+fNN9/knHPOISUlhTvuuAOTyYTdbufZZ59l+PDhpKSk8NBDD2G32+vd9/H5TgcOHGDmzJn069eP0aNH8/bbb7No0SISEhJ8LrfX9euvv/5ixowZJCUlce6557J06VKf+6usrOSFF17goosuIiUlhQEDBnDDDTdw4MCBeo/VZrPxxhtvcP7555OUlMSoUaO47bbbyM7ObtZzcCydTkf//v0xm82Ul5eTl5fHnDlzOP/88+nXrx9Dhw7ljjvu8HlMixcv5s477wRg9uzZ3svgdXmFjT0XDZ3LxYsXk5CQwF9//cUzzzzDsGHDGDRoEI8//jh2u53q6moeeOABBg8ezODBg3nxxReRJMnnMZjNZubOncuYMWPo27cv559/Ph9++GG9/Ro79rZt23j++ee9l6duvfXWBi+DrVu3jquuuork5GRSUlK48cYbOXTo0Emf81MxbNgwAO/zsGvXLtauXcuMGTM4//zz6+2vVqv573//W2/7smXL6NGjB8OGDWP48OEsW7as2X1ISEjgqaee4ocffvC+9qZPn87WrVt99nvjjTdISEggPT2de++9l8GDB3PVVVcB4HQ6eeutt5gwYQJ9+/Zl/PjxvPLKK/Xecw3lyNrtdubNm8fEiRPp27cvY8aM4cUXX6x3W4Dvv/+eGTNm0L9/fwYPHszVV1/tHdkaP348hw4dYsuWLd7Xbt2xGsuRXbFihfe1PHToUO677z6Kiop89nnwwQdJSUmhqKiI//u//yMlJYVhw4bxwgsv4HK5Tnh+V69ejUql8hkxW7lyJQkJCWzZsqXe/l9//TUJCQmkpaUBns+kBx980JuuNXLkSB566CEqKip8btfU89OY6upqnn32We97bOLEibz33nvelCRJkpg1axbDhg2jrKzMezu73c5FF13EhAkTMJvNPsfPyMjgzjvvZMCAAQwdOpRnnnkGm83WZD+a+znZUI7syTw/brebTz75hClTppCUlMSIESN4/PHHqaqq8tlPkiTefvttRo8eTf/+/Zk1a1ajnwnZ2dnN/ow+matcx1u5ciUKhYLLL7/cu02j0TBjxgx27NhBQUEBADU1NWzYsIGpU6f6XJW5+OKL0ev1rFix4pSO//PPPzN27FhiYmK820aMGEGXLl1OeJ/p6emkp6dz2WWX+YymX3XVVUiSxKpVq7zbVq1aRVhYGOedd553W0hICBdccAFr1qyp97kwYsQIfvvtt3rfC2eSjnn94B/ot99+o1OnTgwYMKBZ+y9YsICePXsyfvx4lEolv/32G08++SSSJHH11Vf77JuZmcm9997L5ZdfzmWXXUbXrl29be+99x5arZYbb7yRrKwsvvjiC5RKJTKZjOrqam677TZ27drF4sWLiY2N5bbbbmu0T0VFRd5g+8Ybb0Sv1zd5ySQrK4s777yTGTNmMG3aNBYtWsSDDz5Inz596NmzJwA5OTmsXr2aSZMmERcXR2lpKQsXLmTmzJn89NNPREZGAuByubjpppvYuHEjU6ZMYfbs2dTW1vLnn3+SlpZGfHx8s87rsXJzc1EoFAQEBLBu3Tp27NjBlClTiIqKIi8vjwULFjB79mx++ukndDodgwcPZtasWXz++efcfPPNdOvWDYDu3bs367loyDPPPENYWBi33347u3btYuHChRgMBnbs2EF0dDR33303v//+Ox9++CFGo5FLLrkE8HyR3HLLLWzevJkZM2aQmJjI+vXrefHFFykqKuLhhx8+4eN/5plnCAgI4LbbbiMvL49PP/2Up556itdee827z9KlS3nwwQcZNWoU9913HxaLhQULFnDVVVexZMmS0/riaY66L8CgoCA
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVOdJREFUeJzt3Xl8TGf///F3MhKR2pNYqnadsSQkdmorVUvtu9LFvre3tl+N6q3UEmu14S6K21ZVNCgt2tIW1dBSStVSpcRSRCyNJBKT+f3hl7mNLCaSk5F4PR+PPm5zznXO+ZyZM+fOe851neNms9lsAgAAAAAAmc7d1QUAAAAAAJBTEboBAAAAADAIoRsAAAAAAIMQugEAAAAAMAihGwAAAAAAgxC6AQAAAAAwCKEbAAAAAACDELoBAAAAADAIoRsAAAAAAIMQugHgIde0aVMFBwe7uowcwZXvZU78HF944QW1adPG1WU89GbPni2LxWLIuvfs2SOLxaI9e/ZkeF0P0+eZE78vAB5duVxdAAC4wpkzZ7Rw4ULt2rVLly5dkoeHh8xms1q1aqXu3bvLy8vL1SXmOC+88IJ++ukn++sCBQqoZMmS6tmzpzp16iR3d+d/Bz5x4oQ2b96sjh076oknnjCi3EdadHS0lixZoq+//loRERGyWq0qVaqUGjdurBdffFFFixZ1dYnAA4uNjdXChQtVu3Zt1alTx9XlAHgEELoBPHK+//57vfrqq/L09FT79u1lNpuVkJCgffv2afr06Tpx4oQmTJjg6jLttmzZIjc3N1eXkSmKFSum1157TZJ09epVrV+/XmPGjNFff/2lN954w+n1nDhxQnPmzFHt2rXTFbpd+V5ml88xIiJCL7/8si5cuKCWLVuqe/fu8vDw0LFjx/TZZ59p69at+uqrr1xdJv6/WrVq6eDBg/Lw8HB1KdlGbGys5syZo+HDhxO6AWQJQjeAR0pERIRGjhypxx9/XEuXLlWRIkXs83r16qXTp0/r+++/z/B2bDabbt26lSlXzD09PTO8jodFvnz51L59e/vr7t27q2XLllqxYoVeffVVQ4LD3Z+FK9/L7PA53r59W8OHD9eVK1e0bNky1axZ02H+yJEjtWDBgiyvKzY2Vnny5Mny7WYH7u7uyp07t6vLgKSYmBh5e3u7ugwADyHGdAN4pCxcuFAxMTGaNGmSQ+BOUrp0ab300kv212FhYXrxxRdVr149+fv7q3Xr1vrkk0+SLde0aVMNGjRIO3fuVKdOnVS1alV9+umn9vGWmzZt0pw5c9SwYUMFBQXplVde0T///KP4+HhNmjRJ9erVU1BQkEaPHq34+Phk6753bOPRo0fVu3dvVa1aVY0aNdKHH36osLAwWSwWnT17Nllde/fuVZcuXRQQEKBmzZpp/fr1Duu7du2apk6dqrZt2yooKEjVq1dX//79dfTo0WT7euvWLc2ePVstWrRQQECAGjRooOHDh+vMmTNOfQZ3y5Mnj6pVq6aYmBhFRUXp3LlzGjdunFq0aKGqVauqTp06euWVVxz2ae3atXr11VclSS+++KIsFovDmNbUPouU3su1a9fKYrFo7969mjhxourWrauaNWtq7Nixio+P140bNzRq1CjVqlVLtWrV0rRp02Sz2Rz2ISYmRlOmTFHjxo3l7++vFi1aaNGiRcnapbbtffv2KSQkRHXr1lVgYKCGDRumqKioZO/V9u3b9fzzzyswMFBBQUEaOHCg/vjjj3S/52n5+uuvdfToUQ0ePDhZ4JakvHnzauTIkcmmnzhxQi+88IKqVaumhg0bJgvmSft69+copTweOWlc8W+//aZevXqpWrVqeu+993T27FlZLBYtWrRIq1at0jPPPCN/f3917txZBw8evO++OXuM3/2dnTt3rho1aqSAgAC99NJLOn36tEPbvXv36pVXXlGTJk3k7++vxo0ba/LkyYqLi0uzlt69e6tdu3YpzmvRooX69etnf/3ll1+qU6dO9prbtm2rpUuXpvke/vXXXxoxYoSeeuopBQQEqFGjRho5cqT++eef+75PkvTbb7+pR48eqlq1qpo2baqVK1fa5928eVOBgYGaOHFisuX+/vtvVapUSfPnz09z/YmJiVq6dKnatm2rgIAA1a1bV/369dOhQ4dSXSa1cfEpHVuHDh1Sv379VKdOHfs+jB49WpJ09uxZ1atXT5I0Z84c+/lj9uzZ9uX//PNPvfLKK6pdu7YCAgLUqVMnbdu2LcXt/vTTTxo3bpzq1aunxo0bp7nfAB5dXOkG8Ej57rvvVLJkSVWvXt2p9itXrtSTTz6ppk2bKleuXPruu+80fvx42Ww29erVy6HtqVOn9Prrr6t79+7q1q2bypYta5/30UcfycvLSwMHDtTp06f18ccfK1euXHJzc9ONGzc0fPhw/frrr1q7dq1KlCih4cOHp1rTxYsX7T8MDBw4UN7e3lqzZk2qV1JPnz6tV199VV26dFHHjh0VFham4OBgValSRU8++aSkOz0Atm7dqpYtW+qJJ55QZGSkVq1apd69e+vLL7+0j+G1Wq0aNGiQwsPD9dxzz+nFF1/UzZs3tWvXLh0/flylSpVy6n2929mzZ2UymZQ/f35t375d+/fv13PPPadixYrp3LlzWrlypV588UV9+eWXypMnj2rVqqUXXnhBy5cv1+DBg1WuXDlJUvny5Z36LFIyceJE+fr6asSIEfr111+1atUq5cuXT/v371fx4sU1cuRI7dixQ4sWLZLZbFaHDh0k3bmKPmTIEO3Zs0ddunRRpUqVtHPnTk2bNk0XL17UW2+9dd/9nzhxovLnz6/hw4fr3LlzWrp0qd599129//779jbr169XcHCwGjRooDfeeEOxsbFauXKlnn/+ea1bty7TxrUnBYu7eyPcz/Xr19W/f381b95crVq10ldffaUZM2bIbDY/cAi5du2aBgwYoOeee07t2rWTj4+Pfd4XX3yhmzdvqnv37nJzc9PChQs1YsQIbd26Nc2eEs4e40kWLFggNzc39e3bV9HR0Vq4cKHeeOMNrVmzxt5my5YtiouLU8+ePVWwYEEdPHhQH3/8sf7++2+FhoamWkv79u319ttv6/jx4zKbzfbpBw8e1F9//aUhQ4ZIknbt2qXXXntN9erVsw+/OHnypH755ReHHwfvFh8fr379+ik+Pl69e/eWr6+vLl68qO+//143btxQvnz50njn73yeAwcOVKtWrfTcc89p8+bNGjdunDw8PNSlSxc99thjeuaZZ7R582aNHj1aJpPJvuwXX3whm82mtm3bprmNMWPGaO3atWrUqJG6dOkiq9WqvXv36tdff1VAQECay97PlStX1K9fPxUqVEgDBw5U/vz5dfbsWX3zzTeSpMKFC2vcuHEaN26cmjdvrubNm0uSPdD/8ccf6tmzp4oWLaoBAwbI29tbmzdv1rBhwzR79mx7+yTjx49X4cKFNWzYMMXExGSodgA5mA0AHhH//POPzWw224YMGeL0MrGxscmm9e3b19asWTOHaU8//bTNbDbbduzY4TB99+7dNrPZbGvTpo0tPj7ePv21116zWSwWW//+/R3ad+/e3fb0008nW/ebb75pfz1hwgSbxWKx/f777/ZpV69etdWuXdtmNpttERERyer6+eef7dOuXLli8/f3t02ZMsU+7datWzar1eqw3YiICJu/v79tzpw59mmfffaZzWw22xYvXpzsfUlMTEw27W69e/e2tWzZ0nblyhXblStXbCdOnLBNmDDBZjabbYMGDbLZbCm/3/v377eZzWbbunXr7NM2b95sM5vNtt27dydrn9pnkTTv7vcyLCzMZjabbX379nWov3v37jaLxWIbO3asfdrt27dtjRo1svXu3ds+7ZtvvrGZzWbbhx9+6LCdESNG2CwWi+306dP33fbLL7/ssO3JkyfbKlWqZLtx44bNZrPZoqOjbTVr1rS9/fbbDtu4fPmyrUaNGsmmZ0SHDh1sNWrUcLp97969k302t27dsj311FO2ESNG2Kcl7evdx6bN9r/vx92fY9I6V65c6dA2IiLCZjabbbVr17Zdu3bNPn3
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Patrimoine ===\n",
"Clients exploitables : 3058\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 2714\n",
"1 1 188\n",
"2 2 156\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Sécurité\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdIAAAGGCAYAAAB/pnNVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2JNJREFUeJzs3Xl4TGf7B/DvzGRPJGSPSMgimySCEtKoNYpSRVEVRSltaf26odWWtAhab1vVoqhdVWurWlpqr9i3kAiRyEJk32TPzPz+iEyNLDIxyZmZfD/X5XpfZ545c98zo+fMfZ5zPyK5XC4HERERERERERERERFVSyx0AEREREREREREREREmoyFdCIiIiIiIiIiIiKiWrCQTkRERERERERERERUCxbSiYiIiIiIiIiIiIhqwUI6EREREREREREREVEtWEgnIiIiIiIiIiIiIqoFC+lERERERERERERERLVgIZ2IiIiIiIiIiIiIqBYspBPpmF27dmHTpk1Ch1FvGzduxK5du4QOg4iIqM547CUiIiJ14rkFkWZiIZ10Su/evTFr1iyhwxDMP//8gzlz5sDHx0ewGL7//nt4enrW67kbN27EDz/8gICAAPUGpYIzZ87A09MTZ86cUWybNWsWevfurfh7cnIyPD09sWbNGiFCJCLSKDz28tiryZri99PT0xPff//9E8dV971piu8XEWmepv7fIp5baKexY8di7NixQodBDUxP6ABI8yUmJmL16tX4999/kZaWBn19fXh4eGDAgAEYNWoUjIyMhA5R58hkMvzxxx/YvHkzEhISUFZWBltbW7Rv3x6vvvpqtQek5ORkzJ49G19//TU6duzY+EHXYsWKFXB3d0ffvn1rHHP16lUsXboUq1atQps2bdQeQ33eU223Z88eZGZmYvz48UrbU1NTsW3bNvTt2xfe3t7CBEdEteKxt/Hx2NtG7TGMHTsWZ8+eBQCIRCKYmJjAxsYG/v7+eOmll/Dss8+q/TU1weOFB2NjY7Rs2RKDBg3ChAkTYGxsLFBkRNSU8dyi8fHcoo3aYxg7diyys7Px559/qn3fdREbG4v9+/dj6NChaNWqlSAxkLBYSKdaHT16FNOnT4eBgQGGDBkCDw8PlJWV4cKFC/jqq68QGxuLL7/8UugwFQ4cOACRSCR0GE9t3rx52Lx5M/r06YPBgwdDIpEgPj4eJ06cgJOTU7UH3Bs3buCLL75ASEhI4wf8iLfeeguTJ09W2rZy5Uo8//zztR5wY2NjsXTp0gYraNf1Pe3cuTOuXr0KfX39BomjMf3555+4detWlUJ6Wloali1bBkdHRxbSiTQQj73C4LG3Ydjb2+P9998HABQVFSEhIQEHDx7EH3/8gQEDBuCrr75q0GOuUN/PZ599FkOGDAEAFBYW4vz58/juu+9w48YNLF26tNHjqStd+fdMRMp4biEMnlvontjYWCxbtgxdunSpUkjnHetNAwvpVKOkpCS89957aNmyJdavXw9bW1vFY2PGjEFCQgKOHj361K8jl8tRUlKilivgBgYGT70PoWVkZGDLli0YOXJklZMZuVyOrKysap9X28GsMRQWFsLExAR6enrQ01P9Py3Dhg1rgKgqqPKeisViGBoaNlgsRES14bFXGDz2NpxmzZopCsqVPvzwQ8ybNw9btmyBo6MjPvroowZ7faG+n23atFHKe/To0SgrK8PBgwdRUlKisecauvDvmYiU8dxCGDy30C0lJSVPvPCvC99bejL2SKcarV69GoWFhZg/f77SwbZS69atMW7cOMXft2/fjtdeew3dunWDr68vBg4ciC1btlR5Xu/evTFlyhScOHECw4YNg7+/P7Zu3aroTb1v3z4sW7YM3bt3R4cOHfDuu+8iPz8fpaWlmD9/Prp164YOHTrg448/RmlpaZV9P95L7caNGwgNDYW/vz+ee+45/Pjjj9i+fTs8PT2RnJxcJa7z58/j5Zdfhp+fH/r06VNlgYycnBwsWrQIgwcPRocOHdCxY0dMmjQJN27cqJJrSUkJvv/+ezz//PPw8/NDcHAwpk2bhsTExBrf9+TkZMjl8mpv4xKJRLCyslLalpeXh/nz56NHjx7w9fVFSEgIfvrpJ8hkMqVxMpkM69evx+DBg+Hn54euXbti4sSJiIyMVLyup6cnduzYUeV1H++1WdkvLTY2Fh988AE6d+6MV199VemxR59bWFiInTt3wtPTE56enkqfUWpqKj7++GMEBQXB19cXL7zwAn7//fca35/6UOU9ra5Hem1+/fVX9O3bF76+vhg+fDiuXr1aZUxERITi1r1nnnkGb731Fm7fvq005vE+7JVq6k23e/duxb+fLl264L333kNKSori8bFjx+Lo0aO4e/eu4n3v3bs3zpw5g5dffhkA8PHHHysee/Rzv3LlCiZOnIhOnTqhffv2CA0NxYULF+r0fhDR0+Gxl8feStp+7K2NRCLBp59+Cnd3d2zevBn5+fmKx+rynZ4yZQr69OlT7b5HjRql9CO+uu9nXT+/vXv3YtiwYYrv3ODBg7F+/fp6521jYwORSASJRKK0ff/+/Yp/l4GBgfjwww+RmpqqNKamvqs1nT887vz58xg+fDj8/PzQt29fbN26tdpxj79fO3bsgKenJy5cuIDw8HB07doVAQEBmDp1ao1FICLSLDy34LlFJV09t/D09MQXX3yBQ4cOYdCgQYrXP378eJWxdYmz8ju8d+9efPPNN+jevTvat2+PDRs2YPr06QCA1157TfE+VNYOHj9Wl5aW4rvvvsOwYcPQqVMnBAQE4NVXX8Xp06cb8N2ghsYZ6VSjI0eOwMnJqc59uX755Re0bdsWvXv3hp6eHo4cOYKwsDDI5XKMGTNGaWx8fDw++OADjBo1CiNHjoSLi4visZ9++glGRkaYPHkyEhISsGnTJujp6UEkEiEvLw/Tpk3DlStXsGPHDjg6OmLatGk1xpSamqo4KZg8eTJMTEzw22+/1XilMCEhAdOnT8fLL7+MoUOHYvv27Zg1axbatWuHtm3bAqi4on/o0CH0798frVq1QkZGBn799VeEhoZi7969sLOzAwBIpVJMmTIFEREReOGFF/Daa6+hoKAA//77L27evAlnZ+dqY2jZsiWAitvZ+vfvX2sfzaKiIoSGhiI1NRWvvPIKHBwccOnSJfzvf/9Deno6Zs+erRg7e/Zs7NixA8899xxefvllSKVSnD9/HleuXIGfn1+Nr1Gb6dOno3Xr1njvvfcgl8urHbN48WJ8+umn8Pf3x8iRIwFAkXtGRgZGjhwJkUiEMWPGwNLSEsePH8fs2bPx4MGDKi1J6kuV91QVf/75JwoKCjBq1CiIRCKsXr0a77zzDg4dOqS4Wn3q1Cm88cYbaNWqFaZNm4bi4mJs2rQJo0ePxo4dO+rVV2358uX47rvvMGDAALz88svIysrCpk2bMGbMGOzatQvm5uZ48803kZ+fj/v37+Pjjz8GAJiamsLNzQ3vvvsuli5dilGjRqFTp04AoPh3HhERgTfeeAO+vr6YNm0aRCIRduzYgXHjxmHLli3w9/dXy3tHRNXjsZfH3ifRlmPvk0gkErzwwgv47rvvcOHCBfTs2RNA3b7TAwYMwMyZM3H16lWl49Ldu3dx+fJlzJgxo8bXrevn9++//+L9999Ht27d8OGHHwIA4uLicPHiRaWCU01KSkoUheaioiJcvHgRO3fuxKBBg5Rm+O3YsQMff/wx/Pz88P777yMzMxMbNmzAxYsXFcf0pxUTE4OJEyfC0tIS77zzDsrLy/H9999XKeLUZt68eTA3N8e0adNw9+5drF+/Hl988QW+/fbbp46PiBoWzy14bvEkunBuceHCBfz999949dVXYWpqio0bN+Ldd9/FkSNH0KJFi3rF+eOPP0JfXx8TJ05EaWkpgoODMXbsWGzcuBFvvvkmXF1dAQBubm7VxvTgwQP89ttvGDRoEEaMGIGCggL8/vvvmDRpEn777Te2WdVWcqJq5Ofnyz08PORvvfVWnZ9TVFRUZdvrr78u79Onj9K2Xr16yT08POTHjx9X2n769Gm5h4eHfNCgQfL
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAGGCAYAAACNCg6xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPa5JREFUeJzt3Xl8TGf///F3MhJiCxIUQS3NoEkkQRFRrbWk2oZaWlvdltJaqtQSaq+t9Ea5qaVqV0q1WndVdEvbWL8htJZq1VK9KwsSkkrMzO8PD/MzjehJGpkJr+fj4fHoXOc6Zz5nTipv17nONW42m80mAAAA/C13ZxcAAABQUBCcAAAADCI4AQAAGERwAgAAMIjgBAAAYBDBCQAAwCCCEwAAgEEEJwAAAIMITgBc1tatW7VmzRpnl5Frq1ev1tatW51dBoA8RHACXFTz5s01evRoZ5fhNLt27dKECRNUp04dp9Xw9ttvy2w252rf1atXa+HChQoODs7bonJoz549MpvN2rNnj1PryG89evRQjx49nF0G7kGFnF0AkJ/OnDmjZcuW6bvvvtOFCxfk4eEhf39/tW3bVl26dFGRIkWcXeI9x2q16uOPP9batWt1+vRpZWZmqly5cqpbt66ef/752waLc+fOaezYsZo9e7ZCQ0Pzv+g7WLx4sWrWrKmWLVtm2yc+Pl7z58/X0qVL9eCDD961Wnbu3Kn3339fhw8f1tWrV1WqVCnVq1dPXbt2VePGje/a+97q//7v//Tdd9+pV69eKlmyZL68J+BMbnxXHe4XX331lYYOHSpPT089/fTT8vf3V2Zmpg4cOKDPP/9ckZGRmjJlirPLtMvIyJCbm5s8PDycXco/MnnyZK1du1YtWrRQo0aNZDKZdOrUKcXExOjJJ5/U4MGDs+wTHR0tq9Wq1q1bO6Hi/+/69euyWCwqXLiwvS0kJERt2rTRjBkzst1vy5YtqlChwl0LLzabTVFRUdqyZYvq1KmjNm3ayNfXVwkJCdq5c6d++OEHrV+/XqGhodqzZ4969uypVatWqWHDhnley/LlyzVr1izt2rVLfn5+eX783MrIyJAkeXp6OrkS3GsYccJ94ezZsxo2bJgqVqyolStXqly5cvZt3bp10+nTp/XVV1/94/ex2Wy6du1anoxc3Qt/4ScmJmrdunXq3LlzllBqs9mUnJx82/3uNJqTH9LS0lS0aFEVKlRIhQrl/K/JDh063IWq/r93331XW7ZsUa9evTRmzBi5ubnZtw0cOFBbt27NVd2uJD09XV5eXrne/174/weuiTlOuC8sW7ZMaWlpeuONNxxC001Vq1ZVr1697K83b96snj17qnHjxgoICFC7du20bt26LPs1b95cL774omJiYtShQwcFBQVpw4YN9nkl27dv14IFC9S0aVOFhIRoyJAhSk1NVUZGht544w01btxYISEhGjNmjP1fyLce+69znI4dO6bu3bsrKChIjz76qP7zn/9o8+bNMpvNOnfuXJa69u/fr2effVaBgYFq0aJFlonKly5d0syZM9W+fXuFhIQoNDRUffv21bFjx7Kc67Vr1/T222+rTZs2CgwMVHh4uAYNGqQzZ85k+7mfO3dONpvttrfb3Nzc5OPj49CWkpKiN954Q82aNVNAQIBatWqlJUuWyGq1OvSzWq1auXKl2rdvr8DAQDVq1Eh9+vTR4cOH7e9rNpu1ZcuWLO9rNpv19ttv21/fnMd08uRJDR8+XA0aNNDzzz/vsO3WfdPS0vThhx/KbDbLbDY7XKM//vhDY8aMUVhYmAICAhQREaEPPvgg288nN/78808tWbJE1atX16hRoxxC003PPPOMgoKCsj1GdvPnbjcvaPXq1YqIiFDdunXVoEEDdejQQdu2bZN04/OZNWuWJKlFixb2z+TWn8WPPvrI/v/GI488omHDhun333/P8r5PPvmkjhw5om7duqlu3bp66623sq0/ISFBY8aM0aOPPqqAgACFh4dr4MCBDu/713Np3ry5vb6//rl1/pfRa3inzwX3toL9TxLAoC+//FKVK1c2PF9m/fr1euihh9S8eXMVKlRIX375pSZNmiSbzaZu3bo59D116pSGDx+uLl26qHPnzqpWrZp925IlS1SkSBH1799fp0+f1po1a1SoUCG5ubkpJSVFgwYN0qFDh7RlyxZVqlRJgwYNyramP/74wx7u+vfvr6JFi2rTpk3Z/sv69OnTGjp0qJ599llFRkZq8+bNGj16tB5++GE99NBDkm6MxEVHR+uJJ56Qn5+fEhMT9f7776t79+769NNPVb58eUmSxWLRiy++qNjYWEVERKhnz566evWqvvvuO504cUJVqlS5bQ0VK1aUJH322Wd64okn7jiCkJ6eru7du+uPP/5Q165dVaFCBcXFxemtt95SQkKCxo4da+87duxYbdmyRY8++qieffZZWSwW7d+/X4cOHVJgYGC273EnQ4cOVdWqVTVs2DBlN4Nh1qxZGjdunIKCgtS5c2dJsp97YmKiOnfuLDc3N3Xr1k1lypTRN998o7Fjx+rKlSt64YUXclXXXx04cECXLl1Sz549ZTKZ8uSY2dm4caOmTp2qNm3aqGfPnrp27ZqOHz+uQ4cOqX379mrVqpV+/fVXffLJJxozZoxKly4tSSpTpowkadGiRZo3b57atm2rZ599VsnJyVqzZo26deumrVu3OsyJunTpkvr166eIiAg99dRTWUL1rQYPHqyTJ0+qe/fuqlSpkpKTk/Xdd9/p999/z/Z2YVRUlK5everQtnLlSh09elSlSpWSZPwa/t3ngnucDbjHpaam2vz9/W0DBw40vE96enqWtn/961+2Fi1aOLQ9/vjjNn9/f9s333zj0L57926bv7+/7cknn7RlZGTY21999VWb2Wy29e3b16F/ly5dbI8//niWY48aNcr+esqUKTaz2Wz78ccf7W0XL160PfLIIzZ/f3/b2bNns9S1b98+e1tSUpItICDANmPGDHvbtWvXbBaLxeF9z549awsICLAtWLDA3vbBBx/Y/P39bStWrMjyuVit1ixttxo5cqTN39/f1qBBA9vLL79sW758ue3kyZNZ+i1cuNAWHBxsO3XqlEP77NmzbbVr17adP3/eZrPZbLGxsTZ/f3/blClTsq3l7NmzNn9/f9vmzZuz9PH397fNnz/f/nr+/Pk2f39/26uvvpql781ttwoODna4LjdFRUXZmjRpYktOTnZoHzZsmK1evXq3/ZnKjZUrV9r8/f1tO3fuNNT/5s/i7t277W1//dm6qXv37rbu3bvbXw8cONAWERFxx+MvW7Ysy8+fzWaznTt3zla7dm3bokWLHNqPHz9uq1OnjkN79+7dbf7+/rb169f/7flcvnzZ5u/vb1u2bNkd+/31XP5q+/btNn9/f4efc6PX0MjngnsXt+pwz7ty5YokqVixYob3uXWOUmpqqpKTk/XII4/o7NmzSk1Ndejr5+enpk2b3vY4Tz/9tMPk7qCgINlsNnXs2NGhX1BQkH7//Xddv34925piYmIUHBys2rVr29tKlSqV7b9wa9asqfr169tflylTRtWqVdPZs2ftbZ6ennJ3v/HXgMVi0cWLF1W0aFFVq1ZNP/74o73f559/rtKlS6t79+5Z3ud2t4puNX36dI0fP15+fn7auXOnZs6cqXbt2qlXr176448/7P0+++wz1atXTyVLllRycrL9T1hYmCwWi/bt22evxc3N7bajc39Xy5107do11/vabDZ9/vnnat68uX3u1s0/4eHhSk1N1Q8//JDr498qNz/PuVWyZEn973//U3x8fI733blzp6xWq9q2bevwefj6+qpq1apZlkfw9PQ0NDesSJEi8vDw0N69e3X58uUc1yVJJ0+eVFRUlFq0aKGXXnpJUs6u4T/5XFDwcasO97zixYtLUpZh+js5cOCA3n77bR08eFDp6ekO21JTU1WiRAn76zs9SXTzVtVNN/erUKFClnar1arU1FT77Y6/+u2332776H52t8n++h6S5O3t7fDLxmq1atWqVVq3bp3OnTsni8Vi33bz9oV0YxmHatWq5WrCsbu
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVGFJREFUeJzt3Xl0TPf/x/FXMhJJqCWSqFpqa8aSILaiqFJ77UuptLWV2tqqlqgWUWopXYKiqK1qa1BKlS5KNbRVKl+1Ry2lgtiTSMzM7w/H/DqySCI3k8TzcY5zzL2fe+/7ztzP8Jr7ufe62Gw2mwAAAAAAQKZzdXYBAAAAAADkVoRuAAAAAAAMQugGAAAAAMAghG4AAAAAAAxC6AYAAAAAwCCEbgAAAAAADELoBgAAAADAIIRuAAAAAAAMQugGAAAAAMAghG4AQK6xdu1aff75584uI8OWLFmitWvXOrsMAACQiQjdAJBLNG7cWCEhIc4uw2m+//57jRkzRpUqVXJaDdOnT5fZbM7QskuWLNHMmTNVrVq1zC0qnVavXi2z2azIyEin1pHdnT59WmazWatXrzZk/ZnVn7PT53k//QMAcrI8zi4AALKzkydPat68edqxY4eio6Pl5uYmf39/tWzZUs8++6w8PDycXWKuY7VatW7dOi1dulQnTpxQYmKi/Pz8VLVqVT333HPJhtLTp09r1KhRmjp1qqpXr571Radi9uzZKl++vJ5++ukU2+zbt09hYWGaO3euSpcubVgtW7Zs0YoVKxQZGakbN26oUKFCqlGjhrp166a6desatl0gK6xfv14XL15Uz549nV0KADggdANACrZu3apXX31V7u7uateunfz9/ZWYmKjdu3fr/fff19GjR/Xuu+86u0y7TZs2ycXFxdll3Lfx48dr6dKlatKkidq0aSOTyaTjx49r+/btKlmyZLKh++DBgxo3bpyaNm2a9QX/x4ABA9SvXz+HaXPmzFHz5s1TDd1Hjx5VWFiYYWe5bTab3nrrLa1evVqVKlVSr1695OPjo/Pnz2vLli3q2bOnli1blu1+sHiQ5Zb+nJW+/vprHTlyhNANINshdANAMk6dOqWhQ4fqkUce0aJFi+Tn52ef16NHD504cUJbt2697+3YbDbdvHkzU86Yu7u73/c6nO3ChQv64osv1LVr1yQ/aNhsNsXExCS7XGqBNivExsbKy8tLefLkUZ486f+ntWPHjgZU9f8+++wzrV69Wi+++KJGjhzpEOYGDBigtWvXZqju+3HnPUPyckN/zg2sVqsSExOVN29eZ5cCIAfjmm4ASMa8efMUGxurCRMmOATuOx599FG9+OKL9tfh4eF64YUXVLduXQUEBKhVq1b64osvkizXuHFj9e/fX9u3b1fHjh1VpUoVLV++XLt27ZLZbNbGjRs1Y8YMNWjQQEFBQXrllVd07do1JSQkaMKECapbt66CgoI0cuRIJSQkJFn33deAHjx4UMHBwapSpYoaNmyoTz75ROHh4TKbzTp9+nSSun7//Xd17txZgYGBatKkSZKbel2+fFmTJ09WmzZtFBQUpOrVq6tv3746ePBgkn29efOmpk+frubNmyswMFD169fX4MGDdfLkyRTf99OnT8tmsyV7xtXFxUVFihRxmHb16lVNmDBBTz75pAICAtS0aVN9+umnslqtDu2sVqsWLVqkNm3aKDAwUHXq1FGfPn3s17mmdn2u2WzW9OnT7a/vXJd69OhRDRs2TLVq1dJzzz3nMO+/y8bGxmrNmjUym80ym80On9G5c+c0cuRI1atXTwEBAWrdurW+/PLLFN+fjIiPj9enn36qsmXLasSIEcmePW3fvr2qVKniMC0hIUETJ05UnTp1VK1aNQ0aNCjJjx53vzd33H0s3rmu+Ndff9XYsWNVt25dPfnkk5Kk559/Xs8884yOHj2q559/XlWrVlWDBg00d+7cNO1fevteZh7jd9dhNpv1119/JZk3e/ZsVaxYUefOnZMk/f333xoyZIieeOIJBQYGqmHDhho6dKiuXbuW4nuYmJioGTNmqFmzZgoMDNTjjz+u7t27a8eOHWl6n+Lj4zV69Gg9/vjjql69uoYPH64rV67Y548YMUKPP/64EhMTkyzbu3dvNW/e/J7b+PPPP/XSSy+pVq1aqlatmtq0aaNFixal2D49/e769euaMGGCGjdurICAANWtW1e9evXS/v37Jd0+jrZu3ap//vnH3tcaN25sXz4hIUFhYWFq2rSpAgIC9OSTT2rKlClJvkfNZrPGjRundevWqXXr1goMDNT27dvvue8AkBrOdANAMn788UeVLFkyzcNtly1bpscee0yNGzdWnjx59OOPPyo0NFQ2m009evRwaHv8+HENGzZMzz77rLp27aoyZcrY53366afy8PBQv379dOLECX3++efKkyePXFxcdPXqVQ0ePFh//vmnVq9ereLFi2vw4MEp1nTu3Dn7DwP9+vWTl5eXVq1aleIZtBMnTujVV19V586d1aFDB4WHhyskJESVK1fWY489Jun2CIDvvvtOLVq0UIkSJXThwgWtWLFCwcHB2rBhg4oWLSpJslgs6t+/vyIiItS6dWu98MILunHjhnbs2KHDhw+rVKlSydbwyCOPSLo9tLZFixby9PRMcf/i4uIUHBysc+fOqVu3bipWrJj27NmjDz74QOfPn9eoUaPsbUeNGqXVq1erYcOG6ty5sywWi37//Xf9+eefCgwMTHEbqXn11Vf16KOPaujQobLZbMm2mTJlit5++21VqVJFXbt2lST7vl+4cEFdu3aVi4uLevToIW9vb23btk2jRo3S9evXM22I7O7du3X58mW98MILMplMaV5u/PjxKlCggAYPHqx//vlHixYt0rhx4/TRRx9luJbQ0FB5e3tr0KBBio2NtU+/cuWK+vbtq6ZNm6ply5b69ttvNXXqVPn7+9vDeUrS0/cy8xi/W/PmzTVu3DitX78+yc381q9fr9q1a6to0aJKSEhQnz59lJCQoODgYPn4+OjcuXPaunWrrl69qoceeijZ9c+YMUNz5sxRly5dVKVKFV2/fl3/+9//tH//fj3xxBP3fO/HjRtn/zyPHz+uZcuW6cyZM1qyZIlcXFzUrl07rV27Vj///LOeeuop+3Lnz5/Xzp07NWjQoFTXv2PHDvXv319+fn564YUX5OPjo2PHjmnr1q0OP1Bm1JgxY/Ttt98qODhY5cqV0+XLl7V7924dO3ZMlStX1ssvv6xr167p33//1ciRIyVJ+fLlk3T7R7cBAwZo9+7d6tq1q8qVK6fDhw9r0aJF+vvvv/XJJ584bGvnzp365ptv1KNHDxUuXFjFixe/7/oBPOBsAAAH165ds/n7+9sGDBiQ5mXi4uKSTOvdu7etSZMmDtOeeuopm7+/v23btm0O03fu3Gnz9/e3PfPMM7aEhAT79Ndff91mNpttffv2dWj/7LPP2p566qkk6x4xYoT99bvvvmszm822v/76yz7t0qVLttq1a9v8/f1tp06dSlLXb7/9Zp928eJFW0BAgG3SpEn2aTdv3rRZLBaH7Z46dcoWEBBgmzFjhn3al19+afP397ctWLAgyftitVqTTPuv4cOH2/z9/W21atWyDRo0yDZ//nzb0aNHk7SbOXOmrVq1arbjx487TJ86daqtYsWKtjNnzthsNpstIiLC5u/vb3v33XdTrOXUqVM2f39/W3h4eJI2/v7+trCwMPvrsLAwm7+/v+31119P0vbOvP+qVq2aw+dyx1tvvWV74oknbDExMQ7Thw4daqtRo0ayx1RGLFq0yObv72/bsmVLmtqHh4fb/P39bT179nT4rN577z1bxYoVbVevXrVPu/u9uePuY/HOOrt37267deuWQ9vg4GCbv7+/bc2aNfZpN2/etD3xxBO2IUOG3LPe9Pa9zDrGkztmXn/9dVv9+vUdlt+/f79Du7/++svm7+9v++abb1Ldr7vfw7Zt29r69euX6jLJufPed+jQweG7Ze7cuTZ/f3/bd999Z7PZbDaLxWJr2LCh7bXXXnNYfsGCBTaz2Ww7efJkitu4deuWrXHjxra
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Sécurité ===\n",
"Clients exploitables : 1573\n",
"K retenu : 4\n",
" cluster n_clients\n",
"0 0 1245\n",
"1 1 127\n",
"2 2 116\n",
"3 3 85\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Investissement\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAGGCAYAAACNCg6xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQnFJREFUeJzt3XlYFXX///EXHCHREBVw13LjoIK4d4MYqbkviaaUW5pmZi6l5UKLSyZa1m0utyaaS+aaVmq2aHeaKal5S2ohaplKVrK4sCV4OL8//HG+nnAZCDigz8d1cV3MZz4z856Zo+fFZ+bMcbJarVYBAADgtpwdXQAAAEBxQXACAAAwiOAEAABgEMEJAADAIIITAACAQQQnAAAAgwhOAAAABhGcAAAADCI4AQAAGERwAgxo06aNJk6c6OgycB2z2ax58+Y5ugzcwL59+2Q2m7Vv3z5Hl1KoBgwYoAEDBji6DBSwEo4uAHevM2fOaMmSJdqzZ4/Onz8vFxcX+fj4qFOnTgoLC1PJkiUdXeIdZ8CAAbpw4YK2bt3q6FIM2bVrlw4fPqxRo0Y5upRiYcuWLUpMTNSgQYMKbBvbt2/XunXrdOTIEaWmpqps2bJq2rSpHnvsMQUGBhbYdq/3v//9T3v27NETTzyhMmXKFMo2gWwEJzjEzp07NWbMGLm6uuqRRx6Rj4+PMjMzdfDgQb355ps6efKkXnvtNUeXafP555/LycnJ0WXcdXbt2qUPPvjghsHp8OHDMplMDqiq6Nq6datOnDhRIMHJarUqPDxcmzZtUv369TV48GB5eXkpPj5e27dv16BBg7RmzRo1adIk37f9d4cOHdL8+fMVGhpapILT0qVLHV0CCgHBCYXu7Nmzev7551WlShWtWLFCFSpUsM3r16+fTp8+rZ07d/7j7VitVl25ciVfRq5cXV3/8TqQv+655x5Hl3BXee+997Rp0yY98cQTmjRpkt0fEs8884w+/vhjlShRvN9S0tPT5ebmlufl+X/i7sA9Tih0S5YsUVpaml5//XW70JTtvvvu0xNPPGGb3rhxowYOHKjAwED5+fmpc+fOWr16dY7l2rRpo6efflq7d+9Wz5491bBhQ61du9Z2v8W2bds0f/58tWrVSo0bN9bo0aOVnJysjIwMvf766woMDFTjxo01adIkZWRk5Fj33+9xOnbsmPr376+GDRvqwQcf1H/+8x9t3LhRZrNZcXFxOer6/vvv9eijj8rf319t27bVxx9/bLe+ixcvatasWerWrZsaN26sJk2aaOjQoTp27FiOfb1y5YrmzZunDh06yN/fX8HBwRo5cqTOnDlj6Bxcz2w2a9q0adqxY4e6du0qPz8/denSRd98842tz+effy6z2az9+/fnWH7t2rUym806fvy4re3nn3/W6NGj1aJFC/n7+6tnz5766quv7JbLzMzU/Pnz1b59e/n7++uBBx7Q448/rj179kiSJk6cqA8++MBWY/bP9XVff49TSkqKXn/9dbVp00Z+fn4KDAzU4MGD9eOPP9r6/Prrrxo1apRatmwpf39/Pfjgg3r++eeVnJxsV9snn3xiew21aNFCzz//vH7//Xe7PgMGDFDXrl1tr4OAgAC1a9dOn3/+uSRp//796t27txo2bKgOHTpo7969OY7dn3/+qUmTJikoKMh23D/88EO7Pte/fhcuXKgHH3xQ/v7+euKJJ3T69Gm7enbu3KnffvvNdqzatGmTY5t58ddff2nx4sWqVauWJkyYcMPR1x49eqhhw4Y3XcfN7hO80X1B77//vrp06aKAgAA1b95cPXv21JYtWyRJ8+bN0xtvvCFJatu2rW1fr/83l5vzd/ToUfXr108BAQF6++23b1p/fHy8Jk2apAcffFB+fn4KDg7WM888Y7fdv+9LmzZt7F671/9cf/+XkdfB7Y4LCk/x/vMAxdLXX3+t6tWrGx7SX7NmjerWras2bdqoRIkS+vrrrzV16lRZrVb169fPru+pU6c0btw4hYWFqU+fPqpZs6Zt3uLFi1WyZEkNGzZMp0+f1qpVq1SiRAk5OTnp8uXLGjlypH744Qdt2rRJVatW1ciRI29a059//mkLd8OGDVOpUqW0YcOGm/7Fefr0aY0ZM0aPPvqoQkNDtXHjRk2cOFENGjRQ3bp1JV0biduxY4c6duyoatWqKSEhQevWrVP//v316aefqmLFipIki8Wip59+WlFRUerSpYsGDhyo1NRU7dmzR8ePH1eNGjUMHdfrHTx4UF9++aX69u2r0qVL6/3339fo0aP19ddfq1y5cnrooYdUqlQpffbZZ2rRooXdstu2bVPdunXl4+MjSTpx4oQef/xxVaxYUU899ZRtuWeffVbz5s1Tu3btJEnz58/Xu+++awsXKSkpOnr0qH788Ue1bNlSYWFhOn/+vPbs2WN7o7yVyZMn64svvlD//v1Vu3ZtXbx4UQcPHtTPP/+sBg0aKCMjQ0OGDFFGRob69+8vLy8v/fnnn9q5c6cuX74sd3d3SdLChQv1zjvvqFOnTnr00UeVlJSkVatWqV+/fvr444/tLg1dunRJw4cPV+fOndWxY0etWbNGY8eOVVZWlmbMmKHHHntMXbt21dKlSzV69Gjt3LlT9957ryQpISFBffr0kZOTk/r166fy5cvrm2++0UsvvaSUlJQcl9siIyPl5OSkJ598UikpKVqyZIleeOEFbdiwQZI0fPhwJScn648//tCkSZMkSaVLl871a+FGDh48qIsXL2rgwIEFfnl0/fr1mj59ujp06KCBAwfqypUrio2N1Q8//KBu3bqpXbt2+vXXX7V161ZNmjRJ5cqVkySVL19eUu7O38WLF/XUU0+pS5cu6t69uzw9PW9a16hRo3Ty5En1799fVatWVVJSkvbs2aPff/9d1apVu+Ey4eHhSk1NtWtbsWKFYmJiVLZsWUnGXwe3Oy4oRFagECUnJ1t9fHyszzzzjOFl0tPTc7Q9+eST1rZt29q1tW7d2urj42P95ptv7Nq/++47q4+Pj7Vr167WjIwMW/vYsWOtZrPZOnToULv+YWFh1tatW+dY94QJE2zTr732mtVsNlt/+uknW9uFCxesLVq0sPr4+FjPnj2bo64DBw7Y2hITE61+fn7WmTNn2tquXLlitVgsdts9e/as1c/Pzzp//nxb24cffmj18fGxLlu2LMdxycrKytF2vf79+1u7dOli1+bj42Nt0KCB9fTp07a2mJgYq4+Pj/X999+3tY0dO9YaGBhovXr1qq3t/PnzVl9fX7v6nnjiCWvXrl2tV65csasrLCzM2r59e1tb9+7drcOGDbtlvVOnTrX6+PjccJ6Pj4917ty5tummTZtap06detN1/fTTT1YfHx/rZ599dtM+cXFx1nr16lkXLlxo1x4bG2utX7++XXv//v2tPj4+1i1bttjafv75Z6uPj4/V19fXGh0dbWvfvXu31cfHx7px40ZbW3h4uLVly5bWpKQku209//zz1qZNm9pe99mv306dOtkd0xUrVlh9fHyssbGxtrZhw4bleO3mh+xtbd++3VD/7Jq/++47W9vf/w1l69+/v7V///626WeeeSbHa/TvlixZkuPfmdWat/O3Zs2a2+7PpUuXrD4+PtYlS5bcst/f9+Xvtm3bZvXx8bH792L0dWDkuKBwcKkOhSolJUVS7v4Svv4epeTkZCUlJalFixY6e/Zsjkss1apVU6tWrW64nkceeUQuLi626YYNG8pqtapXr152/Ro2bKjff/9dV69evWlNu3fvVqNGjVSvXj1bW9myZW/6l1+dOnXUrFkz23T58uVVs2ZNnT171tbm6uoqZ+dr/yQtFosuXLigUqVKqWbNmvrpp59s/b788kuVK1dO/fv3z7GdvN7AHhQUZDdS5evrq3vvvdeuvk6dOikxMdHuct0XX3yhrKwsde7cWdK1v+C/++47derUSSkpKUpKSlJSUpIuXLig4OBg/frrr/rzzz8lSWXKlNGJEyf066+/5qnmvytTpox++OEH2/r/Lnuk59tvv1V6evoN+2zfvl1ZWVnq1KmTrfakpCR5eXnpvvvuy/Hx+lK
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAV1VJREFUeJzt3XlYVHX///HXMIKA5gqauaRiDCqYW5rmlvu+pmlauaW5VVZfxepWMfe0Ei01NbfMLdQ0zdLKNEMr0+Q2d0wxTQXcUBAc5veHP+ZuZBGQwwA+H9fVdTnnfM4575k5nxOvOZ9zjslms9kEAAAAAACynIuzCwAAAAAAIK8idAMAAAAAYBBCNwAAAAAABiF0AwAAAABgEEI3AAAAAAAGIXQDAAAAAGAQQjcAAAAAAAYhdAMAAAAAYBBCNwAAAAAABiF0A4ABmjZtqsDAQGeXgX+xWCyaPXu2s8tACtatWyeLxaKwsDBnl5KjnT17VhaLRevWrTNk/Vl13MpJ3+fs2bNlsVicXQaAB1w+ZxcAAOl15swZLVy4ULt379bFixfl6uoqX19ftWnTRs8++6zc3d2dXWKe8/zzz+vy5cv66quvnF1Kuvz44486ePCgRowY4exScoVNmzYpKipKffv2NWwb27Zt0+rVqxUWFqYbN26oSJEiqlWrlnr27Kl69eoZtl0gO2RHHwKQ+xG6AeQKO3bs0Kuvvio3Nzd16tRJvr6+SkhI0L59+/Tee+/pxIkTevfdd51dpt3WrVtlMpmcXcYD58cff9SKFStSDN0HDx6U2Wx2QlU511dffaXjx48bEhhsNpveeustrVu3TlWqVFG/fv3k5eWlS5cuadu2berbt69WrlypmjVrZvm2kTkctzLOyD4EIO8gdAPI8SIiIjRy5Eg98sgjWrp0qUqUKGGf17t3b50+fVo7duy47+3YbDbdunUrS86Yu7m53fc6kLXy58/v7BIeKJ9++qnWrVunF198UWPGjHEIc0OGDNGGDRuUL1/2/hly8+ZNeXp6Zus2cxOOWzlDYmKiEhISOGYBeQjXdAPI8RYuXKibN29q0qRJDoE7yaOPPqoXX3zR/jokJEQvvPCC6tWrJ39/f7Vt21aff/55suWaNm2qwYMHa9euXeratauqVaumVatWae/evbJYLNqyZYvmzJmjhg0bqkaNGnrllVd0/fp1xcfHa9KkSapXr55q1KihMWPGKD4+Ptm677428siRI+rTp4+qVaumRo0a6eOPP1ZISIgsFovOnj2brK7ffvtNzzzzjAICAtSsWTNt2LDBYX1XrlzRtGnT1KFDB9WoUUM1a9bUwIEDdeTIkWTv9datW5o9e7ZatWqlgIAANWjQQMOHD9eZM2fS9R38m8Vi0YQJE7R9+3a1b99e/v7+ateunXbu3Glvs3XrVlksFv3yyy/Jll+1apUsFouOHTtmn3by5Em98sorqlOnjgICAtS1a1d99913DsslJCRozpw5atmypQICAlS3bl316tVLu3fvliQFBgZqxYoV9hqT/vt33f++pjsmJkaTJk1S06ZN5e/vr3r16qlfv346dOiQvc1ff/2lESNG6KmnnlJAQIAaNWqkkSNH6vr16w61ffnll/Z9qE6dOho5cqTOnz/v0Ob5559X+/bt7fvB448/rhYtWmjr1q2SpF9++UXdu3dXtWrV1KpVK/3888/JPrsLFy5ozJgxql+/vv1z/+KLLxza/Hv/nTt3rho1aqSAgAC9+OKLOn36tEM9O3bs0N9//23/rJo2bZpsm5kRFxenTz75RBUrVtTo0aNTPHvauXNnVatWzWFafHy8pkyZoieffFLVq1fXsGHDFB0d7dAmtWvz7+5zSdcV//LLLxo/frzq1aunxo0bS/rfd3HixAk9//zzevzxx9WwYUMtWLAgXe8vo8eYrOzLd9dhsVj0559/Jps3b948Va5cWRcuXJCUvn357s/wXn3uXuLi4jR27FjVrVtXNWvW1KhRo3T16lX7/NGjR6tu3bpKSEhItmz//v3VqlWre27jjz/+0EsvvaQnnnhC1atXV4cOHbR06dJU26d1XXxGjxH36kPx8fEKDg5WixYt5O/vr8aNG2v69OnJ/n+RdEzduHGj2rVrp4CAAO3ateue7x1A7sGZbgA53g8//KCyZcumexjqypUr9dhjj6lp06bKly+ffvjhBwUFBclms6l3794ObU+dOqU33nhDzz77rHr06KEKFSrY533yySdyd3fXoEGDdPr0aX322WfKly+fTCaTrl27puHDh+uPP/7QunXrVLp0aQ0fPjzVmi5cuGD/YWDQoEHy9PTU2rVrUz2zdPr0ab366qt65pln1KVLF4WEhCgwMFBVq1bVY489JunOCIDt27erdevWKlOmjCIjI7V69Wr16dNHmzdvVsmSJSVJVqtVgwcPVmhoqNq1a6cXXnhBN27c0O7du3Xs2DGVK1cuXZ/rv+3bt0/ffvutnnvuORUoUEDLly/XK6+8oh9++EFFixZVkyZN5Onpqa+//lp16tRxWHbLli167LHH5OvrK0k6fvy4evXqpZIlS+qll16yLzds2DDNnj1bLVq0kCTNmTNH8+fPtwfTmJgY/fe//9WhQ4f01FNP6dlnn9XFixe1e/duTZ8+/Z7vYdy4cfrmm2/Up08f+fj46MqVK9q3b59OnjypqlWrKj4+XgMGDFB8fLz69OkjLy8vXbhwQTt27NC1a9f00EMPSZLmzp2rWbNmqU2bNnrmmWcUHR2tzz77TL1799aGDRtUqFAh+zavXr2ql19+WW3btlXr1q21cuVKvf7660pMTNTkyZPVs2dPtW/fXosWLdIrr7yiHTt2qGDBgpKkyMhI9ejRQyaTSb1791axYsW0c+dOvf3224qJiUk2vHXBggUymUzq37+/YmJitHDhQr355ptau3atJOnll1/W9evX9c8//2jMmDGSpAIFCmR4X0jJvn37dOXKFb3wwgsZGtI/ceJEFSpUSMOHD9fff/+tpUuXasKECfrwww8zXUtQUJCKFSumYcOG6ebNm/bpV69e1cCBA9WiRQu1adNG33zzjWbMmCFfX197OE9NRo4xWdmX79aqVStNmDBBmzZtUpUqVRzmbdq0SXXq1FHJkiXTvS/f7V597l4mTJhg/z5PnTqllStX6ty5c1q+fLlMJpM6deqkDRs26KefftLTTz9tX+7SpUvas2ePhg0blub6d+/ercGDB6tEiRJ64YUX5OXlpZMnT2rHjh0OP8Rm1r2OEWn1ocTERA0ZMkT79u1Tjx495OPjo2PHjmnp0qX666+/9PHHHztsa8+ePfr666/Vu3dvFS1aVKVLl77v+gHkIDYAyMGuX79u8/X1tQ0ZMiTdy8TGxiab1r9/f1uzZs0cpj399NM2X19f286dOx2m79mzx+br62tr3769LT4+3j799ddft1ksFtvAgQMd2j/77LO2p59+Otm6R48ebX/97rvv2iwWi+3PP/+0T7t8+bKtTp06Nl9fX1tERESyun799Vf7tKioKJu/v79t6tSp9mm3bt2yWa1Wh+1GRETY/P39bXPmzLFP++KLL2y+vr62xYsXJ/tcEhMTk037tz59+tjatWvnMM3X19dWtWpV2+nTp+3TDh8+bPP19bUtX77cPu3111+31atXz3b79m37tIsXL9r8/Pwc6nvxxRdt7du3t926dcuhrmeffdbWsmVL+7SOHTvaBg0alGa9QUFBNl9f3xTn+fr62oKDg+2va9WqZQsKCkp1XX/++afN19fX9vXXX6fa5uzZs7bKlSvb5s6d6zD96NGjtipVqjhM79Onj83X19e2adMm+7STJ0/afH19bX5+frYDBw7Yp+/atcvm6+trCwkJsU976623bE899ZQtOjraYVsjR4601apVy77fJ+2/bdq0cfhMly5davP19bUdPXrUPm3QoEHJ9t2skLStbdu2pat9SEiIzdfX19a3b1+HfXLy5Mm2ypUr265du2afdvf3mOTuPpe0zl69ejnsgzbb/76L9evX26fdunXL9tRTT9lGjBhxz3ozeozJqr4cERGRbL94/fXXbQ0
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Investissement ===\n",
"Clients exploitables : 2126\n",
"K retenu : 4\n",
" cluster n_clients\n",
"0 0 1835\n",
"1 1 135\n",
"2 2 120\n",
"3 3 36\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Credit <NUM>\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAGGCAYAAACUkchWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XdUFFcbBvBnd+kgKE2RohRBmoodRVGssYuxxGDsLRpjmqIxscQWo8bP3ruGmFhiQWOJNWJHwS6ggoJKkd539/tjZeMKKOjCUJ7fOZxkZ+7cfed1YO7evXOvSC6Xy0FERERERERERERERPmIhQ6AiIiIiIiIiIiIiKisYic6EREREREREREREVEh2IlORERERERERERERFQIdqITERERERERERERERWCnehERERERERERERERIVgJzoRERERERERERERUSHYiU5EREREREREREREVAh2ohMRERERERERERERFYKd6EREREREREREREREhWAnOpUZPj4+8Pf3FzqMCsPf3x8+Pj4q25ycnLBs2TKBIqL3VZR/y2XLlsHJyQkJCQmlHR4RlRO8z6oX77P0LhcvXoSTkxMuXrwodCilZs+ePXBycsKTJ0/eWfbNv0mVMV9E5QXbEOrFNgS9rydPnsDJyQl79uwROpRKiZ3oFVxkZCR+/PFHtGvXDu7u7mjYsCEGDBiALVu2IDMzU+jwKrRjx45hxIgRaNasGdzc3ODl5YUvv/wSQUFBQoemdO3aNSxbtgzJyckl+j7+/v5wcnJC9+7dIZfL8+13cnLCrFmzlK/zPkQdOXKkwPpmzZoFJycnlW0+Pj5wcnLCkCFDCjxm165dcHJygpOTE0JDQ9//ZNQoISEBs2fPRufOnVGvXj14enri448/xi+//IK0tDShw1O7jIwMLFu2rMAPx6dPn2ajkcol3meFw/vsf3ifzS/vQ2bej6urK5o1a4YBAwZg8eLFiI6OFjrEEpHXif36j6enJwYNGoTTp08LHR4RvYZtCOGwDfEftiHyy2tDbNiwQbAYDhw4gM2bNwv2/lQwDaEDoJJz6tQpfPnll9DS0kLPnj3h6OiInJwcXL16Fb/88gvCwsLw008/CR2m0pEjRyASiYQO44PJ5XJMnToVe/bsgYuLC4YOHQpTU1PExsbi2LFjGDJkCH777Tc0bNiw1GMLCQmBRCJRvg4O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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABiYAAAHpCAYAAAAGQYQ4AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8Tuf/x/H3nUjMCEnMIHYoUpSo2rSoUaM1WtqvVVuNql2tmWpRalN7VosoVXu0RdFWS4lRO3YSZJJI7t8ffu66JVGJ5D534vV8PM6D+9zXOedzPjm5k5zPua7LZDabzQIAAAAAAAAAALABB6MDAAAAAAAAAAAAzw8KEwAAAAAAAAAAwGYoTAAAAAAAAAAAAJuhMAEAAAAAAAAAAGyGwgQAAAAAAAAAALAZChMAAAAAAAAAAMBmKEwAAAAAAAAAAACboTABAAAAAAAAAABshsIEAAAAAAAAAACwGQoTAAAAKaRu3boaMmSI0WGkG0OGDFHdunWt1nl7e2vatGkGRYRnkdDXM70LDAyUt7e31q5da3QoAAAAgF2hMAEAAOzaxYsXNXLkSNWrV0/lypVTxYoV1bZtWy1evFh37941Orx0bdu2berSpYuqVKmismXLqnr16urbt6/2799vdGgWf/zxh6ZNm6bQ0NBUPc6QIUPk7e2tpk2bymw2x3vf29tbo0ePtrw+cOCAvL29tXnz5gT3N3r0aHl7e1utq1u3rry9vdWhQ4cEt1m9erW8vb3l7e2to0ePJv9kUlh4eLimT5+uN954QxUqVJCPj4+aNGmiL774QtevX7dZHMuXL6cA8B9s9f0CAAAA/JcMRgcAAACQmN27d6tv375ydnZWs2bNVLJkScXExOj333/XF198oX/++UdjxowxOkyLzZs3y2QyGR3GMzObzRo2bJjWrl2rF154QR07dpSHh4du3rypbdu2qUOHDlq5cqUqVqxo89iOHDkiR0dHy+vDhw9r+vTpatGihbJnz57qxz916pS2bt2qBg0apMr+M2bMqAMHDujmzZvKlSuX1XsbNmxQxowZde/evVQ5dnJcunRJHTp00NWrV9WwYUO1adNGTk5OOnnypL777jtt375dW7ZssUksK1euVM6cOdWyZUubHO9peHp66siRI8qQwT7+7LL19wsAAACQGPv4DRkAAOAxly5dUv/+/ZU/f34tXrxYuXPntrzXrl07XbhwQbt3737m45jNZt27d0+ZMmV65n05Ozs/8z7swYIFC7R27Vr973//09ChQ62KLT169JC/v/8Tb7RGRkYqS5YsqRJbxowZU2W/jztx4oRKlSpltS5TpkzKmzevZsyYofr166dKEapixYo6evSoNm3apP/973+W9deuXdNvv/2m1157Ld6N/mvXrilz5sxydXVN8Xie5P79++rdu7eCg4O1ZMkSVapUyer9/v37a968eTaNKaXdv39fcXFxyf7eNplMNrtmjZSa3/MAAABInxjKCQAA2KWvv/5akZGRGjdunFVR4iEvLy+rG7dr1qzRe++9p6pVq6ps2bJq1KiRVqxYEW+7unXrqlu3bvr555/VsmVL+fj4aNWqVZahdzZt2qTp06erRo0aqlChgj744AOFhYUpOjpa48aNU9WqVVWhQgUNHTpU0dHR8fb9+BwTJ06cUPv27eXj46OaNWtq5syZWrNmjby9vRUYGBgvrt9++01vvfWWypUrp3r16snf399qf7dv39aECRPUtGlTVahQQRUrVlSXLl104sSJeOd67949TZs2TQ0aNFC5cuVUvXp19e7dWxcvXkw073fv3tXcuXNVtGhRDR48OMGb782bN5ePj48kae3atfL29tbBgwf16aefqmrVqqpVq5al7Z49e/TOO++ofPnyqlChgrp27arTp0/H2+f27dvVpEkTlStXTk2aNNG2bdsSjO/ROSamTZumzz//XJJUr149yzBHj+Y1KW7fvq2lS5fqjTfeUPv27eO97+DgoB49eujkyZOJxvesMmbMqPr162vjxo1W6zdu3Kjs2bOrevXq8bbZt2+fatSooQ8//FC//vprgkNNpYatW7fqxIkT6t69e7yihCRly5ZN/fv3T3T7h99zBw4csFqf0LwMN2/e1NChQ1WzZk3LsGI9evSwfK3r1q2r06dP6+DBg5br4N1337VsHxoaqnHjxqlWrVoqW7asXnvtNc2dO1dxcXHxjjt//nwtWrRIr776qsqVK6czZ84keg579+7V22+/rUqVKqlChQpq0KCBJk+e/MRzkaQff/xRjRo1srreH5+D49F4vvnmG7366qsqW7as3nzzTR05csRqfydOnNCQIUMsQ95Vq1ZNQ4cO1a1btyxtnvT98qS5MB6f12XatGny9vbWP//8ow8//FCVK1fWO++8Y3l//fr1ls9WX19f9e/fX1evXrXa5/nz59WnTx9Vq1ZN5cqVU82aNdW/f3+FhYUlmmsAAACkL/SYAAAAdmnXrl0qWLDgUw8XtHLlSpUoUUJ169ZVhgwZtGvXLo0aNUpms1nt2rWzanvu3Dl9+OGHatOmjVq3bq0iRYpY3ps7d64yZcqkrl276sKFC1q2bJkyZMggk8mk0NBQ9e7dW3/99ZfWrl0rT09P9e7dO9GYrl+/bimedO3aVVmyZNG3336b6NPXFy5cUN++ffXWW2+pRYsWWrNmjYYMGaIyZcqoRIkSkh70JNm+fbsaNmyoAgUKKCgoSN98843at2+vH374QXny5JEkxcbGqlu3btq/f78aN26s9957TxEREdq7d69OnTqlQoUKJRjD77//rtu3b+u9996zGjLpv4waNUpubm7q1auXIiMjJUn+/v4aMmSIqlevroEDByoqKkorV67UO++8o3Xr1qlAgQKSpF9++UV9+vRR8eLF9eGHH+rWrVsaOnSo8ubN+8Rjvvbaazp//rw2btyooUOHKmfOnJIkNze3p47bbDZr//79+u6777Rt2zbFxMSocuXK6tKlS4LtmzZtqlmzZmnGjBl67bXXUqXXRJMmTdSpUyddvHjR8nXauHGjGjRokGBPlWrVqql9+/b6/vvvtXHjRhUsWFBvvvmmWrZsabkeUsOOHTskSc2aNUu1YzzUp08f/fPPP2rfvr08PT0VEhKivXv36urVqypQoICGDRumMWPGKEuWLOrevbskycPDQ5IUFRWl9u3b6/r162rbtq3y5cunw4cPa/Lkybp586aGDx9uday1a9fq3r17at26tZydnRPtiXL69Gl169ZN3t7e+uCDD+Ts7KwLFy7ojz/+eOK57N69W/3791fJkiX14Ycf6s6dOxo+fHiiX6uNGzcqIiJCbdq0kclk0tdff60+ffpo+/btcnJykvSgOHXp0iW1bNlSuXLl0unTp7V69Wr9888/Wr16tUwm0xO/X0JCQp7+i/H/+vbtKy8vL/Xv399SDJs1a5amTp2q119/XW+99ZZCQkK0bNkytWvXTv7+/sqePbuio6PVuXNnRUdHq3379vLw8ND169e1e/duhYaGysXFJcmxAAAAIO2hMAEAAOxOeHi4rl+/rnr16j31NsuWLbMajql9+/bq3LmzFi5cGK8wceHCBX399deqUaOGZd3Dp7ZjY2O1dOlSyw2/W7du6YcfflCNGjUsw9K0a9dOFy9e1Nq1a59YmJg3b57u3LmjdevWqXTp0pKkli1bJjo/wblz57R8+XLL0+evv/66atWqpbVr12rw4MGSHjy9vGXLFjk4/NvxtVmzZnr99df13XffqVevXpIeFAX279+voUOHWk2m3LVr1yc+Uf/w6fDHJ2b+L66urlq0aJGlmBEREaFx48apVatWVvOAtGjRQg0bNtScOXMs6ydOnCh3d3etWLHCclPS19dXnTp1kqenZ6LHLFWqlF544QVt3LhRr776qqXQ8TSuXr2qtWvXas2aNbp8+bLy5cunzp07q2XLlokWbSTJ0dFRPXr00ODBg7V9+3a99tprT33Mp/Xyyy8rV65c2rhxo3r27KkzZ84oICBAw4cP16VLl+K1z5MnjwYNGqQBAwZoz549Wrt2rWbMmKFp06apevXqatWqlWr
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAHqCAYAAAATexaEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAtw9JREFUeJzs3Xd0VNX2wPHv9JI26ZVAKBNKQgelCFJEpahgV6zYy8P2LO+pT7Fgb4j+7L0LKCAgRcUCotJ7DwTSe5tk2v39MWZkyCQESM/+rMVa5J6Ze/fMnbLn3H3OUSmKoiCEEEIIIUQrom7uAIQQQgghhDheksQKIYQQQohWR5JYIYQQQgjR6kgSK4QQQgghWh1JYoUQQgghRKsjSawQQgghhGh1JIkVQgghhBCtjiSxQgghhBCi1ZEkVgghhBBCtDqSxLYjo0eP5v7772/uMNqM+++/n9GjR/tsS05OZtasWc0UkRA1XXHFFVxxxRVNftw1a9aQnJzMmjVrmvzYAG63m4kTJ/L66683y/FbmhP9/D906BDJycnMnTu3EaI6NvnealkuuuginnnmmeYOw0uS2JN08OBBHn74YcaMGUNqair9+/fnkksu4YMPPqCysrK5w2vTli1bxnXXXccpp5xCSkoKw4cPZ/r06axevbq5Q/Nat24ds2bNoqSkpFGPc//995OcnMykSZPwt5J0cnIyM2bM8P5dnWAsWbLE7/5mzJhBcnKyz7bRo0eTnJzM1Vdf7fc+X375JcnJySQnJ7N58+YTfzANpPrLt/pfjx49OP3007n11lvZvn17jdtXVVXx/vvvc+GFFzJgwABSU1M588wzmTFjBvv37/d7jGeeeYbk5GTuuOOORn40Ldcnn3zSbAlOXRYuXEhmZiZTp05t7lBEM3K73bz11luMHj2a1NRUJk2axMKFC49rH6tWreLKK69kwIAB9OvXjylTprBo0SKf2zz55JNMnjyZwYMH06dPH84++2xmzZpFeXn5ScW/d+9epk2bRr9+/Rg8eDD//ve/KSgoOOb9CgsLefvtt7n88ss59dRTGThwIBdddFGNuAF2797Nv/71L8aMGUOfPn045ZRTuPzyy/nhhx9q3Pb666/n008/JTc396QeV0PRNncArdlPP/3E9OnT0ev1nHvuuVitVhwOB2vXruXZZ59lz549PPbYY80dpteSJUtQqVTNHcZJUxSF//znP8ydO5eePXtyzTXXEBERQW5uLsuWLePqq6/ms88+o3///k0e26ZNm9BoNN6/169fz6uvvsrkyZMJDg5u9OPv2rWLpUuXcuaZZzbK/g0GA2vWrCE3N5fIyEiftgULFmAwGKiqqmqUY5+oiRMnMmLECNxuN3v37uWzzz7j559/5ssvv6RHjx4AFBQUcN1117F161ZGjRrFxIkTMZvN7N+/n0WLFvHll1+yZcsWn/0qisJ3331HfHw8P/74I2VlZQQGBjbHQ6zTO++806j7/+yzzwgNDWXKlCk+2wcNGsSmTZvQ6XSNevzavPPOO0yYMIGgoKBmOX5bER8fz6ZNm9BqW2e68OKLL/Lmm29y0UUXkZqayooVK7j77rtRqVRMmDDhmPefM2cO//3vfxk2bBh33XUXarWa/fv3k5mZ6XO7zZs3M2DAAKZMmYLBYGDbtm28+eabrFq1ik8++QS1+vj7DLOysrj88ssJCgrizjvvpKKignfffZddu3bx1Vdfodfra73vhg0beOmllxgxYgQ333wzWq2W77//njvvvJM9e/bwr3/9y3vbjIwMysvLmTx5MlFRUdhsNpYuXcrNN9/MjBkzuPjii723HTNmDIGBgXz66adMnz79uB9Tg1PECTl48KDSt29f5ayzzlKys7NrtKelpSnvv//+SR/H7XYrNpvtpPfTlrz99tuK1WpVnnjiCcXtdtdonzdvnrJx48Za719eXt4gcdx3333KqFGj6rxNdazp6ekNcsxq27dvrxFL7969lXHjximTJk2q8bxYrVbl0Ucf9f79+++/K1arVVm8eLHf/T/66KOK1Wr12TZq1CjlqquuUvr371/jtZ2Zmal0795duf322xWr1aps2rTJp62oqOiEHufJSE9PV6xWq/L222/7bF+xYoVitVqVhx56yLvthhtuULp3764sWbKkxn6qqqqUp556qsb21atXK1arVVm9erXSq1cvZe7cuQ3/IPxoqNdvQ5kwYYIyderU5g7Dx9atWxWr1aqsWrWqyY/d0s5PtVGjRin33Xdfc4dx3E4m7qysLKVXr14+n31ut1u57LLLlBEjRihOp7PO+6enpyu9e/dWHnvssRM6/jvvvKNYrVZl/fr1J3T///3vf0rv3r2Vw4cPe7f99ttvitVqVT7//PM673vw4EHl0KFDPtvcbrdy5ZVXKikpKcd8nTqdTuWcc85RzjzzzBptM2bMUEaNGuX3+7epSTnBCXr77bepqKjgiSeeICoqqkZ7x44dueqqq7x/z5kzhyuvvJIhQ4aQkpLC+PHj+fTTT2vcb/To0dx444388ssvTJkyhd69e/P55597L/8uWrSIV199ldNOO41+/frxr3/9i9LSUux2O0888QRDhgyhX79+PPDAA9jt9hr7Prq2aMeOHUydOpXevXszYsQIXnvtNebMmUNycjKHDh2qEddff/3FBRdcQGpqKmPGjOGbb77x2V9RURFPP/00kyZNol+/fvTv35/rrruOHTt21HisVVVVzJo1izPPPJPU1FSGDx/ObbfdxsGDB2t93isrK3nzzTfp3Lkz9913n9+e5fPOO4/evXsDMHfuXJKTk/njjz945JFHGDJkCCNHjvTeduXKlVx22WX07duXfv36ccMNN7B79+4a+1y+fDkTJ04kNTWViRMnsmzZMr/xHVkTO2vWLG/t0JgxY7yXtY98Xo9HUVERH330Eeecc47fS6RqtZqbb76ZnTt31hrfyTIYDIwbN67G5biFCxcSHBzM8OHDa9xn1apVnHbaadx99938/vvvfssdmtKpp54K4D0PGzdu5KeffuKCCy7w24Ot1+u57777amxfsGABXbt25dRTT2XIkCEsWLCg3jFUl3fMnz/f+/qfMmUKf/75p8/tZs2aRXJyMnv27OHuu+9m0KBBXHbZZQA4nU5mz57N2LFjSUlJYfTo0bzwwgs13vf+amLtdjuvvPIKZ5xxBikpKYwcOZJnnnmmxn0Bvv32Wy644AL69OnDoEGDuPzyy/n1118Bz+fC7t27+eOPP7yv7+pj1VYTu3jxYu9n2ymnnMI999xDdna2z23uv/9++vXrR3Z2Nrfccgv9+vXj1FNP5emnn8blch3z+V2+fDk6nY6BAwd6ty1ZssT7WXC0zz//nOTkZHbt2gV4Phfvv/9+b5nYsGHDeOCBBygsLPS5X13npzYlJSU88cQTjBw5kpSUFM444wzefPNN3G434Onhv+KKKzj11FPJz8/33s9utzNp0iTGjh1LRUWFz/H37t3L9OnT6d+/P6eccgqPP/74Ma+I1Pez2l9N7PGcH7fbzfvvv8+ECRNITU1l6NChPPzwwxQXF/vcTlEUXnvtNUaMGEGfPn244oor/H4Wg6eMr67viWrLly/H4XD4nBOVSsWll15KVlYW69evr/P+n3/+OS6Xy9vjWF5eflyfX/Hx8QAnXE62dOlSTj/9dOLi4rzbhg4dSqdOnVi8eHGd9+3QoYP3+NVUKhVjx47FbreTnp5e5/01Gg2xsbGUlpbWaBs6dCiHDx/2W5bV1Frn9YEW4Mcff6RDhw71vmT92Wef0a1bN0aPHo1Wq+XHH3/k0UcfRVEULr/8cp/b7t+/n7vvvpuLL76Yiy66iKSkJG/bm2++idFo5IYbbuDAgQN8/PHHaLVaVCoVJSUl3HbbbWzcuJG5c+cSHx/PbbfdVmtM2dnZ3kT7hhtuwGw213mJ4sCBA0yfPp0LLriAyZMnM2fOHO6//3569epFt27dAEhPT2f58uWcddZZJCQkkJeXxxdffMHUqVP57rvviI6OBsDlcnHjjTeyevVqJkyYwJVXXkl5eTm//fYbu3btIjEx0W8Ma9eupai
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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YqI+/PBD9enTRx9//LEeffRRSZLFYtHgwYMVHR2t9u3bq2/fvrp+/bq+/PJLnTx5UlWqVMm2hm+//VZXrlxR37597S6J3UlYWJjKlCmjV155RSkpKZKkbdu2ady4cQoNDdWYMWOUmpqq9evX67nnntPWrVtVqVIlSdIXX3yh4cOHq2bNmho9erQuX76s8ePHq1y5cjmus1WrVvr555+1c+dOjR8/XqVLl5YklSlTxnDdVqtV0dHR+uijj7R7926lp6erYcOGGjhwYLb9O3bsqIULFyoyMlKtWrW6L2edOnTooBdffFHx8fG2/6edO3eqTZs22Z7pa9y4sfr06aPt27dr586dqly5srp166auXbvajof7Ye/evZKkp59++r6t46bhw4fr9OnT6tOnjypWrKhLly7pyy+/1C+//KJKlSppwoQJmjp1qooVK6YhQ4ZIkry8vCRJqamp6tOnj3777Tf16tVL5cuX1+HDhzV79mwlJCToH//4h926tmzZohs3bqhHjx5ydXW97Zm8U6dOafDgwTKbzRoxYoRcXV0VFxen//3vf7fdjho1atjC/k3JycmKiIiwO26N/u7cab+gALAC+SA5Odnq4+NjHTp0qOF5UlNTs7S9+OKL1hYtWti1NWvWzOrj42P973//a9f+9ddfW318fKwdOnSwpqWl2dpfe+01q9lstg4cONCuf8+ePa3NmjXLsuyxY8faXk+dOtVqNputP/zwg63t8uXL1ieeeMLq4+NjPXv2bJa6Dh06ZGtLSkqy+vr6WiMiImxtN27csFosFrv1nj171urr62tdsGCBre2jjz6y+vj4WFesWJFlv2RmZmZpu2nlypVWHx8f6+7du2/b5682b95s9fHxsT777LPWjIwMW/u1a9esDRo0sE6cONGuf0JCgrV+/fp27U8//bS1cePG1qtXr9ravvjiC6uPj0+Wfezj42OdN2+e7fWyZcuy7EsjLly4YF2wYIFtvzdt2tQ6Z84ca1xcXLb9x44daw0ICLBarVbr1q1brT4+PtZdu3bZ1RUWFmZ7ffN4+ve//53t8sLCwqw+Pj52bc2aNbMOGjTImpGRYW3cuLE1MjLSarVaradPn7b6+PhYDx48aNvfMTExWZaZnp5u3bNnj/Xll1+21q1b11q7dm3rSy+9ZN21a5fdMZ1XOnfubK1fv77h/mPHjrX7/7y5j77++mu7fmfPnrX6+PhYN2/ebLVardbff//d6uPjY122bFmOy2/fvr21T58+WdojIyOtAQEB1jNnzti1z5w501q7dm3rhQsX7NYbFBRkTUpKuuP2rFixwurj45Nj31u35VaZmZnWwYMHWwMCAqynTp2yWq3Gf3eM7hc4FpfqkC+uXbsmSXrkkUcMz/PXMUrJycm6dOmSnnjiCZ09e1bJycl2fStVqqQmTZpku5ynn35aLi4uttf+/v6yWq3q1q2bXT9/f3/98ssvysjIuG1NUVFRCggIUO3atW1tpUqVUseOHbPtX7NmTbtLHmXKlFG1atV09uxZW5urq6ucnf/8VbRYLLp8+bKKFSumatWq6YcffrD127Vrl0qXLp3tJaeczpLkZt9LUo8ePezOUH311Ve6evWq2rdvr0uXLtn+OTs7q169erbLMxcvXtTx48fVpUsXlShRwjZ/48aNVbNmzbuqwYi
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAX1hJREFUeJzt3Wd4FGX/9vEzWRKS0EkBlA5maaH3JlKk9yaSW6kiAiLiDcGCoGiooglK7/JHggEEBKSoiBpQESQiRYoUKSGEnkDCZp8XPNmbJYUkZLJJ+H6Ow8PszDXX/GYzO+TcuWbGyWq1WgUAAAAAADKcs6MLAAAAAAAgpyJ0AwAAAABgEEI3AAAAAAAGIXQDAAAAAGAQQjcAAAAAAAYhdAMAAAAAYBBCNwAAAAAABiF0AwAAAABgEEI3AAAAAAAGIXQDQCZr3ry5AgICHF1GjhEQEKDmzZvbTTObzQoODnZQRXgU//nPf9ShQwdHl5HlBQcHy2w2G9L3nj17ZDabtWfPnkfuKyv9Pjn2AnAUQjeAHOH06dMaP368WrRoIT8/P9WsWVPPPfecli5dqtu3bzu6vBxt27ZtGjRokOrVq6cqVaqocePGGjlypMLCwhxdms3vv/+u4OBgXb9+3dD1BAQEyGw2q2PHjrJarYnmm81mvffee7bXCeFmy5YtSfb33nvvJQpWzZs3l9lsVr9+/ZJcJiQkRGazWWazWeHh4enfmAx28+ZNzZo1S506dVKNGjVUtWpVdejQQdOmTdPFixcdXR7wSGJiYhQcHJwhX1QAyHlyOboAAHhU33//vUaOHClXV1d17txZvr6+iouL0969ezVt2jQdO3ZM77//vqPLtNmyZYucnJwcXcYjs1qtevPNN7VmzRpVqlRJ/fv3l5eXly5duqRt27apX79+WrlypWrWrJnptR04cEAmk8n2et++fZo1a5a6du2q/PnzG77+o0ePauvWrWrdurUh/efOnVt79uzRpUuX5O3tbTdvw4YNyp07t+7cuWPIutPjzJkz6tevn86fP682bdqod+/ecnFx0ZEjR/Tll19q+/bt+uabbxxdJv6/OnXq6MCBA3JxcXF0KdlGTEyMZs2apeHDh6tevXqOLgdAFkPoBpCtnTlzRqNGjdITTzyhpUuXysfHxzavb9++OnXqlL7//vtHXo/VatWdO3fk5ub2yH25uro+ch9ZwaJFi7RmzRq9+OKLGjdunN0XCUOHDtW6deuUK1fy/8xER0fLw8PDkNpy585tSL8POnz4sCpUqGA3zc3NTUWLFtWnn36qZ5991pAvWGrWrKnw8HBt2rRJL774om36hQsX9Ntvv6lVq1aJQuyFCxfk7u6uAgUKZHg9Kbl7966GDx+uy5cva9myZapdu7bd/FGjRmn+/PmZWpN0LyS5u7tn+nqzA2dn50z7DCFlRh4nAWQehpcDyNYWLFig6OhoffDBB3aBO0GpUqXsQkloaKheeOEFNWjQQFWqVFG7du30f//3f4mWa968uYYMGaJdu3apW7duqlq1qr744gvbcOBNmzZp1qxZatKkiWrUqKFXX31VN27cUGxsrD744AM1aNBANWrU0Lhx4xQbG5uo7wevKzx8+LD8/f1VtWpVNW3aVJ999plCQ0NlNpt19uzZRHX99ttv6tGjh/z8/NSiRQutW7fOrr+rV69qypQp6tixo2rUqKGaNWtq0KBBOnz4cKJtvXPnjoKDg9W6dWv5+fmpcePGGj58uE6fPp3s+3779m3NmzdPZcuW1dixY5MMll26dFHVqlUlSWvWrJHZbNYvv/yiCRMmqEGDBnr66adtbXfu3Knnn39e1atXV40aNfTSSy/p77//TtTn9u3b1aFDB/n5+alDhw7atm1bkvXdf013cHCwpk6dKklq0aKFbej1/e9rWly9elXLly9Xp06d5O/vn2i+s7Ozhg4dqiNHjiRb36PKnTu3nn32WW3cuNFu+saNG5U/f341btw40TI///yzmjRpotGjR2v37t1JDn83wtatW3X48GG9/PLLiQK3JOXNm1ejRo1KNP3YsWP6z3/+o2rVqqlJkyaJgnnCPvXg7zGp65ETriv+888/1bdvX1WrVk0fffSRzp49K7PZrIULF2rVqlVq2bKlqlSpou7du+vAgQMP3bbUfs7uP27Mnj1bTZs2lZ+fn1588UWdOnXKru1vv/2mV199Vc2aNVOVKlX09NNP68MPP3zoZTL+/v7q1KlTkvNat26tgQMH2l5//fXX6tatm63mjh07aunSpSm+h//8849GjBihRo0ayc/PT02bNtWoUaN048aNh75PkvTnn3/queeeU9WqVdW8eXOtXLnSNu/WrVuqXr26Jk2alGi5CxcuqGLFipo7d26K/cfHx2vp0qXq2LGj/Pz8VL9+fQ0cODDFSyySuy4+qX0rPDxcAwcOVL169WzbMG7cOEnS2bNn1aBBA0nSrFmzbMeY++8rcfz4cb366quqW7eu/Pz81K1bN+3YsSPJ9SZ3nASQfXGmG0C29t1336lEiRKpHsK8cuVKPfXUU2revLly5cql7777ThMnTpTValXfvn3t2p48eVKjR49W79691atXL5UpU8Y2b968eXJzc9NLL72kU6dO6fPPP1euXLnk5OSk69eva/jw4frjjz+0Zs0aPfnkkxo+fHiyNV28eNH2xcBLL70kDw8PrV69Otkz4qdOndLIkSPVo0cPde3aVaGhoQoICFDlypX11FNPSbo3AmD79u1q06aNihcvrsjISK1atUr+/v76+uuvVaRIEUmSxWLRkCFDFBYWpvbt2+uFF17QrVu39NNPP+no0aMqWbJkkjXs3btXV69e1QsvvGA3jPthJk6cqMKFC2vYsGGKjo6WJK1bt04BAQFq3Lix3njjDcXExGjlypV6/vnntXbtWhUvXlyS9OOPP2rEiBEqX768Ro8erStXrmjcuHEqWrRoiuts1aqV/vnnH23cuFHjxo1ToUKFJEmFCxdOdd1Wq1VhYWH68ssvtW3bNsXFxalOnToaNGhQku07duyo2bNn69NPP1WrVq0MOdvdoUMHDRgwQKdPn7b9njZu3KjWrVsnOcKgUaNG8vf31/r167Vx40aVKFFC3bt3V7du3Wz7gxESgkXnzp1Tvcy1a9c0aNAgtWrVSm3bttU333yj6dOny9fXN90h5OrVqxo8eLDat2+vTp06ydPT0zZv48aNunXrlnr37i0nJyctWLBAI0aM0Pbt21McYp3az1mC+fPny8nJSQMGDNDNmze1YMECvfHGG1q9erWtzZYtW3T79m316dNHBQsW1IEDB/T555/rwoULCgoKSraWzp076+2339bRo0fl6+trm37gwAH9888/Gjp0qCTpp59+0uuvv64GDRrojTfekCSdOHFCv//+u90XlPeLjY3VwIEDFRsbK39/f3l5eenixYv6/vvvdf36deXLly+Fd/7e7/Oll15S27Zt1b59e23evFkTJkyQi4uLevTooTx58qhly5bavHmzxo0bZ3dM2bhxo6xWqzp27JjiOt566y2tWbNGTZs2VY8ePWSxWPTbb7/pjz/+kJ+fX4rLPszly5c1cOBAFSpUSC+99JLy58+vs2fP2r5UK1y4sCZMmKAJEyaoVatWatWqlSTZAv3ff/+tPn36qEiRIho8eLA8PDy0efNmDRs2TMHBwbb2CZI6TgLI5qwAkE3duHHD6uvrax06dGiql4mJiUk0bcCAAdYWLVrYTXvmmWesvr6+1h9++MFu+u7du62+vr7WDh06WGNjY23TX3/9davZbLYOGjTIrn3v3r2tzzzzTKK+x44da3v9/vvvW81ms/Wvv/6yTbty5Yq1bt26Vl9fX+uZM2cS1fXrr7/apl2+fNlapUoV6+TJk23T7ty5Y7VYLHbrPXPmjLVKlSrWWbNm2aZ9+eWXVl9fX+vixYsTvS/x8fGJpiVYunSp1dfX17pt27Zk29wvNDTU6uvra+3Tp4/17t27tuk3b9601q5d2/r222/btb906ZK1Vq1adtM7d+5sbdSokfX69eu2aT/++KPV19c30Xvs6+trDQoKsr1esGB
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Credit <NUM> ===\n",
"Clients exploitables : 370\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 63\n",
"1 1 51\n",
"2 2 256\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Portfolio Sécurité\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "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SUhIyOxzOjQ0lOHDh9O0aVPq169Pr169sp0cZWzXlStX8tFHH9G6dWvq16/PggULePHFFwHo378/vr6+mf0+ZvRllZCQkDk9o2+r1NRUPv30Uzp27EhAQADt27fnww8/zLYv/utmfWSFhITw+OOPExQUROPGjRk6dCgnTpy47fY4e/YsJpOJoKCgbO85OTll+6O9Z88eBg4cSKNGjahfvz59+/Zlx44d2Za9dOkSr7/+OsHBwZn5jRkzJjO/jH6//yunPjdv9l3PeC/ju7ps2bKb7osMf//9d+Z2atCgAYMHD+bYsWO33U55kZdtmlMf6TcTGxvL6NGjady4MY0aNeK1114jMTExyzy5/V79tx/2DDn99mNiYpgwYQJt2rQhICCATp068cUXX5Ceng5c/062aNECgOnTp2du92nTpjF69GgWL16c+ZkZ/zKkp6czb9487r//fgIDA2nZsiVvvfUWV69ezdU2EfkvHXN1zNUxt2Qdc2+lUqVKTJ48mZSUFGbNmpU5PTe/h4iICOrUqcP06dOzrffkyZP4+vqyaNEi4OZ9fudm/8XFxTFhwgTat29PQEAALVq04KmnnuLAgQN3lHOZMmWwt7fP1nItISGByZMnZx7LO3fuzJw5c7I8FXerflhvdt5wI7PZzGeffcY999xD/fr16devX477O6ft1a9fPx544AGOHz9Ov379qF+/Pq1bt86y30QKi84ldC6hcwmdS2TktWPHDiZNmkTz5s0JCgri+eefz3HsstzEOXr0aBo0aMDZs2cZNGgQDRo04JVXXqFfv3789ddfnD9/PnMbZNQIcvr+HD58mNGjR9OhQwcCAwNp1aoVr732GleuXCnYjWKl1CK9CPrzzz+pUqVKtruFN/P1119Tu3Zt2rdvj42NDX/++Sfjxo3DbDbzxBNPZJn31KlTjBgxgt69e9OrVy+8vb0z3/viiy9wcHBg8ODBnDlzhkWLFmFjY4PBYCAmJoZhw4axZ88eli1bRqVKlW55h+/SpUuZJwuDBw/G0dGR77777qZ3E8+cOcOLL77Io48+yiOPPMLSpUsZPXo0devWzRwYIjQ0lN9++40uXbpQuXJlIiIi+Oabb+jbty8rV66kfPnyAKSlpTFkyBBCQkK4//776d+/P/Hx8WzcuJGjR49StWrVXG3XG507dw6TyUSZMmWIiIigT58+JCYm0q9fP8qVK8cPP/zA0KFDmTp1Kp06dcqy7GeffYatrS0DBw4kOTmZ4OBg+vXrx8KFC3n22WepUaMGADVr1uS9997j22+/Ze/evYwfPx4g83vw5ptv8sMPP9C5c2eeeuop9u7dy8yZMzlx4gSffvppnvLZtGkTgwYNonLlygwbNoxr166xaNEiHnvsMZYtW3bLvsYqVapEWloaP/74I4888sgtPyckJIRBgwYREBDAsGHDMBgMLFu2jCeffJKvvvqKevXqAde/L48++iixsbH06tWLGjVqcOnSJdauXcu1a9fu6C70rb7rGZo0aXLTfQGwfPlyRo8eTXBwMK+88gqJiYl8/fXXPP744/zwww+33E55kZdtmhcvvfQSlStX5uWXX+bgwYN89913uLq68uqrr2bOk5/fK7jeZUvfvn25dOkSffr0wcvLi127dvHhhx8SHh7OG2+8gaurK2PHjmXs2LF06tQ
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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oUp+fr5l2bJly5SoqCjlzz//rNU2X3zxRSUqKkpJS0uzLMvPz1eys7MVRanetfuOO+5Qbrjhhlrtv5y0ka2FRYsWYTAYePnllwkNDa1U3q5dO2666SbL4+XLlzNz5kwGDx5MTEwMEydO5Ouvv670vDFjxnDHHXfw559/MmXKFHr27MnSpUst7cPWrFnDu+++y/Dhw+nTpw/3338/+fn5lJaW8vLLLzN48GD69OnDk08+WenXm622QYcPH2b69On07NmTESNG8N5777F8+XKio6NJSkqqFNc///zDNddcQ2xsLGPHjmXVqlVW28vJyeG1117jsssuo0+fPvTt25dbb72Vw4cPV3qtJSUlzJ8/n0svvZTY2FiGDRvGvffeS0JCQrXeg4o8PDzo1asXBoOBrKwsABITE7n//vsZOHAgvXr14tprr2Xjxo1Wzys/rj/99BNvv/02w4cPp1evXixevJgHHngAgJkzZxIdHW1pn1fevstgMFiWl7f3KisrY8GCBYwbN46YmBjGjBnDW2+9dcFf0vbajW3bto0bbriB3r17079/f+666y5OnDhxweORkJCATqejd+/elcq8vb0r3cLZu3cvs2bNol+/fvTq1Yvp06ezc+fOSs89e/YsTz31FMOGDbO8vueee87y+ubPn090dHSl561YscLuOXX+uV5eVn6urlixwu57UW7Tpk2W49SnTx9uv/12jh07dsHjVB8uuugiAMtr27t3Lxs3buSaa67h0ksvrbS+q6srjz/+eKXlq1evpnPnzlx00UUMHjyY1atXVzuG6OhoXnzxRX744QfL52nKlCns2LHDar3y9+f48eM88sgjDBgwgBtuuAGo/rlrq41saWkp8+bN4+KLLyYmJoaRI0fy+uuv2zzvv//+e6655hp69erFgAEDuPHGG9m8eTOgvu/Hjh3j77//trzP5fuy10Z27dq1lvNn0KBBPProo5w9e9ZqnSeeeII+ffpw9uxZ7r77bvr06cNFF13Ea6+9hslkuuDxXb9+PXq9nv79+1uWrVu3jujoaKtmTuWWLl1KdHQ0R48eBdTr7BNPPMHYsWOJjY1l6NChPPnkk2RnZ1s9r6r3x568vDxefvllRo4cSUxMDBdffDEffvghZrMZUGv6Z8yYwUUXXURmZqbleaWlpVx22WWMGzcOg8Fgtf8TJ07wwAMP0LdvXwYNGsRLL71ESUlJlXFU99pv61pXk/fHbDbz2WefMWnSJGJjYxkyZAjPPvssubm5VuspisJ7773HiBEj6NWrFzNmzLB7TUhISKjW98769esxGo1W74lGo+H6668nNTW1yprH8xUUFFzw3DMajbz88svMnDmTtm3bVnvb9va3detWLr/8cqs7PVdccQWenp6sXbu2VtuNiIgA1POwnLe3N/7+/tXexpAhQ9i5cyc5OTm1igGkaUGt/P7777Rp04a+fftWa/0lS5bQpUsXxowZg4uLC7///jsvvPACiqJw4403Wq176tQpHnnkEaZNm8a1115r1Zbuww8/xN3dndtvv534+Hi+/PJLXFxc0Gg05OXlce+997J3715WrFhBREQE9957r92Yzp49a0m2b7/9djw9Pfn222/t3iqPj4/ngQce4JprruGqq65i+fLlPPHEE/To0cPSsSYxMZH169czfvx4IiMjycj
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAGGCAYAAACNCg6xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOhJJREFUeJzt3XlYVOX///EXjKC4gIpoilouARqraxCmuZdZobnlkuZeLi3m/nFJ3NJKTXItczcLtWyzrPSjhmZ9Vaxcc5e+yqICgoLD/P7wx3ydEDvC6CA+H9fldTn3uc8577MArznnnjNOFovFIgAAAPwrZ0cXAAAAcK8gOAEAABhEcAIAADCI4AQAAGAQwQkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAIBcpKSmaO3eufv31V0eXkidxcXF6//33dejQIUeXAhQaBCfcl5o2baqRI0c6uoxCY/HixWrWrJlq1aqlZ5999rbm7d69u7p37259febMGfn6+mrdunX2LvO2jRkzRtu2bZO/v7/DasjruZqZmalXX31Vhw4d0sMPP3wHKjNu5MiRatq0qUNruNsK0nkM+yri6AJQeJw6dUqLFy/Wjh07dP78ebm4uMjHx0dPPvmkOnXqpGLFijm6xEKne/fu+uWXX6yvPTw8VKVKFXXp0kXt2rWTs7N93hsdPXpU33zzjSIiIlS5cmWbadu3b9eMGTP0zDPPaPDgwSpTpoxd1mlPSUlJ+uCDD7R9+3bFxcWpRIkS8vb2VsOGDfXyyy+rRIkSOeZZunSpDh06pNWrVxeoc/dWx+JGM2bMkLOzs2bOnGm38+CfUlNT9fHHH+u7777T6dOnZTabVbVqVTVu3Fg9evRQhQoV7sh6/2nlypVyc3NTu3bt7sr6cH8jOMEutmzZoqFDh8rV1VXPPvusfHx8lJmZqd9++00zZszQ0aNHNWnSJEeXafXtt9/KycnJ0WXYxQMPPKDXX39dknThwgVt2LBBY8aM0YkTJzRs2DC7rOPo0aOaO3euGjRokOOP9c6dO+Xs7KzJkyfL1dU13+vy9vZWbGysihSxz6+nixcvqn379kpNTVX79u1VvXp1Xbx40RqKunTpkiM4ZWRkKD09XYsXL1bZsmXtUkde/fNcvdWxyJacnCx3d3fNmzfvjoW+06dPq2fPnvr777/VunVrderUSS4uLjp06JA+++wzbd68WZs2bboj6/6n1atXq0yZMgUqONn7PEbBwRFFvp0+fVqvvfaaKlWqpKVLl6p8+fLWaV27dtXJkye1ZcuWfK/HYrHo6tWrdvlDYI8/8AVFqVKlbG6PderUSa1bt9bKlSs1dOhQubi45HnZV69e/df5ExMTVaxYMbvtUycnJxUtWtQuy5Kkzz77THFxcVq9erXq1KljMy01NfWm2+fq6qoBAwbYrYbbdeO5npf96u7urkGDBt2Byq67du2aBg0apMTERC1btkz16tWzmf7aa69p0aJFd2z9d8O1a9eUlZWV5/Pa3ucxCg7GOCHfFi9erLS0NE2ePNkmNGV78MEH9eKLL1pfR0dHq0ePHgoNDZW/v7+eeuoprVq1Ksd8TZs2Vf/+/bVt2za1a9dOgYGBWrNmjXbt2iVfX199/fXXmjt3rho1aqSQkBANGTJEKSkpysjI0OTJkxUaGqqQkBCNGjVKGRkZOZb9z3EjBw8eVLdu3RQYGKjHH39cH3zwgaKjo+Xr66szZ87kqOvXX3/V888/r4CAADVr1kwbNmywWd7Fixc1ffp0tW3bViEhIapTp4769OmjgwcP5tjWq1ev6v3331erVq0UEBCg8PBwDRo0SKdOnTJ0DG7k5uamoKAgpaWlKSkpSdL1cDtkyBA1aNBAQUFB6tixY44wm71fv/rqK7333ntq1KiRgoKCtGzZMg0dOlSS1KNHD/n6+srX19faf926dUpLS7O2Z4/puHbtmqKiotS8eXP5+/uradOmevfdd3Mci3/KbWxITEyMXnjhBQUHB6tevXoaOHCg/vrrr3/dH6dOnZLJZFJwcHCOaSVLlszxx23fvn3q3bu36tatq6CgIHXr1k2//fZbjnnPnTun0aNHKzw83Lp948ePt27f+++/L19f3xzzrVu3Ltdz6p/neva07HN13bp1uR6LbFu3brXup5CQEPXr109Hjhz51/10O7777jsdPHhQAwYMyBGapOv79bXXXst1/uxz58a6pZsf+/j4eI0aNUqPP/64/P39FR4eroEDB1r3X9OmTXXkyBH98ssv1v1x45i55ORkTZ48WY0bN5a/v79atGihhQsXKisrK8d6P/zwQ3388cdq3ry5AgICbnl+7dixQ126dFG9evUUEhKiVq1a6d133811W7K3+Wb//jn+y8gx/Lf9gjuHK07It59++klVqlTJ8W4+N6tXr9bDDz+spk2bqkiRIvrpp580ceJEWSwWde3a1abv8ePH9cYbb6hTp07q2LGjqlWrZp22cOFCFStWTP369dPJkye1YsUKFSlSRE5OTkpOTtagQYO0b98+rVu3Tt7e3rd8B37u3DlruOvXr5+KFy+uTz/9NNd3mydPntTQoUP1/PPPKyIiQtHR0Ro5cqQeeeQR60Dc06dPa/PmzWrdurUqV66shIQEffLJJ+rWrZu++uor6/gPs9ms/v37KyYmRm3atFGPHj10+fJl7dixQ4cPH1bVqlUN7dcbnTlzRiaTSe7u7kpISFDnzp2Vnp6u7t27q0yZMlq/fr0GDhyoOXPmqEWLFjbzfvDBB3JxcVHv3r2VkZGh8PBwde/eXcuXL9eAAQNUvXp1SVKNGjX09ttva+3atYqNjVVkZKQkWc+DsWPHav369WrVqpV69eql2NhYLViwQH/99ZeioqJua3t+/vln9e3bV5UrV9agQYN05coVrVixQl26dNG6detuOdbH29tbZrNZn3/+uSIiIm65npiYGPXt21f+/v4aNGiQnJyctG7dOr344otatWqVAgMDJV0/X55//nmlpKSoY8eOql69us6dO6dNmzbpypUrebpKcatzPVv9+vVzPRaStGHDBo0cOVLh4eEaNmyY0tPTtXr1ar3wwgtav379LffT7fjhhx8k6bY/CJAXgwcP1tGjR9WtWzd5e3srKSlJO3bs0N9//63KlStr9OjRmjRpkooXL269SliuXDlJUnp6urp166Zz586pc+fOqlixovbs2aN3331X8fHxGjNmjM261q1bp6tXr6pjx45ydXWVh4fHTWs6cuSI+vfvL19fXw0ZMkSurq46efKk/ud//ifX7cj+eblRSkqKpk2bZnM72Ogx/Lf9gjvIAuRDSkqKxcfHxzJw4EDD86Snp+doe+mllyzNmjWzaXviiScsPj4+lv/+97827Tt37rT4+PhYnn76aUtGRoa1/fXXX7f4+vpa+vTpY9O/U6dOlieeeCLHskeMGGF9PWnSJIuvr6/lzz//tLZduHDB0qBBA4uPj4/l9OnTOeravXu3tS0xMdHi7+9vmTZtmrXt6tWrFrPZbLPe06dPW/z9/S1z5861tn322WcWHx8fy5IlS3Lsl6ysrBxtN+rWrZuldevWlsTEREtiYqLl6NGjlkmTJll8fHws/fv3t1gsFsvkyZNz1Juammpp2rSp5YknnrDWmL1fmzVrluMYffPNNxYfHx/Lzp07c9QwYsQIS3BwsE3bgQMHLD4+PpYxY8bYtE+bNs3i4+NjiYmJsdmGbt262ewjHx8fS3R0tLXt2WeftYSGhlouXLhgsw4/Pz/L8OHDb7mP4uPjLY8++qjFx8fH0rp1a8u4ceMsGzdutCQnJ9v0y8rKsrRs2dLy0ksv2ez39PR0S9OmTS29evWytg0fPtzi5+dniY2NzbG+7HnnzJlj8fHxyTE9Ojo613Pqn+d69rQbz9XcjkVqaqqlXr16lrFjx+bY/rp16+Zoz4/nnnvOUrduXcP9R4wYYfMzmH2u/XMb/nnsL126ZPHx8bEsXrz4lstv06aNzTmULSoqyhIcHGw5fvy4TfvMmTMttWrVssTFxdmst06dOpbExMR/3Z4lS5ZYfHx8btn3ZufxjbKysiz9+/e
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWgpJREFUeJzt3XlYVHX///EXjCDiLiCZuRuogeK+5JZaLrnkromV+1632e2S3aap4ZqJlpqaeyqGmpZa2WJWaGYaZC655BKmAm4ICA7z+8Mf83Vkke0wgs/HdXXlnPV9Zs45zGvO53OOg8VisQgAAAAAAGQ7R3sXAAAAAABAXkXoBgAAAADAIIRuAAAAAAAMQugGAAAAAMAghG4AAAAAAAxC6AYAAAAAwCCEbgAAAAAADELoBgAAAADAIIRuAAAAAAAMQugGAMAgN2/e1MKFC/Xrr7/au5RMCQ8P14IFC3T8+HF7lwIAQK5F6AaATGjRooXGjx9v7zLyjGXLlqlly5aqWrWqOnXqlKF5+/btq759+1pfX7hwQd7e3tq8eXN2l5lhEydO1N69e+Xj42O3GjK7ryYkJOg///mPjh8/rieffNKAytKvb9++at++vV1ryA0WLFggb29vQ5a9f/9+eXt7a//+/Vle1sP0eXIuB5AT8tm7AABIcu7cOS1btkw//fSTLl++LCcnJ3l5ealt27bq2bOnXFxc7F1intO3b1/98ssv1tdFixZVmTJl1Lt3b3Xp0kWOjtnz2+zJkye1c+dOde7cWU888YTNuB9//FGzZ89Wx44dNWrUKBUvXjxb1pmdoqKi9OGHH+rHH39UeHi4ChYsqNKlS6t+/foaPny4ChYsmGyeVatW6fjx41q/fv1Dte+m9Vnca/bs2XJ0dNScOXOybT+4X3R0tFauXKmvvvpK58+fl9lsVtmyZdWsWTO99NJL8vT0NGS9QE6IjY3VsmXLVK9ePdWvX9/e5QCwI0I3gIfC999/r9dee03Ozs7q1KmTvLy8lJCQoIMHD2r27Nk6efKkpk6dau8yrXbt2iUHBwd7l5EtHnvsMb3++uuSpKtXr2rr1q2aOHGi/v77b73xxhvZso6TJ09q4cKFqlevXrKgt2/fPjk6Omr69OlydnbO8rpKly6t0NBQ5cuXPX/irl27pq5duyo6Olpdu3ZVxYoVde3aNWug7t27d7LQHR8fb/3CXaJEiWypI7Pu31fT+iyS3LhxQ0WKFNGiRYsM+8Hg/PnzeuWVV3Tx4kW1adNGPXv2lJOTk44fP65PP/1Uu3fv1pdffmnIupFxdevWVWhoqJycnOxdSq4RGxurhQsXauTIkYRu4BFH6AZgd+fPn9fo0aP1+OOPa9WqVSpZsqR1XJ8+fXT27Fl9//33WV6PxWLR7du3syVEZEc4fFgULlzYpkl3z5491aZNG61bt06vvfZalr5k3759+4HzR0ZGysXFJdveUwcHB+XPnz9bliVJn376qcLDw7V+/XrVqlXLZlx0dHSK2+fs7KyhQ4dmWw0Zde++npn3tUiRIho5cqQBld11584djRw5UpGRkVq9erXq1KljM3706NFaunSpYetPTWxsrAoUKJDj680NHB0ds/W4QubFxMTI1dXV3mUAyAD6dAOwu2XLlikmJkbTp0+3CdxJypUrp5dfftn6Ojg4WC+99JIaNmwoHx8ftWvXTp988kmy+Vq0aKEhQ4Zo79696tKli6pXr64NGzZY+ybu2LFDCxcuVJMmTVSzZk29+uqrunnzpuLj4zV9+nQ1bNhQNWvW1IQJExQfH59s2ff3Azx27Jj8/f1VvXp1NW3aVB9++KGCg4Pl7e2tCxcuJKvr119/Vbdu3eTr66uWLVtq69atNsu7du2aZs6cqQ4dOqhmzZqqVauWBg4cqGPHjiXb1tu3b2vBggVq3bq1fH191bhxY40cOVLnzp1L12dwrwIFCqhGjRqKiYlRVFSUpLs/jLz66quqV6+eatSooR49eiT7ISTpff3iiy80b948NWnSRDVq1NDq1av12muvSZJeeukleXt7W/uGJvW9jomJsQ5P6ot9584dffDBB2rVqpV8fHzUokULvffee8k+i/ul1qc7JCREL774ovz8/FSnTh0NGzZMp06deuD7ce7cOZlMJvn5+SUbV6hQoWRB5Pfff9eAAQNUu3Zt1ahRQ/7+/jp48GCyeS9duqQ333xTjRs3tm7f22+/bd2+1Prnbt68OdV96v59PWlc0r66efPmVD+LJHv27LG+TzVr1tTgwYP1119/PfB9yoivvvpKx44d09ChQ5MFbunu+zp69Ohkw0+ePKm+ffuqRo0aatKkSbJgntJ7I6XcHzmpX/Eff/yhPn36qEaNGnrvvfes+8/y5cu1ceNG6/7XtWtXhYaGPnDb0nvc3nseWrRokZo2bSpfX1+9/PLLOnv2rM20v/76q1599VU1b95cPj4+atasmd59913FxcWlWYu/v786duyY4rjWrVtrwIAB1tdffPGFunTpYq25Q4cOWrVqVZrv4d9//61Ro0bp6aeflq+vr5o2barRo0fr5s2bD3yfJOmPP/5Qr169VL16dbVo0ULr16+3jrt165b8/Pw0bdq0ZPP9+++/qlq1qpYsWZLm8hMTE7Vq1Sp16NBBvr6+atCggQYMGKCwsLBU58nIcRcWFqYBAwaofv361m2YMGGCpLvnoYYNG0qSFi5caD3WFixYYJ3/1KlT1vOqr6+vunTpom+++SbF9f7yyy+aPHmyGjZsqGbNmqW53QAePlzpBmB33333ncqUKZPsKmJq1q9fryeffFItWrRQvnz59N1332nKlCmyWCzq06ePzbRnzpzRmDFj1LNnT/Xo0UMVKlSwjvvoo4/k4uKiwYMH6+zZs1q7dq3y5csnBwcH3bhxQyNHjtTvv/+uzZs3q3Tp0mle+bt06ZL1h4HBgwfL1dVVmzZtSvUq49mzZ/Xaa6+pW7du6ty5s4KDgzV+/Hg99dRT1ptWnT9/Xrt371abNm30xBNPKCIiQhs3bpS/v7+++OILa39Xs9msIUOGKCQkRM8//7xeeukl3bp1Sz/99JNOnDihsmXLput9vdeFCxdkMplUpEgRRUREqFevXoqNjVXfvn1VvHhxbdmyRcOGDVNgYKCeffZZm3k//PBDOTk5acCAAYqPj1fjxo3Vt29frVmzRkOHDlXFihUlSZUqVdKsWbMUFBSk0NBQ65frpP3grbfe0pYtW9S6dWv169dPoaGhWrJkiU6dOqUPPvggQ9vz888/a9CgQXriiSc0cuRIxcXFae3aterdu7c2b96cZt/m0qVLy2w267PPPlPnzp3TXE9ISIgGDRokHx8fjRw5Ug4ODtq8ebNefvllffLJJ6pevbqku/tLt27ddPPmTfXo0UMVK1bUpUuX9OWXXyouLi5TV6fT2teT1K1bN9XPQpK2bt2q8ePHq3HjxnrjjTcUGxur9evX68UXX9SWLVvSfJ8yIilYZOSmedevX9fAgQP17LPPqm3btvryyy81Z84ceXl5ZTqEXLt2TYMGDdLzzz+vjh07ys3NzTru888/161bt9SzZ085ODho2bJlGjVqlHbv3p1m6430HrdJli5dKgcHB/Xv31/R0dFatmyZ3njjDW3atMk6za5duxQXF6fevXurWLFiCg0N1dq1a/Xvv/8qMDAw1Vo6deqkt956SydOnJCXl5d1eGhoqP7++28NGzZMkvTTTz/p9ddfV8OGDa1dSk6fPq3ffvvN5gfPe8XHx1uPcX9/f7m7u+vSpUv6/vvvdePGDRUuXDiNd/7u5zl48GC1bdtWzz//vHbu3KnJkyfLyclJ3bp1U8GCBdWqVSvt3LlTEyZMkMlkss77+eefy2KxqEOHDmmuY+LEidq8ebOaNm2qbt26yWw269dff9Xvv/8uX1/fNOd9kMjISA0YMEDFixfX4MGDVaRIEV24cEFff/21JKlEiRKaPHmyJk+erGeffdZ6nkwK9H/99Zd69+4tT09PDRo0SK6urtq5c6dGjBihBQsWJDuvTpkyRSVKlNCIESMUExOTpdoB2IEFAOzo5s2bFi8vL8u
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Portfolio Sécurité ===\n",
"Clients exploitables : 1125\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 894\n",
"1 1 56\n",
"2 2 175\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Portfolio Flexible Bond\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdIAAAGGCAYAAAB/pnNVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA8XBJREFUeJzs3Xd0VMXDxvHv7qYRQgkh9IQWQoA0QFoIoohSpCNNgoogiCAoKqBYiCDYUKQoKIgKKCAQiiBiRUooKiX0DqEIIbTQUjb7/sHL/lgTIIGQm/J8zsnR3J07+8zd7M4we+9ck81msyEiIiIiIiIiIiIiIukyGx1ARERERERERERERCQn00S6iIiIiIiIiIiIiMgtaCJdREREREREREREROQWNJEuIiIiIiIiIiIiInILmkgXEREREREREREREbkFTaSLiIiIiIiIiIiIiNyCJtJFRERERERERERERG5BE+kiIiIiIiIiIiIiIregiXQRERERERERERERkVvQRLrQpEkThg0bZnSMPGPq1Kk89NBDVKtWjbZt22Zq3x49etCjRw/770ePHqVq1aosWLAgq2Pe0rBhw2jSpMk9qz+9dg0bNoyaNWtmaP+qVasyYcKEexUvxzCynRMmTKBq1aoO2/77WbFgwQKqVq1KTExMdscTyZXU32Yt9be3p/42Y/JiO436mzbS+vXrqVq1KuvXr79t2ZzyGSByJzSeyFoaT9yexhMZk1/aeV1+a+91TkYHyKuOHDnC1KlTWbNmDadOncLZ2Rl/f39atGhBly5dcHNzMzpintOjRw82bNhg/71IkSL4+PjQrVs3OnTogNmcNd8b7du3jx9//JH27dtTrlw5h8dWr17NBx98QJs2bXj++efx9PTMkufMKkePHuWhhx5K97GQkBDmzp2bzYlyhiZNmnDs2DH77y4uLpQuXZqHHnqIvn37UrRoUePCZbFLly4xbdo0VqxYwdGjR3F1daVUqVLUqVOHZ555hpIlSxodMctNnjwZPz8/mjZt6rD9n3/+Yc2aNTz55JMULlzYoHRyt9TfZj/1t7en/jZ9+am/vfHLaIvFgoeHB+XKlaNWrVp07doVPz8/A9PdG+vXr+eJJ55w2FakSBEqVKhAREQEbdq0MSiZyO1pPJH9NJ64PY0n0pffxhPdu3fnzTffNOT5V65cydatW3n++ecNef6cSBPp98Aff/zBoEGDcHFxoW3btvj7+5OcnMzff//NBx98wL59+xg5cqTRMe2WL1+OyWQyOkaWKFWqFIMHDwbg7NmzLFy4kOHDh3Po0CFefvnlLHmOffv2MXHiROrWrZumI163bh1ms5l33nkHFxeXu36usmXLsnXrVpycsvat2qpVK+6//36HbcWKFcvS57iVe9Wuu1GtWjV69uwJQFJSEtu2beObb75h48aNzJs3z+B0WSM5OZmIiAgOHDhAu3btiIiI4PLly+zdu5cffviBhx9+2D6R3q9fP/r06WNw4qwxZcoUmjVrlmYifdOmTUycOJH27dtrIj2XUn9rHPW3GaP+Nq380N9e17BhQ9q2bYvNZuPixYvs2rWLhQsX8t133/Hyyy/bj8O9YORr36NHD4KCggA4d+4cP/74I6+88goJCQl079492/NkRE58r0j20XjCOBpPZIzGE2nlp/GEkVauXMmsWbPSnUjfunUrFovFgFTGyjnvgjwiNjaWF198kTJlyvD1119TokQJ+2Pdu3fn8OHD/PHHH3f9PDabjcTExCz5ZjwrOoycolChQg6XY3Xp0oXmzZsza9YsBg0ahLOz8x3XnZiYeNv94+PjcXNzy7JjajKZcHV1zZK6blS9evVMX7aWle5Vu+5GyZIlHY5Jp06dcHd358svv+TQoUNUqFDBuHBZ5JdffmHHjh18+OGHtG7d2uGxxMREkpOT7b87OTnlqIGSyH+pvzWW+tuMUX+bVn7ob6+rUKFCmtf/pZdeol+/frz77rtUqlSJxo0b35PnNvK1v++++2jevLn9927dutG0aVOWLFmSYyfSc+J7RbKHxhPG0ngiYzSeSCs/jSeMcPnyZdzd3W9ZJqf9TWQXrZGexaZOncrly5d55513HDrh68qXL8+TTz5p/33+/Pk88cQTNGjQgMDAQFq2bMm3336bZr8mTZrQt29fVq1aRYcOHQgODmb27Nn2tQCXLVvGxIkTadSoETVr1mTgwIEkJCSQlJTEO++8Q4MGDahZsyavvvoqSUlJaer+7xpru3btIiIiguDgYO6//34+/fRT5s+fT9WqVTl69GiaXH/99RePPfYYQUFBPPTQQyxcuNChvnPnzvHee+/RunVratasSa1atejduze7du1K09bExEQmTJhAs2bNCAoKIjw8nAEDBnDkyJEMvQY3KlCgACEhIVy+fJkzZ84A1wZLAwcOpG7duoSEhNC5c+c0g6Prx3Xp0qV8/PHHNGrUiJCQEL755hsGDRoEwBNPPEHVqlXtazFeXzPs8uXL9u3X1xBLSUlh0qRJNG3alMDAQJo0acJHH32U5rX4r5utsRYdHc3jjz9OaGgo9913H/369WP//v2ZPj6ZkZqayldffcWjjz5KUFAQYWFhvPnmm5w/f95eZvz48QQEBBAdHe2w7xtvvEFgYKD99b7V2nGxsbH06tWL0NBQwsPDmThxIjab7bb5Tp48yauvvkpYWBiBgYE8+uijd/1NtLe3N0Cab1kzcvyvrzF++PBhhg0bxn333Uft2rV59dVXuXLlikPZpKQkRo8eTf369alZsybPPvss//77711lT09sbCwAtWrVSvOYq6srHh4eafJnRFJSEmPGjKF+/fqEhobSv39/+/vtRrNmzeLRRx8lMDCQ8PBwIiMjuXDhgkOZm635+N/1B68/7/jx43n44YcJDAykcePGvP/++w7vq6pVq3L58mWioqLs78thw4YxYcIE3n//fQAeeugh+2M3fr4tWrTI/nlbt25dXnzxRU6cOJGhYyL3nvpb9bfqb9XfQs7sb2/F09OTjz76CCcnJz777DOHbJ988gkdOnSgdu3ahIaG8vjjj7Nu3Tp7meTkZOrWrcurr76apt6LFy8SFBTEe++9B9z8td+/f7/9fRkUFESHDh349ddfHcokJyczceJEHnnkEYKCgqhXrx7dunVjzZo1d9RmFxcXihQpkuYL+oy+X2+2BmtG14meM2cOTZs2JTg4mMcee4y//vorTZlbrf978uRJnnvuOWrWrEn9+vV57733sFqtGW2+5HAaT2g8ofGExhOQe8YTN36GfPbZZ9x///0EBQXx5JNPcvjw4TTlt2zZQq9evahduzYhISFERETw999/O5S53vZ9+/bx0ksvUadOHR5//HGGDRvGrFmzAOzvkRvnCP7bPx87dowRI0bQrFkzgoODqVevHgMHDnT4DMoLdLphFvv999/x8fFJd6IqPd999x1VqlShSZMmODk58fvvvxMZGYnNZktzxsbBgwd56aWX6NKlC507d6ZixYr2xz7//HPc3Nzo06cPhw8fZubMmTg5OWEymbhw4QIDBgxgy5YtLFiwgLJlyzJgwICbZjp58qR9sNCnTx/c3d35/vvvb/ot7eHDhxk0aBCPPfYY7du3Z/78+QwbNowaNWpQpUoV4NqH6y+//ELz5s0pV64cp0+fZs6cOURERLB06VL7chJWq5W+ffsSHR3No48+yhNPPMGlS5dYs2YNe/bswdfXN0PH9UZHjx7FYrFQuHBhTp8+TdeuXbly5Qo9evTA09OTqKgo+vXrZ5+Qu9Gnn36Ks7MzvXr1IikpifDwcHr06MGMGTN49tlnqVSpEgCVK1fm/fffZ+7cuWzdupVRo0YB/5uwfP3114mKiqJZs2b07NmTrVu3MmXKFPbv38+kSZMy1Z61a9fyzDPPUK5cOQYMGMDVq1eZOXMm3bp1Y8GCBWkuV0vPlStX0kx0FipU6Jbf2L/55ptERUXRoUMHevTowdGjR5k1axY7duzgu+++w9nZmX79+vH7778zfPhwFi9ejIeHB6tWrWLu3LkMGjSIgICAW+ayWq307t2bkJAQXnnlFVatWsWECRO
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAr0AAAHqCAYAAAAJR/YKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4VFX6wPHv1Ex6b4TQSWgBQpGqICAoqBRFbFh+KDYEy7rAuqtiQWzrithWUVdRRKQoIggqWEFQQXqHkJCE9GSSmWTa/f0RMzDMJCSQZCbh/TwPj+acO/e+c+bOzDvnnnuOSlEUBSGEEEIIIZoxtbcDEEIIIYQQoqFJ0iuEEEIIIZo9SXqFEEIIIUSzJ0mvEEIIIYRo9iTpFUIIIYQQzZ4kvUIIIYQQotmTpFcIIYQQQjR7kvQKIYQQQohmT5JeIYQQQgjR7EnS6yXDhg1j1qxZ3g6j2XjnnXcYPnw4nTt3ZuzYsXV67OTJk5k8ebLz74yMDJKTk1m+fHl9h1mjWbNmMWzYsAbbv6fnNWvWLFJTU2v1+OTkZF599dWGCs9nXCjPs7E19PldHW+9n09355138s9//tNrx/clZ37e1oU335vnE7eof9dddx3PP/98nR+nbYBYvOb48eO88847/Pzzz+Tk5KDT6UhKSuKKK65g0qRJGAwGb4fY7EyePJktW7Y4/w4NDSUxMZEbbriBCRMmoFbXz++qQ4cOsWbNGsaPH0/Lli1d6n766SdeeOEFrr76au6//37Cw8Pr5Zj1JSMjg+HDh3us69GjB59++mkjR+Qbhg0bxokTJ5x/6/V64uPjGT58OHfddRdhYWHeC66eJScnO/9fpVIRFRVFUlISd911F/369XPZ1m63s3LlSlauXMn+/fsxmUzExMTQr18/brzxRlJSUtz2/9FHH/Hkk0/SvXt3li5d2uDPxxetWrWK/Px8brvtNm+H4uL333/n559/Zs2aNd4ORXjZ0qVLeffdd8nIyCA+Pr7WifSsWbNYsWJFtfU//PADsbGxgPt3cpXBgwezcOHCc4798OHDzJ07lz/++AOdTseQIUOYPXs2ERERZ33sV199xXfffceOHTtIS0vjoosu4sMPP3TbbseOHaxcuZJff/2VEydOEBYWRo8ePXjggQdo27aty7Z33nknjzzyCLfffjvR0dG1fh7NJunduHEjM2bMQK/XM3bsWJKSkrBarfz++++88MILHDp0iKeeesrbYTqtXbsWlUrl7TDqRVxcHA899BAAhYWFrFy5kkcffZRjx47xt7/9rV6OcejQIRYsWMBFF13klvRu3rwZtVrNM888g16vP+9jJSQksGPHDrTa+n17XHnllVxyySUuZbX5wKgvDfW8zkfnzp25/fbbAbBYLOzatYsPPviArVu38tlnn3k5uvo1aNAgxo4di6IoZGRksHjxYm699VbeeusthgwZAkB5eTnTpk3jxx9/pG/fvtx1112EhoZy4sQJ1qxZw4oVK9i4cSNxcXEu+161apXz9U1LS6N169beeIo1euqpp1AUpcH2/+WXX3Lw4EG3pNfb5/3ChQsZMGCAT74mTc2OHTvQaDTeDuOcfPLJJzz++OOMGjWK22+/nd9++42nn34as9nM1KlTa3zspEmTGDBggEuZoig88cQTJCQkOBPeKqd/J1eJiYk559izs7O56aabCA4O5sEHH8RkMvHuu+9y4MABli5detbv3cWLF7Nr1y5SUlIoKiqqdrt33nmHP/74g8svv5zk5GRyc3P56KOPmDBhAkuWLCEpKcm57fDhwwkKCuLjjz9mxowZtX4uvvPtdx7S09N58MEHadGiBf/73/9cXtybbrqJtLQ0Nm7ceN7HURSFioqKeukxro/kzFcEBwe7DCmYNGkSl19+OR999BEzZsxAp9Od874rKirO+vj8/HwMBkO9talKpcLPz69e9nW6Ll261HnoRX1qqOd1PmJjY13aZOLEiQQEBPDuu+9y7Ngx2rRp473g6lmbNm1cnutll13G1VdfzQcffOBMep9//nl+/PFHZs+e7Za8TZs2jffff99tv+np6Wzbto0FCxbw2GOPsWrVKqZNm9aQTwUAk8lEQEBArbc/n8+B8+HN8z4/P5/vv/+eJ554otGPXdfXpynwtc+v2iovL+fll19m6NChzJ8/H6i8PO9wOHjjjTeYNGkSoaGh1T4+NTXVbRjab7/9htls5qqrrnLb/szv5PP15ptvYjabWb58OS1atACge/fu3H777axYsYJJkybV+Pjnn3+e2NhY1Go1V155ZbXb3Xbbbbz44osu3+WjR4/mqquu4r///S8vvviis1ytVjNq1Cg+//xzpk+fXutOxGYxpvedd97BZDLxzDPPePw107p1a2699Vbn38uWLeOWW25hwIABdOvWjdGjR/Pxxx+7PW7YsGHcdddd/Pjjj0yYMIHu3bvzySef8Ouvv5KcnMxXX33FggULuPjii0lNTWX69OkYjUYsFgvPPPMMAwYMIDU1ldmzZ2OxWNz2feaY3n379nHzzTfTvXt3LrnkEl5//XWWLVtGcnIyGRkZbnH99ttvXHvttaSkpDB8+HBWrlzpsr+ioiKee+45rrrqKlJTU+nVqxd33HEH+/btc3uuFRUVvPrqq4waNYqUlBQGDx7MtGnTOH78eK1eg9P5+/vTo0cPTCYTBQUFQOUX8/Tp07nooovo0aMH1113ndsPkap2Xb16NS+//DIXX3wxPXr04IMPPnD+krvllltITk4mOTnZuf3y5csxmUzO8qqxezabjddee40RI0bQrVs3hg0bxr///W+31+JM1Y0B3LRpEzfeeCM9e/akT58+3HPPPRw+fLjO7VMXDoeD999/nzFjxpCSksLAgQN57LHHKC4udm4zf/58OnXqxKZNm1we+69//Ytu3bo5X++axjamp6czZcoUevbsyeDBg1mwYEGteuVOnjzJ7NmzGThwIN26dWPMmDHn3UNbdanqzB6d2rT/q6++SnJyMmlpacyaNYs+ffrQu3dvZs+ejdlsdtnWYrEwd+5c+vfvT2pqKnfffTfZ2dnnFXtdJCcnEx4e7nxvZ2dns2TJEgYNGuTxEr1Go2HKlCkee3lDQ0MZMmQIo0aNYtWqVbWOoeqz5KeffmLs2LGkpKQwevRo1q1b57Ld8uXLSU5OZsuWLTzxxBMMGDDAmahD5fCKMWPG0K1bNwYPHsycOXMoKSlx2YenMb21Ob+rfP/999x8883Oz7JrrrnG+VwnT57Mxo0bOXHihPNzoOpY5/N+rsv55MnGjRux2WwMHDjQWbZz506Sk5M9Xq7+8ccfSU5OZsOGDQCcOHGCJ554glGjRtG9e3f69evH9OnTXb4P4OyvjycWi4X58+dz2WWX0a1bN4YMGcLzzz/v8vk4c+ZMUlJS3NplypQp9O3bl5MnT7ocf+vWrTz22GP069ePXr168fe//93ja3lmHK+88goTJkygd+/e9OzZkxtvvJHNmze7bXvmmN66vj6ff/6587v8oosu4sEHHyQrK8ttuyVLljBixAi6d+/Otddey2+//eYx9szMzFp9B/z6668UFRVx4403upTfdNNNmEymc+qU+/LLL1GpVNUmkTabjbKysjrv15N169YxdOhQZ8ILMHDgQNq0aVOrYTvx8fG1GurYq1cvt86rNm3a0LFjR44cOeK2/cCBAzlx4gR79+6txbOo1Cx6ejds2EBiYiK9evWq1faLFy+mY8eODBs2DK1Wy4YNG5gzZw6KonDTTTe5bHv06FEefvhhJk2axHXXXecyruS///0vBoOBqVOnkpaWxqJFi9BqtahUKkpKSpg2bRp//vkny5cvJyEhocbel5MnTzoT86lTpxIQEFDjZYO0tDRmzJjBtddey/jx41m2bBmzZs2ia9eudOzYEahMZL755hsuv/xyWrZsSV5eHkuWLOHmm29m9erVzksidrudu+66i02bNjFmzBhuueUWysrK+Pnnnzlw4ACtWrWqVbueLiMjA41GQ0hICHl5eVx//fWYzWYmT55MeHg4K1as4J577nF+6J7u9ddfR6fTMWXKFCw
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Portfolio Flexible Bond ===\n",
"Clients exploitables : 1053\n",
"K retenu : 4\n",
" cluster n_clients\n",
"0 0 777\n",
"1 1 87\n",
"2 2 149\n",
"3 3 40\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Portfolio Credit\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABjMAAAHpCAYAAADHxs6UAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XdcleX/x/H3AUGcqIB7D9AU98iVqX3VHLly5chRrrTU3Jq5t2bOyJypmTkoy1Xmyp1pLhy5cQIuEBSF8/vDHyePgAHCuY/wej4e96POda77vj/3x9sbPJ9zXZfJbDabBQAAAAAAAAAAYKccjA4AAAAAAAAAAADgRShmAAAAAAAAAAAAu0YxAwAAAAAAAAAA2DWKGQAAAAAAAAAAwK5RzAAAAAAAAAAAAHaNYgYAAAAAAAAAALBrFDMAAAAAAAAAAIBdo5gBAAAAAAAAAADsGsUMAAAAAAAAAABg1yhmAAAAJIJatWpp8ODBRoeRbHzzzTeqXbu2ihUrpsaNG8dr3/bt26t9+/aW1/7+/vLy8tLatWsTO0zDeXl5adasWZbXa9eulZeXl/z9/Q2MKmb2HFtS4tkAAAAAJI5URgcAAAAQm8uXL+ubb77R7t27devWLTk5OcnT01Nvv/22WrVqJRcXF6NDTHbat2+vAwcOWF67uroqT548atOmjZo1ayYHh8T5Lsw///yjjRs3qmnTpsqdO7fVe3/88YemTJmid955R71791bmzJkT5ZyJLSQkRIsXL9aWLVt05coVRUREKG/evKpRo4Y6dOigbNmyGR2iJGn58uVKkyaNmjVrliTHj4iIkK+vr3x9fXX69GmFhoYqa9asqlSpkt577z15e3snyXmft2PHDh09elS9e/e2yfleRTdv3tSqVav01ltvqVixYkaHAwAAAMQLxQwAAGCXtm/frk8++UTOzs5q3LixPD099fjxYx06dEhTpkzRP//8ozFjxhgdpsWmTZtkMpmMDiNRZM+eXf369ZMk3blzR76+vho2bJguXryo/v37J8o5/vnnH82ePVsVK1aMVszYt2+fHBwcNG7cODk7O7/0uXLlyqWjR48qVarE+9X3ypUr6tixo65fv6569eqpVatWcnJy0unTp7V69Wr99ttv2rx5c6KdL64aN26sBg0aWOXtu+++U+bMmZOkmPHw4UP16tVLu3btUoUKFdStWze5urrq6tWr2rhxo9atW6ft27cre/bsiX7u5+3YsUPLly+3u2KGPT0bbt26pdmzZytXrlwUMwAAAPDKoZgBAADszpUrV9S3b1/lzJlTS5YsUdasWS3vtW3bVpcuXdL27dtf+jxms1mPHj1KlBEeifGhu73IkCGD1dROrVq1Ur169bR8+XJ98skncnJySvCxHz169J/7BwUFycXFJdFyajKZlDp16kQ5liQ9efJEvXr1UlBQkJYuXary5ctbvd+3b1/Nnz//hccICwtTmjRpEi2mKI6OjnJ0dEz048Zm8uTJ2rVrl4YMGaKOHTtavderVy8tXrzYZrEkhcR4RiSnZ0Nsov5eJ9bILQAAACAm/LYJAADszjfffKPQ0FCNGzfOqpARJV++fHr//fctr9esWaMOHTqocuXKKlGihOrXr68VK1ZE269WrVrq1q2bdu3apWbNmqlkyZJauXKl9u/fLy8vL23YsEGzZ89W9erVVaZMGX388ccKDg5WeHi4xo0bp8qVK6tMmTIaMmSIwsPDox37+XnxT506pXbt2qlkyZJ64403NHfuXK1ZsybaugFRcf35559699135e3trdq1a8vX19fqeHfv3tWkSZPUqFEjlSlTRmXLltUHH3ygU6dORbvWR48eadasWapbt668vb1VrVo19erVS5cvX47Tn8Gz0qRJo1KlSik0NFS3b9+W9LTg9PHHH6tixYoqVaqUWrZsGa3AFJXXX375RV988YWqV6+uUqVKaenSpfrkk08kSR06dJCXl5e8vLws/deuXavQ0FBLe9RaF0+ePNGcOXP01ltvqUSJEqpVq5amT58e7c/iebGtmbF371699957Kl26tMqXL68ePXro3Llz/5mPLVu26NSpU+revXu0QoYkpU+fXn379rW8bt++vRo2bKjjx4+rbdu2KlWqlKZPny5JCg8P18yZM/W///1PJUqUUI0aNTR58uRo1xQeHq7x48fr9ddfV5kyZdS9e3fduHEj2rmfX5eiVq1aOnv2rA4cOGDJ57PribyMGzdu6Pvvv1fVqlWjFTKkp4WVLl26vHBUxvNrfkR5/u/T48ePNXv2bNWpU0fe3t6qVKmS2rRpo927d0uSBg8erOXLl1uOGbVFiYyM1OLFi9WgQQN5e3urSpUqGjFihO7duxftvDE9I2Jz8eJF9e7dW1WrVpW3t7feeOMN9e3bV8HBwbFei2TMs2H//v169913JUlDhgyJ9vcrtrU9nl+DJra/1yEhIZKkv//+W126dFG5cuVUqlQptWvXTocOHbI6ZkhIiMaNG6datWqpRIkSqly5sjp16qQTJ07EmmsAAACAkRkAAMDubNu2TXny5FHZsmXj1P+7775TkSJFVKtWLaVKlUrbtm3TqFGjZDab1bZtW6u+Fy5c0KeffqpWrVqpZcuWKlCggOW9r7/+Wi4uLuratasuXbqkZcuWKVWqVDKZTLp//7569eqlv//+W2vXrlWuXLnUq1evWGO6efOmpeDStWtXpU2bVj/88EOs39K+dOmSPvnkE7377rtq2rSp1qxZo8GDB6t48eIqUqSIpKcFhN9++0316tVT7ty5FRgYqO+//17t2rXTL7/8YlmjISIiQt26ddPevXvVoEEDdejQQQ8ePNDu3bt15swZ5c2bN055fZa/v78cHR2VMWNGBQYGqnXr1goLC1P79u2VOXNmrVu3Tj169LB8MP+suXPnysnJSV26dFF4eLiqVaum9u3b69tvv1X37t1VsGBBSVKhQoU0efJkrVq1SkePHtXYsWMlyXIfDB8+XOvWrVPdunXVqVMnHT16VD4+Pjp37pzmzJkTr+vZs2ePPvzwQ+XOnVu9evXSw4cPtWzZMrVp00Zr166NNvXVs7Zu3SpJ8VqY/O7du/rwww/VoEEDvfPOO3Jzc1NkZKR69OihQ4cOqWXLlipUqJDOnDmjJUuW6OLFi5o7d65l/2HDhumnn35Sw4YNVbZsWe3bt09du3b9z/MOHTpUY8aMUdq0adW9e3dJkru7e5zjfpGdO3fqyZMneueddxLleC8ye/Zs+fj4qEWLFipZsqRCQkJ0/PhxnThxQlWrVlWrVq1069Yt7d69W5MnT462/4gRI7Ru3To1a9ZM7du3l7+/v5YvX66TJ0/qu+++sxot9KJnxLPCw8Mt93S7du3k7u6umzdvavv27bp//74yZMgQ435GPRsKFSqkjz/+WDNnzlSrVq1Urlw5SYrzc/Z5z/+9dnJy0t69e/Xhhx+qRIkS6tWrl0wmk9auXav3339fK1asUMmSJSVJn3/+uTZv3qx27dqpUKFCunv3rg4dOqRz586pePHiCYoHAAAAKYAZAADAjgQHB5s9PT3NPXr0iPM+YWFh0do6d+5srl27tlVbzZo1zZ6enuadO3date/bt8/s6elpbtiwoTk8PNzS3q9fP7OXl5f5gw8+sOrfqlUrc82aNaMde9CgQZbXY8aMMXt5eZlPnjxpabtz5465YsWKZk9PT/OVK1eixXXw4EFLW1BQkLlEiRLmiRMnWtoePXpkjoiIsDrvlStXzCVKlDDPnj3b0rZ69Wqzp6enedGiRdHyEhkZGa3tWe3atTPXq1fPHBQUZA4KCjL/888/5jFjxpg9PT3N3bp1M5vNZvO4ceOixRsSEmKuVauWuWbNmpYYo/Jau3btaH9GGzduNHt6epr37dsXLYZBgwaZS5cubdXm5+dn9vT0NA8bNsyqfeLEiWZPT0/z3r17ra6hXbt2Vjny9PQ0r1mzxtLWuHFjc+XKlc137tyxOkfRokXNAwcOfGGOmjRpYi5XrtwL+zyrXbt2Zk9PT/N3331n1e7r62suWrSoVR7NZrP5u+++M3t6epoPHTpkicv
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAGGCAYAAACNCg6xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAARCdJREFUeJzt3XlYVHX///EXjKCYiApormUYg8buFoRZZmZZFpqRuZS3uZXLrbll3ipKuFauqWm35ZJmoaaVVnaXuWDbT0LLjcyVkkUNFAQc5veHF/N1RO2AyCA+H9fFdTmf8zln3ud4HF98zueccbJarVYBAADgHzk7ugAAAICbBcEJAADAIIITAACAQQQnAAAAgwhOAAAABhGcAAAADCI4AQAAGERwAgAAMIjgBAAAYBDBCbiKNm3aaPTo0Y4uo9xYvHixHnroITVu3FhPPvlkkdbt0aOHevToYXt9/Phxmc1mrVmzpqTLdDiz2aw5c+bYXq9Zs0Zms1nHjx93YFVXVpZru5H4bLi1VXB0Abi1HD16VIsXL9b27duVkpIiFxcX+fr66tFHH1VUVJQqVark6BLLnR49euiHH36wvfbw8FD9+vXVtWtXderUSc7OJfP7U1JSkjZu3KjIyEjVq1fPbtm2bds0ffp0dezYUYMGDVL16tVL5D1L2tmzZ/Xee+/pyy+/1LFjx2SxWNSgQQO1bt1aPXv2VK1atRxdoiRpxYoVcnNzU6dOnW7I9i0Wi9atW6d169Zp//79ysrKUs2aNdWyZUs999xzCggIuCHve7ktW7YoMTFRgwYNKpX3A4wgOKHUfPvttxoyZIhcXV315JNPytfXV3l5efr55581ffp0JSUladKkSY4u02bTpk1ycnJydBkl4vbbb9ewYcMkSadPn9a6dev02muv6fDhwxo+fHiJvEdSUpLmzp2rFi1aFApOO3fulLOzs15//XW5urpe93vVrVtXiYmJqlCh5D7Cjh07phdeeEF//vmn2rdvr6ioKLm4uGj//v36+OOPtXnzZn3xxRcl9n5GPfnkk+rQoYPdcVu5cqWqV69+Q4LT+fPnNXDgQG3dulXNmzdXv3795OHhoRMnTmjjxo1au3atvv32W91+++0l/t6X27Jli1asWFHmglN5+mxA0RGcUCqOHTumoUOHqk6dOnr//fdVs2ZN27Ju3brpyJEj+vbbb6/7faxWq3Jyckpk5Kok/oMvK9zd3e0uj0VFRal9+/ZasWKFhgwZIhcXl2JvOycn5x/XT09PV6VKlUrsmDo5OalixYolsi1JunDhggYOHKj09HQtXbpUzZo1s1s+dOhQLVq06JrbyM7OlpubW4nVVMBkMslkMpX4dq9m2rRp2rp1q1599VW98MILdssGDhyo9957r9RquRFK4jOiPH02oOiY44RSsXjxYmVlZen111+3C00F7rjjDj3//PO213FxcerZs6fCwsLk7++vxx57TB988EGh9dq0aaN+/fpp69at6tSpkwIDA7Vq1Sp9//33MpvN+vzzzzV37ly1atVKISEhGjx4sDIzM5Wbm6vXX39dYWFhCgkJ0auvvqrc3NxC2758HsO+ffvUvXt3BQYG6v7779fbb7+tuLi4QvM8Cur66aef9PTTTysgIEAPPfSQ1q1bZ7e9M2fOaOrUqXriiScUEhKi0NBQvfjii9q3b1+hfc3JydGcOXP0yCOPKCAgQBERERo4cKCOHj1q6O/gUm5ubgoKClJWVpZOnTol6WK4HTx4sFq0aKGgoCA988wzhcJswXH97LPP9NZbb6lVq1YKCgrS0qVLNWTIEElSz549ZTabZTabbf3XrFmjrKwsW3vB3KQLFy5o3rx5atu2rfz9/dWmTRu9+eabhf4uLne1OU7x8fF67rnnFBwcrGbNmmnAgAH6/fff//F4fPnll9q3b5/69+9fKDRJUpUqVTR06FDb6x49eujxxx/Xnj171K1bNwUFBenNN9+UJOXm5mr27Nl6+OGH5e/vr9atW2vatGmF9ik3N1exsbG69957FRISov79++uvv/4q9N6XzyNq06aNDh48qB9++MF2PC+d/3U9/vrrL3344Ye67777CoUm6WKI69279zVHmy6fo1Xg8n9PeXl5mjt3rtq1a6eAgAC1bNlSXbt21fbt2yVJo0eP1ooVK2zbLPgpkJ+fr/fee08dOnRQQECAwsPDNW7cOP3999+F3vdKnxFXc/jwYQ0aNEj33XefAgICdP/992vo0KHKzMy86r5cWt/lP5d+Lvz++++2f2MBAQHq1KmTvv76a7v3/6fjAsdjxAml4ptvvlH9+vUVGhpqqP/KlSt19913q02bNqpQoYK++eYbRUdHy2q1qlu3bnZ9//jjD73yyiuKiorSM888o4YNG9qWvfPOO6pUqZL69u2rI0eOaPny5apQoYKcnJyUkZGhgQMH6pdfftGaNWtUt25dDRw48Ko1nTx50hbu+vbtq8qVK+ujjz666m+fR44c0ZAhQ/T0008rMjJScXFxGj16tO655x7dfffdki6Glc2bN6t9+/aqV6+e0tLS9OGHH6p79+767LPPbHNqLBaL+vXrp/j4eHXo0EE9e/bUuXPntH37dh04cEANGjQwdFwvdfz4cZlMJlWtWlVpaWl69tlnlZ2drR49eqh69epau3atBgwYYAsBl3r77bfl4uKi3r17Kzc3VxEREerRo4eWLVum/v3766677pIk+fj4aNq0aVq9erUSExMVExMjSbbzYOzYsVq7dq0eeeQR9erVS4mJiVq4cKF+//13zZs3r0j7s2PHDvXp00f16tXTwIEDdf78eS1fvlxdu3bVmjVrCl0+vFTBf15FmbR+5swZ9enTRx06dFDHjh3l6emp/Px8DRgwQD///LOeeeYZ+fj46MCBA3r//fd1+PBhvf3227b1X3vtNa1fv16PP/64QkNDtXPnTvXt2/cf33fMmDGaNGmSKleurP79+0uSvLy8DNd9Ld99950uXLigjh07lsj2rmXu3LlauHChunTposDAQJ09e1Z79uzRr7/+qvvuu09RUVFKSUnR9u3bNW3atELrjxs3TmvXrlWnTp3Uo0cPHT9+XCtWrNBvv/2mlStX2o2CXusz4lK5ubm2c7p79+7y8vLSyZMn9e233yojI0Pu7u5XXO9K9c2aNUvp6emqXLmyJOngwYPq2rWratWqpT59+qhy5crauHGjXn75Zc2ZM8f2b+yfjgvKACtwg2VmZlp9fX2tAwYMMLxOdnZ2obZ//etf1oceesiu7cEHH7T6+vpav/vuO7v2nTt3Wn19fa2PP/64NTc319Y+bNgwq9lstr744ot2/aOioqwPPvhgoW2PGjXK9nrSpElWs9ls/e2332xtp0+ftrZo0cLq6+trPXbsWKG6fvzxR1tbenq61d/f3zplyhRbW05OjtVisdi977Fjx6z+/v7WuXPn2to+/vhjq6+vr3XJkiWFjkt+fn6htkt1797d2r59e2t6ero1PT3dmpSUZJ00aZLV19fX2q9fP6vVarW+/vrrheo9e/astU2bNtYHH3zQVmPBcX3ooYcK/R1t3LjR6uvra925c2ehGkaNGmUNDg62a9u7d6/V19fX+tprr9m1T5kyxerr62uNj4+324fu3bvbHSNfX19rXFycre3JJ5+0hoWFWU+fPm33Hn5+ftaRI0de8xg99dRT1qZNm16zz6W6d+9u9fX1ta5cudKufd26dVY/Pz+742i1Wq0rV660+vr6Wn/++WdbXb6+vtYJEybY9Rs2bJjV19fXOnv2bFtbXFxcofOrQ4cOdsejpMTGxlp9fX3tzvFruVJtl9df4PJ/Tx07drT27dv3mtuPjo62+vr6Fmr/8ccfrb6+vtb169fbtX/33XeF2q/2GXElv/32m9XX19e6cePGa/a7fF8ut2jRIquvr6917dq1trbnn3/e+vjjj1tzcnJsbfn5+daoqChru3btbG1Gjgsci0t1uOHOnj0rSbrtttsMr3Pp/IPMzEydOnVKLVq00LFjx+yGzCWpXr16atWq1RW38+STT9r95hkYGCir1arOnTvb9QsMDNSff/6
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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IzVo0CBbza1atdL48eMz3IfXrl3TtGnT1KpVK9WuXVtNmzbVgAEDdODAgUztp0uXLmn06NGqX7++mjRpoqlTp9rqkaSgoCA99dRTac7btm1bDRo06K7r+OGHHxQUFGS77nXv3l2bN29Od/r0notP69i6ePGixo8fr8cee0y1a9fWI488ouHDh2f6HLpy5YqmTZum5s2bq3bt2nr88ce1cOFCJScnp1rvkiVLtGzZMrVp00YBAQGZut4AyF+40w0g3/juu+9UsWJF1a9fP1PTr1mzRg8++KBatWqlQoUK6bvvvtPkyZNltVrVt29fu2lPnDihV155Rb169VLPnj1VtWpV27iFCxfK1dVVzz//vE6ePKlVq1apUKFCMplMunLlikaOHKnff/9d69evV/ny5TVy5Mh0azp//rzth4Hnn39e7u7uWrduXbp3NU6ePKnRo0fr6aefVteuXRUaGqpx48apVq1aevDBByXdCro7duxQu3btVKFCBUVHR+vzzz9XUFCQvvrqK9szxBaLRUOHDlV4eLg6dOigfv366fr169q1a5eOHDmiSpUqZWq/3i4qKkpms1nFixdXdHS0evfurfj4eD377LMqVaqUNmzYoOHDh9sC5O0++ugjOTs7a9CgQUpMTNQjjzyiZ599VitXrtSwYcNUrVo1SZKPj49mzZqlkJAQRUREaOrUqZJkOw7eeOMNbdiwQW3bttWAAQMUERGhBQsW6NixY/rwww+ztD0///yzhgwZogoVKmjkyJFKSEjQqlWr1KdPH61fvz5Vk/fb7dy5U5Ky1MHb5cuXNWTIEHXo0EFPPfWUPDw8lJycrOHDh2vv3r3q2bOnfHx8dOTIES1fvlx///23PvroI9v8EyZM0KZNm9SxY0fVr19fu3fv1vPPP3/X9b7++uuaMmWK3N3dNWzYMEmSp6dnpuvOyI8//qibN2+mG6jS89JLL6lChQp6+eWX9eeff2rdunUqXbq0/vOf/2S7ltGjR6ty5coaM2aMrFarbXhmzqv0rFixQq1atVKnTp2UlJSkr776SqNHj9aCBQvUokULu2n37t2r7du365lnnlGRIkW0cuVKvfjii/ruu+9sfRJERkZq37596tChg8qWLaszZ85ozZo16tevn7766qt0Wz507txZH374obZs2aKgoCDb8MTERG3btk1PPPGEChcurJiYGA0aNEilSpXS888/r+LFiysqKkrffPNNhts5ceJEbdu2TUFBQfLx8dHly5e1d+9eHTt2TLVq1cpwXunW37N8+fJ65ZVXtH//fq1cuVJXrlzRrFmzbPW/8cYbOnLkiHx9fW3zRURE6O+//9bw4cMzXP769ev1+uuv68EHH9TQoUNVrFgxHTx4UGFhYerUqdNd67ubUaNG6ejRowoKClL58uUVGxurXbt26dy5c6pQoUKG51B8fLyCgoJ0/vx59e7dW+XKldO+ffs0b948Xbx4URMmTEi1LTdu3FDPnj3l4uKiEiVK5Lh+APcYKwDkA1evXrX6+vpahw8fnul54uPjUw0bOHCgtXXr1nbDWrZsafX19bX++OOPdsN3795t9fX1tXbs2NGamJhoG/7yyy9b/fz8rIMHD7abvlevXtaWLVumWvZrr71m+zxlyhSrn5+f9c8//7QNu3TpkrVx48ZWX19f6+nTp1P
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Portfolio Credit ===\n",
"Clients exploitables : 984\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 794\n",
"1 1 143\n",
"2 2 47\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Emergents\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAAGGCAYAAACUkchWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA2glJREFUeJzs3XlYVOXbB/DvzLDLjmyCKIhsAgLuuJv7mppr6Js/y1wrW9xazErNynI3S9NS0yyXtJRyzwXQFDdcEAFZZd9kZ+a8fyCTI6CAwBmG7+e6uGrOnHnmfs7MeM65z3PuRyIIggAiIiIiIiIiIiIiIipHKnYARERERERERERERETqikl0IiIiIiIiIiIiIqJKMIlORERERERERERERFQJJtGJiIiIiIiIiIiIiCrBJDoRERERERERERERUSWYRCciIiIiIiIiIiIiqgST6ERERERERERERERElWASnYiIiIiIiIiIiIioEkyiExERERERERERERFVgkl0apD69OmDBQsWiB0GUTlPfjdDQkLg6uqKkJAQ5bJJkyZh6NChYoRHRFRl3NdSY7N27Vq4urqKHUa9WrBgAfr06fPM9eLi4uDq6op9+/YplzXG7UVEVcfjCKJS+/btg6urK+Li4sQOhZ6TltgBkPqIiYnB5s2bce7cOSQnJ0NbWxsuLi4YNGgQxo0bBz09PbFD1DiTJk3ChQsXKnzO0dERgYGB9RyResrPz8fmzZvRsWNHdOrUSZQY7ty5g/Xr1+P69etITU2FqakpnJ2d0adPH0yaNEmUmOpSREQEjhw5gpEjR8Le3l7luZ07d0JfXx+jRo0SKTqihov72vrHfW3ViL2v3bdvHxYuXKh8rKOjAxMTE7i6uqJnz54YNWoUDA0N6z2uurZgwQLs379f+Vgmk8HS0hJ+fn6YNWsWnJ2dRYyOiNQNjyPqH48jqkZdjiN+++03eHl51fv7A8C3334LZ2dn9O3bV5T3p7rHJDoBAE6dOoU333wTOjo6GDFiBFxcXFBcXIxLly7hyy+/REREBD799FOxw1QKDAyERCIRO4xaYWNjg7fffrvcciMjIxGiUU/5+flYt24dZs+eLcoO+fLly5g8eTKaNWuGMWPGwNLSEomJibh69Sp++uknlSS6pnw3IyIisG7dOnTs2LFcEn3Xrl0wMzNjEp2omrivFQ/3tc8m9r62zBtvvAF7e3uUlJQgNTUVFy5cwLJly7Bt2zZs2LABbm5udfbeM2bMwLRp0+qs/cro6Ojgs88+AwDI5XLExMRg9+7dOHPmDP78809YW1vXe0xVIdb2ImqseBwhHh5HPJu6HEeIadOmTRgwYEC5JPqIESMwZMgQ6OjoiBQZ1RYm0QmxsbGYO3cumjVrhh9//BFWVlbK515++WXcv38fp06deu73EQQBhYWFtXJ1XJP+8TEyMsKIESPEDqNSCoUCxcXF0NXVFTsU0Xz77bcwMjLCb7/9BmNjY5Xn0tLSVB5r0neTiGoP97Xi4r624ejRo4fKCLLXX38dQUFBmD59OmbOnInDhw/X2UhLLS0taGnV/+mRlpZWue+nj48PXn/9dZw+fRpjx46t95iqQqztRdQY8ThCXDyOoMpU5Tcjk8kgk8nqMSqqK6yJTti8eTPy8vKwdOlSlZ1xmRYtWuD//u//lI/37t2LyZMno0uXLvD09MTgwYPx888/l3tdnz598Prrr+PMmTMYNWoUvL29sXv3bmWN6MOHD2PdunXo3r07fH198cYbbyAnJwdFRUVYunQpunTpAl9fXyxcuBBFRUXl2n6yvtrt27cREBAAb29v9OjRAxs2bMDevXvL1Z4qi+vff//FSy+9BC8vL7zwwgs4cOCASnuZmZlYsWIFhg0bBl9fX/j5+eHVV1/F7du3y/W1sLAQa9euxYABA+Dl5YVu3bph9uzZiImJqdJn8CxlNSejoqLw7rvvol27dujcuTNWrVoFQRCQmJiIGTNmwM/PD127dsUPP/xQro2ioiKsWbMG/fr1g6enJ3r27Ikvvvii3LZ1dXXFJ598goMHD2LIkCHw8vLCmTNnAFR9GwPA6dOnMXHiRPj4+MDX1xfTpk3D3bt3VdZZsGABfH19kZSUhJkzZ8LX1xedO3fGihUrIJfLAZTW4OzSpQsAYN26dXB1dYWrqyvWrl0LAEhJScHChQvRo0cPeHp6olu3bpgxY0at1huLiYmBs7NzuQQ6AFhYWKg8rk7tv4iICEyaNAlt27ZF9+7d8f3335dbJy0tDYsWLYK/vz+8vLwwfPhwldu+gYrrrgMV1y8FgHv37uGNN95Ax44d4eXlhVGjRuH48ePK5/ft24c333wTADB58mTlNg8JCUGfPn1w9+5dXLhwQbn88ZH42dnZWLp0KXr27AlPT0/069cP3333HRQKRZW2CZGm4r6W+9rHcV9bPV26dMHMmTMRHx+PgwcPKpffvn0bCxYswAsvvAAvLy907doVCxcuREZGhnKdwMBAuLq6Vngr/u7du+Hq6orw8HAAldf4/v3335W/r44dO2Lu3LlITExUWSc6Ohpz5sxB165d4eXlhR49emDu3LnIycmpUZ+bNm0KAOVOumNjY5X78LZt22Ls2LHlEmeV1V6t7HjhSdnZ2ViwYAHatWuH9u3bY/78+RX2o6LtVfbdPnbsGIYOHQpPT08MGTIE//zzT1W7TkQV4HEEjyMex+OIqqlK7GUUCgW2bdum3J7+/v746KOPkJWVpbJeZb8ZV1dX5OXlYf/+/cr+l33/K9ovHzt2DNOmTUO3bt3g6emJvn37Yv369eXiIvXCoQOEkydPonnz5vDz86vS+rt27ULr1q3Rp08faGlp4eTJk1iyZAkEQcDLL7+ssm5UVBTeeecdjBs3DmPHjoWjo6Pyue+++w56enqYNm0a7t+/jx07dkBLSwsSiQTZ2dmYPXs2rl69in379sHOzg6zZ8+uNKakpCTlQcO0adNgYGCAX3/9tdKr3/fv38ebb76Jl156CSNHjsTevXuxYMECtGnTBq1btwZQepJy7NgxDBw4EPb29khNTcUvv/yCgIAAlVtr5XK5cpTUkCFDMHnyZOTm5uLcuXMIDw+Hg4PDU7enXC5Henp6ueV6enowMDBQWTZ37ly0atUK77zzDk6fPo2NGzfC1NQUu3fvRufOnfHuu+/i0KFDWLFiBby8vNChQwcApTuEGTNm4NKlSxg7dixatWqF8PBw/Pjjj4iOjsaGDRtU3ic4OBhHjhzByy+/DDMzM9jZ2VVrGx84cAALFixAt27d8O677yI/Px+7du3CxIkTsX//fpXyIHK5HFOnToW3tzfmzZuHoKAg/PDDD2jevDkmTpwIc3NzfPzxx/j444/Rr18/9OvXDwCUJ21z5sxBREQEAgICYGdnh/T0dJw7dw6JiYnlypDUlJ2dHUJDQxEeHg4XF5daaTMrKwuvvvoq+vXrh0GDBuGvv/7CV199BRcXF/Ts2RMAUFBQgEmTJiEmJgYvv/wy7O3tERgYiAULFiA7O1vlQLmq7t69iwkTJsDa2hqvvfYaDAwMcOTIEcyaNQtr165Fv3790KFDB0yaNAnbt2/H9OnT4eTkBABo1aoVFi1ahE8//RQGBgaYPn06gP9O9PPz8xEQEICkpCSMHz8etra2CA0Nxddff42UlBS8//77tbLtiBoi7mu5r+W+9vmMGDECX3/9Nc6ePascmX3+/HnExsZi1KhRsLS0xN27d7Fnzx5ERERgz549kEgk6NWrl3Jf17FjR5U2Dx8+jNatWz91375x40asXr0agwYNwksvvYT09HTs2LEDL7/8Mg4cOABjY2MUFRVh6tSpKCoqQkBAAJo2bYqkpCScOnUK2dnZVbrdv+z7qVAoEBsbi6+++gqmpqbo3bu3cp3U1FSMHz8e+fn5mDRpEszMzLB//37MmDFDmXR5XoIgYObMmbh06RLGjx+PVq1a4ejRo5g/f36V27h06RL+/vtvTJw4EU2aNMH27dvxxhtv4OTJkzAzM3vuGIkaIx5H8DiCxxE186zYy3z00UfYv38/Ro0ahUmTJiEuLg47d+7EzZs3sWv
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABiYAAAHpCAYAAAAGQYQ4AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4FNXbxvF704BACCSB0DsJNQJSpQmoIEWBn1KkSJOOFJEO0iMISIdQpEgTpStNqSodadJEqvQUSgKBhGTfP3hZWRIgicnOJnw/1zWX7syZmWcedodhnz3nmMxms1kAAAAAAAAAAAA24GB0AAAAAAAAAAAA4NVBYQIAAAAAAAAAANgMhQkAAAAAAAAAAGAzFCYAAAAAAAAAAIDNUJgAAAAAAAAAAAA2Q2ECAAAAAAAAAADYDIUJAAAAAAAAAABgMxQmAAAAAAAAAACAzVCYAAAAAAAAAAAANkNhAgAAwE5Ur15d/fr1MzoMIFav4vtz5cqV8vX11eXLl40OBQAAAEhRnIwOAAAAICldunRJc+bM0e+//66bN2/K2dlZPj4+evfdd9W4cWOlTp3a6BBTnBYtWmjfvn2xbsubN682btxo44jsU3h4uObMmaOyZcuqXLlyhsVhD58Re8mFvVu3bp2Cg4PVqlUro0MBAAAA/hMKEwAAIMXavn27unfvLhcXF73//vvy8fFRZGSkDh48qK+++kp///23RowYYXSYFhs3bpTJZDI6jESRJUsW9erVK8Z6Nzc3A6KxT+Hh4Zo6daq6du1q2Jfx9vIZsYdcxOb9999XnTp15OLiYnQokqQff/xRZ86coTABAACAZI/CBAAASJH++ecf9ezZU9myZdOCBQuUOXNmy7ZmzZrp4sWL2r59+38+j9ls1sOHDxPlV+X28uVnYnBzc9P7779vdBjPFR0drcjISKVKlcroUAxjq8+Ike7fvy9XV9cE7+/o6ChHR8dEjMg+hYeHK02aNEaHAQAAgFcIc0wAAIAUac6cObp//75GjRpl9YXrE7lz59bHH39seb1ixQq1bNlSFSpUULFixVS7dm0tWbIkxn7Vq1dXhw4d9Ouvv6phw4by8/PTsmXLtHfvXvn6+mr9+vWaOnWqKleurJIlS+rTTz9VaGioIiIiNGrUKFWoUEElS5ZU//79FREREePYz47hf+rUKTVv3lx+fn6qUqWKpk+frhUrVsQY9/5JXAcOHNAHH3yg4sWLq0aNGlq9erXV8W7fvq0xY8aoXr16KlmypEqVKqV27drp1KlTMa714cOHmjJlimrWrKnixYurUqVK6tq1qy5duhSnP4OXmTJlinx9fXX+/Hn17t1br7/+usqXL6+JEyfKbDbr2rVr6tSpk0qVKqWKFSvqm2++iXGMiIgITZ48WW+//baKFSumqlWrauzYsTFy6+vrq+HDh2vt2rWqU6eOihcvrl9//VVS3HMsSTt27NBHH32kEiVKqGTJkmrfvr3OnDlj1aZfv34qWbKkbty4oc6dO6tkyZIqX768xowZo6ioKEnS5cuXVaFCBUnS1KlT5evrK19fX02ZMkWSFBgYqP79+6tKlSoqVqyYKlWqpE6dOiXqXAfx/Yw868mf37Nim5fh2LFjatu2rcqVKyc/Pz9Vr15d/fv3l/TyXEjS2bNn9emnn6ps2bIqXry4GjZsqC1btsR63n379mno0KGqUKGCqlat+sIcfPvtt6pTp45ee+01lSlTRg0bNtS6deteeC3R0dGaMmWKKlWqpNdee00tWrTQ33//HePz+2TfgwcPyt/fX+XLl1eJEiXUpUsXhYSEWMXxyy+/qH379qpUqZKKFSumt956S9OmTbO8X6THQ6Rt375dV65cseSoevXqz41TkuW+tHfvXqvj1K1bV3/++aeaNWum1157TRMmTJAU98/T77//rqZNm6p06dIqWbKkatasaTkGAAAAEBf0mAAAACnStm3blDNnTpUqVSpO7ZcuXaqCBQuqevXqcnJy0rZt2zRs2DCZzWY1a9bMqu358+f12WefqXHjxmrUqJHy5s1r2TZr1iylTp1a7du318WLF7Vo0SI5OTnJZDLp7t276tq1q44cOaKVK1cqe/bs6tq163NjunHjhuWL4fbt28vV1VXff//9c3tWXLx4Ud27d9cHH3ygBg0aaMWKFerXr5+KFi2qggULSnr8K/lffvlFtWrVUo4cORQUFKTvvvtOzZs3108//SRvb29JUlRUlDp06KDdu3erTp06atmype7du6fff/9df/31l3LlyvXCfEZFRcX48lWSUqdOHeMX7D179lT+/Pn12WefaceOHZoxY4YyZMigZcuWqXz58urdu7fWrVunMWPGqHjx4ipTpoykx18Qd+rUSQcPHlSjRo2UP39+/fXXX1qwYIEuXLig6dOnW51nz5492rBhg5o1a6aMGTMqe/bs8crx6tWr1a9fP1WqVEm9e/dWeHi4li5dqo8++kirVq1Sjhw5rK6/bdu28vPzU58+fbR792598803ypkzpz766CN5eHho6NChGjp0qN5++229/fbbkmT5or9bt276+++/1bx5c2XPnl0hISH6/fffde3aNavz/Bfx/YwkVHBwsNq2bauMGTOqffv2Sp8+vS5fvqyff/5Zkl6aizNnzqhp06by9vbWJ598IldXV23YsEFdunTRlClTLO2fGDZsmDw8PNSlSxfdv3//uXEtX75cI0eOVM2aNdWyZUs9fPhQp0+f1pEjR1SvXr3n7jd+/HjNmTNH1apVU+XKlXXq1Cm1bdtWDx8+jLX9yJEjlT59enXt2lVXrlzRggULNHz4cE2cONHSZtWqVXJ1dVXr1q3l6uqqPXv2aPLkyQoLC1Pfvn0lSR07dlRoaKiuX79uKeqkTZv2JdmP3e3bt/XJJ5+oTp06eu+99+Tp6Rnnz9OZM2fUoUMH+fr66tNPP5WLi4suXryoP/74I0GxAAAA4BVlBgAASGFCQ0PNPj4+5k6dOsV5n/Dw8Bjr2rRpY65Ro4bVumrVqpl9fHzMO3futFq/Z88es4+Pj7lu3brmiIgIy/pevXqZfX19ze3atbNq37hxY3O1atViHLtv376W1yNGjDD7+vqaT5w4YVl369Ytc9myZc0+Pj7mf/75J0Zc+/fvt6wLDg42FytWzPzll19a1j18+NAcFRVldd5//vnHXKxYMfPUqVMt63744Qezj4+Ped68eTHyEh0dHWPd05o3b2728fGJdRk8eLCl3eTJk2Ose/TokblKlSpmX19fc0BAgGX9nTt3zH5+flb5Wb16tblQoUJW12w2m81Lly41+/j4mA8ePGhZ5+PjYy5UqJD5zJkzVm3jmuOwsDBz6dKlzYMGDbLaPzAw0Pz6669bre/bt6/Zx8fHKp9ms9lcv359c4MGDSyvg4ODzT4+PubJkydbtbtz547Zx8fHPGfOnGdTm2gS8hl59v355M/vWStWrLDK3c8//2z28fExHz169LnHfl4uzGaz+eOPPzbXrVvX/PDhQ8u66Ohoc+PGjc3vvPNOjPM2bdrU/OjRo5deT6dOncx16tR5YZtnryUwMNBcpEgRc+fOna3aTZkyxezj42OVnyf7tmrVyuozM3r0aHPhwoXNd+/etayL7f4zePBg82uvvWZ13e3bt49x34gtziee3Jf27NljWffk87l06VKrtnH9PM2bN8/s4+NjDg4OjhEHAAAAEFcM5QQAAFKcsLAwSfH7NfHTc0SEhoYqJCREZcuW1T///KPQ0FCrtjly5FDlypVjPc77778vZ2dny2s/Pz+ZzWb973//s2rn5+ena9eu6dGjR8+N6ddff1WJEiVUuHBhy7oMGTI899fcBQoUUOnSpS2vPTw8lDdvXv3zzz+WdS4uLnJwePwIGBUVpVu3bsnV1VV58+bViRMnLO02b96sjBkzqnnz5jHOE5cJurNnz6558+bFWGIbGuiDDz6w/L+jo6OKFSsms9lstT59+vQxrmXjxo3Knz+/8uXLp5CQEMtSvnx5SbIavkaSypQpowIFCliti2uOd+3apbt376pOnTpW53JwcNBrr70W41yS1LRpU6v
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAHqCAYAAAD4TK2HAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA96FJREFUeJzs3Xd8VFXawPHf9Jn03gs1oQUSQKSjKNJsYEEFXFcUdde+voquBSv2ztpX0bWLKCioYMFGEaT3Ggjpvcxk6n3/GDMwZAIJpE14vvvhs+acO3OfOdOeOfcUlaIoCkIIIYQQQvgZdVsHIIQQQgghxImQRFYIIYQQQvglSWSFEEIIIYRfkkRWCCGEEEL4JUlkhRBCCCGEX5JEVgghhBBC+CVJZIUQQgghhF+SRFYIIYQQQvglSWSFEEIIIYRfkkRWtIjRo0cza9astg5DiFNKeno6L730Uquf96WXXiI9Pb3Vz1snLy+PjIwM1q5d22YxtBc5OTmkp6fz+eefN/m2n3/+Oenp6eTk5LRAZMd2MnGL5vfzzz+TlZVFaWlpW4dyXJLI+pEDBw5w//33c9ZZZ5GRkUH//v257LLLmDdvHrW1tW0dXoc0ffp00tPTff4bN25cW4fXblgsFl566SVWrVrVJuev+wKu+5eRkcHYsWN56KGHKC4urnd8cXExTzzxBOPGjaNfv35kZmYyefJk/vOf/1BZWenzHBdffDHp6el88MEHLf1w2qW2fo6PZe7cufTr148BAwa0dSiiDVVWVnLfffcxePBgMjMzmT59Olu2bGn07f/3v/8xfvx4+vTpw4gRI5gzZw5ms7necdnZ2dx8882cdtpp9OvXj8svv5yVK1eedPyffvop48ePJyMjg3POOYf33nuv0be12Ww89dRTDB8+nL59+3LJJZfw22+/1Tvu119/5Z577uHcc8+lZ8+ejB492uf9jRw5kpSUFF577bUTfjytRdvWAYjG+emnn7jlllvQ6/VccMEFpKWlYbfbWbt2LU899RS7d+/m4YcfbuswPb755htUKlVbh9Es4uLiuP322+uVBwcHt0E07ZPFYuHll1/mxhtv5PTTT2+zOG6++WaSkpKw2WysXbuWDz/8kOXLl/PVV19hMpkA2LhxIzNnzsRsNnP++efTu3dvADZv3swbb7zBmjVr+O9//+t1v/v372fTpk0kJiayaNEirrjiilZ/bI2xceNGNBpNi9z3sZ7jG264gZkzZ7bIeY+ntLSUL774gscff7xNzt+RXHDBBUycOBG9Xt/WoTSZy+Vi5syZ7NixgxkzZhAeHs4HH3zA9OnT+fzzz+nUqdMxb//UU0/x5ptvMnbsWK688kr27NnD//73P3bv3s1bb73lOS4vL48pU6ag0WiYMWMGJpOJzz//nBkzZvDOO+9w2mmnnVD8H330EQ888ABjx47l73//O2vWrOGRRx7BYrE06r01a9Ysvv32W6688ko6derEggULmDlzJvPmzWPgwIGe47766isWL15Mr169iImJOeZ9TpkyhSeffJKbbrqJoKCgE3pcrUIR7d6BAweUzMxMZdy4cUpBQUG9+v379yvvvPPOSZ/H5XIpFovlpO+nI5k2bZoyceLEtg7jmJxOp1JbW9umMZSUlChpaWnKiy++2Cbnnz9/vpKWlqZs3LjRq3zOnDlKWlqasmjRIkVRFKWiokIZMWKEMnToUGX37t317qeoqEiZO3duvfIXXnhBGTJkiPLtt98q6enpysGDB1vmgRzFbDa3ynkao62f44a8/fbbSt++fZXq6upWP3d7en7qHDx4UElLS1Pmz5/f1qE0ycnG/fXXXytpaWnKkiVLPGUlJSXKwIEDldtvv/2Yty0oKFB69eql/N///Z9X+XvvvaekpaUp33//vads9uzZSq9evZQ9e/Z4ysxmszJq1Chl0qRJJxS7xWJRBg0apMycOdOr/F//+peSmZmplJeXH/P2GzZsUNLS0pQ333zTU1ZbW6ucffbZypQpU7yOzc/PV2w2m6IoijJz5kzlzDPPbPB+i4uLlZ49eyqffvppUx9Sq5KhBX7gzTffxGw28+ijj/r8BZWamsrf/vY3z9/z58/nyiuvZMiQIfTp04cJEyb4vBw6evRorrvuOn755RcmT55M3759+eijj1i1ahXp6eksXryYl19+mREjRpCVlcXNN99MVVUVNpuNRx99lCFDhpCVlcXdd9+NzWard99Hj5Hdvn0706ZNo2/fvowcOZL//Oc/zJ8/v96YrLq41qxZw8UXX0xGRgZnnXUWX3zxhdf9lZeX88QTT3DeeeeRlZVF//79ueaaa9i+fXu9x2q1WnnppZcYO3YsGRkZDB8+nBtvvJEDBw406jk4nroxgvv27eOOO+5gwIABDB48mOeffx5FUcjLy+OGG26gf//+DBs2rF6PH7gvDb344ouMGTOGPn36MGrUKJ588sl6bZuens5DDz3EwoULmThxIhkZGfzyyy9A49sYYPny5VxxxRVkZmaSlZXFzJkz2bVrl9cxs2bNIisri4KCAv7xj3+QlZXF4MGDeeKJJ3A6nYB7bNuQIUMAePnllz2X9+vGahYVFXH33XczcuRI+vTpw/Dhw7nhhhtaZRze4MGDPTGCu9ejoKCAWbNm0bVr13rHR0VF8Y9//KNe+VdffcXYsWM544wzCA4O5quvvmrU+Y98Lz377LMMGzaMzMxMrr/+evLy8ryOnT59Oueeey6bN29m6tSp9OvXj2effRaAkpIS7rnnHoYOHUpGRgbnn38+CxYsqHc+X2NkCwoKuPvuuxk6dCh9+vRh4sSJfPbZZ/Vue6z3yPGeY19jZB0OB3PnzuXss8+mT58+jB49mmeffdbnZ0Vj3u8NWbZsGX379iUwMNBT9tBDD5GVlYXFYql3/O23386wYcM8r99ly5Yxc+ZMhg8fTp8+fTj77LOZO3eup77OsZ6fhuzZs4ebb76ZQYMGkZGRweTJk/n+++899SUlJQwePJjp06ejKIqnPDs7m8zMTG699Vaf57/sssvo27cvo0eP5sMPPzxuG23fvp1Zs2Z5hqUNGzaMu+++m7KyMq/jfI2RbcrzU1lZyaOPPsqoUaPo06cPY8aM4fXXX8flctU7btasWQwYMICBAwdy1113UVVVVe/+7HY7e/bsobCw8LiP8dtvvyUqKopzzjnHUxYREcH48eP5/vvv673ujrR+/XocDgcTJ070Kp8wYQIAX3/9tadszZo19OzZky5dunjKTCYTo0ePZsuWLezfv/+4sR5t1apVlJeX17vSM3XqVMxmMz/99NMxb//NN9+g0WiYMmWKp8xgMHDxxRezbt06r8+a2NhYdDpdo+KKjIwkPT3d6zXbHsnQAj/w448/kpycTP/+/Rt1/Icffkj37t0ZPXo0Wq2WH3/8kQcffBBFUZg6darXsfv27eNf//oXU6ZM4dJLL6Vz586eutdffx2j0cjMmTPJzs7mf//7H1qtFpVKRWVlJTfeeCMbNmzg888/JzExkRtvvLHBmAoKCjzJ9syZMwkICODTTz9t8BJWdnY2t9xyCxdffDGTJk1i/vz5zJo1i969e9O9e3cADh48yLJlyxg3bhxJSUkUFxfz8ccfM23aNL7++mtiY2MBcDqdXHfddaxYsYKJEydy5ZVXUlNTw2+//cbOnTtJSUk5Zns6nU6fA96NRiMBAQFeZbfddhtdu3blX//6F8uXL+eVV14hLCyMjz76iMGDB3PHHXewaNEinnjiCTIyMjyXoVwuFzfccANr167l0ksvpWvXruzcuZN58+axf/9+/vOf/3idZ+XKlSxZsoSpU6cSHh5OYmJik9r4iy++YNasWQwfPpw77rgDi8XChx9+yBVXXMGCBQtISkryevwzZsygb9++3HnnnaxYsYL//ve/JCcnc8UVVxAREcHs2bOZPXs2Y8aMYcyYMQCexOamm25i9+7dTJs2jcTEREpLS/ntt9/Iy8vzOk9LqPuhEhYWBsAPP/yA0Whk7Nixjb6PDRs2kJ2dzWOPPYZer2fMmDEsWrSI66+/vtH38corr6BSqbj22mspKSlh3rx
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAGGCAYAAACNCg6xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPrNJREFUeJzt3XlUVPX/x/EXjKCYiIpoufVVlFEDBNySMMrUFjITM3PPSFNzqTT33HMp+37VNDU0cjdL7atllrZ9LbHUA6KF5r5kKeAOKDjM7w8P82sC7TKiM8jzcY7nOJ/7uXfe93oHXn7u595xs1qtVgEAAOAfuTu7AAAAgKKC4AQAAGAQwQkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHACAAAwiOAE3EYtWrTQ8OHDnV0GkK/ieH6uWbNGZrNZJ06ccHYpKCJKOLsA4GYdO3ZMCxYs0I8//qjTp0/Lw8NDAQEBevzxx9WxY0eVKlXK2SXecbp166aff/4532U1a9bUxo0bb3NFrikzM1MLFixQkyZN1LRpU6fV4QqfEVc5FsDNIjihSPvuu+80aNAgeXp6qm3btgoICFB2drZ27typt99+WwcOHNDEiROdXabNxo0b5ebm5uwyCsXdd9+t1157LU+7t7e3E6pxTZmZmZo9e7b69+/vtLDgKp8RVzgW+Wnbtq2ioqLk6enp7FJQRBCcUGQdP35cr776qqpUqaJFixapUqVKtmVdunTR0aNH9d133930+1itVl25cqVQ/ld+J/1w9vb2Vtu2bZ1dxnXl5OQoOztbJUuWdHYpTnO7PiPOlJGRodKlSzu8vslkkslkKsSKcKdjjhOKrAULFigjI0Nvvvmm3S+EXPfee6969Ohhe7169Wp1795dzZo1U2BgoJ544gktX748z3otWrTQSy+9pC1btig6OlrBwcFauXKlfvrpJ5nNZm3YsEGzZ89W8+bNFRoaqoEDB+rixYvKysrSm2++qWbNmik0NFQjRoxQVlZWnm3/fQ7J3r171bVrVwUHB+vBBx/Ue++9p9WrV+eZd5Fb144dO/TMM88oKChIjzzyiD799FO77Z07d07Tpk1TmzZtFBoaqrCwML344ovau3dvnn29cuWK3n33XT366KMKCgpSRESE+vfvr2PHjhn6N/gn7777rsxmsw4fPqwhQ4aoYcOGuv/++zVjxgxZrVb98ccf6tu3r8LCwvTAAw/ogw8+yLONrKwszZo1S61atVJgYKAiIyP11ltv5Tm2ZrNZEyZM0Lp16xQVFaWgoCBt2bJFkvFjLEnff/+9OnfurJCQEIWGhqp3797av3+/XZ/hw4crNDRUp06dUr9+/RQaGqr7779f06ZNk8VikSSdOHFCzZo1kyTNnj1bZrNZZrNZ7777riQpJSVFI0aM0IMPPqjAwEBFRESob9++hTrXpqCfkb/L/ff7u/zmBe3evVsxMTFq2rSpgoOD1aJFC40YMULSPx8LSTp48KAGDhyoJk2aKCgoSNHR0fr666/zfd+ff/5Z48aNU7NmzRQZGXnDY7BkyRJFRUWpQYMGaty4saKjo7V+/frr7kvuPuf356+f3ZycHH344Ye2cy08PFxjxozR+fPn7d7/RscFRRMjTiiyvv32W1WvXl1hYWGG+q9YsUJ16tRRixYtVKJECX377bcaP368rFarunTpYtf38OHDGjx4sDp27Khnn31WNWvWtC17//33VapUKfXu3VtHjx7V0qVLVaJECbm5uenChQvq37+/du3apTVr1qhq1arq37//dWs6deqU7RdX7969Vbp0aX388cfXHZk6evSoBg0apGeeeUbt2rXT6tWrNXz4cN13332qU6eOpGujDJs3b9Zjjz2matWqKTU1VR999JG6du2qzz//XJUrV5YkWSwWvfTSS4qPj1dUVJS6d++u9PR0/fjjj/rtt99Uo0aNGx5Pi8WiM2fO5GkvVapUnhGAV199Vf7+/ho8eLC+//57zZ07V+XKldPKlSt1//33a8iQIVq/fr2mTZumoKAgNW7cWNK1X059+/bVzp079eyzz8rf31+//fabFi1apCNHjui9996ze59t27bpiy++UJcuXVS+fHlVrVq1QMf4008/1fDhwxUREaEhQ4YoMzNTK1asUOfOnbV27VpVq1bNbv9jYmIUHBysoUOHKj4+Xh988IGqV6+uzp07q0KFCho3bpzGjRunVq1aqVWrVpJkCyIDBgzQgQMH1LVrV1WtWlVnzpzRjz/+qD/++MPufW5GQT8jjkpLS1NMTIzKly+v3r17q2zZsjpx4oQ2bdokSf94LPbv369OnTqpcuXK6tWrl0qXLq0vvvhCL7/8st59911b/1zjx49XhQoV9PLLLysjI+O6da1atUqTJk3So48+qu7du+vKlSvat2+fdu3apTZt2uS7TqtWrfKc+7/88osWLVqkChUq2NrGjBmjtWvXKjo6Wt26ddOJEye0bNky/frrr1qxYoU8PDz+8bigiLICRdDFixetAQEB1r59+xpeJzMzM0/bCy+8YH3kkUfs2h5++GFrQECA9X//+59d+7Zt26wBAQHWJ5980pqVlWVrf+2116xms9n64osv2vXv2LGj9eGHH86z7WHDhtleT5w40Wo2m62//vqrre3s2bPWJk2aWAMCAqzHjx/PU9f27dttbWlpadbAwEDr1KlTbW1XrlyxWiwWu/c9fvy4NTAw0Dp79mxb2yeffGINCAiwxsXF5TkuOTk5edr+qmvXrtaAgIB8/7zxxhu2frNmzcrTdvXqVeuDDz5oNZvN1vnz59vaz58/bw0ODrY7Pp9++qm1bt26dvtstVqtK1assAYEBFh37txpawsICLDWrVvXun//fru+Ro/xpUuXrI0aNbKOHj3abv2UlBRrw4YN7dqHDRtmDQgIsDueVqvV+vTTT1vbtWtne52WlmYNCAiwzpo1y67f+fPnrQEBAdYFCxb8/dAWGkc+I38/P3P//f5u9erVdsdu06ZN1oCAAGtSUtJ1t329Y2G1Wq09evSwPvnkk9YrV67Y2nJycqwdO3a0tm7dOs/7durUyXr16tV/3J++fftao6Kibtjn7/uSX90PPfSQ9cknn7Smp6dbrVardfv27daAgADrunXr7Pr+73//s2s3clxQ9HCpDkXSpUuXJEl33XWX4XX+Okfp4sWLOnPmjJo0aaLjx4/r4sWLdn2rVaum5s2b57udtm3bysPDw/Y6ODhYVqtV7du3t+sXHBysP/74Q1evXr1uTVu2bFFISIjq1atnaytXrtx1/zdcu3ZtNWrUyPa6QoUKqlmzpo4fP25r8/T0lLv7tY+2xWLR2bNnVbp0adWsWVO//vqrrd9XX32l8uXLq2vXrnnex8gE9qpVqyouLi7Pn/wu/TzzzDO2v5tMJgUGBspqtdq1ly1bNs++bNy4Uf7+/qpVq5bOnDlj+3P//fdLkn766Se792ncuLFq165t12b0GG/dulUXLlxQVFSU3Xu5u7urQYMGed5Lkjp16mT3umHDhoYutZUqVUoeHh76+eef81zaKSyOfEYclXtDwHfffafs7OwCrXvu3Dlt27ZNjz/+uC5dumQ77mfPnlVERISOHDmiU6dO2a3z7LPPGpqXVLZsWf35559KSkoqUE25LBaLBg8erPT0dM2ZM8c2krpx40Z5e3vrgQcesDtX7rvvPpUuXdp2rtzMcYHr4lIdiqQyZcpIktLT0w2vs3PnTr377rtKTExUZmam3bKLFy/a3Q12o0slVapUsXudu94999yTpz0nJ0cXL15U+fLl893W77//rpCQkDzt17tM9vf3kCQfHx+7X745OTlavHixli9frhMnTtjm3EjXAkOuY8eOqWbNmipRwrEfA6VLl1Z4eLihvvkds5IlS9pd+shtP3funO310aNHdfDgQdv8mL9LS0uze53fv5vRY3zkyBFJuu6cn9xzLld+9f/93+J6PD09NWTIEE2bNk0PPPCAGjRooIceekhPP/20/Pz8rrve5cuX84T86/V35DPiqCZNmujRRx/V7Nmz9eGHH6pJkyZq2bKl2rR
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Emergents ===\n",
"Clients exploitables : 1724\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 1513\n",
"1 1 117\n",
"2 2 94\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Court Terme\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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jBkzhttvv92upfJ01dXVvP322yQmJnL//fejUqnqbXPRRRfRr18/2+P09HTuvPNOhg0bRv/+/Zk9ezYbNmywe84XX3xR75wB2+u+efNmW9m8efOYMWMGe/bs4aqrrqJ///688MILTJw4kUOHDvHnn3+SnJxMcnIy8+bNa/BcmmLnzp3Mnz+fwYMH079/f+bOncvWrVvttqnrV3n48GHuvfdehg4dypVXXgmcvG6bN2+2vZ9mzpxpO5/vvvuOmTNnkpKSwqxZs9i3b1+9GI4cOWJ7/eq2++GHH87qvJoqLCyMxMREW5eDllx/wHarb8qUKUybNo3vvvsOo9HYpBhOvd6XX345/fr1Y+LEiSxdutRuu7r3ypo1a3jxxRcZO3Ys/fv3p6KiAoC1a9farsHw4cO57777yM3NtdtHQ31kv/rqK9tzhw0bxt///neys7Prbbdz505uvPFGhg4dyoABA5g5cyYfffQRUNta9sknnwDY3p+nHstRH9l9+/Zxww03MGjQIAYOHMg111zDjh077Lap++xs3bqVJ598khEjRjBgwAD+9re/UVRUdMbXd+vWrRQXF9u1kBcUFNC7d29effXVetsfPXqU5ORklixZAjT9O+dM18cRq9XKhx9+yPTp00lJSWHUqFE8+OCDlJaW2rZZvHgxPXv2ZNOmTXbP/fe//03fvn1tcZz6Hf7CCy8wevRoBgwYwC233OLwWp7uvffe4/LLL2f48OH069ePWbNmsW7dunrbnf4939zrs3HjRq688koGDBjAwIEDuemmmzh06FC97b7//ntmzJhBSkoKM2bMYP369Q7jzsvL48iRI9TU1DR6focPH+bw4cPMnj3b7q7AlVdeiaIoZ2ytr7uOISEhduV1t9TPdJcjJiYGqO0e0BLffvstoaGhTJ482VYWHBzM1KlT+eGHH+r9PT7dd999xznnnEN0dLStbNSoUSQkJLB27VpbWXPPc9SoUWRmZrJ///4WnVd7kz6y7einn34iLi6uybevly5dSo8ePZg4cSIeHh789NNPLFq0CEVRuOqqq+y2PXbsGPfeey9z5sxh9uzZdO3a1Vb39ttvo9PpuOmmmzhx4gRLlizBw8MDlUpFWVkZt99+Ozt37uSLL74gJiaG22+/vcGYcnNzbcn2TTfdhLe3t90tjNOdOHGCu+66i0svvZSLL76YFStW2Pr/9OjRA6hNGr///numTJlCbGwsBQUFLFu2jLlz57JmzRrbLRuLxcLNN9/Mpk2bmD59OldffTWVlZX89ttvHDx4kPj4eIcxbN26lZKSEq6++mo0Gs0ZX/eCggIuv/xyqqqqmDdvHkFBQaxcuZJbb72VxYsXO+x72RQlJSXceOONTJ8+nQsuuICQkBCGDx/Oo48+ire3N7fccgsAoaGhLdo/wKZNm7jxxhvp27cvt99+OyqVii+++IJrrrmGTz/9tF6ydtddd9GlSxf+/ve/o5zSy+jEiRPce++9XH755VxwwQW8//773HLLLSxatIgXX3zRdsv+7bff5u6772bdunW2W1OHDh3iiiuuICIightvvBFvb2/Wrl3L3/72N1555ZUWv35NVVNTQ05ODoGBgUDzr3+d1atXM3z4cMLCwpg+fTrPP/88P/74I1OnTm3S80tLS7npppuYOnUq06dPZ+3atTz88MN
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAGGCAYAAACNCg6xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAP5ZJREFUeJzt3Xl8TPf+x/F3MhKSIkhC7VVpxpLIYmsiqrRoa2lRotfSupaqBkWtv14EtdRStbRUVam9DUq1WnVLaWNprzTRElytWNpmQYWExGR+f3iYa0Q4WZiI1/PxyOPhfM/3nPmcmZPxzvd854yT1Wq1CgAAALfl7OgCAAAA7hUEJwAAAIMITgAAAAYRnAAAAAwiOAEAABhEcAIAADCI4AQAAGAQwQkAAMAgghMAAIBBBCegALRo0UKjRo1ydBlAvq1bt05ms1knT550dCl3Fb/DMKqYowsAcpKQkKAPPvhA33//vRITE+Xi4iJfX189/fTTCg8PV4kSJRxdYpG1detWrVmzRnFxcbp48aLKlCmj+vXrq2vXrgoJCXFITStWrJCbm5s6dux4y36jRo3S+vXrb7u/Dh06aOrUqQVVXqFnsVi0YcMGbdiwQfHx8UpLS1P58uXVuHFj/eMf/5C/v/9dqWPHjh2KjY3VwIED78rjAQXNie+qQ2G0fft2DR48WK6urnr22Wfl6+urzMxM/fTTT/r666/VoUMHTZw40dFl2mRkZMjJyUkuLi6OLiVfrFarxowZo3Xr1qlOnTpq3bq1vLy8lJSUpK1bt+qXX37RqlWrFBwcfNdra9u2rcqWLauPP/74lv3279+vhIQE2/LJkyc1Z84chYeHq379+rb2atWqKSgo6I7VW5hcunRJERER2rlzpxo2bKjmzZvLw8NDp06d0pdffqnff/9d27dv14MPPqh169Zp9OjR2rZtm6pUqVLgtUyYMEErVqxQfHx8ge87P4rK7zDuPEacUOicOHFCQ4YMUaVKlbR06VKVL1/etq5bt246fvy4tm/fnu/HsVqtunz5coGMXLm6uuZ7H4XBhx9+qHXr1unFF1/U6NGj5eTkZFv3yiuvaMOGDSpW7O6+baSnp8vNzc1w/6CgILtAFBcXpzlz5igwMFDPPvtsvutJS0uTu7t7vvdzN7311lvauXOnRo8erZdeesluXUREhD766COH1FVQCuJ3uaj8DuPOY44TCp0PPvhAaWlpevPNN+1C0zXVq1fXiy++aFuOiopSz549FRISIj8/Pz3zzDNauXJltu1atGihl19+WTt37lTHjh1Vr149rV69Wnv27JHZbNYXX3yhefPmqWnTpgoKCtKgQYOUmpqqjIwMvfnmmwoJCVFQUJBGjx6tjIyMbPu+cX7EoUOH1L17d9WrV0+PPfaY3n33XUVFRWWbP3Ktrh9//FHPP/+8/P399cQTT2jDhg12+zt37pymTZumdu3aKSgoSMHBwerTp48OHTqU7VgvX76suXPnqnXr1vL391dYWJgiIiLsRmJudOnSJb3//vt6+OGHNXLkSLvQdM1zzz2nevXq2ZZPnDihQYMGqVGjRgoICFCXLl2yhdqc5sxce9737Nlja+vRo4fatm2rAwcOqFu3bgoICNCsWbPUokULHTlyRHv37pXZbJbZbFaPHj1yPBYjfv75Z/Xu3Vv169dXQECAunfvrp9++smuz9y5c2U2m3X06FENGzZMDRs21D/+8Q9J/3vd9uzZYzuf2rVrZzuer7/+Wu3atZO/v786duyoX3/9NVsN//3vf23P37V+27Zty9dx3ejPP//UmjVr1KRJk2yhSZJMJpN69+6tBx98MMd9mM1mzZ07N1v7jed9Zmam5s2bp1atWsnf31+NGzfWCy+8oO+//17S1cuoK1assO3z2s81WVlZ+uijj9SmTRv5+/srNDRUY8eO1d9//53tcW/2u5yT33//XQMHDlSTJk3k7++vxx57TEOGDFFqamqOx3J9fTf+XH8uG3kNb/e84N7CiBMKnW+//VZVq1Y1fDlo1apVeuSRR9SiRQsVK1ZM3377rSIjI2W1WtWtWze7vr/99puGDRum8PBwdenSRTVq1LCte//991WiRAn169dPx48f1/Lly1WsWDE5OTnp/PnzioiI0M8//6x169apcuXKioiIyLGmv/76yxbu+vXrJ3d3d33yySc5/lV7/PhxDR48WM8//7w6dOigqKgojRo1SnXr1tUjjzwi6WpI+eabb/TUU0+pSpUqSk5O1po1a9S9e3dt3rxZFSpUkHR1LsvLL7+s6OhotWnTRj179tTFixf1/fff6/Dhw6pWrdpNa/jpp5907tw59ezZUyaT6bbPe3Jysrp27ar09HT16NFDZcuW1fr16/XKK69ozpw5atmy5W33cTPnzp1T37591aZNG7Vv316enp5q3LixJk6cKHd3d/Xv31+S5OXllaf9S1J0dLT69u0rPz8/RUREyMnJyTbStnLlSrtwKEmDBw9W9erVNWTIEF0/u+H48eMaNmyYunbtqvbt2+vDDz9U//79FRkZqbffflsvvPCCpKvn1muvvaYtW7bI2fnq36tHjhzRCy+8oAoVKqhv375yd3fXl19+qVdffVVz587N8/N3o++++05XrlxR+/btC2R/tzJv3jwtXLhQnTt3Vr169XThwgUdOHBAv/zyi5o0aaLw8HAlJibq+++/11tvvZVt+7Fjx2r9+vXq2LGjevTooZMnT2rFihX69ddftWrVKrvLaLf6Xb5eRkaGevfurYyMDHXv3l1eXl7666+/tH37dp0/f16lSpW66XY3q++dd95RSkqKbcTR6Gt4u+cF9xgrUIikpqZafX19ra+88orhbdLT07O1/fOf/7Q+8cQTdm3Nmze3+vr6Wr/77ju79t27d1t9fX2tbdu2tWZkZNjahw4dajWbzdY+ffrY9Q8PD7c2b948275HjhxpW544caLVbDZbf/31V1vb2bNnrY0aNbL6+vpaT5w4ka2uffv22dpSUlKsfn5+1qlTp9raLl++bLVYLHaPe+LECaufn5913rx5trZPP/3U6uvra12yZEm25yUrKytb2zVLly61+vr6Wrdu3Zpjn+u9+eab2eq+cOGCtUWLFtbmzZvbao2Kisp2zFbr/5733bt329q6d+9u9fX1ta5atSrb47Vp08bavXt3Q7VdLzY21urr62uNioqyWq1Xn4NWrVpZ//nPf9o9H+np6dYWLVpYe/XqZWubM2eO1dfX1zp06NBs+732uv3nP/+xte3cudPq6+trrVevnvXUqVO29tWrV2c71hdffNHatm1b6+XLl21tWVlZ1vDwcGurVq1yfZw5mTx5stXX19fuXLyVm71evr6+1jlz5mTre+N53759e2u/fv1uuf/IyEirr69vtvZ9+/ZZfX19rRs3brRr/+6777K15/S7fDO//vqr1dfX1/rll1/est+Nx3KjRYsWWX19fa3r16+3tRl9DY08L7h3cKkOhcqFCxckSQ888IDhba6f15CamqozZ86oUaNGOnHihN1QvCRVqVJFTZs2vel+nn32Wbu/aOvVqyer1apOnTrZ9atXr57++OMPXblyJceadu7cqcDAQNWuXdvWVqZMGbVr1+6m/X18fNSgQQPbcrly5VSjRg2dOHHC1ubq6mobrbBYLDp79qzc3d1Vo0YNu8tAX3/9tcqWLavu3btne5ybXX67JrfP/Y4dO1SvXj27uh944AGFh4fr1KlTOnr0qKH93MjV1fW2n5zLj4MHD+r3339Xu3btdPbsWZ05c0ZnzpxRWlqaQkJCtG/fPmVlZdlt07Vr15vuy8fHx24+VUBAgCTp0UcfVaVKlbK1X3s9z507p927d+vpp5/WhQsXbDWcPXtWYWFh+v333/XXX38VyPHm5Xcqr0qXLq0jR47o999/z/W2W7ZsUalSpdSkSRPb83HmzBnVrVtX7u7udpd0pVv/Ll+vZMmSkqRdu3YpPT0913VJ0u7duzVr1iz16NFDzz33nKTcvYb5eV5Q+HCpDoXKtTe5ixcvGt7mp59+0ty5cxUTE5PtjTE1NdVuKP5WnxK6/j86Sbb
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVD1JREFUeJzt3XdYVvX/x/HXzS0IuAU1s9yBAxQcmH4tZ2qO3Cup3NvK7KvYUnPlqoRym+bIFWqaZmbTCi1Nw8ytKW4RNyB4c//+8Mf97ZYh63ALPh/X1XV5n/E573M4nHjd53M+x2S1Wq0CAAAAAABZzsnRBQAAAAAAkFsRugEAAAAAMAihGwAAAAAAgxC6AQAAAAAwCKEbAAAAAACDELoBAAAAADAIoRsAAAAAAIMQugEAAAAAMAihGwAAAAAAgxC6AeAB0bhxYwUFBTm6DCDTQkJC5O3traioKEeX8kDbuXOnvL29tXPnTkPa9/b2VkhISKbbeZB+nkFBQWrcuLGjywCAdMnj6AIAwEinTp3SggUL9Msvv+jixYtydnaWl5eXnn32WXXt2lWurq6OLjHX+uabb7Rq1Srt27dPt27dUuHChVWzZk1169ZNdevWdUhNy5cvl5ubmzp06JDqckFBQVq3bt1922vfvr3ee++9rCrvgWexWLR+/XqtX79ehw4dUnR0tIoXL646dero+eefl6+vr6NLBDIlrdcIAEgPQjeAXOuHH37QK6+8IhcXF7Vt21ZeXl6Kj4/X7t27NW3aNB09elTjx493dJk2W7ZskclkcnQZmWa1WvXGG29o7dq1qlKlinr16iVPT09dunRJ33zzjXr27KkVK1aoRo0a2V7bihUrVKRIkfv+Qd21a1e7LwZOnz6t4OBgde3aVTVr1rRNL126tGG1PmhiY2M1dOhQbd++XbVr19aAAQNUqFAhnTlzRl999ZXWrVunH374QY888oijS8X/Cw8Pl9lsdnQZOUparxEAkB6EbgC5UkREhIYPH65HH31Un376qYoXL26b16NHD508eVI//PBDprdjtVp1+/btLLlj7uLikuk2HgSffPKJ1q5dq5deekmjR4+2+yJh0KBBWr9+vfLkyd7//cTExMjNzS3Ny/v7+8vf39/2ed++fQoODpafn5/atm2b6Xqio6Pl7u6e6Xay09SpU7V9+3aNHj1aPXv2tJs3dOhQLV68ONtryonHMTvlzZvX0SVA0p07d5SQkJBrrvEA0o9nugHkSgsWLFB0dLQmTpxoF7gTlSlTRi+99JLtc2hoqF588UXVrVtXPj4+atmypT777LMk6zVu3FgDBgzQ9u3b1aFDB1WrVk0rV660PZu5efNmffTRR3rqqafk7++vl19+WTdu3FBcXJwmTpyounXryt/fX6NHj1ZcXFyStu99pvvgwYMKDAxUtWrV9PTTT2vWrFkKDQ2Vt7e3Tp8+naSuXbt2qVOnTvL19VWTJk20fv16u/auXr2qKVOmqE2bNvL391eNGjXUt29fHTx4MMm+3r59WyEhIWrevLl8fX1Vv359DR06VKdOnUrxuMfGxmrevHkqX768Ro0aleyd+3bt2qlatWq2zxEREXr55ZcVEBCg6tWrq0uXLkm+EFm7dm2SfZaSfyb2hRdeUOvWrfXXX3+pR48eql69ut5//301btxYR44c0W+//SZvb295e3vrhRdeSHFf0uLPP/9Unz59VLNmTVWvXl2BgYHavXu33TKJz8MePXpUI0aMUO3atfX8889L+t/PbefOnbbzqU2bNrb92bp1q9q0aSNfX1916NBBf//9d5Iajh07Zjt+ict9++23mdqve50/f16rVq3Sf/7znySBW5LMZrP69OmT5C73jRs3FBQUpFq1aqlmzZoaPXq0YmJibPNPnz4tb29vrV27Nkmb9z6PnJbjeL/zPyULFy5Ut27dVKdOHVWrVk0dOnTQli1bkq3p3Xff1bZt29S6dWv5+PioVatW+umnn+yWO3PmjMaOHavmzZurWrVqqlOnjl5++eUk5++9goODVbVq1WSfnX777bdVq1Yt3b59W9LdL4L69Oljq7lx48YaPXp0qsfw5s2bmjhxoho3biwfHx/VrVtXvXr10v79+9N0nK5cuaJXXnlFNWrUUJ06dTRhwgRbPZIUGBio5557Ltl1mzdvrj59+tx3Gz/++KMCAwNt16eOHTtq48aNKS6f0nPxyZ1bly5d0ujRo/X000/Lx8dH9evX16BBg2w/l/tdI65fv66JEyeqQYMG8vHx0TPPPKN58+YpISEhyXYXLlyoxYsXq2nTpvL19dWxY8fuu+8Aci/udAPIlb7//ns9/vjjae7CvGLFCj3xxBNq3Lix8uTJo++//17jxo2T1WpVjx497JY9ceKERowYoa5du6pLly4qV66cbd68efPk6uqq/v376+TJk1q2bJny5Mkjk8mk69eva+jQofrzzz+1du1alSpVSkOHDk2xpgsXLti+GOjfv7/c3d21Zs2aFO+WnDx5Uq+88oo6deqk9u3bKzQ0VEFBQapataqeeOIJSXcD7rZt29SiRQs99thjioyM1KpVqxQYGKhNmzapRIkSku4+uztgwACFhYWpVatWevHFF3Xr1i398ssvOnz4cIrdqnfv3q2rV6/qxRdfTFO31sjISHXr1k0xMTF64YUXVKRIEa1bt06DBg1ScHCwnnnmmfu2kZyrV6+qX79+atWqlZ577jl5eHioTp06Gj9+vNzd3TVw4EBJkqenZ4bal6SwsDD169dPPj4+Gjp0qEwmk+0O/2effWb3xYIkvfLKKypTpoyGDx8uq9Vqm37y5EmNGDFC3bp103PPPadPPvlEAwcO1Lhx4/TBBx+oe/fuku6eW6+++qq2bNkiJ6e735kfOXJE3bt3V4kSJdSvXz+5u7vrq6++0pAhQxQSEpLh43evn376SXfu3EkxUKXk1Vdf1WOPPabXXntNf//9t9asWaOiRYvqv//9b4ZrSe043u/8T8mSJUvUuHFjtWnTRvHx8dq0aZNeeeUVzZ07Vw0bNrRbdvfu3dq6dauef/555cuXT0uXLtXLL7+s77//XkWKFJF0NxDv2bNHrVq10iOPPKIzZ85oxYoVevHFF7Vp06YUe120bdtWH3/8sTZv3qzAwEDb9Li4OH399ddq1qyZ8ubNq8uXL6tPnz4qUqSI+vfvr4IFC+r06dP65ptvUt3PMWPG6Ouvv1ZgYKAqVKigq1evavfu3Tp27JiqVq2a6rrS3Z9nqVKlNGLECO3du1dLly7V9evXNXXqVFv9b731lg4fPiwvLy/beuHh4frnn380aNCgVNtfu3at3njjDT3xxBMaMGCAChQooAMHDmj79u1q06bNfeu7n2HDhuno0aMKDAxUqVKlFBUVpV9++UXnzp3TY489pjfeeCPFa0RMTIwCAwN14cIFdevWTSVLltSePXv0/vvv69KlS3rzzTeT7Mvt27fVpUsXubi4qFChQpmuH0AOZgWAXObGjRtWLy8v66BBg9K8TkxMTJJpvXv3tjZp0sRuWqNGjaxeXl7Wn376yW76jh07rF5eXtbWrVtb4+LibNNfe+01q7e3t7Vv3752y3ft2tXaqFGjJG2PGjXK9nn8+PFWb29v699//22bduXKFWtAQIDVy8vLGhERkaSu33//3Tbt8uXLVh8fH+t7771nm3b79m2rxWKx225ERITVx8fH+tFHH9mmff7551YvLy/rokWLkhyXhISEJNMSffrpp1YvLy/rN998k+Iy/zZx4sQkdd+8edPauHFja6NGjWy1hoaGJtlnq/V/x33Hjh22aYGBgVYvLy/rihUrkmyvVatW1sDAwDTV9m/h4eFWLy8va2hoqNVqvXsMmjVrZu3du7fd8YiJibE2btzY2qtXL9u04OBgq5eXl/W1115L0m7iz+2PP/6wTdu+fbvVy8vLWq1aNeuZM2ds01euXJlkX1966SVr69atrbdv37ZNS0hIsHbt2tXarFmzdO9nSiZNmmT18vKyOxdTk7jPo0ePtps+ZMgQa0BAgO1zRESE3XH9Ny8vL2twcHCSNlM7jvc7/1Ny7+9
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Court Terme ===\n",
"Clients exploitables : 507\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 400\n",
"1 1 44\n",
"2 2 63\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Portfolio Long-Short European Equities\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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9+7d1bhxYwUFBemf//yndu/enev85HcduhkZGRmaNm2amjdvruDgYA0ZMkT/+7//K6vVqnfeecfeL6918p133pHVanVou3rfuW7dujz3DVLu43cyMjIUExOj9u3bKyAgQK1atdLrr7+eY7/wzTff6IknnlCTJk0UHBysDh066M0337z5hfL/Xb58WfPnz1edOnU0bty4XM9odO3aVQ0bNsxzGnmNR8ttvpcuXarOnTurUaNGatq0qbp3765NmzZJ+ns5v/7665Kktm3b2pfj1Z87GzdutH8ONmvWTKNHj9aff/6Z43W7dOmin3/+WX369FGjRo2uu8zOnj2rCRMmqGXLlgoICFB4eLiGDh3q8LrXzkubNm3s9V377+ptNz/bzI2WS34U7fibD1988YVq1KiR78OoK1eu1D/+8Q+1adNGJUqU0BdffKHJkyfLMAz16dPHoe/vv/+uMWPGKCIiQr169VLt2rXtj82fP1+lSpXSM888o2PHjmnZsmUqUaKEXFxcdOHCBQ0fPlw//fST1q1bJz8/Pw0fPjzPmk6fPm0Pgc8884y8vLy0du3aPNP7sWPHNGrUKD3++OPq1q2bYmNjNX78eN133336xz/+IenvULNjxw517NhR1atXV2JiolavXq2+ffvqk08+0T333CNJstlsGjx4sOLi4tS5c2f169dPly5d0jfffKNDhw4V6hTKiRMn5ObmpnLlyikxMVG9e/dWWlqaIiMjVaFCBa1fv15Dhw617+iu9u6778rd3V0DBgxQRkaGwsPDFRkZqaVLl2rIkCGqU6eOJKlu3bp6/fXXtWbNGiUkJGjq1KmSZF8PJk6cqPXr16tDhw7q37+/EhIS9N577+m3337TnDlzCjQ/3377rQYNGqTq1atr+PDhunz5spYtW6YnnnhC69atu+mxH5cvX1ZkZKSOHz+uPn36qHr16tq6davGjx+vCxcuOHxBkKTNmzfr0qVLioiIkIuLixYsWKARI0Zox44d9iNLX375pUaPHi2LxaIxY8bor7/+0osvvmh/32/Ez89PNptNGzduVLdu3W7Y/6+//tLAgQPVvn17Pfzww9q2bZtmzpwpi8WiVq1aFWo+161bp/T0dPXq1UseHh5q3769Ll26pJiYGEVERKhx48aSlK9t/+LFi/bAn83FxaXQY/auXLmiAQMGqHHjxho3bpxKlSolwzA0dOhQ7dmzR48//rjq16+vnTt36vXXX9fp06cVFRXlMI3vv/9eW7ZsUWRkpDw8PLRy5UoNHDhQa9eulcVikSQlJiaqV69ecnFxUZ8+fVSxYkV9/fXXevHFF3Xx4kU99dRT9vlbu3atunTpop49e+rSpUv66KOP7NO79nRqftah67l06VKO5SlJFSpUsIeFF198UR9//LG6dOmikJAQ7d69W88880xhFneumjZtmue+ITdZWVkaOnSofvzxR/Xq1Ut169bVoUOHtHjxYh09elTvvvuuJOnXX3/V4MGDZbVaNXLkSHl4eOjYsWP6z3/+Y1rtP/74o86fP69+/frJzc3NtOnmZs2aNZo6dao6dOigfv36KT09XQcPHtRPP/2kRx55RO3bt9fRo0e1efNmTZgwwb5NVKxYUZI0d+5cvf3223r44Yf1+OOPKzk5WcuWLVOfPn20YcMGh1OK58+f16BBg9S
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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LJvN5rBci8WiSZMmadOmTfZ216FDB/3666+Jart8+bLGjBmjunXrys/PTy+88IK+/PJLh2liYmL00UcfqUOHDqpWrZqqVKmiF198UXv37k3y/aR2G3oYMTExmjp1qmrXrq2AgAANHjxY//zzjywWi+bMmWOfLrltMqlrTf+971y/fn2y+wYp6Wu6Y2JiFBQUpGbNmsnPz08NGzbUjBkzEu0X9uzZo+7du6t69eoKCAhQ8+bN9f777z/8h/L/RUdH69NPP1Xp0qU1evToJM+etmvXTpUqVUpU/7Rp01S7dm1VqVJFw4YNs+9nE9z/+Sa4/7iTcF3xL7/8ogkTJqhOnTpq2LChpP/dpyE1bTopaT3OZuTx7P46LBaL/vzzz0Tj5s+fr/Lly+vy5cuSpL///lsjRozQM888I39/fzVo0EAjR47U7du3k/0MY2NjNXfuXD333HPy9/dXrVq11L17d+3ZsydVn1N0dLTGjRunWrVqqWrVqho1apRu3rxpHz969GjVqlVLsbGxiebt16+fmjdv/sB1/PHHH3r55ZdVo0YNValSRa1bt9ayZcuSnT6l6+Lv37YiIiI0ZcoUNW7cWH5+fqpTp4769u2rw4cPS7q3He3cuVMXLlywt89/t/XUtsd/7y9feOEF+fv7a/fu3Q9870BacKYbeID//Oc/Kl68eKq74K1atUpPP/20GjdurFy5cuk///mPJk6cKJvNph49ejhMe/r0ab3xxhvq2rWrunTpolKlStnHffrpp/Lw8NDAgQN15swZff7558qVK5dcXFx069YtDR8+XH/88YfWr18vX19fDR8+PNmaLl++bP9hYODAgfLy8tK6deuS/VX9zJkzevXVV9WpUye1b99ewcHBCgwMVMWKFfX0009Luhd0d+zYoRYtWqhYsWK6evWq1qxZo549e+qbb75RkSJFJElWq1WDBg1SSEiIXnjhBfXu3Vt37tzRnj17dPz48XR1vz1//rxMJpPy5s2rq1evqlu3boqKilKvXr1UoEABbdiwQUOGDLEfbP/t448/lpubm/r376+YmBjVq1dPvXr10ooVKzR48GCVLl1aklSmTBnNmDFDa9eu1aFDhzR58mRJsm8Hb7/9tjZs2KDmzZurb9++OnTokBYsWKCTJ09q3rx5aXo/P//8s15++WUVK1ZMw4cPV3R0tD7//HN1795d69evf+hrSaOjo9WrVy+dPXtWPXr0ULFixbRt2zYFBgbq1q1bDj8aSfe66925c0ddu3aVi4uLFi1apBEjRmjHjh32M9A7d+7UyJEjZTab9cYbb+jmzZsaO3as/Xt/EF9fX1mtVn311Vdq3779A6e/efOmBgwYoGbNmun555/Xt99+q1mzZslsNtv/kE/r+1y/fr3u3r2rLl26yN3dXc2aNdOdO3cUFBSkrl27qlq1apKUqrYfERGRKJy4uLik+x4AcXFx6t+/v6pVq6bRo0fLw8NDNptNQ4YM0b59+9SpUyeVL19eu3fv1owZM3T58mW99dZbDsv49ddftWXLFvXq1Uvu7u5atWqVBgwYoHXr1slsNkuSrl69qi5dusjFxUU9evRQwYIFtWvXLo0dO1YRERH2LpsRERFat26dWrVqpc6dO+vOnTv68ssv7cu7vyt+arahlNy5cyfR5ylJBQoUsAfIsWPHatO
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Portfolio Long-Short European Equities ===\n",
"Clients exploitables : 586\n",
"K retenu : 4\n",
" cluster n_clients\n",
"0 0 48\n",
"1 1 28\n",
"2 2 39\n",
"3 3 471\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Portfolio Grande Europe\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdIAAAGGCAYAAAB/pnNVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA1thJREFUeJzs3XdcU9f7B/BPErYMZcnSOpChbAeiWFyt1lm1bmxr3Yp2qx0/Fetqra212krVOlHrt7hF7XbiqAXBPVBBQWTJnsn9/UFJjQwBA5eEz/v14qXcnJw8z03CuXly7zkSQRAEEBERERERERERERFRuaRiB0BEREREREREREREVJ+xkE5EREREREREREREVAkW0omIiIiIiIiIiIiIKsFCOhERERERERERERFRJVhIJyIiIiIiIiIiIiKqBAvpRERERERERERERESVYCGdiIiIiIiIiIiIiKgSLKQTEREREREREREREVWChXQiIiIiIiIiIiIiokqwkK7hevbsiblz54odhtZYv349evXqBVdXVwwePLha9x03bhzGjRun/P3+/ftwdnbG7t271R2mxuHrtP6bO3cuevbsqbLN2dkZ3377rfL3b7/9Fs7OzkhLS6vr8IjqNf6NUy+OxbWDr9OG6+zZs3B2dsbZs2fFDqXO7N69G87Ozrh///4z2z793miI+4vqL/7tVi8eY9QOvk7padr8/tARO4D6KC4uDuvXr8epU6fw6NEj6OrqwsnJCa+88gpGjhwJAwMDsUPUOuPGjcO5c+eUv5uZmaFZs2YYPXo0hg4dCqlUPd/53Lp1C4cPH8aQIUPg4OCgctvJkyexfPlyDBo0CDNnzkSTJk3U8pjqlp2dja1bt+LXX3/FvXv3UFBQACsrK3h6euLVV19F9+7dxQ6x1j39enlSy5YtceTIkTqOqP5KS0vDd999h5MnTyIhIQGNGjWCvb09fH19MX36dDRq1EjsENUqLy8P69evR6dOneDr66ty27FjxxAdHY2ZM2eKFB1VB8fiusexuOo4FnMsrqr79++jV69eyt91dHRgbGyMli1bolOnThg1ahTs7OxEjLB27N69Gx999JHKNnNzczg6OmLixIkICAgQKTIiHmOIgccYVcdjDB5jVFXpMcbs2bMxYcIEUWI4cOAAUlNT8eabb4ry+GJgIf0pf/31F95++23o6elh8ODBcHJyQlFRES5cuIDly5fj1q1b+Oyzz8QOU+nIkSOQSCRih6EWNjY2eO+99wAA6enp2Lt3Lz755BPcvXsXH3zwgVoe49atW1i9ejU6depUZmA9c+YMpFIpFi9eDD09ved+LHt7e0RHR0NHR31vs3v37mHChAlISEhA79698eqrr8LIyAgPHz7EsWPHMGXKFHz++ed49dVX1faY9dWTr5cnmZiYiBBN/fT48WMMGzYM2dnZGDZsGFq1aoXHjx/j+vXr2LFjB0aPHq0spH/22WcQBEHkiJ9fXl4eVq9ejaCgoHIL6aGhoSykawCOxeLhWPxsHIv/w7G46gYMGIAXX3wRgiAgIyMDMTEx2Lx5M7Zs2YLFixejf//+tfbYHTt2RHR0NHR1dWvtMSoya9YsODg4QBAEpKamYs+ePZg8eTLWrl2LHj161Hk8VSHm/qLax2MM8fAY49l4jPEfHmNohoMHD+LmzZtlCum18f6oL7Qvo+cQHx+Pd999F3Z2dti8eTOsra2Vt40dOxb37t3DX3/99dyPIwgCCgoK1PJNtzoGgPrCxMRE5fKqkSNHom/fvggNDcXbb7/9XAezBQUFz7x/amoqDAwM1LZPJRIJ9PX11dIXABQXFyMoKAipqanYunUr2rdvr3J7UFAQTp48CblcXmk/ubm5MDIyUltcYnn69aJuCoUCRUVFan0O69rPP/+MhIQE7NixAz4+Piq3ZWdnq7wn+GGR6guOxeLiWFw5jsWqOBZXXdu2bcvsqwcPHuCtt97CnDlz0Lp1a7i4uNTKY0ulUtH24Ysvvgh3d3fl76+99hq6du2KgwcP1ttCupj7i2oXjzHExWOMyvEYQxWPMeq3Z73O1P3+qE84R/oT1q9fj9zcXCxevFhlUC31wgsv4I033lD+HhYWhtdffx1+fn5wc3NDv379sH379jL369mzJ6ZMmYITJ05g6NCh8PDwwM6dO5Xz74WHh2P16tXo1q0bvL29MWvWLGRlZaGwsBCLFy+Gn58fvL298dFHH6GwsLBM30/PRXXt2jUEBgbCw8MDL774Ir777juEhYWVmSewNK6///4br732Gtzd3dGrVy/s3btXpb/Hjx/j888/x8CBA+Ht7Q0fHx9MnDgR165dK5NrQUEBvv32W/Tp0wfu7u7w9/dHUFAQ4uLiqvQcPMnQ0BCenp7Izc1VzskcHx+PWbNmoVOnTvD09MSIESPKHOyU7tdDhw7h66+/Rrdu3eDp6YktW7bg7bffBgC8/vrrcHZ2Vs5/WDp3U25urnJ76VxOxcXFWLNmDXr37g03Nzf07NkTX331VZnn4mkVzQkVERGBMWPGwMvLCx06dMC0adNw+/btZ+6PI0eO4MaNG5g2bVqZQbWUv7+/yqWypfNDnjt3DgsWLICfn5/y9gcPHmDBggXo06cPPDw84Ovri1mzZpWZS7K0jwsXLmDp0qXo3LkzvLy8MGPGjDJzZQuCgO+++w4vvvgiPD09MW7cONy8ebPcWDMzM7F48WIEBATAzc0NL730En744QcoFIpn7ouqKm/eb+C/ub6f5OzsjIULF2L//v3o378/3N3dceLECQDAlStXMHHiRPj4+MDb2xtvvPEGoqKiVO5fup/Onz+PefPmwdfXFz4+Ppg9ezYyMjLKxHDs2DHl68Db2xuTJ0+ucF/VVFxcHGQyGby8vMrcZmxsrDKwVbSvypOVlYW5c+eiQ4cOaN++PT766CPk5eWptKnq++bpedhLlfe37Vmvmfv378PPzw8AsHr1auV7+dtvv8XcuXMRGhqqfMzSn1IKhQKbNm1SPvddunTBvHnzyn3uqHZxLOZYzLGYY7E2jcWVsbe3x7Jly1BUVIR169Ypt1fl/Z6SkoK2bdti9erVZfqNjY2Fs7Mztm3bBqDiOb8vXryICRMmoH379vD09ERgYCAuXLig0iY7OxuLFy9Gz5494ebmBj8/P4wfPx6XL1+uUc6mpqbQ19cvc4Zabm4uli1bpnwt9unTBxs2bFC5Wq6y+VYrOp54UlXfG+Xtr3HjxmHAgAG4desWxo0bB09PT3Tr1k3leaP6j8cYPMbgMQaPMbT9GKM6z2dV45w7dy68vb0RFxeHSZMmwdvbGx988AHGjRuHv/76Cw8ePFC+r0qfj/LeH9euXcPcuXPRq1cvuLu7o2vXrvjoo4+Qnp5euztFzXhG+hP+/PNPNGvWrMyZmxXZsWMH2rRpg549e0JHRwd//vkngoODIQgCxo4dq9L2zp07eP/99zFy5EiMGDECLVu2VN72ww8/wMDAAJMnT8a9e/ewbds26OjoQCKRIDMzE0FBQbh48SJ2794Ne3t7BAUFVRhTUlKScvCfPHkyjIyM8L///a/Cb13v3buHt99+G6+99hqGDBmCsLAwzJ07F+3atUObNm0AlAxmv/32G/r27QsHBwekpKTgp59+QmBgIA4dOoSmTZsCAORyOaZMmYKIiAj0798fr7/+OnJycnDq1CncuHEDzZs3r9J+fdL9+/chk8lgamqKlJQUjBo1Cnl5eRg3bhyaNGmCPXv2YNq0aVi1ahVeeukllft+99130NXVxYQJE1BYWAh/f3+MGzcOW7duxdSpU9GqVSsAQOvWrfHFF19g165diI6OxqJFiwBA+Tr49NNPsWfPHvTp0wfjx49HdHQ0QkJCcPv2baxZs6Za+Zw+fRqTJk2Cg4MDgoKCkJ+fj23btmH06NHYvXt3mcvPnvTnn38CQI2+lQ0ODoa5uTlmzJiB3NxcAEBMTAwiIyPRv39/2NjY4MGDB9ixYwdef/11HDp0CIaGhip9LFq0CKampggKCsKDBw+wefNmLFy4ECtXrlS2+eabb/D9998jICAAAQEBuHz5Mt566y0UFRW
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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XKXU1q1bdfLkSfXp0ydeUUKSsmXLpiFDhiS6f9zPxr59+8zaE7q3b926pREjRqh+/foqX7686tatq759+5rup8aNG+v06dPav3+/6Wfs8TVZknI/xJ3322+/1aJFi9S0aVNVqFDhqT8/u3btUseOHVWtWjVVrlxZzZo10/Tp0596LZK0adMmtWjRQhUqVFCrVq3066+/xrufHo/n+++/N71GvP766zp69KjZ8U6ePKnhw4erSZMmqlChgurUqaMRI0bo9u3bpj6zZs3S559/Lklq0qSJKU9Xrlx56loYXl5emjVrltlxvLy8dObMGb3//vuqXr263nrrLdPz69atM/0u8vHx0ZAhQ3T9+nWzY164cEEDBw5UnTp1VKFCBdWvX19DhgxRaGhoorkGAABAyjBiAgCADG7nzp0qXLiwqlSpkqT+K1euVKlSpdS4cWM5ODho586dGjt2rIxGozp16mTW9/z583r//ffVvn17tWvXTsWKFTM9N3/+fDk7O6tXr166ePGili1bJgcHBxkMBoWEhGjAgAH6559/tGbNGhUsWFADBgxINKaAgABT8aRXr17KkiWLfvjhh0S/TXzx4kUNGjRIb7zxhtq0aaOffvpJw4cPV7ly5VSqVClJD4sB27ZtU/PmzVWoUCEFBgbq+++/V+fOnfXLL7+Y5qePiYlR7969tWfPHrVs2VJvv/227t27p127dum///5TkSJFkpTXx125ckX29vbKkSOHAgMD1aFDB0VERKhLly7KlSuX1q5dq759+2rmzJl66aWXzPadO3euHB0d1aNHD0VFRalu3brq0qWLli5dqj59+qh48eKSpBIlSujzzz/X6tWrdfToUU2YMEGSTPfB6NGjtXbtWjVr1kzdunXT0aNH5evrq7Nnz2rOnDnJup7du3fr3XffVaFChTRgwADdv39fy5YtU8eOHbVmzZp400s9bufOnZKUolECY8eOlaurq/r376/w8HBJ0rFjx3T48GG1bNlS+fLl09WrV7Vy5Uq9/fbb+uWXX5Q5c2azY0yYMEE5cuTQgAEDdPXqVS1evFjjxo3TjBkzTH2++uorzZs3Tw0aNFCDBg10/Phxde/eXdHR0WbHioiIUOfOnRUQEKAOHToof/78Onz4sKZPn65bt25p1KhRz7ymmJiYeIURSXJ2dk7xN8P37t2rTZs2qVOnTsqVK5cKFiyo06dPq1OnTsqaNat69uwpBwcHff/99+rSpYuWLVumihUrmh1j3LhxpjydP39eK1eu1LVr17R06VLTtGt+fn4aPny46tatq2HDhikiIkIrV67UW2+9pbVr1z71PkiO7du3S0rZPZNcAwcO1JkzZ9S5c2cVLFhQwcHB2rVrl65fv65ChQpp5MiRGj9+vLJkyaI+ffpIktzc3CQl/35Ys2aNIiMj1a5dOzk5OcnFxSXBmE6fPq3evXvLy8tL7733npycnHTx4kX9/fffT72W3377TUOGDJGnp6fef/993b17V6NGjUp0LY4NGzbo3r17at++vQwGg7755hsNHDhQ27ZtM43U2r17ty5fvqy2bdvK3d1dp0+f1urVq3XmzBmtXr1aBoNBL730ki5cuKANGzZoxIgRpnVuXF1dE7zXn2XQoEHy8PDQkCFDZDQaJUnz5s3TV199pVdeeUVvvPGGgoODtWz
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAHqCAYAAAAZJ7jWAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA/kVJREFUeJzs3Xd4VFX6wPHv9JLee0ICpBBCCb2LgkqxgP4sFNe197I2LKti77rYlhWsKAirIihFQQELIiBICz2k956ZydT7+yObMcNMQoAkk8D5PA+P5pyZe8/cNu+c+95zZJIkSQiCIAiCIAiCAIDc2w0QBEEQBEEQhK5EBMiCIAiCIAiC0IwIkAVBEARBEAShGREgC4IgCIIgCEIzIkAWBEEQBEEQhGZEgCwIgiAIgiAIzYgAWRAEQRAEQRCaEQGyIAiCIAiCIDQjAmRBEARBEARBaEYEyJ3s3HPPZc6cOd5uxhljwYIFnHfeeaSlpXHJJZec1Htnz57N7NmznX/n5+eTkpLCl19+2d7N7HbEcSp40/HnZmfZsmULKSkpbNmypdPXDeBwOJg6dSrvvvuuV9bf1Zzqdcjb13Jx/ew6Dh8+TJ8+fTh48OBJv1fZAe3pdLm5uSxYsIBffvmF0tJSVCoVycnJTJo0iSuvvBKtVuvtJp5xZs+eze+//+78OyAggLi4OK6++mqmT5+OXN4+v70OHz7M6tWrmTZtGrGxsS51P//8My+//DIXX3wxd955J0FBQe2yzvZWX1/PJ598wvfff09OTg5ms5mwsDD69+/PpZdeyjnnnOPtJna444+X5hITE1mzZk0nt6hrys/P57zzznP+LZfLiYiIID09nTvuuIO0tDSX15vNZhYvXsy3337L0aNHsVgsREdHM2rUKGbPnk1iYqLbOl566SUWLlzIpEmTeOONNzr6I3VJn376KTqdjunTp3u7KS6++eYbioqKmDVrlrebIniRw+Fg4cKFLF68mLKyMnr06MHNN9/M1KlT2/T+X375hbfeeot9+/ahVqsZMWIEDz74oNt3qMFg4I033mDt2rVUVlYSFxfH7NmzmTFjxmm1/48//uDll19m3759+Pr6MmnSJO699158fHza9P5ly5bx/vvvk5+fT1RUVIs/mEtKSnjuuef45ZdfcDgcDBs2jEceeYS4uDjna3r16sW4ceOYN28eb7311kl9jm4fIG/YsIG7774btVrNJZdcQnJyMlarle3bt/Pyyy9z+PBhnn76aW8302nNmjXIZDJvN6NdREZG8o9//AOAqqoqli9fzqOPPsqxY8e4//7722Udhw8f5q233mLo0KFuJ/dvv/2GXC7n2WefRa1Wn/a6YmJi2LVrF0pl+50WOTk5XH/99RQWFjJhwgQuvfRS9Ho9xcXFbNy4kZtvvpkXX3yRSy+9tN3W2VU1P16a8/Pz80JrurapU6cyduxYHA4HR44cYfHixWzatImlS5c6g+TKykpuuOEG9u7dy/jx45k6dSp6vZ7s7GxWrVrF0qVL2bNnj8tyJUni22+/JSYmhh9//JH6+np8fX298RFbtXDhwg5d/uLFiwkKCnILkIcMGcKuXbtQqVQduv6WLFy4kClTpohz4jR1xLW8M73++uv85z//4YorriAjI4P169dz3333IZPJmDJlSqvv/fHHH7ntttvo06cP9913H/X19Xz88cfMmDGD5cuXExwcDIDdbuf6669nz549zJw5k4SEBH7++Wfmzp1LbW0tt9xyyym1PSsri2uvvZaePXsyZ84ciouLef/99zl27BgLFiw44fuXLFnCE088wQUXXMDf//53tm3bxjPPPIPJZOKmm25yvs5gMHDNNddQV1fHzTffjEql4sMPP2TWrFksX77cpcPsqquu4qabbiI3N5f4+Pi2fxipG8vNzZUGDBggXXjhhVJJSYlb/bFjx6QPP/zwtNfjcDgkk8l02ss5k8yaNUuaMmWKS5nRaJTGjh0rDRgwQLJYLKe1/IaGBslut0urV6+WkpOTpd9++83tNXPmzJEGDBhwyuuYNWuWNGvWrNNpZqusVqs0depUacCAAdK2bds8vuann36SNmzY0OpyDAZDRzSvVePHj5ceeuihdluep+OlvdntdqmhoaFD19HR8vLypOTkZGnBggUu5evXr5eSk5Olf/7zn86ym266SUpNTZXWrFnjthyz2Sy98MILbuWbN2+WkpOTpc2bN0vp6enSl19+2f4fwgNvHMOtmTJlSoee+6di7969UnJysvTrr792+rq72v5p0t7Xoc5yOu0uLi6W0tPTpblz5zrLHA6HNGPGDGns2LGSzWZr9f2TJ0+WJk6cKJnNZmdZVlaWlJqaKj3//PPOslWrVknJycnSsmXLXN5/5513ShkZGVJ5efkptf+GG26QRo0aJdXV1TnLli5dKiUnJ0s//fRTq+81mUzS0KFDpZtuusml/L777pMGDBggVVdXO8v+85//SMnJydKff/7pLDt8+LCUlpYmvfrqqy7vt1gs0pAhQ6Q33njjpD5Lt85BXrBgAUajkWeffZbw8HC3+oSEBP72t785//7iiy+45pprGDFiBH379mXy5Ml89tlnbu8799xzufnmm/npp5+YPn06/fr1Y8mSJc78tFWrVvHWW28xZswYBg4cyF133UVdXR0Wi4Vnn32WESNGMHDgQB5++GEsFovbso/PTdq/fz+zZs2iX79+jB07lnfeeYcvvviClJQU8vPz3dq1bds2Lr/8cjIyMjjvvPNYvny5y/Kqq6t58cUXueiiixg4cCCZmZnccMMN7N+/3+2zms1m3nzzTS644AIyMjIYPXo0d9xxB7m5uW3aB83pdDr69++P0WiksrISgLy8PO666y6GDh1K//79ueKKK9iwYYPL+5q267fffsvrr7/OmDFj6N+/Px9//DF33303ANdccw0pKSnO/MCm/DKj0egsb8o3s9lsvP3220yYMIG+ffty7rnn8tprr7nti+O1lLe2efNmZsyYwYABAxg8eDC33norR44cOeH2WLNmDQcPHuTWW29l0KBBHl8zevRoxo0b5/z7yy+/JCUlhd9//50nn3ySESNGOOsLCgp48sknueCCC+jXrx/Dhg3jrrvucjlGmi9j+/btPP/88wwfPpwBAwZw++23O/dLE0mSeOeddxg7diz9+/dn9uzZHDp0yGNba2trefbZZxk3bhx9+/Zl4sSJ/Oc//8HhcJxwW7TVnDlzOPfcc93K33zzTVJSUlzKUlJSeOqpp1ixYgVTpkwhIyODn376CYB9+/Zxww03kJmZycCBA/nb3/7Gzp07Xd7ftJ22bt3K448/zrBhw8jMzOTBBx+kpqbGrQ0bN250HgcDBw7kpptuanFbtbfhw4cDOPf1n3/+yYYNG7j88su54IIL3F6vVqt56KGH3MpXrlxJr169GD58OCNGjGDlypVtbkPz7d10vZg+fTpbt251eV3Tvjp8+DD33XcfQ4YMcd6ybeu56emWqsViYd68eUycOJG+ffsybtw4XnrpJY/n9ddff83ll19O//79GTJkCDNnzuTnn38GGq+jhw4d4vfff3deO5rW1VIO8urVq53fBcOGDeP++++npKTE5TVz5sxh4MCBlJSUcNtttzFw4ECGDx/Oiy++iN1uP+H2XbduHSqVisGDBzvL1qxZ47weHG/JkiWkpKQ4cyv379/PnDlzOO+888jIyGDUqFE8/PDDVFVVubyvtf3TkhOd+5IkMXv2bIYPH05FRYXzfRaLhYsuuogJEyZgNBpd1n/kyBHuvvtuMjMzGTZsGM888wxms7nVdrT1u83Ttfxk9o/D4eDDDz90XldGjhzJ448/7nZdOJnrZ25ubpu+V9etW4fVanXZJzKZjKuvvpri4mJ27NjR6vY5fPgwEyZMcLmrmpqaSs+ePfn222+dZdu3bwdw65GePHkyZrOZ9evXn7Ctx6uvr+fXX3/l4osvdrkzdckll6DX61m9enWr79+yZQvV1dVux+PMmTMxGo0uscPatWvJyMigX79+zrKePXsyYsQIt/WoVCqGDh160p+pe95/+J8ff/yRuLg4MjM
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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oYPeeOONy65L4ToX9+/f+5KR1/Bq2+VmxhGnW8D333+vunXrKiQkxFD/1atX6+6771abNm1UoUIFff/995o0aZLMZrN69uxp1ffw4cN64YUX1K1bNz3++OOqX7++Zdq7776rSpUqadCgQUpKStLKlStVoUIFOTg4KD09XcOGDdPvv/+u9evXy9vbW8OGDbtsTSdPnrSEu0GDBqly5cr6+OOPL/ttLCkpSSNHjtR///tfRUdHa926dRozZozuuece3X333ZIuhpWtW7eqY8eO8vHxUWpqqj766CP16tVLn3/+uWV8hMlk0uDBgxUbG6uoqCj16dNH58+f1y+//KIDBw6oXr16hrbrpY4fPy4nJye5u7srNTVVTzzxhLKzs9W7d29Vr15dGzZs0NChQzV37ly1b9/eat533nlHzs7O6t+/v3JzcxUREaHevXtrxYoVGjJkiO666y5JUoMGDfTaa69p7dq1SkhI0NSpUyXJsh/ExMRow4YN6tChg/r166eEhAQtWrRIf/31l+bPn1+i9dm+fbsGDhwoHx8fDRs2TBcuXNDKlSvVvXt3rV+/vsjpw0t9//33klSqoyyTJk1SjRo19MwzzygrK0uStGfPHsXFxSkqKkq33XabTpw4odWrV6tPnz76/PPP5erqarWMqVOnyt3dXcOGDdOJEye0bNkyTZ48WXPmzLH0eeutt7RgwQJFRkYqMjJSf/zxh5566inl5eVZLSs7O1u9evXSyZMn9cQTT+j2229XXFyc3njjDaWkpGj8+PFXXSeTyVQkuElSpUqVSn1EbceOHfriiy/Us2dPVa9eXd7e3jp48KB69uypKlWqaMCAAapQoYI++ugj9e7dWytXrlTTpk2tljF58mTLdjp8+LBWr16t5ORkrVixwnJafePGjRozZowiIiI0atQoZWdna/Xq1erRo4c2bNhwxf2gJL799ltJpdtnSmr48OE6dOiQevXqJW9vb50+fVq//PKL/vnnH/n4+GjcuHGaMmWKKleurCFDhkiSatasKank+8P69euVk5Ojxx9/XC4uLvLw8Ci2poMHD2rw4MHy8/PTiBEj5OLioqSkJP2///f/LrsehX8PLpWRkaGZM2eqRo0aljajr+HVtstNzYybWkZGhtnX19c8dOhQw/NkZ2cXaXvqqafMbdu2tWpr3bq12dfX1/zTTz9Zte/YscPs6+trfuSRR8y5ubmW9ueff97s5+dnHjBggFX/bt26mVu3bl1k2S+99JLl8ZQpU8x+fn7mP//809J25swZ87333mv29fU1Hzt2rEhdu3btsrSlpaWZ/f39zTNnzrS05eTkmE0mk9XzHjt2zOzv72+eN2+epe2TTz4x+/r6mpcuXVpkuxQUFBRpu1SvXr3MHTt2NKelpZnT0tLMhw4dMk+ZMsXs6+trHjx4sNlsNpunTZtWpN7MzExzmzZtzK1bt7bUWLhd27ZtW+Q1+uKLL8y+vr7mHTt2FKnhpZdeMgcFBVm1JSYmmn19fc3jx4+3ap85c6bZ19fXHBsba7UOvXr1stpGvr6+5nXr1lna/vOf/5jDwsLMZ86csXqORo0amUePHn3FbdS5c2dzaGhokfbz589btltaWpo5IyPDMm3dunVmX19fc/fu3c35+flW8xW3/8bFxZl9fX3NGzZsKLKMvn37Wr2
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZLNJREFUeJzt3XlUVPX/x/EXM4KApiKgmWVugSgguEtuueSSu7lj5Z6plVku2SIuaaktaKWpmVsuhZrmUmllZmhlGmbmhrnnAu6g4DC/P/wxX0cWQbgM4PNxDuc4d33fO3c+zmvu597rZLVarQIAAAAAANnO5OgCAAAAAADIrwjdAAAAAAAYhNANAAAAAIBBCN0AAAAAABiE0A0AAAAAgEEI3QAAAAAAGITQDQAAAACAQQjdAAAAAAAYhNANAAAAAIBBCN0A8oXGjRtr1KhRji4j35gzZ46aNGkiPz8/tWvXLlPz9urVS7169bK9Pn78uHx9fbVixYrsLjPP4TjNG3r16qXWrVs7uoxcb/r06fL19TVk2du3b5evr6+2b9+e5WXlpveTNgC4NxVwdAEAcq+jR49qzpw52rp1q86cOSNnZ2f5+PioZcuW6tq1q1xdXR1dYr7Tq1cv/frrr7bXRYsW1UMPPaTu3burY8eOMpmy57fSgwcPav369erQoYMefPBBu3E///yzpkyZorZt22ro0KHy8PDIlnVmtytXrmjhwoX67rvvdOTIEV2/fl3e3t6qWrWq2rdvr0aNGjm6RMPdfrzcqly5ctqwYUMOV5S7XblyRZ999pm+/fZbHTt2TBaLRWXKlFHDhg311FNPqWTJko4uEbhr8fHxmjNnjmrVqqXatWs7uhwAtyB0A0jVjz/+qBdeeEEuLi5q166dfHx8lJiYqB07dmjKlCk6ePCgxo8f7+gybTZs2CAnJydHl5Et7r//fr300kuSpPPnz2vVqlUaM2aM/v33X7388svZso6DBw9qxowZqlWrVorQvW3bNplMJk2cOFEuLi5ZXlfp0qUVFRWlAgWy77+cI0eOqG/fvjp58qSaNm2q9u3by93dXf/99582b96sgQMH6u2331b79u2zbZ251a3Hy63uu+8+B1STex07dkzPPPOMTp06pRYtWqhr165ydnbWvn379OWXX2rjxo365ptvHF0m/l/NmjUVFRUlZ2dnR5eSZ8THx2vGjBkaMmQIoRvIZQjdAFI4duyYhg0bpgceeEDz589XiRIlbON69uypI0eO6Mcff8zyeqxWq65fv54tZ8yzIxzmFvfdd59dl+6uXbuqRYsWWrx4sV544YUsfQm9fv36HeePiYmRq6trtu1TJycnFSxYMFuWJUk3btzQkCFDFBMTo4ULF6p69ep244cMGaKff/5ZFosl3eXExcXJ3d092+pylNuPl+yWlJSkxMTEbH0Pc9qtx8yCBQtUo0YNu/HDhg3T7Nmzc7yu+Ph4ubm55fh68wKTyZSnj7n8JL+0lYAjcU03gBTmzJmjuLg4TZw40S5wJ3v44Yf19NNP215HREToqaeeUt26deXv769WrVrp888/TzFf48aNNXDgQG3ZskUdO3ZUYGCgli5dart2b926dZoxY4bq16+v4OBgPf/887p8+bISEhI0ceJE1a1bV8HBwRo9erQSEhJSLPv26+T++ecfhYaGKjAwUA0aNNBHH32kiIgI+fr66vjx4ynq+v333/Xkk08qICBATZo00apVq+yWd+HCBb399ttq06aNgoODVa1aNfXr10///PNPim29fv26pk+frubNmysgIED16tXTkCFDdPTo0Qy9B7dyc3NT1apVFRcXp9jYWEk3fxh5/vnnVatWLVWtWlVdunRJ8UNI8n5du3at3nvvPdWvX19Vq1bVggUL9MILL0iSnnrqKfn6+tqunUy+9jouLs42PPla7Bs3bujDDz9U06ZN5e/vr8aNG+vdd99N8V7cLq1ruiMjI9WjRw8FBQWpRo0aGjRokA4dOnTH/bFhwwbt379fgwYNShG4k9WrV08NGza0vV6xYoV8fX3166+/auzYsapbt65t/IkTJzR27Fg1b95cgYGBql27tp5//nm7Y+TWZezYsUOTJk1SnTp1FBQUpMGDB9vel2RWq1UfffSRGjRooKpVq6pXr146cOBAqrVeunRJEydOVMOGDeXv769mzZrpk08+UVJS0h33RUaNGjVKjRs3TjE8tWtyfX19NW7cOK1evVpPPPGEAgICtGXLFknS33//rX79+qlatWoKDg7W008/rV27dtnNn7yffvvtN73xxhuqXbu2qlWrphEjRujixYspati8ebPtOAgODtaAAQPS3Fd369tvv9U///yjZ599NkXglqTChQtr2LBhKYYfPHhQvXr1UtWqVVW/fv0UwTx5W28/VlK7Hjn5uuK//vpLPXv2VNWqVfXuu+/aPh9z587VsmXLbJ+vTp06KSoq6o7bltF26dZ29uOPP1aDBg0UEBCgp59+WkeOHLGb9vfff9fzzz+vRo0ayd/fXw0bNtRbb72la9eupVtLaGio2rZtm+q45s2bq2/fvrbXa9euVceOHW01t2nTRvPnz093H/77778aOnSoHn30UQUEBKhBgwYaNmyYLl++fMf9JEl//fWXunXrpsDAQDVu3FhLliyxjbt69aqCgoI0YcKEFPP9999/8vPz06xZs9JdflJSkubPn682bdooICBAderUUd++fbV79+4050nruvjUjq3du3erb9++ql27tm0bRo8eLelmO1u3bl1J0owZM2zt9/Tp023zHzp0yPb/RkBAgDp27KhNmzalut7U2koAd48z3QBS+OGHH/TQQw+pWrVqGZp+yZIleuSRR9S4cWMVKFBAP/zwg8LCwmS1WtWzZ0+7aQ8fPqzhw4era9eu6tKli8qVK2cb98knn8jV1VUDBgzQkSNHtGjRIhUoUEBOTk66dOmShgwZoj///FMrVqxQ6dKlNWTIkDRrOn36tO2HgQEDBsjd3V1ffPFFmmdvjxw5ohdeeEFPPvmkOnTooIiICI0aNUpVqlTRI488Iulm0N24caNatGihBx98UOfOndOyZcsUGhqqtWvX2q4HtVgsGjhwoCIjI/XEE0/oqaee0tWrV7V161bt379fZcqUydB+vdXx48dlNptVpEgRnTt3Tt26dVN8fLx69eolDw8PrVy5UoMGDVJ4eLiaNWtmN+9HH30kZ2dn9e3bVwkJCapXr5569eqlhQsX6tlnn1X58uUlSRUqVNA777yj5cuXKyoqyvblM/k4eO2117Ry5Uo1b95cvXv3VlRUlGbNmqVDhw7pww8/zNT2/PLLL+rfv78efPBBDRkyRNeuXdOiRYvUvXt3rVixIkWX91v98MMPknRXZ3fDwsJUvHhxDR48WHFxcZJufpHduXOnnnjiCd1///06ceKElixZoqeeekpr165NcSZywoQJKlKkiIYMGaITJ05o/vz5GjdunN5//33bNB988IE+/vhjNWzYUA0bNtSePXvUp08fJSYm2i0rPj5eoaGhOn36tLp166ZSpUpp586devfdd3X27FmNGTPmjttksVhShH5JcnV1veuzU9u2bdP69evVs2dPeXh4qHTp0jpw4IB69uypQoUKqV+/fipQoICWLVumXr16adGiRapatardMsaNG2fbT4cPH9aSJUt08uRJLVy40HYpyKpVqzRq1CjVq1dPL7/8suLj47VkyRL16NFDK1euTPc4yIzkYJGZY+bixYvq16+fmjVrppYtW+qbb77R1KlT5ePjc9ch5MKFC+rfv7+eeOIJtW3bVp6enrZxX3/9ta5evaquXbvKyclJc+bM0dChQ7Vx48Z0e6dktF1KNnv2bDk5OalPnz66cuWK5syZo5dffllffPGFbZoNGzbo2rVr6t69u4oVK6aoqCgtWrRI//33n8LDw9OspV27dnrttde0f/9++fj42IZHRUXp33//1aBBgyRJW7du1UsvvaS6devaLpmJjo7WH3/8YfeD7q0SEhJsbVhoaKi8vLx0+vRp/fjjj7p06dIdL6e4ePGiBgwYoJYtW+qJJ57Q+vXrNXb
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Portfolio Grande Europe ===\n",
"Clients exploitables : 1344\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 1163\n",
"1 1 100\n",
"2 2 81\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Portfolio Emergents\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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nDU4nsTz999/q3379ipTpoyqV6+uhQsXmp0vKipKM2bMUIsWLfTaa6+pbNmyev/99/Xrr7+a+gQEBJim1Zo9e7YpR7NmzUowTkkaOnSoateubXYeLy8vLVq0SEuXLtWbb76pUqVKmX63n+f3KTo6WrNnz1bdunVVqlQpVapUSW3atNH+/fsTzDUAAACs6+X+uhEAALAJe/bsUZ48eZ57epWvv/5aRYoUUe3ateXg4KA9e/ZozJgxMhqNatu2rVnfixcv6uOPP1arVq3UsmVLFShQwLRvwYIFcnZ2Vvfu3XX58mWtXLlSDg4OMhgMun//vvr27avjx49r48aN8vDwUN++fROM6datW6biSffu3ZUuXTp98803CX5j9/Lly+rfv7/effddNW/eXBs2bNDQoUNVokQJFSlSRNLjYsAPP/yg+vXrK3fu3AoKCtLatWvVrl07fffdd8qePbskKSYmRj169NDBgwfVqFEjdejQQQ8ePND+/fv1119/KW/evM+V16cFBATI3t5eGTNmVFBQkFq3bq2IiAi1b99emTNn1qZNm9SrVy/Th9pPmzt3rhwdHdWlSxdFRUWpWrVqat++vVasWKGePXuqYMGCkqRChQppypQpWrdunU6cOKHx48dLkuk+GDlypDZt2qR69eqpU6dOOnHihHx9fXX+/HnNmTMnUddz4MABdevWTblz51bfvn318OFDrVy5Um3atNHGjRvjTC8Vn4iICFOh5mkZM2Y0+xb+5cuX9fHHH6t169Z6++23tXjxYvXs2VNjxozRl19+qTZt2kh6fP8NGDBAO3bsMK3lce7cObVp00bZs2dXt27dlC5dOm3fvl19+vTRrFmz4uR6zJgxcnNzU58+fRQeHi5JWr16tcaOHasKFSqoY8eOunbtmvr06aOMGTMqR44cpmNjY2PVq1cvHT16VC1btlShQoX0119/admyZbp06ZLmzp1r9lxHjx7Vrl279P777yt9+vRasWKFPvzwQ+3Zs0eZM2fWW2+9pUuXLmnr1q0aNmyYaa0QNzc3nTt3Tj169JCXl5c+/PBDOTk56fLly/r999+f58f3XI4ePaq7d++qQ4cOsre3T7bzxmfdunUaP3686tWrpw4dOigyMlJnz57V8ePH1aRJk2fmQpLmzZunGTNmqEGDBnr33XcVEhKilStXqm3btvLz8zOb+unu3bvq1q2bGjVqpLfffltZsmRJMK5+/frp77//Vrt27eTh4aGQkBDt379fN27cSPAeDw8P1wcffKDAwEB16NBB7u7u2rp1a4KLgt+7d09du3bVW2+9pQYNGmjnzp2aNm2aPD09TcWxsLAwffPNN2rcuLHee+89PXjwQOvXr1fXrl31zTffqFixYnJzc9Po0aM1evRovfXWW6Z728vLK/E/ED0u1kVGRqply5ZycnKSq6vrc/8+zZ49W76+vnrvvfdUunRphYWF6c8//9SpU6dUtWrVJMUDAACAFGYEAAB4AaGhoUZPT09jr169nvuYiIiIOG2dO3c21qlTx6ytVq1aRk9PT+O+ffvM2n/99Vejp6ensXHjxsaoqChT+8CBA41eXl7Grl27mvVv1aqVsVatWnHOPWTIENPjcePGGb28vIynT582td25c8fo7e1t9PT0NF69ejVOXEeOHDG1BQcHG0uWLGmcNGm
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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8p///Idly5bVGf9WG9emTZu4+OKLSU1NZfz48Xz66ace2ystLeWxxx5j2rRpDBo0iMGDB3Pdddexd+/eOq/VZrPx/PPPc/7555OamsqYMWO45ZZbOHbsWKOOwfECAwMZOHAgZrOZ4uJiADIyMrj11lsZPnw4AwcOZNasWaxdu9bjebX79YsvvuCZZ55h7NixDBw4kLfeeovbbrsNgCuvvJKUlBRSUlLcj1++fDlms9ldXjtW1uFw8OKLLzJhwgT69+/POeecw9NPP13nWJyovjG369ev57LLLiMtLY2hQ4dy0003cejQoVPePw2pPbYbN250n3PTpk1j48aNAHzzzTdMmzaN1NRUZsyYwe7du+ts49ChQ+59Xfu47777zuMxteMqf/31V+6//35GjRrFuHHj3PXvvPMO48ePZ8CAAVx88cVs2rTJ6zg6u93O4sWLOffcc+nfvz/jxo3j8ccfr7OPU1JSeOCBB1i9ejVTp06lf//+TJkyhR9//NH9mOeff97d6zF+/Hj38aw993/++WfmzJnD0KFDGTRoEOeffz5PP/30aeztxvF2Pj/33HOYTCYeeeQRdDpdneeMHTuWs88+26Ns8+bNZGVlMXnyZCZPnsymTZvIzc1tVAx33303gwYNIiMjg3nz5pGWlsaYMWN44YUXUBTF/bjac/e1117jf//7HxMmTCA1NdV9njbmHK5vzO0PP/zgfu6gQYOYP38+Bw4cqBProUOHuO222xg5ciQDBgzg/PPP55lnngFOfoy9fS6eymfHl19+yUsvvcSZZ55JamoqV111FUePHj3p/s3IyGDfvn2MHj3aXVZdXc3w4cO9XmaurKwkNTWVxx57DPjzUvCMGTMYMmQIaWlpXHbZZWzYsMHjeSc7PvX57LPP3J8Hw4cP5/bbbycnJ8ddX/s98fHHH3s87+WXXyYlJYUffvjBa/tnn302AwYMYO7cuezfv/+k+6mx350nflac6vH5/fffmTdvHkOGDGHgwIHMnTuXzZs313ncpk2bmDlzJqmpqUyYMIH333/fa9zFxcUcOnQIi8XS4OurrKzkl19+4YILLiA4ONhdPn36dIxGI1999VWDz/fm+++/p6qqqs5VHG8iIyMxGAxUVFSccjtQc+VDo9Ewe/Zsd1lAQAAXX3wxW7du9ThnvDGZTB6vuz61x2LKlCke5ZMnT8Zms9X5vql9X51YfjIdfljCmjVr6Ny5M4MHD27U49977z169erFOeecg1arZc2aNSxcuBBFUbj88ss9HnvkyBH+/ve/M3v2bGbNmkW3bt3cdf/9738xGAzMnz+fo0eP8vbbb6PValGpVJSXl3PLLbfw+++/s3z5chISErjlllvqjSkvL8+dgM+fPx+j0chHH31U76XBo0ePctttt3HxxRdz0UUXsWzZMu6++2769etHr169gJoP7NWrVzNx4kQSExMpLCzkgw8+YO7cuXzxxRd06tQJqLnEcMMNN7B+/XqmTJnClVdeSVVVFT///DP79+8nKSmpUfv1eJmZmWg0GkJDQyksLOTSSy/FYrFwxRVXEB4ezieffMJNN93kToyO95///AedTse8efOw2+2MGTOGK664gqVLl3LjjTfSvXt3AHr06MHjjz/Ohx9+yPbt23nooYcA3OfBv/71Lz755BPOP/98rrnmGrZ
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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/P39NWbMmEJr+uuvvxzhbvjw4fL29tb69esL/evu8OHDGj9+vB544AFFR0crLi5OEydO1K233qp//etfks6Hle3bt6tjx46qW7euUlJStHbtWvXv318ffPCBbrrpJkmS3W7XiBEjFB8fry5dumjgwIE6e/asvvrqKx04cED169c3dVwvlJycLIvFoipVqiglJUV9+vRRZmamBgwYoGrVqmnjxo0aNWqU4x/dC7322mvy8PDQkCFDlJ2drcjISA0YMEArVqzQyJEjdcstt0iSAgIC9Pzzz2vdunVKTExUTEyMJDnOgylTpmjjxo3q0KGDBg8erMTERL3++uv67bfftGDBgiLtz9dff61hw4apbt26GjNmjP755x+tXLlSffv21YYNG/JdPixIZmamI0heqEqVKk6jGIcPH9YTTzyhPn366N5779Vbb72lkSNHavr06Xr55ZfVt29fSefPv0cffVRbt251zCX79ddf1bdvX910000aNmyYvL299dFHH2n06NF69dVX8x3r6dOnq3r16ho9erQyMjIkSatXr9aMGTPUokULDRo0SEePHtXo0aNVpUoV1apVy7Fubm6uRo0apR9++EG9evVSQECADhw4oGXLlunQoUN67bXXnN7rhx9+0CeffKIHH3xQFStW1IoVKzRu3Djt2LFD1apVU/v27XXo0CFt2bJFkyZNcsxVq169un799VeNGDFCNptN48aNk6enpw4fPqz//ve/Zj4+U3744QedOnVKAwcOlMViKbHtFmTdunWKiYlRhw4dNHDgQGVlZWn//v368ccf1a1bt0seC0lauHChXnnlFXXq1EkPPPCA0tLStHLlSvXr10+bNm1yurR36tQpDRs2TF26dNG9994rX1/fQusaO3askpKS1L9/f/n7+ystLU1fffWV/vzzz0LP8cmTJ+vs2bNObcuWLdPevXtVtWpVSVJKSop69eolNzc39evXT9WrV9cXX3yhZ555RmfOnNGgQYNMHRcUgwFcJD093bBarcaoUaNMr5OZmZmv7eGHHzbatm3r1Hb33XcbVqvV+OKLL5zav/nmG8NqtRpdu3Y1srOzHe2PP/64YbPZjKFDhzr17927t3H33Xfn2/aECRMcr5977jnDZrMZv/zyi6Pt5MmTRqtWrQyr1Wr88ccf+er67rvvHG2pqalGUFCQERsb62jLysoy7Ha70/v+8ccfRlBQkDF//nxH27vvvmtYrVZj6dKl+Y5Lbm5uvrYL9e/f3+jYsaORmppqpKamGklJScZzzz1nWK1WY8SIEYZhGMbMmTPz1XvmzBkjKirKuPvuux015h3Xtm3b5vuMPvroI8NqtRrffPNNvhomTJhghIaGOrXt3bvXsFqtxjPPPOPUHhsba1itViM+Pt5pH/r37+90jKxWqxEXF+dou++++4zw8HDj5MmTTu/RqFEj4+mnn77kMcrbXmH/7d6929E377P973//62jbuXOnYbVajaZNmxpHjx51tK9ZsybfMXnooYeMrl27GllZWY623Nxco3fv3sY999zjaIuLizOsVqvRt29f49y5c472rKwso1WrVkaPHj2MnJwcR/uGDRsMq9XqdJw2bdpkNGrUyOlzNQzDeOeddwyr1Wr88MMPjjar1WrceuutxuHDh52On9VqNVasWOFoW7JkSb7z3TA
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWBVJREFUeJzt3Xd4FOX+/vF7syQkQSFAaNIJZxNKqAGFQ5EivSNNgtKLgIieQxEVQhEVsAQUEBBpAsEAghQRFUUMeECQiCAlSJeS0JOQsNnfH/yyX5cU0iZLwvt1XVwXO/Uzs7NP9t55ZsZks9lsAgAAAAAAWc7F2QUAAAAAAJBbEboBAAAAADAIoRsAAAAAAIMQugEAAAAAMAihGwAAAAAAgxC6AQAAAAAwCKEbAAAAAACDELoBAAAAADAIoRsAAAAAAIMQugHg/2vatKnGjRvn7DJyjYULF6pZs2aqVKmSOnbsmK55+/Tpoz59+thfnz17Vr6+vlq7dm1Wl4lcZO3atfL19VV4eLizS3moGf15yqq29GF6P2fPni1fX19nlwEgh8rj7AIA5G6nT5/WwoULtWvXLl26dEmurq6yWCxq3bq1evToIXd3d2eXmOv06dNHv/zyi/11gQIFVLp0afXq1UtdunSRi0vW/N56/PhxbdmyRZ07d1apUqUcxv3000+aMWOGOnTooJEjR6pgwYJZss6scvbsWTVr1izF8a+++qoGDx6cjRU9vH799Vft2rVLL7zwgvLnz++0Or755hutXr1a4eHhun37try8vFS7dm317NlT9erVc1pdQFbYuHGjIiMj1bdvX2eXAsAAhG4AhtmxY4dGjRolNzc3dezYURaLRfHx8dq3b59mzJih48ePa8qUKc4u027r1q0ymUzOLiNLFC9eXK+88ook6erVq1q/fr0mTJigv/76S//5z3+yZB3Hjx/XnDlzVLdu3SShe/fu3XJxcdG0adPk5uaW6XWVLFlSBw8eVJ48Wftnq127dmrUqFGS4ZUrV87S9eRk+/fv15w5c9S5c2enhG6bzabXXntNa9euVeXKldWvXz95e3vr8uXL+uabb9S3b1+tXLlStWrVyvbakLzc1JZml6+++krHjh0jdAO5FKEbgCHOnDmj0aNH64knntCSJUtUtGhR+7jevXvr1KlT2rFjR6bXY7PZdOfOnSw5Y54V4fBh8fjjjzt06e7Ro4datWqlFStWaNSoUXJ1dc3wsu/cufPA+SMjI+Xu7p5l+9RkMilv3rxZsqx/qly5crq7vmen6OhoeXp6OrsMp/r000+1du1avfDCCxo/frxDmBs2bJjWr1+f5T/GPAjvS+pyU1uakyUkJCg+Pt6QthNA+nBNNwBDLFy4UNHR0Zo2bZpD4E5UtmxZvfDCC/bXoaGhev7551WvXj1VrVpVbdq00eeff55kvqZNm2rIkCHauXOnunTpomrVqmnVqlXas2ePfH19tXnzZs2ZM0cNGzZUzZo19dJLL+nmzZuKi4vTtGnTVK9ePdWsWVPjx49XXFxckmXffx3ikSNHFBgYqGrVqqlRo0b6+OOPFRoaKl9fX509ezZJXXv37tWzzz4rf39/NWvWTOvXr3dY3rVr1/TOO++offv2qlmzpmrVqqWBAwfqyJEjSbb1zp07mj17tlq2bCl/f381aNBAI0aM0OnTp9P0HvyTh4eHqlevrujoaEVFRUm698PISy+9pLp166p69erq3r17kh9CEvfrpk2b9P7776thw4aqXr26li5dqlGjRkmSnn/+efn6+srX19c+/dq1axUdHW0fnnjt6N27d/XRRx+pefPmqlq1qpo2bar33nsvyXtxv5SuQQ0LC9Nzzz2nGjVqKCAgQMOGDdOJEyfSvX9Sk/je7tmzx37MtW/fXnv27JEkbdu2Te3bt5e/v7+6dOmiP/74I8kyTpw4Yd/XidN9++23DtMkXr/6yy+/aNKkSapXr54aN25sH79ixQo1a9ZM1apV07PPPqu9e/cmufZdkuLi4hQcHKxnnnlGVatWVePGjfXuu+8m2ce+vr6aPHmytm/frnbt2qlq1apq27atfvzxR/s0s2fP1rvvvitJatasmf39TDz2d+3apV69eikgIEA1a9ZUy5Yt9d5772VibzuKjY3VJ598ogoVKmjs2LHJnj3t1KmTqlWrlmQfTJ8+XU899ZRq1Kih4cOH24/7f27/7Nmzkyzv/nYgtfelT58+ateunY4fP64+ffqoevXqatiwoRYsWJCm7Utvu5eV7cv9dfj6+iZ77M6bN0+VKlXSxYsXJUl//fWXRo4cqX//+9/y9/dXo0aNNHr0aN28eTPFfRgfH685c+aoRYsW8vf315NPPqlevXpp165dadpPsbGxevPNN/Xkk0+qVq1aGjNmjK5fv24fP3bsWD355JOKj49PMm///v3VsmXLB67jt99+06BBg1SnTh3VqFFD7du315IlS1KcPrXr4u8/tm7duqVp06apadOmqlq1qurVq6d+/frp0KFDku4dRzt27NC5c+fsn7GmTZva50/vZ3rDhg1q27at/P39tXPnzgduOwDjcaYbgCG+//57lS5dOs1dPleuXKl//etfatq0qfLkyaPvv/9eQUFBstls6t27t8O0J0+e1KuvvqoePXqoe/fuKl++vH3cJ598Ind3dw0ePFinTp3S8uXLlSdPHplMJt24cUMjRozQb7/9prVr16pkyZIaMWJEijVdvHjR/sPA4MGD5enpqTVr1qR4FufUqVMaNWqUnn32WXXu3FmhoaEaN26cqlSpon/961+S7gXd7du3q1WrVipVqpSuXLmi1atXKzAwUJs2bVKxYsUkSVarVUOGDFFYWJjatm2r559/Xrdv39auXbt09OhRlSlTJk379Z/Onj0rs9ms/Pnz68qVK+rZs6diYmLUp08fFSxYUOvWrdOwYcPsX+7+6eOPP5arq6sGDBiguLg4NWjQQH369NGyZcs0dOhQVahQQZLk4+Ojd999VyEhITp48KCmTp0qSfbj4PXXX9e6devUsmVL9evXTwcPHtT8+fN14sQJffTRR+nanp9//lmDBg1SqVKlNGLECMXGxmr58uXq1auX1q5dm6TLe3JiYmKShDFJyp8/v8PZ01OnTunVV19Vz5491aFDB3366acaOnSogoKC9P7776tXr16S7h1/L7/8srZu3Wq/dv7YsWPq1auXihUrpkGDBsnT01NbtmzR8OHDNXv27CT7OigoSIUKFdLw4cMVHR0tSfr88881efJkBQQEqG/fvjp37pyGDx+u/Pnzq3jx4vZ5ExISNGzYMO3bt0/du3eXj4+Pjh49qiVLluivv/7Sxx9/7LCuffv2adu2bXruueeUL18+LVu2TC+99JK+//57FSxYUM8884z++usvffXVVxo/frz92vxChQrp2LFjGjJkiHx9ffXSSy/Jzc1Np06d0q+//pqWty9N9u3bp2vXrun555+X2WxO83xTp05V/vz5NWLECJ07d05LlizR5MmT9cEHH2S4luTeF0m6fv26Bg4cqGeeeUatW7fW119/rZkzZ8pisTj8aJKc9LR7Wdm+3K9ly5aaPHmyNm7cmOTSio0bN6pu3boqVqyY4uLi7G1AYGCgvL29dfHiRe3YsUM3btzQ448/nuzy58yZo/nz56tbt26qVq2abt26pd9//12HDh3Sv//97wfu+8mTJ9vfz5MnT2rlypU6f/68li1bJpPJpI4dO2r9+vX66aef1KRJE/t8ly9f1u7duzV8+PBUl79r1y4NGTJERYsW1fPPPy9vb2+dOHFCO3bscPhxOKMmTpyor7/+WoGBgfLx8dG1a9e0b98+nThxQlWqVNHQoUN18+ZN/f333xo/frwkKV++fJLS/5nevXu3tmzZot69e6tgwYIqWbJkpusHkAVsAJDFbt68abNYLLZhw4aleZ6YmJgkw/r3729r1qyZw7AmTZrYLBaL7ccff3QYvnv3bpvFYrG1a9fOFhcXZx/+yiuv2Hx9fW0DBw50mL5Hjx62Jk2aJFn22LFj7a+nTJli8/X1tf3xxx/2YVevXrXVrVvXZrFYbGf
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Portfolio Emergents ===\n",
"Clients exploitables : 530\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 434\n",
"1 1 70\n",
"2 2 26\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Portfolio Global Bond\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdIAAAGGCAYAAAB/pnNVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA71xJREFUeJzs3XdcU9f7B/BPEpbIkCnIUIaAyBBFEERxttbROupGW8XZ2tphrW2t1W+ttnb8WmsddeCu2jqqdXQ6QHGj4pY9RfaeSX5/UFIjoKDADeHzfr18tbm59+R5kpB78uTcc0RyuVwOIiIiIiIiIiIiIiKqkVjoAIiIiIiIiIiIiIiIVBkL6UREREREREREREREj8FCOhERERERERERERHRY7CQTkRERERERERERET0GCykExERERERERERERE9BgvpRERERERERERERESPwUI6EREREREREREREdFjsJBORERERERERERERPQYLKQTERERERERERERET0GC+kEAOjXrx8WLFggdBhqY8OGDejfvz86deqEl156qV7HTpo0CZMmTVLcTkpKgrOzM/bt29fQYdbZuXPn4OzsjHPnztX72AULFsDLy6tB42nO71ehX88FCxagX79+StucnZ3x/fffK25///33cHZ2RlZWVlOHR9QiNOfPMFXEc+5/eM5VpgqvZ2N4lvdIc7Vv3z44OzsjKSnpifs++p5tic8Xqb/m/NmsitiX+A/7EspU4fVsSi0t36ehIXQA6iwhIQEbNmzA6dOn8eDBA2hqasLJyQkvvPACxo4dCx0dHaFDVDuTJk3C+fPnFbcNDQ1hY2OD8ePHY+TIkRCLG+a3o6ioKBw9ehQjRoyAtbW10n1hYWH48ssv8eKLL+KNN96AkZFRgzxmQysoKMC2bdvw559/Ij4+HqWlpTAzM4OnpyeGDx+OPn36CB3iM3N2dla63apVK7Rr1w5Dhw7FlClT0KpVK4Eia3hZWVlYvXo1wsLCkJKSgtatW8PKygq+vr547bXX0Lp1a6FDbFDFxcXYsGEDfHx84Ovrq3TfyZMnce3aNbzxxhsCRUdC4Dm36fGcW3c856rPOTcpKQn9+/dX3NbQ0ICenh7s7Ozg4+ODcePGoV27dgJG2Dj27duHDz74QGmbsbExHB0dMW3aNAQGBgoUGVHDYV+i6bEvUXfsS6hfX2L+/PkI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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABiYAAAHpCAYAAAAGQYQ4AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XdYFEcfB/DvHUVAem8CAh6igoqKvaGxG1Fji+W1K8Yeu8bYjYm9xq7YsGPvLWqwd8XeQJHeO9y+fxBPT0AB4Y7y/TzPPsnNzu7+Zm7YXHZ2ZkSCIAggIiIiIiIiIiIiIiJSALGyAyAiIiIiIiIiIiIiopKDHRNERERERERERERERKQw7JggIiIiIiIiIiIiIiKFYccEEREREREREREREREpDDsmiIiIiIiIiIiIiIhIYdgxQURERERERERERERECsOOCSIiIiIiIiIiIiIiUhh2TBARERERERERERERkcKwY4KIiIiIiIiIiIiIiBSGHRNERERU7Hl4eGDChAnKDqPYWLduHZo0aQJnZ2e0a9cuV8f27NkTPXv2lH0ODAyEk5MT9u3bl99h5tjVq1fh5OSEq1ev5vrYCRMmoGrVqvkaT1Fur4Xh+5wwYQI8PDyUdn1lKAz1TkRERESUG6rKDoCIiIiKprdv32LdunW4fPkyQkJCoKamBolEgpYtW6JLly7Q0NBQdojFTs+ePXHt2jXZZz09PZQpUwbdunVDhw4dIBbnzzsnz58/x7Fjx9C+fXtYW1vL7bt06RL++usv/Pjjjxg2bBgMDAzy5Zr5LS4uDlu2bMGpU6fw5s0bJCcnw8TEBJUrV4anpycaNWqk7BC/m5OTk9xnTU1NWFpaok2bNujTpw80NTWVFFnBiIuLw6ZNm3Dy5EkEBAQgPT0dNjY2aNiwIXr16gUzMzOFxLFt2zZoamqiQ4cOCrleUXTr1i1cvnwZ//vf/6Crq6vscIiIiIioEGLHBBEREeXa+fPnMWLECKirq6Ndu3aQSCRITU3FzZs38ddff+H58+eYOXOmssOUOX78OEQikbLDyBfm5uYYPXo0ACAyMhK+vr6YPHkyXr9+jTFjxuTLNZ4/f47ly5fD3d09U8fElStXIBaLMXv2bKirq3/3taysrHDv3j2oqubfz9I3b96gX79+eP/+PZo2bQpPT09oaWnhw4cPuHDhAgYNGoR58+bB09Mz366pLHXr1pWNWklISMCNGzewZMkSPH78GEuXLlVydPknICAAvXv3RlBQEFq0aIEuXbpATU0NT548wZ49e3D69GmcOHFCIbHs2LEDBgYGhapjoiD+jr7H7du3sXz5crRv354dE0RERESUpcLxy5WIiIiKjICAAIwaNQqWlpbYvHkzTE1NZfu6d++ON2/e4Pz58999HUEQkJycnC8jL/LjAXphoaOjIzd9UpcuXdCiRQts27YNI0aMgJqaWp7PnZyc/M3jw8PDoaGhkW91KhKJUKpUqXw5FwCkpaVh6NChCA8Px5YtW1CtWjW5/UOHDsWlS5eQnp6eb9dUJjs7O7n20K1bN6SmpuLUqVNITk7O17pVls+/U29vb1SvXl1u/6hRo7B27VolRZc/0tLSIJVK8/x3ld9/R4VVQkICtLS0lB0GEREREeUDrjFBREREubJu3TokJCRg9uzZcp0SH9na2uJ///uf7PPevXvRq1cv1K5dG5UqVUKrVq2wffv2TMd5eHhg0KBBuHjxIjp06ABXV1f4+PjI5v8/evQoli9fjvr166Nq1aoYPnw4YmNjkZKSgtmzZ6N27dqoWrUqJk6ciJSUlEzn/nLO/sePH6NHjx5wdXVFgwYNsHLlSuzduxdOTk4IDAzMFNeNGzfw008/wcXFBU2aNIGvr6/c+aKiojBv3jy0bdsWVatWhZubG/r374/Hjx9nKmtycjKWLVuG5s2bw8XFBfXq1cPQoUPx9u3bHH0Hn9PU1ETlypWRkJCAiIgIABmdR8OHD4e7uzsqV66Mzp07Z+os+livR44cwaJFi1C/fn1UrlwZ3t7eGDFiBACgV69ecHJykq2/8HEO+4SEBFn6xznt09LSsGLFCjRt2hSVKlWCh4cHFi5cmOm7+FJ2c+P7+fnh559/RpUqVVC9enV4eXnhxYsX36yP48eP4+nTp/Dy8srUKfFRvXr10LBhw2+e69ixY7K2WLNmTYwZMwbBwcFZ5g0ICEC/fv1QpUoV1KtXD8uXL4cgCHJ51q9fj65du6JmzZpwdXVFhw4dcPz48W/GkVsmJiYQiURQUVHJdXk+rpkRHByMIUOGoGrVqqhVqxbmzZuXqTMnJiYGEyZMQLVq1VC9enWMHz8esbGx+V6ekydP4vHjxxg8eHCmTgkA0NbWxqhRo7I9Prs1RLJqe6GhoZg4cSIaNGiASpUqoV69evDy8pLdEzw8PPDs2TNcu3ZN9jfw+ZopMTExmD17Nho2bIhKlSrhhx9+wJo1ayCVSjNdd/369di0aROaNm0KFxeXr7bvy5cvo1u3bqhevTqqVq2K5s2bY+HChV8tC5Dxnbdq1QouLi5o06YNTp06lWkNjs/j2blzp+xvuGPHjrh3757c+R4/fowJEyagSZMmcHFxQd26dTFx4kRERkbK8ixbtgx//vknAKBJkyayegoMDPzqWhhOTk5YtmyZ3HmcnJzw/Plz/Prrr6hRowZ+/vln2f4DBw7I2rO7uztGjRqFoKAguXO+fv0aw4YNQ926deHi4oIGDRpg1KhRBdJOiYiIiCh3OGKCiIiIcuXcuXMoU6YM3NzccpR/x44dKFeuHDw8PKCqqopz585h+vTpEAQB3bt3l8v76tUr/Prrr+jSpQs6d+6MsmXLyvatWbMGGhoaGDhwIN68eYOtW7dCVVUVIpEIMTExGDp0KO7evYt9+/bBysoKQ4cOzTam4OBgWefJwIEDoaWlhd27d2f7tvKbN28wYsQI/PTTT2jfvj327t2LCRMmoGLFiihXrhyAjAfTp0+fRosWLWBtbY2wsDDs3LkTPXr0wJEjR2Tz36enp2PQoEHw8/ND69at0atXL8THx+Py5ct4+vQpbGxsclSvnwsMDISKigp0dXURFhaGrl27IjExET179oSBgQH2798PLy8vLF26FD/88IPcsStXroSamhr69euHlJQU1KtXDz179sSWLVswePBg2NvbAwAcHBzw559/YteuXbh37x5mzZoFALJ2MGXKFOzfvx/NmzdHnz59cO/ePaxevRovXrzAihUrclWef//9FwMGDIC1tTWGDh2KpKQkbN26Fd26dcO+ffsyTS/1uXPnzgFArhfl/tK+ffswceJEuLi4YPTo0bK39W/dugVfX1+56WnS09PRv39/VK5cGWPHjsXFixexbNkypKenyzp5AMDb2xseHh5o27YtUlNTceTIEYwYMQKrV6/O85oXycnJsg6pxMRE3Lp1C/v370ebNm3kpvXJbXn69esHV1dXjBs3Dn5+ftiwYQPKlCkjezAsCAKGDBmCmzdvomvXrnBwcMCpU6cwfvz4PJXja86cOQPg+7/TnBg2bBieP3+OHj16wMrKChEREbh8+TKCgoJgbW2NSZMmYebMmdDS0sLgwYMBAMbGxgAy6r9Hjx4IDg5G165dYWFhgdu3b2PhwoUIDQ3F5MmT5a61b98+JCcno3PnzlBXV4eenl6WMT179gyDBg2Ck5MThg8fDnV1dbx58wa3bt36alnOnz+PUaNGQSKR4Ndff0V0dDQmT56c7Vochw8fRnx8PLp06QKRSIR169Zh2LBhOH36tGwk1b///ouAgAB06NABJiYmePbsGXbt2oXnz59j165dEIlE+OGHH/D69WscPnwYEydOlK1DY2hoKGuruTFixAjY2tpi1KhRss6+VatWYcmSJWjZsiV++uknREREYOvWrejevbusPaekpMjuaz169ICxsTGCg4Nx/vx5xMTEQEdHJ9exEBEREVE+EoiIiIhyKDY2VpBIJIKXl1eOj0lMTMyU1rdvX6FJkyZyaY0bNxYkEonwzz//yKVfuXJFkEgkQps2bYSUlBRZ+ujRowUnJyehf//+cvm7dOkiNG7
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArgAAAHqCAYAAADvbj1OAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4VMX6wPHv1vTeG4SW0EIvUpRqQbCABQt4VSxYuV4r6s8O2L0qtmvHgqIUpQsCVgREkBY6BEJI79kk287vj2MCSzZ9N4338zw8mpndc+ZMzm7enX1nRqMoioIQQgghhBBthLa5GyCEEEIIIYQrSYArhBBCCCHaFAlwhRBCCCFEmyIBrhBCCCGEaFMkwBVCCCGEEG2KBLhCCCGEEKJNkQBXCCGEEEK0KRLgCiGEEEKINkUCXCGEEEII0aZIgNuCjB49mkceeaS5m9FmfPDBB4wZM4Zu3bpx2WWX1eu5U6dOZerUqZU/p6amkpiYyKJFi1zdzDrbtGkTiYmJbNq0qd7PfeSRR+jbt69L29Oa79eW8Ptsq8587TSVxrw+XMFutzNhwgTeeeedZjl/S9PQ94fmfm225ve1tsZisTBixAi++OKLBj1f7+L2tDjHjh3jgw8+4LfffiMzMxODwUBCQgLjxo1j8uTJeHp6NncT25ypU6eyefPmyp8DAgKIi4vj2muvZdKkSWi1rvlcdfDgQVauXMnEiROJjY11qPv111956aWXuPTSS7nnnnsICgpyyTldrbi4mM8++4w1a9aQkpJCeXk5YWFh9O7dm8svv5yRI0c2dxMbLTEx0eFnLy8voqOjmTBhAjfddBNeXl7N1DLXSk1NZcyYMZU/a7VaIiIi6NGjB3fffTfdunVzeHx5eTnz589n+fLlHD58GLPZTHR0NMOGDWPq1Kl06NChyjlefPFFPvzwQ8aNG8d///tfd19Si/TFF1/g5eXFpEmTmrspDpYtW8bJkyeZMmVKczdFNCO73c6HH37I/PnzycrKIj4+nttvv50JEybU+twz/3aeTq/Xs3v37sqfV6xYwbp169ixYwcpKSkMGjSIzz77rNHtP3ToELNnz+avv/7CYDAwYsQIZs6cSXBwcK3PrW+bdu/ezZtvvslff/1FeXk5cXFxXH311dxwww0AGAwGbrrpJt59912uvPJKPDw86nUtbTrA3bBhAzNmzMBoNHLZZZeRkJCAxWJh69atvPTSSxw8eJBnn322uZtZadWqVWg0muZuhktERkbyn//8B4C8vDyWLFnCY489xtGjR3nggQdcco6DBw8yd+5cBg0aVCXA/eOPP9BqtcyaNQuj0djoc8XExLBjxw70ete9ZFJSUpg2bRppaWmMHTuWyy+/HG9vb9LT0/npp5+4/fbbeeGFF7j88stdds7mMmzYsMpRdJPJxJ9//snrr7/O3r17eeONN5q5da41YcIEzjvvPOx2O4cOHWL+/Pn8/PPPLFiwoDLIzc3N5ZZbbmH37t2MGjWKCRMm4O3tzZEjR1ixYgULFixg165dDsdVFIXly5cTExPD+vXrKS4uxtfXtzkusUYffvihW48/f/58goKCqgS4AwcOZMeOHRgMBreevzoffvgh48ePx8/Pr1nO31a44722Kb322mv873//4+qrryYpKYkff/yR+++/H41Gw/jx42t87vTp07nyyisdykpLS3nyyScZNmyYQ/n8+fPZtWsXSUlJ5Ofnu6Tt6enpXH/99fj5+XHfffdhMpn46KOP2L9/P998802tf0vr06Zff/2V6dOn0717d+688068vb05duwY6enpDo+bNGkSL7/8MkuXLq3SN7VpnXdQHRw/fpz77ruP6OhoPv30U8LDwyvrrr/+elJSUtiwYUOjz6MoCuXl5S4ZCXZFINZS+Pn5OaQFTJ48mYsuuogvvviCGTNmNOqPUHl5ea3Pz8nJwdPT02V9qtFo6v3psSZWq5W7776bnJwcPvvsM/r37+9Qf/fdd/Prr79is9lcds7mFB8f73A/XHvttVgsFtasWUN5eblL+7a5de/e3eFa+/Xrxx133MH8+fN55plnAJg5cybJycm88cYbXHjhhQ7P//e//81rr71W5bibNm0iPT2dTz/9lFtuuYU1a9YwceJE914M6gcSb2/vOj++ud7HtFpts91He/bsYe/evc3y1XZ9fz8tnavfa5tSRkYGH3/8Mddffz1PPPEEAFdddRVTpkzhxRdf5KKLLkKn01X7/DODWIDvvvsOgEsuucSh/MUXXyQiIgKtVlun0eG6ePfddyktLWXRokVER0cD0KtXL2666SYWL17M5MmTa3x+XdtUXFzMww8/zMiRI3njjTdq/FbX39+f4cOHs3jx4noHuG02B/eDDz7AZDIxa9Ysh+C2Qvv27fnXv/5V+fPChQu54YYbGDJkCD179uTiiy/myy+/rPK80aNHc/vtt/PLL78wadIkevXqxVdffVWZ/7VixQrmzp3LueeeS9++fbn33nspKirCbDYza9YshgwZQt++fZk5cyZms7nKsc98g9y7dy9TpkyhV69enHfeebz99tssXLiQxMREUlNTq7Trzz//5MorryQpKYkxY8awZMkSh+Pl5+fzwgsvcMkll9C3b1/69evHLbfcwt69e6tca3l5OW+++SYXXnghSUlJDB8+nLvvvptjx47V6XdwOi8vL3r37o3JZCI3NxdQP4Tce++9DBo0iN69e3P11VdX+dBR0a/Lly/ntdde49xzz6V3797MmzePGTNmAHDDDTeQmJhYmX9Xkb9lMpkqyyvyuaxWK2+99RZjx46lZ8+ejB49mldffbXK7+JM1eWFbdy4keuuu44+ffowYMAA7rjjDg4dOlRrf6xatYr9+/dzxx13VAluKwwfPpwRI0bUeqyVK1dW3ouDBw/mgQceICMjw+ljjx8/zrRp0+jTpw/Dhw9n7ty5KIri8JgPP/yQa665hsGDB9OrVy8mTZrEqlWram1HfYWFhaHRaKq84dfleipyijMyMrjzzjvp27cv55xzDi+88EKVDwWFhYU88sgj9O/fnwEDBvDwww9TVFTk8uupzjnnnANQ+Xr9+++/2bBhA1deeWWV4BbUAPHhhx+uUr506VI6d+7MOeecw5AhQ1i6dGmd25CYmMgzzzzD999/X/l6njRpElu2bHF43JtvvkliYiIHDx7k/vvvZ+DAgVx33XVA3V87znJwzWYzb7zxBueffz49e/ZkxIgRvPjii05fd9999x1XXnklvXv3ZuDAgVx//fX8+uuvgPo+d+DAATZv3lz52q44V3U5uK6+n5xZu3YtBoOBAQMGVJatWrWKxMREp185f/XVVyQmJrJ//36AyuB4zJgxJCUlMWzYMGbOnEleXp7D82r6/VSnsLCQWbNmMWLECHr27Mn555/P//73P+x2O6AO0kydOpVzzjmHnJycyueZzWYuueQSxo4di8lkcjj/oUOHmDFjBv369WPw4ME899xzlJeX19iOuv7tcfZeW5/fj91u55NPPmH8+PEkJSUxdOhQnnjiCQoKChwepygKb7/9Nueddx69e/dm6tSpHDhwwGnbjx07Vqe/e2vXrsVisTj8TjQaDddeey3p6els27at1mOcadmyZXh7ezukPwFERUW5LN2vwg8//MDIkSMrg1uAoUOHEh8fz8qVK2t9fl3btHTpUrKzs7nvvvvQarWYTKbK+9GZoUOHsnXr1nqPVLfZEdz169cTFxdHv3796vT4+fPn06VLF0aPHo1er2f9+vU8/fTTKIrC9ddf7/DYI0eOcP/99zN58mSuvvpqh1y5//3vf3h6enLbbbeRkpLC559/jl6vR6PRUFhYyN13383ff//NokWLiImJ4e677662TRkZGZVB+G233Ya3t3eNXxOkpKQwY8YMrrzySiZOnMjChQt55JFH6NGjB126dAHUAGft2rVcdNFFxMbGkp2dzddff82UKVNYvnw5ERERANhsNm6//XY2btzI+PHjueGGGygpKeG3335j//79tGvXrk79errU1FR0Oh3+/v5kZ2dzzTXXUFpaytSpUwkKCmLx4sXccccdlX8
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXSRJREFUeJzt3Xd4FOXexvF7s0lIQoeEItIxoSSQ0EEQpEiR3qtK73oQhHDwCEgXUQkoInCQJs0AghQFCyAGRASJSJFeBZLQk5Cw2fcP3+xhSSGBTDYJ3891eV3u1N/MzjPk3nlmxmS1Wq0CAAAAAABpzsnRBQAAAAAAkFURugEAAAAAMAihGwAAAAAAgxC6AQAAAAAwCKEbAAAAAACDELoBAAAAADAIoRsAAAAAAIMQugEAAAAAMAihGwAAAAAAgxC6ATyVGjRooMDAQEeXkWUsWLBADRs2VLly5dS6detUzduzZ0/17NnT9vnChQvy8fHR2rVr07rMFNu7d698fHy0d+/eVM8bGBiogICANK0nMx+vGeH77Nmzp1q0aOGw9WcWs2fPlo+PjyHLfpI29bCM9H1m5rYJIP04O7oAAFnHuXPntGDBAu3evVtXr16Vi4uLvL291axZM3Xu3Flubm6OLjHL6dmzp3755Rfb59y5c6to0aLq2rWr2rVrJyentPlt9cSJE9qyZYvatm2rZ5991m7cTz/9pBkzZqhVq1YaNmyY8ubNmybrTGt37tzR0qVLtW3bNp09e1b37t2Tl5eXKlWqpDZt2qh+/fqOLvGJPRyY3N3d9cwzz6hFixbq1auX3N3dHVSZMe7cuaPPP/9c3377rc6fPy+LxaJixYqpXr16euWVV1SwYEFHlwg8tqioKC1YsEDVq1dXjRo1HF0OgCdA6AaQJn788Ue98cYbcnV1VevWreXt7a3Y2Fjt379fM2bM0IkTJzRx4kRHl2mzdetWmUwmR5eRJgoVKqQ333xTknT9+nWtX79eY8eO1ZkzZzRy5Mg0WceJEyc0Z84cVa9ePUHo3rNnj5ycnDR58mS5uro+8bqKFCmiQ4cOydk57f6JOnv2rPr06aNLly6pUaNGatOmjTw8PPT3339rx44dGjBggKZPn642bdqk2Tod5fnnn7f1NoiMjNSvv/6qWbNm6ejRowoKCnJwdWnn/Pnzeu2113T58mU1bdpUnTt3louLi44dO6Yvv/xS27dv1zfffOPoMvH/qlWrpkOHDsnFxcXRpWQaUVFRmjNnjoYOHUroBjI5QjeAJ3b+/HkNHz5czzzzjBYvXqwCBQrYxnXv3l1nz57Vjz/++MTrsVqtunfvXppcMU+LcJhR5MyZ065Ld+fOndW0aVMtX75cb7zxxhP9kXvv3r1Hzh8eHi43N7c026cmk0nZsmVLk2VJ0v379zV06FCFh4dr6dKlqlKlit34oUOH6qeffpLFYkmzdTpSiRIl7I6Hrl27KjY2Vtu2bdO9e/fSdN86yoPf6ZIlS1S1alW78cOHD9f8+fPTva6oqKgs15sgrTg5OWWJYy8riIyMlIeHh6PLAJ4q3NMN4IktWLBAkZGRmjx5sl3gjle8eHG9+uqrts/BwcF65ZVXVKtWLfn6+qp58+b64osvEszXoEEDDRgwQLt27VK7du1UsWJFrVy50nZv4ObNmzVnzhzVrVtXAQEBev3113X79m3FxMRo8uTJqlWrlgICAjRmzBjFxMQkWPbD9+EdPXpUPXr0UMWKFfXCCy/ok08+UXBwsHx8fHThwoUEdf3666/q0KGD/Pz81LBhQ61fv95ueTdu3ND06dPVsmVLBQQEqHLlyurbt6+OHj2aYFvv3bun2bNnq0mTJvLz81OdOnU0dOhQnTt3LkXfwYPc3d1VqVIlRUZGKiIiQtI/P4y8/vrrql69uipVqqROnTol+CEkfr9u2rRJH374oerWratKlSppyZIleuONNyRJr7zyinx8fGz3ZsbfqxsZGWkbHn/v7v379/Xxxx+rUaNG8vX1VYMGDfTBBx8k+C4eltQ9wCEhIerWrZv8/f1VtWpVDRo0SCdPnnzk/ti6dauOHz+uQYMGJQjc8erUqaN69eo9cllbtmyxHYs1atTQyJEjdeXKlUSnPX/+vPr06SN/f3/VqVNHc+bMkdVqtZtm4cKF6tKli2rUqKGKFSuqXbt22rp16yPrSC0vLy+ZTCaZzeZUb0/8PepXrlzR4MGDFRAQoJo1a2r69OkJfqi4deuWAgMDVaVKFVWtWlWjR4/W7du303x7vv32Wx09elQDBw5MELglKUeOHBo+fHiC4SdOnFDPnj1VqVIl1a1bN0EwX7t2bYL2LiV+P3L8fcV//PGHunfvrkqVKumDDz6wHb8LFy7UqlWrbMd/+/btdejQoUduW0rPGw+eB+fOnasXXnhBfn5+evXVV3X27Fm7aX/99Ve9/vrrql+/vnx9fVWvXj1NmTJF0dHRydbSo0cPtWrVKtFxTZo0UZ8+fWyfN23apHbt2tlqbtmypRYvXpzsPjxz5oyGDRum559/Xn5+fnrhhRc0fPjwFB8zf/zxh7p06aKKFSuqQYMGWrFihW3c3bt35e/vr0mTJiWY7++//1a5cuU0b968ZJcfFxenxYsXq2XLlvLz81PNmjXVp08fhYaGJjlPUvfFJ3ZshYaGqk+fPrb236BBA40ZM0bSP+fBWrVqSZLmzJljO7/Onj3bNv/Jkydt53U/Pz+1a9dO3333XaLr/eWXXzR+/HjVqlUrRec6AGmLK90AntgPP/ygokWLqnLlyimafsWKFXruuefUoEEDOTs764cfftCECRNktVrVvXt3u2lPnz6tESNGqHPnzurUqZNKlixpG/fZZ5/Jzc1N/fv319mzZ7Vs2TI5OzvLZDLp1q1bGjp0qH7//XetXbtWRYoU0dChQ5Os6cqVK7YfBvr37y8PDw+tWbMmyau3Z8+e1RtvvKEOHTqobdu2Cg4OVmBgoCpUqKDnnntO0j+ha/v27WratKmeffZZhYWFadWqVerRo4c2bdpku9/UYrFowIABCgkJ0csvv6xXXnlFd+/e1e7du3X8+HEVK1YsRfv1QRcuXJDZbFauXLkUFhamLl26KCoqSj179lTevHm1bt06DRo0SEFBQWrcuLHdvJ988olcXFzUp08fxcTEqE6dOurZs6eWLl2qgQMHqlSpUpKk0qVL67333tPq1at16NAh2x+38cfB22+/rXXr1qlJkybq1auXDh06pHnz5unkyZP6+OOPU7U9P//8s/r166dnn31WQ4cOVXR0tJYtW6auXbtq7dq1Cbq8P+iHH36QpFQ/4O1ha9eu1ZgxY+Tn56c333zTdpX1t99+0/r165UrVy7btBaLRX379lWlSpX01ltvadeuXZo9e7YsFovtBwxJWrJkiRo0aKCWLVsqNjZWmzZt0htvvKF58+Y99j3m9+7ds/3YEhUVpd9++03r1q1TixYt7Lrsp3Z7+vTpo4oVK2rUqFEKCQnRf//7XxUtWlTdunWT9E9PlMGDB2v//v3q0qWLSpcurW3btmn06NGPtR3JiQ8WqflOb968qb59+6px48Zq1qyZvvnmG73//vvy9vZ+7BBy48YN9evXTy+//LJatWql/Pnz28Z9/fXXunv3rjp37iyTyaQFCxZo2LBh2r59e7K9R1J63og3f/58mUwm9e7dW3fu3NGCBQs0cuRIrVmzxjbN1q1bFR0dra5duypPnjw6dOiQli1bpr///jvZWw5at26tt99+W8ePH5e3t7dt+KFDh3TmzBkNGjRIkrR79269+eabqlWrlu2WllOnTum3336z+8H1QTExMbZzTI8ePeTp6akrV67oxx9/1K1bt5QzZ85k9vw/32f//v3VrFkzvfzyy9qyZYvGjx8vFxcXdejQQdmzZ1ejRo20ZcsWjRkzxu4Hp6+//lpWq1UtW7ZMdh1jx47V2rVr9cILL6hDhw6yWCz69ddf9fvvv8vPzy/ZeR8lPDxcffr0Ud68edW/f3/lypVLFy5c0LZt2yRJ+fLl0/jx4zV+/Hg1btzYdp6OD/R//fWXunbtqoIFC6pfv37y8PD
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Portfolio Global Bond ===\n",
"Clients exploitables : 1664\n",
"K retenu : 4\n",
" cluster n_clients\n",
"0 0 1213\n",
"1 1 66\n",
"2 2 142\n",
"3 3 243\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Portfolio Patrimoine\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABiYAAAHpCAYAAAAGQYQ4AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8Tfcfx/H3zbKFiBmkVkIRs9QuWlSp0dYoWnsr1dqqdqhRJUZoa88W6bJao1q7SimhiiIoEiuLkNzfH365dZtEcyO554rX8/E4j/ae8z3nfM4nJ8fN/dzv92sym81mAQAAAAAAAAAA2IGT0QEAAAAAAAAAAICnB4UJAAAAAAAAAABgNxQmAAAAAAAAAACA3VCYAAAAAAAAAAAAdkNhAgAAAAAAAAAA2A2FCQAAAAAAAAAAYDcUJgAAAAAAAAAAgN1QmAAAAAAAAAAAAHZDYQIAAAAAAAAAANgNhQkAAPBUqlevnoYOHWp0GOnGp59+qvr166tUqVJq1qyZTft26NBBHTp0sLwOCQmRr6+v1q1bl9phGmbfvn3y9fXVvn37nqpzpyVfX1/NmjXL6DDsatasWfL19TU6DAAAAOCxuRgdAAAASD/Onz+vTz/9VLt27dLVq1fl6uoqHx8fvfzyy2rdurUyZsxodIjpTocOHbR//37La3d3dxUqVEht27ZVy5Yt5eSUOt9D+fPPP7Vx40a1aNFCBQsWtNr2888/a8qUKXr11VfVr18/5cyZM1XOmVpCQkJUv359y2snJyflzZtXpUuXVt++fVWqVCmbjvfNN98oLCxMHTt2TOVIIUnBwcH67LPPdODAAYWFhSlz5sx69tln1bRpUzVv3lzOzs5pHsOVK1e0Zs0avfjiizbfH0+T5cuXK1OmTGrZsqXRoQAAAOAJQ2ECAACkih07dqh///5yc3NTs2bN5OPjo3v37ungwYOaMmWK/vzzT40bN87oMC02bdokk8lkdBipIl++fBo4cKAk6caNGwoKCtKIESP0119/6f3330+Vc/z5558KCAhQlSpVEhQm9u7dKycnJ02YMEFubm6PfS4vLy8dOXJELi6p+1a1SZMmql27tuLi4nT69GmtXLlSO3fu1Jo1a2z68Pnbb7/VqVOnbCpMPPfcczpy5IhcXV1TEPnjMfLctvriiy/04YcfKleuXGrWrJm8vb0VGRmpvXv3asSIEbp27Zp69uyZ5nFcvXpVAQEB8vLycqjCRK9evdS9e3ejw7BYuXKlcubMSWECAAAANqMwAQAAHtuFCxf07rvvqkCBAlq8eLHy5Mlj2dauXTudO3dOO3bseOzzmM1m3b17N1V6XqTGB+iOIlu2bFbDJ7Vu3VqNGjXS8uXL1b9//8f6QPru3bv/uX9YWJgyZsyYajk1mUzKkCFDqhzrYc8++6xVnipWrKhevXpp5cqVGjt2bKqfT/onf05OTmlyTclh5LltcfjwYX344YcqX7685s+fr6xZs1q2dezYUUePHtWpU6cMjPDxRUVFKXPmzCne38XFJdULdo4mNZ/zAAAAcFzMMQEAAB7bp59+qqioKE2YMMGqKBHP29tbb7/9tuX12rVr9dZbb6latWoqU6aMGjdurBUrViTYr169eurRo4d++ukntWzZUn5+flq1apVlzPwNGzYoICBAtWrVUoUKFfTOO+8oPDxcMTExmjBhgqpVq6YKFSpo2LBhiomJSXDsf88xceLECbVv315+fn6qXbu25syZo7Vr18rX11chISEJ4vrll1/0+uuvq2zZsqpfv76CgoKsjnfz5k1NnjxZTZs2VYUKFVSxYkV17dpVJ06cSHCtd+/e1axZs9SwYUOVLVtWNWvWVN++fXX+/Plk/QwelilTJpUrV05RUVG6fv26pAfFo3feeUdVqlRRuXLl1KpVqwTFovi8fvfdd/r4449Vq1YtlStXTkuWLFH//v0lSW+99ZZ8fX0tcxbEzwURFRVlWR8/N8T9+/c1e/ZsvfjiiypTpozq1aun6dOnJ/hZ/FtSc0zs2bNHb775psqXL6/KlSurV69eOn36tM35iff8889bzidJP/zwg7p3766aNWuqTJkyevHFFzV79mzFxsZa9unQoYN27NihixcvWq63Xr16j8xfREREovM8dOjQQU2aNLHcd+XKldNLL72kTZs2SZL279+vN954Q35+fmrYsKF2796d4BqOHz+url27qmLFiqpQoYLefvttHT582KrNo879559/qkOHDipXrpxq1aqlBQsWJDhHTEyMZs6cqZdeekllypRRnTp19NFHH/3nz9FWAQEBMplMmjp1qlVRIl7ZsmUf+c38oUOHWn4WD0tsXoZdu3apbdu2qly5sipUqKCGDRtq+vTpkh7k6/XXX5ckDRs2LMF9LUm//fabunTpokqVKqlcuXJq3769Dh48mOh5//zzT7333nt67rnn9OabbyYZ/7179xQQEKAGDRqobNmyqlq1qtq2batdu3Y98lru3Lmj8ePHq2rVqqpQoYJ69uypK1euJJiDI37fc+fOaejQoapcubIqVaqkYcOGKTo62uqYyXlG16tXT6dOndL+/fstOYqfKyapuTDWrVuX5PP03895Sbp9+7YmTJigOnXqqEyZMnrppZc0f/58xcXFWR33u+++U8uWLS3P2aZNm2rx4sVJ5hoAAADGS99ftwEAAHaxfft2FSpUSBUrVkxW+5UrV6pEiRKqV6+eXFxctH37do0ZM0Zms1nt2rWzanv27Fm99957at26tVq1aqUiRYpYts2fP18ZM2ZU9+7dde7cOS1btkwuLi4ymUy6ffu2+vbtq99++03r1q2Tl5eX+vbtm2RMV65csRRPunfvrsyZM+uLL75IshfAuXPn1L9/f73++utq0aKF1q5dq6FDh6p06dIqUaKEpAfFgB9++EGNGjVSwYIFFRoaqtWrV6t9+/b67rvvlDdvXklSbGysevTooT179uiVV17RW2+9pcjISO3atUt//PGHChcunKy8PiwkJETOzs7Knj27QkND1aZNG0VHR6tDhw7KmTOn1q9fr169elk+cH7YnDlz5Orqqi5duigmJkY1a9ZUhw4dtHTpUvXs2VNFixaVJBUrVkwfffSR1qxZoyNHjmj8+PGSZLkPRo4cqfXr16thw4bq1KmTjhw5osDAQJ0+fVqzZ8+26Xp2796tbt26qWDBgurbt6/u3LmjZcuWqW3btlq3bl2C4aWSI77okyNHDknS+vXrlTlzZnXq1EmZM2fW3r17NXPmTEVERGjIkCGSpJ49eyo8PFx///23hg0bJknKkiXLI/P3qB4nt27dUs+ePdW4cWM1atRIK1eu1MCBAxUXF6eJEyeqTZs2atKkiT777DO988472rFjh+VD+1OnTqldu3bKkiWLunbtKhcXF61evVodOnTQsmXLVK5cuUde/61bt9S1a1e99NJLevnll7V582ZNnTpVPj4+qlOnjiQpLi5OvXr10sGDB9WqVSsVK1ZMf/zxhxYvXqy//vpLc+bMsTnviYmOjtbevXtVuXJlFShQIFWOmZRTp06pR48e8vX11TvvvCM3NzedO3dOv/76q6QH9/U777yjmTNnqnXr1qpUqZKkf+7rPXv2qFu3bipTpoz69u0rk8mkdevW6e2339aKFSvk5+dndb7+/fvL29tb7777rsxmc5JxBQQEKDAw0FKMioiI0O+//65jx46pRo0aSe43dOhQbdy4Uc2aNVO5cuV04MCBRw73NGDAABUsWFADBw7U8ePH9cUXX8jDw0ODBg2ytEnOM3r48OEaN26cMmfObBley9PT81GpT1Jiz/no6Gi1b99eV65cUZs2bZQ/f34dOnRI06dP17Vr1zRixAhJD4pMAwcOVLVq1SxD1505c0a//vqrVUEcAAAADsYMAADwGMLDw80+Pj7mXr16JXuf6OjoBOs6d+5srl+/vtW6unXrmn18fMw7d+60Wr93716zj4+PuUmTJuaYmBjL+oEDB5p9fX3NXbt2tWrfunVrc926dRMce8iQIZbX48aNM/v6+pqPHz9uWXfjxg1zlSpVzD4+PuYLFy4kiOvAgQO
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAArIAAAHqCAYAAAD4TK2HAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAA9FBJREFUeJzs3Xd4VGX2wPHvtExJ7x1CS0IJXbp0BAELWLCArg10F3VX96eiq2vvu64ga9+1rYiIqCgoIlakiTTpNb33ZGYy7f7+CBkZJgnpBc7neXg099659513Zu6cee+551UpiqIghBBCCCFEJ6Nu7wYIIYQQQgjRFBLICiGEEEKITkkCWSGEEEII0SlJICuEEEIIITolCWSFEEIIIUSnJIGsEEIIIYTolCSQFUIIIYQQnZIEskIIIYQQolOSQFYIIYQQQnRKEsh2cBMnTuS+++5r72acNd544w0mTZpE7969ueSSSxr12Hnz5jFv3jz33xkZGSQlJfHxxx+3dDPbzZYtW0hKSmLLli3n1LFF47Tne/++++5j4sSJbX7cGrt376Zfv35kZma2Wxs6iuZ8ZpcsWUJSUlIrtOrM5FzTsfzwww8MGjSIoqKiJj1e28Lt6RTS0tJ444032LhxI3l5eeh0OhITE7nwwguZM2cOBoOhvZt41pk3bx5bt251/x0YGEh8fDxXX301s2fPRq1umd9UR44cYe3atcyaNYu4uDiPdT/99BPPPfccF198MbfffjvBwcEtcsyWkpGRwaRJk9x/q9VqIiMj6du3LwsXLqR3796N2t/q1aspLCzkD3/4Qwu39Ny2ZMkSXnrpJfffBoOB2NhYpkyZwi233IKfn5/H9o093zidTsaNG0d+fj6vvfYa48aNa5Pn1ZHk5uby4YcfMnny5Ea/71vbCy+8wIwZM4iNjW3vpoh2lJuby5NPPsnGjRtxuVwMHz6c+++/n/j4+Ebtp6ysjKlTp1JUVMSLL77ItGnT3Ou2bNnCddddV+vjli9fzsCBA5vUdpfLxZtvvsmyZcvIz88nISGBBQsWMHPmzDM+dtu2bbz55pvs37+foqIiAgICSE5O5o9//CNDhgzx2Pann35izZo17N69m6NHjxIdHc2GDRu89jl27Fi6dOnCq6++yqJFixr9fM65QPa7777jzjvvxMfHh0suuYTExETsdjvbt2/nueee48iRIzz22GPt3Uy3L7/8EpVK1d7NaBFRUVHcddddABQXF/PJJ5/wwAMPcOLECf7617+2yDGOHDnCSy+9xLBhw7wC2c2bN6NWq3niiSfw8fFp9rFiY2PZvXs3Wm3LfoxmzpzJ2LFjcblcHD16lGXLlvHDDz/w4YcfNupL/fPPP+fw4cONCmTPO+88du/ejU6na0LLm6c9j90UDz/8MCaTCbPZzMaNG3nllVfYsmULy5Ytc39mm3K+2bx5M/n5+cTGxrJ69eoOGci21nu/Rl5eHi+99BKxsbFe7/nHHnsMRVFa5bhnsn//fn7++Wc++OCDdjn+2eS2225j/vz57d2MJqmsrOS6666jvLycBQsWoNPpeOutt5g7dy6ffPJJowZJFi9ejNVqrXebefPmkZKS4rGsS5cuTWo7VP8Ye+2117jyyitJSUnhm2++4e6770alUjFjxox6H3vixAnUajVXXXUVYWFhlJWV8dlnnzF37lxeffVVxo4d6972888/Z82aNfTp04eIiIh69ztnzhyeffZZbr/9dq/BgDNSziFpaWnKwIEDlWnTpim5uble60+cOKG89dZbzT6Oy+VSLBZLs/dzNpk7d64yY8YMj2Vms1kZO3asMnDgQMVmszVr/1arVXE6ncratWuVxMREZfPmzV7b3HfffcrAgQObfIy5c+cqc+fObU4z65Wenq4kJiYqb7zxhsfyb775RklMTFQefPDBRu1v/vz5yoQJExq0bU3/iTNbvHixkpiYqBQWFnosX7hwoZKYmKj8+uuviqI0/Xxzzz33KLNmzVLefvttZeDAgUplZWXrPJFTdLRz1u7du5XExERl5cqV7d0UD4899pgyfvx4xeVytelxO9rrU2Pz5s11nm87sua2+7XXXlMSExOVXbt2uZcdOXJE6d27t/KPf/yjwfs5ePCg0qdPH+Wll15SEhMTlbVr19baztOXN0dOTo7St29f5ZFHHnEvc7lcyjXXXKOMHTtWcTgcjd6n2WxWRo0apdx4441ex6r5bj/T91FBQYHSu3dvZcWKFY0+/jmVI/vGG29gNpt54oknav110LVrV66//nr33ytXruS6665j5MiR9OvXj+nTp/P+++97PW7ixIksWLCAH3/8kdmzZ9O/f38++OADdx7OmjVreOmllzj//PMZNGgQd9xxB+Xl5dhsNp544glGjhzJoEGDWLRoETabzWvfp+fIHjhwgLlz59K/f3/Gjh3Lv//9b1auXElSUhIZGRle7frll1+4/PLLSUlJYdKkSXzyySce+yspKeGZZ57hoosuYtCgQQwePJibb76ZAwcOeD3XqqoqlixZwtSpU0lJSWHMmDEsXLiQtLS0Br0GpzIajQwYMACz2ezOjUlPT+eOO+5g2LBhDBgwgCuvvJLvvvvO43E1/frFF1/wwgsvcP755zNgwADeeecd7rzzTgCuu+46kpKS3HlQNfl8ZrPZvbwmv8/hcLB06VImT55Mv379mDhxIv/85z+9XovT1ZUnuGnTJq655hoGDhzI0KFDue222zh69Gij+6fGiBEj3McDWL9+PfPnz2fMmDH069ePyZMns3TpUpxOp/sx8+bN47vvviMzM9P9fGvyCuvqv4qKilpzx+bNm8fMmTPd77sBAwYwZcoUvvzySwC2bt3KFVdcQf/+/Zk6dSo///yz13PYt28fN998M4MHD2bQoEFcf/317Ny502Ob+o595MgR5s2bx4ABAzj//PN5/fXXvY5hs9lYvHgxU6ZMoV+/fowbN45nn332jK9jSzn9dWrs+QbAarXy9ddfM336dC688EKsVivffPNNg47/8ccfk5SUxLZt23jooYcYPnw4gwcP5p577qG0tNRj27rOWdCwz2Bd7/2jR4+6H5uSksLs2bNrbX9ZWRlPPvkkEydOpF+/fowdO5Z77rmHoqIitmzZwuWXXw7AokWLvD6vteXIms1mnn76acaNG0e/fv2YOnUqb775ptfIbVJSEo8++ijr169n5syZ9OvXjxkzZvDDDz80qI+/+eYbRowY4XGVbMGCBR4pQaeaM2cOs2fPdv/d3O+U+uzatYubbrqJIUOGMGDAAObOncv27dvd648ePUr//v255557PB73yy+/0Lt3b5577jmv4//0009ccsklpKSkMH36dNatW1d/B53c3x133MH48ePdn8Mnn3zSa9SxthzZxrw+ubm5LFq0iFGjRrm3++ijj7y2y8nJ4Y9//CMDBw5k5MiRPPnkk7WeEywWC0ePHm1QnuZXX31FSkoK/fv3dy/r0aMHI0eOZO3atWd8fI0nnniCyZMnM3To0DNuW1FRgcPhaPC+67J+/XrsdjvXXHONe5lKpeLqq68mJyeHHTt2NHqfRqORkJAQysvLPZZHRkY2+ApbaGgoSUlJDT7fneqcSi349ttviY+PZ/DgwQ3aftmyZfTq1YuJEyei1Wr59ttveeSRR1AUhWuvvdZj2+PHj3P33XczZ84crrzySrp16+Ze99prr2EwGJg/fz6pqam89957aLVaVCoVZWVlLFy4kF27dvHxxx8TGxvLwoUL62xTbm6u+8tv/vz5mEwmVqxYUeel8tTUVO68804uv/xyZs2axcqVK7nvvvvo27cvvXr1Aqq/uNavX8+0adOIi4ujoKCA5cuXM3fuXL744gsiIyOB6ty9BQsWsGnTJmbMmMF1111HZWUlGzdu5NChQ0261JGRkYFGoyEgIICCggKuuuoqLBYL8+bNIzg4mFWrVnHbbbe5A5RT/fvf/0an03HTTTdhs9kYM2YM8+bN49133+XWW2+le/fuQPUJ5tlnn+XDDz9k9+7dPP744wDu98Hf/vY3Vq1axdSpU7nhhhvYvXs3r776KkePHmXp0qW
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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/361bNlS5cqV0zfffKO4uDhZLBb17NnTpu9vv/2ml156Sd26ddNTTz2lunXrWpe98847qlChggYMGKBjx45pxYoVKleunBwcHJSZmamYmBj99NNPWr9+vby9vRUTE3PNmk6fPm0NdwMGDFDFihX14YcfXvMqyrFjxzR06FA98cQTioqK0rp16zR69Gg98MADuv/++yX9GVa2bNmidu3aqWbNmkpPT9cHH3ygXr166ZNPPlH16tUlSWazWQMHDlRCQoI6dOig3r176+LFi9q+fbsOHTqk2rVrGzquVzp58qRMJpPc3NyUnp6u7t27KycnR9HR0apSpYo2bNigwYMHW3+YXuntt9+Wk5OT+vbtq9zcXEVGRio6OlrLly/XoEGDdN9990mSfHx89Prrr2vt2rVKSkpSfHy8JFnPg7Fjx2rDhg165JFH1KdPHyUlJWnhwoX69ddfNW/evCKNZ8eOHerfv79q1qypmJgY/fHHH1qxYoV69Oih9evXF7p9aERBKK1cubIkacOGDapYsaL69OmjihUraufOnZo9e7YuXLigUaNGSZIGDRqkrKws/fe//9XLL78sSbrrrruue/yud8Xu/PnzGjRokNq3b6927dpp9erVGjZsmPLz8zV58mR1795dHTt21LvvvqvY2Fh9++231lBx+PBh9ezZU3fddZf69euncuXK6YMPPlB0dLRWrFih4ODg647//Pnz6tevn9q0aaNHH31UX3zxhWbMmCFfX181b95ckpSfn6/Bgwdr9+7deuqpp+Tj46NDhw5p6dKlOnr0qN5+++0iH/erycnJ0c6dO9WoUSPVqFGjRLZ5LYcPH9bAgQPl5+en2NhYOTs769ixY/q///s/SX+e17GxsZo9e7a6deumhg0bSvrfeZ2QkKD+/fsrICBAMTExcnBw0Pr16/XMM89o1apVCgoKstnf0KFDVadOHb344ouyWCzXrGvu3LlauHChNSxfuHBB+/bt088//6yHHnroqut069ZN4eHhNm3btm3Tpk2bVLVqVUnG38O/Oy4oJgvwF1lZWRZfX1/L4MGDDa+Tk5NTqO2f//ynpVWrVjZtDz/8sMXX19fyn//8x6Z9586dFl9fX0vHjh0tubm51vZhw4ZZ/Pz8LP369bPp361bN8vDDz9caNujRo2yvp40aZLFz8/P8ssvv1jbzp49a2nSpInF19fXcuLEiUJ1/fDDD9a2jIwMS0BAgGXq1KnWtkuXLlnMZrPNfk+cOGEJCAiwzJ0719r20UcfWXx9fS1LliwpdFzy8/MLtV2pV69elnbt2lkyMjIsGRkZluTkZMukSZMsvr6+loEDB1osFovltddeK1TvhQsXLC1btrQ8/PDD1hoLjmurVq0KvUefffaZxdfX17Jz585CNYwaNcoSEhJi07Z//36Lr6+v5ZVXXrFpnzp1qsXX19eSkJBgM4ZevXrZHCNfX1/LunXrrG2PP/64JTw83HL27Fmbffj7+1tGjhx53WNUsL05c+ZYMjIyLGlpaZZdu3ZZOnfubPH19bV88cUXFovl6uflq6++agkODrZcunTJ2jZgwIBC55PFcv3jV7DsyuPXq1cvi6+vr2XTpk3Wtl9//dXi6+tr8ff3tyQmJlrbt23bVuiYPPfcc5YHHnjAcvz4cWvb6dOnLaGhoZaePXsa2ve
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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tWrV0rRp0xyOQ0lavHixunfvrqefflqVKlVSx44d7cdOUs6ePSt/f38tXbo0wbhff/1V/v7+2rx5syTp9u3bmjRpkho1aqSKFSuqdu3a6tevnw4fPpzkPpSkr7/+Wh07drSf89q0aaPPPvvsofso3tKlS9WwYUNVqlRJvXv31rFjx+zj4s/Hf/zxR4L55s+fr3LlyunSpUvJLv/SpUv6z3/+Y/+cN2rUSOPGjUv2eE7qvvjEjq3ly5erVatWqly5smrUqKGOHTtq06ZNkqTZs2dr+vTpkqTGjRvbzyH//v/Ll19+af//Xc2aNfXKK6/o4sWLCdbbunVr/f777+rVq5cqV66s999/P9ntBpA5uNINwDD/+9//VLx4cVWtWjVF069atUpPPfWUGjVqpBw5cuh///ufJkyYIJvNpl69ejlMe+rUKb366qvq1q2bunbtqtKlS9vHffLJJ3J3d9fgwYN1+vRprVixQjly5JDJZNLNmzc1YsQI/fbbb1q/fr2KFi2qESNGJFnTpUuX7D8MDB48WJ6enlq7dm2SV7hOnz6tl156SZ07d1aHDh20bt06BQcHq0KFCnrqqack3f+Cu337djVv3lzFihXT1atXtWbNGvXu3Vtff/21ChUqJEmyWCwaMmSIwsLC1KpVKz3//PO6c+eOdu/erWPHjqlEiRIp2q//du7cOZnNZuXJk0dXr15V9+7dFR0drT59+ih//vzasGGDhg4dag9T//bxxx/L1dVVAwYMUGxsrOrWras+ffpo+fLlevHFF1WmTBlJkq+vr6ZPn67Q0FAdOnRIEydOlCT7cfDWW29pw4YNatasmfr166dDhw5pwYIFOnHihObOnZuq7dmzZ48GDRqkYsWKacSIEYqJidGKFSvUo0cPrV+/PkGX95SI/0EjX758kqQNGzbI09NT/fr1k6enp/bu3auQkBDdvn1bb7zxhiTpxRdf1K1bt/TPP/9o7NixkqRcuXIlu/+Suxp448YNvfjii2rZsqWaN2+uVatWafTo0bJarZo8ebK6d++u1q1ba/HixRo1apS+//57eyD966+/1KtXL+XKlUsDBw5Ujhw5tGbNGvXp00crVqxQ5cqVk93+GzduaODAgWratKlatGihb775RjNnzpSfn5/q168vSbJarRo6dKj279+vrl27ytfXV8eOHdNnn32mv//+Wx9//HGq93tioqOjtXfvXlWvXl1PPvlkiufbvHmz7ty5o27duslkMmnRokUaOXKktm/fnuarsOvXr9fdu3fVtWtXubm5KW/evPZxL7/8sooVK6bRo0frjz/+0Nq1a1WgQAG9/vrryS5z27ZtiomJUY8ePZQvXz4dOnRIK1as0D///KOQkBCHaS0WiwYMGKBKlSppzJgxCgsL06effqrixYurZ8+e9umWLVumRo0aqU2bNoqLi9PXX3+tl156SQsWLFCDBg0SrSP+PP3VV18luD1i06ZNypUrl/35B+PGjdM333yj3r17y9fXV9evX9f+/ft14sQJVahQIdHl7969W6NHj1bt2rXtt7acPHlSv/76q8MPr0nZuHGj7ty5o549e+ru3btavny5XnjhBW3atEne3t5q1qyZ3n33XW3atEnly5dPUH/NmjXt59XEXLp0SZ07d9atW7fUtWtXlSlTRpcuXdI333yjmJi
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Portfolio Patrimoine ===\n",
"Clients exploitables : 1107\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 801\n",
"1 1 271\n",
"2 2 35\n",
"\n",
"================================================================================\n",
"Running clustering for family: Carmignac Portfolio Emerging Patrimoine\n",
"================================================================================\n"
]
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 1500x400 with 3 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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VahQQf/73//02WefKS4uztaUP9ann36qXLlyafLkyYl+AV+3bl01aNAgyf3/fc/FS2xehu+++06tW7e2POtatGih5cuXS3qYr6SeIfH27t1ryXuVKlXUs2dPnT17NsF5q1SposuXL6tHjx6qUqXKY3uFhYeHa9KkSWrYsKEqVKigWrVqqUuXLjp58uRjryW57w1b3m9LlixRu3btVLNmTfn4+Kh169bavn27VRtvb29FRkZq8+bNlhzF/3cqqbkw5s6dK29v7wTHGT9+vL755hs1a9ZMFStW1P79+yVJN27c0MiRI1W7dm1VqFBBzZo101dffZXguCtXrlSzZs1UqVIlPffcc2rdurW2bNmSZK4BAADSK3pMAADgwHbv3q2iRYuqatWqyWq/du1alSlTRg0bNpSLi4t2796tcePGyWw2q0OHDlZtL1y4oPfff19t27ZVmzZtVKJECcu2zz77TJkzZ1bPnj116dIlrVq1Si4uLjKZTAoNDVX//v117Ngxbdq0SYULF1b//v2TjOnGjRuW4knPnj2VNWtWffnll0n2Arh06ZIGDhyoN954Q61atdLGjRs1YsQIlS9fXmXKlJH0sBjwww8/qEmTJipSpIiCgoK0fv16dezYUd99951lqJvY2Fj16tVLBw8eVLNmzfT2228rIiJCP//8s/766y8VK1YsWXl9VEBAgJydnZUzZ04FBQWpXbt2ioqKUqdOnZQ7d25t3rxZffr00Zw5c/S///3Pat8FCxbI1dVV3bp1U3R0tOrUqaNOnTpp5cqV6t27t0qWLClJKlWqlKZPn64NGzbo+PHjmjhxoiRZ7oMxY8Zo8+bNaty4sbp06aLjx4/L19dX586d0/z58226ngMHDqhHjx4qUqSI+vfvr3v37mnVqlVq3769Nm3alKyhYaKioiyFmkflzJnTajikS5cu6f3331e7du306quv6osvvlDv3r01btw4ffLJJ2rfvr2kh/ffe++9p+3bt1vm8jh79qzat2+v/Pnzq0ePHsqaNau2bdumfv36ae7cuQlyPW7cOHl4eKhfv36KjIyUJK1Zs0bjx49X9erV1blzZ129elX9+vVTzpw5VaBAgf+8ztjYWHXr1k0+Pj4aNmyYDh48qC+++EJFixbVW2+9JenhL6j79Omj48ePq3379ipZsqR27dql4cOH/+fxHye+kJYrVy5JyXuvjxo1ShMmTFDWrFnVu3dvSZKnp+d/5ikpT/L3e9L7LDnPhaioKHXs2FE3btxQu3btVLBgQR09elSzZs3SrVu3NHr0aBsynrSLFy/q/Pnzev3115U9e/ZUOWZSfv75Zw0ePFi1atWyFArOnz+v33//Xe+8846ee+65JJ8hkuTn56cRI0aoTp06GjJkiKKiorR27Vq99dZb2rx5s1XeHzx4oG7duqlatWoaPnz4Y3vQffjhh9qxY4c6duyoUqVK6c6dO/rtt9907tw5lS9fPtF9bH1vJOf9JkkrVqxQw4YN1aJFC8XExOi7777TwIED5evrqxdffFGSNH36dI0ZM0Y+Pj5q06aNJKXo+S89HGJv27Zt6tChg3Lnzq3ChQsrKChIbdq0kclkUocOHeTh4aF9+/Zp9OjRCg8PV+fOnSVJGzZs0MSJE9W4cWO9/fbbun//vs6cOaNjx47ZZdgvAAAAh2I
"text/plain": [
"<Figure size 1800x500 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 700x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAGGCAYAAACNCg6xAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPDxJREFUeJzt3Xl8THf///9nVqIIIrTWajQL2YVKGqWW1lIqaFFL67JUa+uiqKpaYu2GUpReqtZqLVfRlbaaauhyJY3WVqW2XB+SWBKSSkzm94df5mtE4mQyMhGP++2W2828z/Y6Z84czznnPec4mc1mswAAAHBDzo4uAAAA4FZBcAIAADCI4AQAAGAQwQkAAMAgghMAAIBBBCcAAACDCE4AAAAGEZwAAAAMIjgBAAAYRHDCDbVu3Vrjxo1zdBllxtKlS9WmTRsFBATo0UcfLdK0/fr1U79+/SyvT5w4IT8/P23YsMHeZZYpt/t22rBhg/z8/HTixInbatk3y+26P40bN06tW7d2dBkO5+roAm5Xx44d09KlS7Vz506dPn1abm5u8vX1VYcOHdSzZ0+VL1/e0SWWOf369dNPP/1kee3p6am6deuqd+/e6tatm5yd7fM94tChQ/r8888VExOjOnXqWA374Ycf9Prrr6tLly4aMWKEqlatapdl2suJEyfUpk2bAoe/+OKLGjJkSAlWdOvbvXu3+vfvb3nt6uqqO++8U02aNNGIESNUt27dIs1v1apV8vDwULdu3exdKnTl/VqxYoUSEhJ0/vx5VapUSSEhIerWrZseeuihEqmhsGMIHI/g5ADfffedRo0aJXd3dz366KPy9fVVTk6Ofv31V73++us6dOiQpk6d6ugyLb744gs5OTk5ugy7uPPOO/XCCy9Iks6ePatNmzbplVde0d9//63Ro0fbZRmHDh3S/Pnz1axZs3wHvV27dsnZ2VnTpk2Tu7t7sZdVu3ZtJSUlydXVvh/lRx55RA888EC+9kaNGtl1OSXlZm2noujXr5+CgoJ0+fJl7d27Vx999JF27NihTz/9VDVr1jQ8nzVr1qhq1apFCk6PPvqoOnXqZJd9rqgcueyimjdvnhYsWKC7775bPXv2VK1atXTu3Dnt2LFDI0aM0BtvvKHOnTvf9DoKO4Y40tSpU8XjbQlOJe748eN6/vnnVatWLS1fvlw1atSwDOvTp4+OHj2q7777rtjLMZvNunTpkl3OXN0KBzyjKlWqZHV5rGfPnmrfvr1WrVqlUaNGyc3NzeZ5X7p06YbTp6WlqXz58nbbpk5OTipXrpxd5nW1Ro0aFfkyYknKzMxUhQoVDI9/s7ZTUURERKh9+/aSpO7du+vuu+9WbGysNm3apKeffvqmLDNvO7m4uMjFxeWmLONGHLnsovjiiy+0YMECPfzww3rzzTetPsuDBg1SXFycLl++7MAKi6+on5trFef4WJbQx6mELV26VJmZmZo2bZpVaMpTv359Pfnkk5bX69evV//+/RUZGanAwEB17NhRq1evzjdd69at9fTTTysuLk7dunVTcHCw1q5dq927d8vPz0+fffaZ5s+frxYtWigsLEwjR45URkaGsrOzNW3aNEVGRiosLEwvv/yysrOz88372j5O+/fvV9++fRUcHKwHHnhA7777rtavX5+vL0NeXb/88ot69OihoKAgtWnTRps2bbKa37lz5zRr1ix17txZYWFhCg8P16BBg7R///5863rp0iW98847evjhhxUUFKTo6GgNHz5cx44dM/QeXM3Dw0MhISHKzMzUmTNnJF0JtyNHjlSzZs0UEhKixx9/PF+YzduuW7du1dtvv60WLVooJCREH374oUaNGiVJ6t+/v/z8/OTn52cZf8OGDcrMzLS05/WRuHz5shYsWKC2bdsqMDBQrVu31ltvvZXvvbhWQX0t4uPj9cQTTyg0NFQRERF65pln9NdffxV5+xQm773dvXu3ZZ/r3Lmzdu/eLUn66quv1LlzZwUFBalbt27au3dvvnn89ddflm2dN9727dutxsnrI/PTTz9p0qRJioyMVMuWLS3DV61apTZt2ig4OFg9evTQL7/8Yqgv2Lhx4xQWFqZTp07p2WefVVhYmJo3b65Zs2bJZDJZ1XD27Fm99NJLCg8PV0REhMaOHav9+/cXq59L8+bNLbVJxj7rrVu31p9//qmffvrJsg/lrWdh2+l6/Yzs8f4Z2c8KW/aNjguSlJ6ermnTpqlly5YKDAxUu3bt9N577yk3N7eom7xQc+fOVZUqVTR9+vTrBoQWLVrowQcfLHD6a/e5PNfrF7R161Z169bNcqzr3Lmzli9fLunK9iroGJJnx44dlu0eFhamIUOG6M8//8y33LCwMB07dkyDBw9WWFhYoWfVL1y4oGnTpql169YKDAxUZGSkBgwYoD/++KPAdenXr5+lvmv/rv5cGH0PC9supQlnnErYt99+q7p16yo8PNzQ+GvWrNG9996r1q1by9XVVd9++60mT54ss9msPn36WI175MgRvfjii+rZs6cef/xxNWjQwDLsvffeU/ny5TVkyBAdPXpUK1eulKurq5ycnJSenq7hw4frt99+04YNG1S7dm0NHz68wJpOnTplCXdDhgxRhQoV9PHHHxd4FuXo0aMaNWqUevTooZiYGK1fv17jxo1T48aNde+990q6Ela2bdum9u3bq06dOkpNTdVHH32kvn37auvWrZZLGSaTSU8//bTi4+PVqVMn9e/fXxcvXtTOnTt18OBB1atXz9B2vdqJEyfk4uKiypUrKzU1Vb169VJWVpb69eunqlWrauPGjXrmmWc0b948tWvXzmrad999V25ubho4cKCys7MVHR2tfv36acWKFRo6dKjuueceSZKPj49mz56tdevWKSkpSbGxsZJk2Q8mTJigjRs36uGHH9aAAQOUlJSkxYsX66+//tKCBQuKtD4//vijBg8erDp16mj48OH6559/tHLlSvXu3VsbNmwwdOo/KyvLEiSvVrlyZavLXUePHtWLL76oXr16qUuXLvr3v/+toUOHavLkyXr77bfVu3dvSVf2v+eee05ffPGFpS/Zn3/+qd69e6tmzZoaPHiwKlSooM8//1zDhg3TO++8k29bT548WdWqVdOwYcOUmZkpSVq9erWmTJmiiIgIPfXUUzp58qSGDRumypUr684777zheppMJg0cOFDBwcEaM2aM4uPj9e9//1t169bVE088IUnKzc3VM888o6SkJPXu3Vv33HOPtm/frrFjx95w/oXJC/pVqlSRZOyzPn78eE2dOlUVKlTQ0KFDJUnVq1e/4XYqSHHev+LuZ0aOC1lZWerbt69OnTqlXr166a677lJCQoLeeustpaSk6JVXXinCFi/Y33//rcOHD6t79+6qWLGiXeZZkJ07d+qFF15QZGSkJcgcPnxY//3vf/Xkk0+qadOmBR5DJGnTpk0aN26coqOjNXr0aGVlZWnNmjV64okntHHjRqvtfvnyZQ0cOFBNmjTR2LFjC70C8dprr+nLL79U37595ePjo3PnzunXX3/VX3/9pcaNG193mqFDh6pHjx5WbZ9++ql++OEHeXl5STL+Ht5ou5QqZpSYjIwMs6+vr/mZZ54xPE1WVla+tn/961/mNm3aWLU9+OCDZl9fX/P3339v1b5r1y6zr6+v+ZFHHjFnZ2db2l944QWzn5+fedCgQVbj9+zZ0/zggw/mm/fYsWMtr6dOnWr28/Mz792719J29uxZc7Nmzcy+vr7m48eP56vr559/trSlpaWZAwMDzTNnzrS0Xbp0yWwymayWe/z4cXNgYKB5/vz5lrZPPvnE7Ovra162bFm+7ZKbm5uv7Wp9+/Y1t2/f3pyWlmZOS0szHzp0yDx16lSzr6+v+emnnzabzWbztGnT8tV74cIFc+vWrc0PPvigpca87dqmTZt879Hnn39u9vX1Ne/atStfDWPHjjWHhoZate3bt8/s6+trfuWVV6zaZ86cafb19TXHx8dbrUPfvn2ttpGvr695/fr1lrZHH33UHBkZaT579qzVMvz9/c1jxowpdBvlza+gv4SEBMu4ee/tf//
"text/plain": [
"<Figure size 600x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXR5JREFUeJzt3Xd0FGX//vFrsySQgNTQRGowoSRAICAgvfcqTYLSO1gfiqiAdAGRAAKC0gWDAQRF5AEVUQOiDwgiRYp0gRB6Kpv9/cEv+2VJYVMmS8L7dQ7nsPe0z8zOTvbauWfGZLVarQIAAAAAAOnOxdkFAAAAAACQVRG6AQAAAAAwCKEbAAAAAACDELoBAAAAADAIoRsAAAAAAIMQugEAAAAAMAihGwAAAAAAgxC6AQAAAAAwCKEbAAAAAACDELoBGK5Ro0YaM2aMs8vIMpYuXarGjRurfPnyat++fYqm7dWrl3r16mV7ff78efn4+GjDhg3pXWaW8qRvpw0bNsjHx0fnz59/opZtlL1798rHx0fbtm1zdimPPR8fH82bN8+QeT98PEytx+n9zIqfFyAryObsAgCkztmzZ7V06VL9/PPPunLlilxdXeXt7a2WLVuqW7duypEjh7NLzHJ69eqlX3/91fY6T548Kl68uHr06KFOnTrJxSV9fsc8ceKEvvnmG3Xs2FHPPPOM3bCffvpJM2fOVLt27TRixAjly5cvXZaZXs6fP6/GjRsnOfyNN97QwIEDM7CizG/v3r166aWXbK+zZcumIkWKqFq1ahoxYoSKFy+eovmtWbNG7u7u6tSpU3qXCt1/v1atWqX9+/fr5s2beuqpp1S5cmV16tRJzZo1c3Z5QJrs2rVLBw8e1IgRI5xdCpCpELqBTOiHH37QK6+8Ijc3N7Vv317e3t6KjY3V77//rpkzZ+rEiROaNGmSs8u02bZtm0wmk7PLSBdFihTR66+/Lkm6fv26Nm3apHHjxumff/7Rm2++mS7LOHHihObPn68aNWokCN179uyRi4uLpkyZIjc3tzQvq1ixYjp48KCyZUvfPwdt2rRRvXr1ErRXqFAhXZeTUYzaTinRq1cv+fn56d69e/rrr7/0+eefa9euXdq8ebMKFy7s8HzWrl2rfPnypSh0t2/fXq1bt06XfS6lnLnslAoKCtKCBQtUqlQpdevWTU8//bRu3LihXbt2acSIEZo1a5batm3r7DLx/33yySfOLiHT2bVrl9asWUPoBlKI0A1kMufOndNrr72mp59+WitWrFChQoVsw3r27KkzZ87ohx9+SPNyrFaroqOj0+WMeWb4suyop556yq5Ld7du3dSiRQutWbNGr7zyilxdXVM97+jo6EdOf+3aNeXIkSPdtqnJZFL27NnTZV4PqlChQoq7vmekiIgIeXh4ODy+UdspJQICAtSiRQtJUufOnVWqVClNnjxZmzZt0qBBgwxZZvx2MpvNMpvNhizjUZy57JTYtm2bFixYoObNm2v27Nl2n+X+/ftr9+7dunfvXobWFH9MSa9eOFlNVvrblJml5/cN4HHFURjIZJYuXaqIiAhNmTLFLnDHK1mypF5++WXb65CQEL300kuqVauWfH191apVK3322WcJpmvUqJEGDRqk3bt3q1OnTqpUqZLWrVtnu1Zt69atmj9/vurWrSt/f3+NHDlSt2/fVkxMjKZMmaJatWrJ399fY8eOVUxMTIJ5P3xN99GjRxUYGKhKlSqpXr16+uijjxQSEpLgWrT4un777Te98MIL8vPzU+PGjbVp0ya7+d24cUMzZsxQ27Zt5e/vr6pVq6p///46evRognWNjo7WvHnz1Lx5c/n5+alOnToaPny4zp4969B78CB3d3dVrlxZERERCg8Pl3T/h5GRI0eqRo0aqly5srp27Zrgh5D47fr1119rzpw5qlu3ripXrqyVK1fqlVdekSS99NJL8vHxkY+Pj238DRs2KCIiwtYef43xvXv3tGDBAjVp0kS+vr5q1KiRPvjggwTvxcOSulY5NDRUL774oqpUqaKAgAANGTJEJ0+eTPH2SU78e7t3717bPte2bVvt3btXkrR9+3a1bdtWfn5+6tSpk/76668E8zh58qRtW8ePt3PnTrtx4q9x/PXXXzVhwgTVqlVL9evXtw1fs2aNGjdurEqVKumFF17Qb7/95tC172PGjJG/v78uX76soUOHyt/fXzVr1tSMGTNksVjsarh+/br+85//qGrVqgoICNDo0aN19OjRNF0nXrNmTVttkmOf9UaNGunvv//Wr7/+atuH4tczue2U2HWi6fH+ObKfJbfsRx0XJOnWrVuaMmWK6tevL19fXzVt2lQff/yx4uLiUrrJkzV37lzlzZtXU6dOTfTHs7p166phw4Z2bXFxcVq4cKHq1asnPz8/vfzyyzpz5ozdOEndE+PhfTSpY8qdO3dStK8mZseOHRo4cKDq1KkjX19fNWnSRAsWLEgwba9evdSmTRudOHFCvXr1UuXKlVW3bl0tWbLEbryYmBjNnTtXnTp1UrVq1VSlShW9+OKL2rNnT7J17NmzRz4+Pvrvf/+bYNiWLVvk4+Oj/fv3S5KuXr2qsWPHql69evL19VWdOnU0ZMgQu/0osWu6V61apdatW6ty5cqqXr26OnXqpC1btjxyG0n3388PPvhAzz//vKpUqaLBgwfr0qVLtuFBQUGqWLGi7W/Fg9555x0FBAQoOjo62WWcPHlSr7zyimrWrKlKlSqpefPmmjNnTrLTJHVd/MP7VmxsrObPn69mzZrJz89Pzz33nHr06KGff/5Z0v1j3po1a2zzjP/34PovX75crVu3lp+fn2rXrq13331XN2/eTLDcxL5vAFkZZ7qBTOb7779X8eLFVbVqVYfGX7t2rZ599lk1atRI2bJl0/fff6+JEyfKarWqZ8+eduOePn1ab7zxhrp166auXbuqdOnStmEff/yxcuTIoYEDB+rMmTNavXq1smXLJpPJpFu3bmn48OH6448/tGHDBhUrVkzDhw9PsqbLly/bfhgYOHCgPDw8tH79+iTPOpw5c0avvPKKXnjhBXXs2FEhISEaM2aMKlasqGeffVbS/aC7Y8cOtWjRQs8884zCwsL0+eefKzAwUF9//bWt+63FYtGgQYMUGhqq1q1b66WXXtLdu3f1888/6/jx4ypRooRD2/VB58+fl9lsVu7cuRUWFqbu3bsrMjJSvXr1Ur58+bRx40YNGTJEQUFBatq0qd20H330kVxdXdWvXz/FxMSoTp066tWrl1atWqXBgwerTJkykiQvLy+9//77Cg4O1sGDBzV58mRJsu0Hb7/9tjZu3KjmzZurT58+OnjwoBYvXqyTJ09qwYIFKVqfX375RQMGDNAzzzyj4cOHKyoqSqtXr1aPHj20YcOGBF3eExMZGZnoF8vcuXPbddE+c+aM3njjDXXv3l3t2rXTp59+qsGDB2vixImaM2eOevToIen+/vfqq69q27ZttrN2f//9t3r06KHChQtrwIAB8vDw0DfffKNhw4Zp3rx5Cbb1xIkTlT9/fg0bNkwRERGSpM8++0zvvfeeAgIC1Lt3b124cEHDhg1T7ty5VaRIkUeup8ViUb9+/VSpUiWNGjVKoaGh+vTTT1W8eHG9+OKLku5/ER0yZIgOHjyoHj16qEyZMtq5c6dGjx79yPknJ/5Horx580py7LP+1ltvadKkSfLw8NDgwYMlSZ6eno/cTklJy/uX1v3MkeNCZGSkAgMDdfnyZXXv3l1FixbV/v379cEHH+jq1asaN25cCrZ40v755x+dOnVKnTt3Vq5cuRyebsmSJTKZTOrbt6/u3LmjpUuX6s0339T69etTXcvDx5T4HwAc2VeTsnHjRnl4eKhPnz7y8PDQnj17FBQUpDt37iTYj2/evKn+/furadOmatmypb799lvNmjVL3t7eth9x7ty5o/Xr16tNmzbq0qWL7t69qy+++EL9+/fX+vXrVb58+UTreO6551S0aFFt2bIlwed7y5YtKlGihPz9/SVJI0aM0IkTJxQYGKhixYopPDxcP//8sy5dupTkvhUcHKzJkyerefP
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"=== Carmignac Portfolio Emerging Patrimoine ===\n",
"Clients exploitables : 1099\n",
"K retenu : 3\n",
" cluster n_clients\n",
"0 0 916\n",
"1 1 72\n",
"2 2 111\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>fund_family</th>\n",
" <th>n_clients</th>\n",
" <th>best_k</th>\n",
" <th>silhouette</th>\n",
" <th>davies_bouldin</th>\n",
" <th>min_cluster_size</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Carmignac Patrimoine</td>\n",
" <td>3058</td>\n",
" <td>3</td>\n",
" <td>0.895515</td>\n",
" <td>0.370484</td>\n",
" <td>156.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Carmignac Emergents</td>\n",
" <td>1724</td>\n",
" <td>3</td>\n",
" <td>0.894999</td>\n",
" <td>0.364722</td>\n",
" <td>94.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Carmignac Investissement</td>\n",
" <td>2126</td>\n",
" <td>4</td>\n",
" <td>0.880809</td>\n",
" <td>0.470763</td>\n",
" <td>36.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Carmignac Portfolio Grande Europe</td>\n",
" <td>1344</td>\n",
" <td>3</td>\n",
" <td>0.872593</td>\n",
" <td>0.411056</td>\n",
" <td>81.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Carmignac Portfolio Emerging Patrimoine</td>\n",
" <td>1099</td>\n",
" <td>3</td>\n",
" <td>0.758284</td>\n",
" <td>0.679727</td>\n",
" <td>72.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Carmignac Portfolio Emergents</td>\n",
" <td>530</td>\n",
" <td>3</td>\n",
" <td>0.727076</td>\n",
" <td>0.672260</td>\n",
" <td>26.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Carmignac Sécurité</td>\n",
" <td>1573</td>\n",
" <td>4</td>\n",
" <td>0.712026</td>\n",
" <td>0.883459</td>\n",
" <td>85.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Carmignac Portfolio Long-Short European Equities</td>\n",
" <td>586</td>\n",
" <td>4</td>\n",
" <td>0.706218</td>\n",
" <td>0.660681</td>\n",
" <td>28.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Carmignac Portfolio Flexible Bond</td>\n",
" <td>1053</td>\n",
" <td>4</td>\n",
" <td>0.675677</td>\n",
" <td>0.837662</td>\n",
" <td>40.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Carmignac Court Terme</td>\n",
" <td>507</td>\n",
" <td>3</td>\n",
" <td>0.674908</td>\n",
" <td>0.851615</td>\n",
" <td>44.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Carmignac Portfolio Sécurité</td>\n",
" <td>1125</td>\n",
" <td>3</td>\n",
" <td>0.606284</td>\n",
" <td>0.651454</td>\n",
" <td>56.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Carmignac Credit &lt;NUM&gt;</td>\n",
" <td>370</td>\n",
" <td>3</td>\n",
" <td>0.564300</td>\n",
" <td>0.910368</td>\n",
" <td>51.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Carmignac Portfolio Credit</td>\n",
" <td>984</td>\n",
" <td>3</td>\n",
" <td>0.543647</td>\n",
" <td>0.743567</td>\n",
" <td>47.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Carmignac Portfolio Global Bond</td>\n",
" <td>1664</td>\n",
" <td>4</td>\n",
" <td>0.539995</td>\n",
" <td>0.675356</td>\n",
" <td>66.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Carmignac Portfolio Patrimoine</td>\n",
" <td>1107</td>\n",
" <td>3</td>\n",
" <td>0.453988</td>\n",
" <td>0.843918</td>\n",
" <td>35.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" fund_family n_clients best_k \\\n",
"0 Carmignac Patrimoine 3058 3 \n",
"1 Carmignac Emergents 1724 3 \n",
"2 Carmignac Investissement 2126 4 \n",
"3 Carmignac Portfolio Grande Europe 1344 3 \n",
"4 Carmignac Portfolio Emerging Patrimoine 1099 3 \n",
"5 Carmignac Portfolio Emergents 530 3 \n",
"6 Carmignac Sécurité 1573 4 \n",
"7 Carmignac Portfolio Long-Short European Equities 586 4 \n",
"8 Carmignac Portfolio Flexible Bond 1053 4 \n",
"9 Carmignac Court Terme 507 3 \n",
"10 Carmignac Portfolio Sécurité 1125 3 \n",
"11 Carmignac Credit <NUM> 370 3 \n",
"12 Carmignac Portfolio Credit 984 3 \n",
"13 Carmignac Portfolio Global Bond 1664 4 \n",
"14 Carmignac Portfolio Patrimoine 1107 3 \n",
"\n",
" silhouette davies_bouldin min_cluster_size \n",
"0 0.895515 0.370484 156.0 \n",
"1 0.894999 0.364722 94.0 \n",
"2 0.880809 0.470763 36.0 \n",
"3 0.872593 0.411056 81.0 \n",
"4 0.758284 0.679727 72.0 \n",
"5 0.727076 0.672260 26.0 \n",
"6 0.712026 0.883459 85.0 \n",
"7 0.706218 0.660681 28.0 \n",
"8 0.675677 0.837662 40.0 \n",
"9 0.674908 0.851615 44.0 \n",
"10 0.606284 0.651454 56.0 \n",
"11 0.564300 0.910368 51.0 \n",
"12 0.543647 0.743567 47.0 \n",
"13 0.539995 0.675356 66.0 \n",
"14 0.453988 0.843918 35.0 "
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"family_results = {}\n",
"family_summary_rows = []\n",
"\n",
"for fam in top_15_families:\n",
" print(\"\\n\" + \"=\" * 80)\n",
" print(f\"Running clustering for family: {fam}\")\n",
" print(\"=\" * 80)\n",
"\n",
" res = run_family_clustering(\n",
" df_base=df_family_client_base,\n",
" family_name=fam,\n",
" features=family_cluster_features,\n",
" k_min=3,\n",
" k_max=10,\n",
" min_clients=50,\n",
" min_cluster_size=10,\n",
" random_state=RANDOM_STATE,\n",
" make_plots=True\n",
" )\n",
"\n",
" if res is not None:\n",
" family_results[fam] = res\n",
" best_row = res[\"metrics_df\"].loc[res[\"metrics_df\"][\"k\"] == res[\"best_k\"]].iloc[0]\n",
" family_summary_rows.append({\n",
" \"fund_family\": fam,\n",
" \"n_clients\": res[\"n_clients\"],\n",
" \"best_k\": res[\"best_k\"],\n",
" \"silhouette\": best_row[\"silhouette\"],\n",
" \"davies_bouldin\": best_row[\"davies_bouldin\"],\n",
" \"min_cluster_size\": best_row[\"min_cluster_size\"]\n",
" })\n",
"\n",
"family_summary = pd.DataFrame(family_summary_rows).sort_values(\n",
" [\"silhouette\", \"n_clients\"],\n",
" ascending=[False, False]\n",
").reset_index(drop=True)\n",
"\n",
"family_summary"
]
},
{
"cell_type": "markdown",
"id": "6c89a451",
"metadata": {},
"source": [
"## 16. Analyses complémentaires"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "bb1aadbc",
"metadata": {},
"outputs": [],
"source": [
"def plot_cluster_aum(df_family, result):\n",
" df = df_family.copy()\n",
" summary = df.groupby(\"cluster\").agg(\n",
" n_clients=(ID_COL, \"nunique\"),\n",
" total_aum=(\"family_aum_val_mean\", \"sum\")\n",
" ).reset_index()\n",
" summary[\"aum_share\"] = summary[\"total_aum\"] / summary[\"total_aum\"].sum()\n",
" print(summary)\n",
" plt.figure(figsize=(8,4))\n",
" plt.bar(summary[\"cluster\"], summary[\"aum_share\"])\n",
" plt.title(\"AUM Share by Cluster\")\n",
" plt.ylabel(\"Share of AUM\")\n",
" plt.xlabel(\"Cluster\")\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
"def plot_churn_summary(df_family, result):\n",
" churn_summary = df_family.groupby(\"cluster\").agg(\n",
" churn_hard=(\"churn_hard\", \"mean\"),\n",
" churn_soft=(\"churn_soft\", \"mean\"),\n",
" churn_warning=(\"churn_warning\", \"mean\"),\n",
" size=(ID_COL, \"nunique\")\n",
" ).reset_index()\n",
" print(churn_summary)\n",
" churn_summary.set_index(\"cluster\")[[\"churn_hard\", \"churn_soft\", \"churn_warning\"]].plot(\n",
" kind=\"bar\", figsize=(10,5)\n",
" )\n",
" plt.title(\"Churn profile by cluster\")\n",
" plt.ylabel(\"Rate\")\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
"def plot_behavior_vs_perf(df_family, result):\n",
" summary = df_family.groupby(\"cluster\").agg(\n",
" corr_3m=(\"corr_flow_ret_3m\", \"mean\"),\n",
" corr_6m=(\"corr_flow_ret_6m\", \"mean\"),\n",
" buy_after_perf_3m=(\"buy_after_good_perf_share_3m\", \"mean\"),\n",
" buy_after_perf_6m=(\"buy_after_good_perf_share_6m\", \"mean\")\n",
" ).reset_index()\n",
" print(summary)\n",
" summary.set_index(\"cluster\").plot(kind=\"bar\", figsize=(10,5))\n",
" plt.title(\"Behavior vs Performance by Cluster\")\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
"def plot_pca(result):\n",
" X = result[\"X_scaled\"]\n",
" labels = result[\"labels\"]\n",
" pca = PCA(n_components=2, random_state=RANDOM_STATE)\n",
" X_pca = pca.fit_transform(X)\n",
" plt.figure(figsize=(6,5))\n",
" plt.scatter(X_pca[:,0], X_pca[:,1], c=labels, alpha=0.5)\n",
" plt.title(\"PCA projection of clusters\")\n",
" plt.tight_layout()\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "bf50ec0c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" cluster n_clients total_aum aum_share\n",
"0 0 2714 6.096907e+09 0.932291\n",
"1 1 188 2.021671e+08 0.030914\n",
"2 2 156 2.406294e+08 0.036795\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAxQAAAGGCAYAAADissfwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOOZJREFUeJzt3XlYlPX+//EXjCIquQBuebBcjoPIkNrJjqi54XLcMhGXRMu07WCnTNP6liapkaWdVDxX5oJanswiShQpy+XoCa0Mc6ksMRfSDMFdDB3m90c/50SgzNzOMDA+H9fFdcnn/tyf+z3z8b6G19z3Z8bHZrPZBAAAAAAG+Hq6AAAAAAAVF4ECAAAAgGEECgAAAACGESgAAAAAGEagAAAAAGAYgQIAAACAYQQKAAAAAIYRKAAAAAAYRqAAAAAAYBiBAgBuUCNGjFDfvn09XUapsrOzZTabtXjxYk+XUkTXrl319NNPe7oMAPA4AgUAOGHFihUym82KiYkpcXtpf/wuXrxYZrNZ2dnZ9rYRI0bIbDarR48eJe7z3//+V2azWWazWenp6aXWmJeXp+nTp6tXr16KiIhQu3btNGjQIL3yyis6f/68A4/yxnb48GFNmTJF3bp1k8ViUZs2bTR06FAtW7ZMFy9eLJMa8vPzNW/ePG3fvr1MjgcA16OSpwsAgIokNTVVDRs21K5du3To0CHdcsstLhm3SpUqOnTokHbt2qWIiIhix6xSpYp+/fXXUsc5deqUoqOjde7cOUVHR6tJkyY6deqU9u3bp7ffflvDhg1T9erVXVKzN9q0aZMef/xx+fn56e6771bz5s116dIl7dixQ6+88or279+vadOmub2O/Px8JSYmauzYsbrzzjvdfjwAuB4ECgBw0JEjR5SZmanExERNmTJFqampGjt2rEvGbtSokS5fvqw1a9YUCRS//vqr1q9fr86dO+ujjz4qdZz33ntPR48e1dtvv602bdoU2Xbu3DlVrlzZJfU66vLlyyosLJSfn1+ZHteII0eOaNy4cbr55pu1bNky1a1b175t+PDhOnTokDZt2uS5Al3gwoULqlatmqfLAOBluOUJAByUmpqqmjVrqlOnTurZs6dSU1NdOn7fvn2VlpamwsJCe9uGDRt08eJF9erVy6ExDh8+LJPJpFatWhXbFhAQoCpVqhRr379/v0aMGKHbbrtNHTt21MKFC4tsLygo0Jw5czRw4EDdfvvtatWqle69915t27atSL/f3+61dOlSRUVFyWKxKCsrS5KUlZWlf/zjH2rbtq0sFosGDhyoTz/91KHHdcXSpUvVpUsXRUREKDY2Vt9//719W3Jyssxms7755pti+73++utq0aKFjh8/ftWxFy1apAsXLmjGjBlFwsQVt9xyi+67776r7j9v3jyZzeZi7e+//36x29x2796t0aNH684771RERIS6du2qZ555RtJvz2O7du0kSYmJifbb3ebNm2ff35Hn8spxP//8c02dOlXt2rVTp06drlo/ABhFoAAAB6Wmpqp79+7y8/NT3759dfDgQe3atctl4/ft21c5OTlF7ptfs2aN/vrXvyooKMihMRo2bCir1aoPP/zQof6nT5/WmDFjFBoaqkmTJqlJkyaaNWuWNm/ebO9z7tw5vfvuu2rbtq0mTJigsWPHKi8vT2PGjNG3335bbMz3339fb731lgYPHqxJkyapZs2a+uGHHzRkyBBlZWXpwQcf1NNPP61q1aopLi5O69evd6jWDz74QMuXL9e9996rhx56SD/88IPuu+8+nThxQpLUs2dP+fv7lxj0UlNT1bZtW9WrV++q42/cuFEhISHFruy4Wm5urkaPHq3s7Gw99NBDmjx5svr166evv/5akhQYGKipU6dKkrp3766XX35ZL7/8srp37y5JTj+X8fHxysrKUlxcnB588EG3PjYANyZueQIAB+zZs0cHDhzQ5MmTJUm333676tevr9TU1GJrHoy69dZbFR4erjVr1qhdu3Y6c+aMNm/erOnTpzs8RnR0tJYuXaqnn35ab7zxhtq2bas77rhDnTp10k033VSs/y+//KKZM2dqwIABkqRBgwapa9euSk5Otr+bXbNmTW3YsKHIbUuDBw/W3/72N7355pt68cUXi4z5888/a/369QoMDLS33X///WrQoIGSk5Pt49x7770aNmyYZs2aZf9j+VoOHz6sjz/+2B4K7rrrLsXExGjhwoV65plnFBAQoKioKK1Zs0ZPPfWUfH1/e8/sm2++0f79+zV69Oirjn3u3DkdP35c3bp1K7WO65WZmanTp09r8eLFslgs9vZx48ZJkqpVq6aePXtq6tSpMpvNuvvuu4vsP2PGDKeey5o1a2rp0qUymUxufmQAblRcoQAAB6Smpio4ONi+QNbHx0e9e/dWWlqarFary47Tr18/rV+/XgUFBfroo49kMpkUFRXl8P7BwcH68MMPNXToUJ05c0YrV67U+PHj1a5dO82fP182m61I/2rVqhX5g9XPz08Wi0VHjhyxt5lMJvsfroWFhTp16pQuX76s8PDwEm8v6tGjR5EwcerUKW3btk1/+9vfdO7cOeXl5SkvL08nT55Uhw4ddPDgwWveinRFVFRUkSsMERERuu2224pcTbn77rv1yy+/FLnKk5qaKn9//6t+ipb0W6CQVCYL1q8Eu02bNunSpUtO7WvkuRw8eDBhAoBbcYUCAEphtVq1du1a3XnnnUXug4+IiNCSJUuUkZGhDh06ODWmj49Pie29e/fWzJkz9Z///EerV69W586dFRAQ4NTYdevWVXx8vKZOnaqDBw9q69atWrhwoebOnau6desW+cjb+vXrF6ulZs2a2rdvX5G2lJQULVmyRD/++GORP4L/9Kc/FTv+H9sOHz4sm82mOXPmaM6cOSXWnJube83bkSSV+Ilat956q9atW2f/vX379qpTp45Wr16tdu3aqbCwUGvWrFG3bt2u+Txe2VYWH6vbtm1b9ezZU4mJiVq6dKnatm2rqKgo9evXr9TF60aey5LmCABciUABAKXYtm2bcnJytHbtWq1du7bY9tTUVHuguLLo+WrfV5Cfn1+k3x/VrVtXbdu2VVJSkr766qsiC3Gd5ePjo8aNG6tx48bq3LmzevToodWrVxcJFI68c/3hhx/q6aefVlRUlEaPHq2goCCZTCYtWLCgyJWMK/z9/Yv8fmWR+QMPPKCOHTuWeIxGjRo589CuymQyqV+/flq1apWmTp2qr776Sr/88ov69+9/zf0CAgJUt25d/fDDD4aPfbWQ+McrWD4+Ppo7d6527typjRs3asuWLfq///s/JSUl6Z133rnmVRIjz+XV/q8BgKsQKACgFKmpqQoKCtKUKVOKbVu/fr3Wr1+v+Ph4+fv7KzAwUFWrVtWPP/5Y4lg//vijqlatqtq1a1/1eH379tVzzz2nGjVq6K677nLJYwgJCVGNGjWUk5Pj9L4fffSRQkJClJiYWOSP5rlz5zp8bEmqXLmyIiMjnT7+FYcOHSrWdvDgQTVs2LBI2913360lS5Zow4YN+s9//qPAwECHriB16dJF77zzjjIzM9W6dWun66tRo4Yk6cyZM/Z/S9LRo0dL7N+qVSu1atVK48aNU2pqqiZMmKC0tDTFxMRcNZy46rkEAFdiDQUAXMPFixf18ccfq3PnzurVq1exn+HDh+v8+fPasGGDpN/eIW/fvr02btxY7A/Jo0ePauPGjWrfvv01rwz06tVLY8eO1fPPP+/09zd8/fXXunDhQrH2Xbt26dSpU2rcuLFT40n/u4rx+/UXX3/9tXbu3OnQ/kFBQWrbtq3eeecd/fLLL8W25+XlOTTOJ598UmR9wK5du/T1118XC12hoaEym81677339PHHH6tPnz6qVKn098/GjBmjatWq6bnnnrN/ctTvHT58WMuWLbvq/leuDHzxxRf2tgsXLuiDDz4o0u/06dPF1rK0aNFC0m8f0StJVatWlfRbOPk9Vz2XAOBKXKEAgGvYsGGDzp8/r65du5a4vVWrVgoMDNTq1avVu3dvSdKTTz6pwYMH65577tGQIUPUsGFD/fT
"text/plain": [
"<Figure size 800x400 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" cluster churn_hard churn_soft churn_warning size\n",
"0 0 0.689020 0.768976 0.154016 2714\n",
"1 1 0.909574 0.957447 0.739362 188\n",
"2 2 0.807692 0.897436 0.724359 156\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAR8dJREFUeJzt3XlYFXX///HX4QACmoosZu5RHhdQUNy4NcvUTDNFc7fFLXNpse4UbyuXNMy1oEVT0zTLNJQ7y2y9LSq0Mkwyy1xSXFIRywwQOJzfH/4830jEwzIM4PNxXV2XZ2Y+n3nPcfpcvs58ZsbicDgcAgAAAAAAJc7N7AIAAAAAAKioCN0AAAAAABiE0A0AAAAAgEEI3QAAAAAAGITQDQAAAACAQQjdAAAAAAAYhNANAAAAAIBBCN0AAAAAABiE0A0AAAAAgEEI3QCACsFms2nmzJlml1Em7dq1S4MGDVJoaKhsNpv27Nmj2NhY2Wy2PNt17txZUVFRJbbfzp07a8yYMSXWX3HYbDbFxsaaXQYA4CrkbnYBAAAU5PDhw1q2bJm+/PJLnTx5Uh4eHmrUqJFuv/12DRw4UF5eXmaXWKZlZ2frkUcekaenp6ZMmSIvLy9dd911ZpdVoZw4cULr1q1Tly5d1KRJE7PLAQCUMYRuAECZtXXrVj388MPy9PRU79691ahRI2VnZ2vHjh2aN2+e9u3bp6efftrsMsu0w4cP6+jRo5o1a5b69+/vXD527Fjdf//9JlZWcZw8eVIvvPCCateuTegGAFyC0A0AKJNSUlI0ceJEXXfddXrttdcUGBjoXDd06FAdOnRIW7duLdWacnNzlZ2drUqVKpXqfv8uJydHubm58vT0dGn7tLQ0SdI111yTZ7m7u7vc3flnQFmWnp4uHx8fs8sAABQT93QDAMqkZcuWKT09XbNnz84TuC+qX7++7r333kuWf/zxx7rjjjsUHBysnj176vPPP8+zPioqSp07d76kXX73OF+8T/ydd95Rz549FRISooSEBG3YsEE2m007duxQdHS02rVrp9DQUI0fP94ZcgsSFRWlsLAwpaSkaOTIkQoNDVWHDh30wgsvyOFwOLc7cuSIbDabli9frpUrV6pLly4KCQnR/v37JUmJiYkaMmSIQkNDFR4errFjxzrXXdzPsGHDJEkPP/ywbDab7r777sseb37Onj2r2bNnq1OnTgoODlbXrl31yiuvKDc394ptL/riiy/Uu3dvhYSEqEePHvrwww+d61JSUmSz2bRy5cpL2n333Xey2Wx69913C+z//Pnzio2N1W233aaQkBB16NBBEyZM0OHDhy/bpjDnwZdffqnBgwcrPDxcYWFhuu2227Rw4UJJ0vbt23XXXXdJkqZMmSKbzSabzaYNGzY423///fcaOXKkWrVqpRYtWmjYsGHasWNHvvvdt2+fHnvsMbVu3VpDhgwp8LgBAOUDP3EDAMqk//3vf6pbt65atmzpcpsdO3boww8/1JAhQ1S5cmWtXr1aDz30kP73v//J19e3SHVs27ZN77//voYOHSpfX1/Vrl1bZ8+elSTNmjVLVatW1YQJE3T06FG99tprmjlzpp577rkr9mu32zVq1Ci1aNFCjz/+uBISEhQbGyu73a6HH344z7YbNmzQ+fPnNWDAAHl6eqpatWr66quvNHr0aNWpU0cTJkxQZmamXn/9dQ0ePFgbNmxQnTp1NHDgQNWsWVOLFy/W3XffrZCQEPn7+7t87BkZGRo2bJhOnDihQYMGqVatWkpKStLChQt16tQpTZ069Yp9/Prrr5o4caIGDRqkyMhIxcXF6eGHH9ayZcv0r3/9y/l3/M477+i+++7L03bTpk2qXLmybr311gK/xzFjxigxMVE9e/bUPffco7/++ktffvml9u7dq3r16rl8vPn55ZdfNGbMGNlsNj300EPy9PTUoUOH9N1330mSgoKC9NBDDykmJkYDBw5Uq1atJMl53iYmJmr06NEKDg7WhAkTZLFYtGHDBt17771644031Lx58zz7e/jhh1W/fn1NnDgxzw8wAIDyi9ANAChzzp07pxMnThQYtvKzf/9+bd682Rm02rZtq969e+u9995zXvEtrIMHD2rTpk264YYbnMv27NkjSapevbpeffVVWSwWSRemn69evVp//vnnJdO5/+n8+fPq2LGjnnjiCUnSkCFD9MADD2jp0qW6++67VaNGDee2v/32mz766KM8y8aNG6dq1arprbfeUvXq1SVJXbp0UWRkpGJjY/Xss88qLCxMWVlZWrx4scLDw9W9e/dCHfuKFSuUkpKijRs3qkGDBpKkQYMGKTAwUMuXL9eIESNUq1atAvv49ddfFRsbq27dukmS7rrrLnXv3l3z58/Xv/71L0lSnz599NRTT2n//v0KCgqSdOEBcO+//766desmb2/vy/YfHx+vxMRETZkyJU9ov//++0sktH755ZfKzs7W0qVL83z/F/n7++umm25STEyMQkND1bt3b+c6h8Oh6dOnq23btlq2bJnzPBk0aJB69uyp5557Tq+++mqe/ho3bqwFCxYUu24AQNnB9HIAQJlz7tw5SVLlypUL1S4iIiLPlc3GjRurSpUqSklJKXItrVu3zhO4/27AgAHOICVJ4eHhstvtOnr0qEt9Dx061Plni8WioUOHKjs7W4mJiXm269atW57Ad/LkSe3Zs0eRkZHOwC1dON6IiAh99tlnLu3/SrZs2aJWrVqpatWqSktLc/4XEREhu92ub7755op9BAYGqmvXrs7PVapUUZ8+ffTjjz/q1KlTkqTbb79dlSpV0qZNm5zbffHFFzpz5ozuvPPOAvv/8MMP5evrm++PKn//uymqqlWrSpI++eSTQk2ply78OPPrr7+qV69eOnPmjPP7S09PV/v27fXNN99c0uegQYOKXTMAoGzhSjcAoMypUqWKJOmvv/4qVLv8rrpWq1bNOR28KOrUqXPZdf989dbFgObK/tzc3FS3bt08yxo2bChJl4T2f9Zw7NixPNv/XVBQkL744osSeQjXoUOH9PPPP6t9+/b5rnfl/vX69etfEn4vXjU/evSoAgICVLVqVd1yyy1699139cgjj0i6MLW8Zs2aateuXYH9Hz58WA0bNjTsoXA9evTQ+vXr9cQTT2jBggVq3769unbtqu7du8vNreBrF7/++qskafLkyZfd5s8//1S1atWcnws63wAA5ROhGwBQ5lSpUkWBgYH65ZdfCtXOarXmu/zv04wvd/XTbrfnu7yg94BfLnSV9L24Zr2LPDc3V//61780atSofNdfDM8loU+fPtqyZYu+++47NWrUSJ9++qkGDx58xWBbVK6eB15eXlqzZo22b9+urVu3KiEhQZs3b9Zbb72lV1999bLnnPR/58GkSZMu+yqxf/4wYuaT8QEAxiB0AwDKpFtuuUVvvfWWkpKSFBYWVmL9Vq1aNd8r0RevHpeW3NxcpaSk5LlaffDgQUlS7dq1C2x78Qr7xe3/7sCBA/L19S2RV03Vq1dP6enpioiIKHIfhw4dksPhyBNyL14B/vtxduzYUTVq1NCmTZvUokULZWRk5Lk/uqAav//+e2VnZ8vDw8PlugpzHri5ual9+/Zq3769pkyZosWLF2vRokXavn27IiIiLhvgL85kqFKlSrG+QwBA+cY93QCAMmnUqFHy8fHRE088odTU1EvWHz58WK+99lqh+61Xr57+/PNP/fTTT85lJ0+e1EcffVSseotizZo1zj87HA6tWbNGHh4el53OfVFgYKCaNGmi+Pj4PMFx7969+vLLL9WpU6cSqe/2229XUlKSEhISLll39uxZ5eTkXLGPf363586dU3x8vJo0aaKAgADncnd3d/Xs2VPvv/++NmzYoEaNGqlx48ZX7L9bt246c+ZMnu/yooJmHLh6Hvz++++XtL141TorK0uSnA96+2eIDw4OVr169fTqq6/me6uEK9PzAQDlH1e6AQBlUr169TR//nxNnDhRPXr0UO/evdWoUSNlZWUpKSlJW7ZsUd++fQvdb48ePTR//nxNmDBBd999tzIzM/Xmm2+qYcOG2r1
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
" cluster corr_3m corr_6m buy_after_perf_3m buy_after_perf_6m\n",
"0 0 0.003160 0.005071 0.034501 0.049428\n",
"1 1 0.020468 0.035094 0.175504 0.228813\n",
"2 2 0.033462 0.033925 0.288201 0.359633\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAHqCAYAAAAZLi26AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYklJREFUeJzt3XlYVHX///EXM4CAmiKLmTsqi4C7qbhUpmXaYrhkd2gqepuZeZfeLlRuLahp5nZrLrllmQZ6q7mU7XajfUtNci1xTQtETQ0MnZnfH/6YmlhkkOMAPh/XxXUx53zO57zncDzja87nnONms9lsAgAAAAAARc7k6gIAAAAAACitCN0AAAAAABiE0A0AAAAAgEEI3QAAAAAAGITQDQAAAACAQQjdAAAAAAAYhNANAAAAAIBBCN0AAAAAABiE0A0AAAAAgEEI3QAAu/bt22vQoEE3fb07duxQSEiIduzYcdPXXZJdvXpVU6ZM0V133aXQ0FA9/fTTri6pRHPV/p+f0aNHq3379q4uAwBwA9xdXQAAwHmJiYkaM2aMw7RKlSqpbt26GjBggO666y4XVYZZs2Zp9uzZ9tdeXl6qWrWqOnbsqIEDB6pcuXJFtq6EhAQtWrRITz75pOrXr6877rijyPqGsS5duqQlS5boo48+0okTJ2SxWFSjRg3ddddd6tOnjypXrnxT6lixYoW8vb0VHR19U9YHALciQjcAlGDPPvusqlWrJpvNpvT0dK1Zs0b//Oc/NW/ePN1zzz2uLq/Amjdvrj179sjDw8PVpRSZ8ePHy8fHRxkZGfr66681b9487dixQ++9957c3NyKZB3bt29X5cqVFRcXVyT94eY4ceKE+vbtq9OnT6tTp0567LHH5OHhoYMHD+qDDz7Q1q1btWXLlptSy3vvvSdfX19CNwAYiNANACVYu3btFBkZaX/dvXt3tW7dWhs2bChRodtkMqlMmTJF1l9GRoZ8fHyKrL/CuP/++1WpUiVJ0uOPP66hQ4fqo48+0u7du9W4ceNC92uz2fTHH3/Iy8tL6enpuu2224qqZFmtVl25cqVI/xZwdPXqVT3zzDNKT0/XsmXL1KxZM4f5zz33nBYsWOCi6orG1atXZbVa5enp6epSAKBY4JpuAChFbrvtNpUpU0bu7o7fqVqtVi1ZskRdunRRZGSkoqKiNHbsWP3222+59vPtt9+qe/fuioyM1L333qu1a9c6zD9//rwmT56shx56SI0bN1aTJk00YMAAHThwwN7mzJkzql+/vsNQ62wpKSkKCQnRO++8Iynva7o3bdqk6OhoNWjQQC1atNCIESP066+/OrQZPXq0GjdurOPHj2vgwIFq3LixRowYkev72rx5s0JCQvTNN9/kmLdy5UqFhITo0KFDkqS0tDSNGTNG7dq1U0REhNq0aaPBgwfr5MmTufZ9PS1btpQk+/IF/ZtkX2f81Vdf2bdFdq07duzQjz/+qJCQEIftl5GRoUmTJumuu+5SRESE7r//fi1atEg2m82h75CQEE2cOFHr1q2z1/HVV18pMTFRISEh+vbbb/XKK6+oZcuWatasmcaOHausrCxduHBBI0eOVPPmzdW8eXNNmTIlR9+LFi1Sr1691KJFCzVo0EDR0dHavHlzju2SXcPWrVv14IMPKiIiQl26dNGXX36Zo+2vv/6quLg4tWnTRhEREWrfvr3GjRunrKwse5sLFy7o1Vdftb/3jh07av78+bJarQX+W23btk2PPPKIIiMj1blzZ3300Uf2eSdOnFBISIiWLFmSY7mdO3cqJCREGzZsyLPvjz76SAcOHNBTTz2VI3BLUrly5fTcc8/luXxe/1ZOnjypkJAQJSYm2qddbx9u3769fvzxR33zzTf2fah379725QuyLbPXu2jRIi1ZskQdOnRQZGSkDh8+nOd7AIBbDWe6AaAEu3Tpks6ePStJSk9P1/Lly5WRkaGHH37Yod3YsWO1Zs0aRUdHq3fv3jp58qRWrFihffv26b333nMY1n3s2DENGzZM3bt316OPPqqEhASNHj1a4eHhqlevnqRrwWPr1q3q1KmTqlWrpjNnzuj9999XTEyMPvzwQ1WuXFn+/v5q3ry5Nm3apGeeecahno0bN8psNqtTp055vrfs69YjIyP1/PPP288M7ty5U2vXrnU4w3v16lXFxsaqadOmGjVqlLy8vHLt8+6775aPj482bdqkO++8M0dN9erVU3BwsCRp6NCh+umnnxQTE6OqVavq7Nmz+vrrr3X69GlVq1bten+aHI4fPy5JqlixoiTn/iZHjhzR8OHD9dhjj6lnz566/fbbNWXKFM2bN08ZGRl6/vnnJUl16tSRzWbT4MGDtWPHDnXv3l1hYWH66quvNGXKFHto/avt27dr06ZNeuKJJ+Tr66uqVavqwoULkqRXXnlF/v7+Gjp0qL7//nu9//77Kl++vHbt2qUqVaroueee05dffqlFixYpODhYXbt2tfe7bNkytW/fXg899JCuXLmiDz/8UMOGDdNbb72lu+++26GG7777Th999JH+8Y9/qGzZslq+fLmeffZZffbZZ/L19ZV0LXB3795dFy9eVM+ePRUUFKRff/1VW7Zs0eXLl+Xp6anMzEzFxMTo119/Va9evVSlShXt2rVLb7zxhtLS0vTCCy9c9+909OhRPffcc+rVq5d9/x82bJgWLlyo1q1bq3r16mrSpInWrVunvn37Oiy7fv16lS1bVvfee2+e/X/yySeSpEceeeS6tdyo6+3DcXFxevnll+Xj46OnnnpKkuTv7y9JTm/LxMRE/fHHH+rZs6c8PT1VoUIFw98fAJQYNgBAiZOQkGALDg7O8RMREWFLTEx0aPt///d/tuDgYNu6descpn/55Zc5pt9zzz224OBg2//93//Zp6Wnp9siIiJskyZNsk/7448/bBaLxaG/EydO2CIiImyzZ8+2T1u5cqUtODjYdvDgQYe2nTt3tvXp08f+evv27bbg4GDb9u3bbTabzZaVlWVr1aqV7cEHH7RdvnzZ3u6zzz6zBQcH22bMmGGfNmrUKFtwcLBt6tSp199wNpvt+eeft7Vq1cp29epV+7TU1FRbaGiovfbffvvNFhwcbFu4cGGB+vyrmTNn2oKDg20pKSm29PR024kTJ2wrV660RURE2KKiomwZGRmF+pt8+eWXOdYVExNj69Kli8O0jz/+2BYcHGz7z3/+4zB96NChtpCQENuxY8fs04KDg22hoaG2H3/80aFt9v7Vv39/m9VqtU9/7LHHbCEhIbaxY8fap129etXWrl07W0xMjEMfmZmZDq+zsrJsDz74oMPfPbuG8PBwh7r2799vCw4Oti1fvtw+beTIkbbQ0FDbnj17cmyH7BrnzJlja9Soke3IkSMO86dOnWoLCwuznTp1Kseyf5W9rbds2WKfdvHiRVvr1q1tXbt2tU/L3q9/+uknh/fXokUL26hRo/JdR9euXW1NmzbNt81fjRo1ynbPPffYX//930q2EydO2IKDg20JCQk2m63g+3CXLl1y/O1stoJvy+z1NmnSxJaenl7g9wUAtxKGlwNACTZ27FgtXrxYixcv1uuvv64WLVroxRdfdBgOu3nzZpUvX16tW7fW2bNn7T/h4eHy8fHJMUy1bt26DsNeK1WqpNq1a+vEiRP2aZ6enjKZrn2EWCwWnTt3Tj4+Pqpdu7b27dtnb9exY0e5u7tr48aN9mmHDh3STz/9pM6dO+f5vn744Qelp6fr8ccfd7i++O6771ZQUJA+//zzHMs8/vjjBdhi0gMPPKD09HSHIeZbtmyR1Wq11+Tl5SUPDw998803eQ7Bv55OnTqpVatWuvfeezV27FjVrFlTb731lry9vZ3+m1SrVk1t27Yt0Hq//PJLmc1mh2HCktS/f3/ZbLYcw7abN2+uunXr5tpX9+7dHW761qBBA9lsNnXv3t0+zWw2KyIiwmH/kOQw2uC3337TxYsX1bRpU4f9I1tUVJRq1Khhfx0aGqpy5crZ+7Rardq6davuueceh3sYZMuucfPmzWratKluu+02h+0aFRUli8Wi//u//8v1ff5VYGC
"text/plain": [
"<Figure size 1000x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAHqCAYAAADyPMGQAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAx+pJREFUeJzsvXe8XVWd9/9eu512e0nvPSSB0CE06QiIgmAZQFFH1BnL4zPOjKK/0RkdZXx8fEZn7DjooCKOgBQRsNEDSE0IIQnp9eb2dsoua/3+WPuce0/uvclNubk3yXq/XrzIaXuvvc+5Z3/Ot3y+QimlMBgMBoPBYDDsE2u0F2AwGAwGg8FwpGCEk8FgMBgMBsMwMcLJYDAYDAaDYZgY4WQwGAwGg8EwTIxwMhgMBoPBYBgmRjgZDAaDwWAwDBMjnAwGg8FgMBiGiRFOBoPBYDAYDMPECCeDwWAwGAyGYWKEk8FgGBHmz5/Pf/zHfxz2/f7Hf/wH8+fPP+z73R/CMOTrX/865513HgsWLOBv/uZvDmp7n/3sZ7ngggsO0eoMBsPecEZ7AQbD0cY999zD5z73udJtz/OYNGkSZ511Fn/zN39DQ0ND2fNbWlr48Y9/zJ///Gd27tyJEIJZs2Zx0UUXccMNN1BVVTVgH9deey0rV67ki1/8In/1V3814sc01sjlctx2222cdtppnH766aO9nP3m7rvv5sc//jHvf//7Oe6445g0adJoL2mv/PznPyeVSnHNNdeM9lIMhlHHCCeDYYT45Cc/yZQpU/B9nxdffJE777yTxx9/nAcffJBUKgXAihUruPnmm8lms1x11VUsWrQIgNdee40f/ehHvPDCC/zXf/1X2XY3bdrEypUrmTx5Mg888MCYFU4rVqzAtu0R2XYul+M///M/+fjHPz5AOH3sYx/j5ptvHpH9HiqeffZZxo8fzy233DLaSxkWd955J7W1tUY4GQwY4WQwjBjnnnsuS5YsAeC6666jpqaG22+/nT/+8Y9ceeWVdHV18fGPfxzbtrn33nuZPXt22es//elP86tf/WrAdu+//37q6+v57Gc/yyc/+Um2bdvGlClTRvx4crlcSfANh0QiMYKrGRrHcXCcsf3V1traOmgk8VgiDEOklHieN9pLMRj2C1PjZDAcJs444wwAtm3bBsAvf/lLmpqa+OxnPztANAE0NDQMWvvy4IMPcumll/KWt7yFyspKHnzwwWHt/7nnnmP+/Pk89NBDfPOb3+Sss85i6dKlfPSjH2Xnzp1lz73xxhu58soree2117j++us54YQT+OY3vwnoi/4tt9zCsmXLWLJkCVdddRX33nvvgP0NVuPU1NTE5z73OZYtW8bixYu54oor+PWvfz3gtYVCgf/4j//g0ksvZcmSJZx99tl8/OMfZ8uWLWzbto0zzzwTgP/8z/9k/vz5ZfsarMYpDEO+853vcNFFF7F48WIuuOACvvnNb+L7ftnzLrjgAj7ykY/wwgsvcO2117JkyRIuvPBCfvOb3wzrHGezWW699VbOO+88Fi9ezKWXXsqPf/xjlFKAfu/nz5/Pc889x7p160prf+655/a63ccff5wbbriBE088kZNOOol3vvOdPPDAA0M+v/he77nd4v7vueee0n3Nzc187nOf49xzz2Xx4sWcffbZfOxjHyt9Ti+44ALWrVvH888/X1rvjTfeWHp9V1cX//qv/1o65osvvpgf/vCHSCkH7PfHP/4xP/nJT7joootYsmQJ69evB+COO+7giiuu4IQTTuDUU0/lmmuu2evxGQyjydj+WWYwHEVs2bIFgJqaGgD+9Kc/kUwmufTSS4e9jVdffZXNmzfz1a9+Fc/zuPjii3nggQf46Ec/OuxtfO9730MIwYc//GFaW1v56U9/yk033cR9991HMpksPa+jo4MPf/jDXHHFFVx11VXU19eTz+e58cYb2bJlC9dffz1Tpkzh4Ycf5rOf/SxdXV28//3vH3K/LS0tvOtd70IIwfXXX09dXR1PPPEEn//85+np6eGmm24CIIoiPvKRj7B8+XKuuOIK3ve+99Hb28vTTz/N2rVrWbZsGV/60pf40pe+xMUXX8zFF18MsNeC8C984Qvce++9XHrppXzgAx9gxYoV/OAHP2D9+vV85zvfKXvu5s2b+dSnPsW1117L1Vdfzd13381nP/tZFi1axNy5c4fch1KKj33sYzz33HNce+21LFy4kCeffJKvf/3rNDU1ccstt1BXV8fXv/51vv/975PNZvnf//t/AwwqnIvcc8893HLLLcydO5ePfOQjVFZWsnr1ap588kne9ra3Dfm64fKJT3yCN998kxtuuIHJkyfT1tbG008/zc6dO5kyZQq33HILX/7yl0mn06XPWbFOL5fLccMNN9DU1MR73vMeJk6cyMsvv8w3v/lNmpub+fznPz/gWAqFAu9617vwPI/q6mp+9atf8ZWvfIVLL72U973vfRQKBdasWcOrr756SI7PYDjkKIPBcEi5++671bx589QzzzyjWltb1c6dO9Vvf/tbddppp6njjz9e7dq1Syml1Kmnnqquuuqq/dr2v/zLv6jzzjtPSSmVUko99dRTat68eer111/f52ufffZZNW/ePHXOOeeo7u7u0v0PPfSQmjdvnvrpT39auu+GG25Q8+bNU3feeWfZNn7yk5+oefPmqfvuu690n+/76t3vfrdaunRp2XbnzZunvv3tb5du33LLLeqss85SbW1tZdv89Kc/rU4++WSVy+WUUkr9+te/VvPmzVO33377gGMoHndra+uA7Rf59re/rebNm1e6vXr1ajVv3jz1+c9/vux5t956q5o3b55avnx56b7zzz9fzZs3T/3lL38p3dfa2qoWL16sbr311gH76s/vf/97NW/ePPXd73637P5PfOITav78+Wrz5s2l+2644QZ1xRVX7HV7SinV1dWlTjzxRHXdddepfD5f9ljxXCil1D/+4z+q888/v3S7+F4/++yzZa/ZunWrmjdvnrr77ruVUkp1dnaqefPmqdtuu22v67jiiivUDTfcMOD+73znO2rp0qVq48aNZfd/4xvfUAsXLlQ7duwo2+9JJ52kWltby577sY99bFjnwmAYK5hUncEwQtx0002ceeaZnHfeeXz6058mk8nwn//5n4wfPx6Anp4eMpnMsLcXhiEPPfQQb33rWxFCADr9V19fz/333z/s7bzjHe+goqKidPuyyy6jsbGRxx9/vOx5nucNKAZ+4oknaGxs5Morryzd57ouN954I9lslr/85S+D7lMpxaOPPsoFF1yAUoq2trbSf2effTbd3d2sWrUKgEcffZTa2lpuuOGGAdspHvf+UDyuD3zgA2X3f/CDHyx7vMicOXM45ZRTSrfr6uqYOXMmW7du3et+nnjiCWzbLktjFfejlOKJJ57Y77U//fTT9Pb2cvPNNw+oGTuQc7EnyWQS13V5/vnn6ezs3O/XP/zww5x88slUVVWVvafLli0jiqIBn4dLLrmEurq6svuqqqrYtWsXK1asOKhjMRgOFyZVZzCMEP/0T//EzJkzsW2bhoYGZs6ciWX1/VapqKigt7d32Nt7+umnaWtr4/jjj2fz5s2l+08//XR++9vf8vd///dl2x+K6dOnl90WQjB9+nS2b99edv/48eMHFO5u376d6dOnD9hPMdW0Y8eOQffZ1tZGV1cXd911F3fdddeQzwGd0pw5c+YhK/Devn07lmUxbdq0svsbGxupqqoacNwTJ04csI3q6up9Covt27czbty4MlEKfedmz/0Mh2J6d28pwoPB8zw+85nP8G//9m+cddZZnHDCCbzlLW/hHe94B42Njft8/ebNm1mzZk2p5mxPiu9pkcGaGD784Q/zzDPPcN111zF9+nTOOussrrzySk4++eQDOyiDYYQxwslgGCGOP/74UlfdYMyaNYvVq1fj+/6wOouKUaX/9b/+16CPP//886UC9ENB/3qng6VYKHzVVVdx9dVXD/qckTatHG6EZqQsFA4nQx1r/4LtIjfddBMXXHABf/jDH3jqqaf41re+xQ9/+EN++tOfctxxx+1
"text/plain": [
"<Figure size 600x500 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Exemple d'analyses complémentaires sur une famille\n",
"example_family = top_15_families[0]\n",
"if example_family in family_results:\n",
" res = family_results[example_family]\n",
" df_family = res[\"df_family\"].copy()\n",
"\n",
" plot_cluster_aum(df_family, res)\n",
" plot_churn_summary(df_family, res)\n",
" plot_behavior_vs_perf(df_family, res)\n",
" plot_pca(res)"
]
},
{
"cell_type": "markdown",
"id": "2e28d72a",
"metadata": {},
"source": [
"## 17. Lecture métier rapide d'une famille"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "843b8118",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"### Family: Carmignac Patrimoine\n",
"K retenu : 3\n",
"\n",
"Tailles de clusters :\n",
"cluster\n",
"0 2714\n",
"1 188\n",
"2 156\n",
"Name: count, dtype: int64\n",
"\n",
"Profils médians :\n",
" flow_freq family_aum_val_mean gross_flow_to_aum_family \\\n",
"cluster \n",
"0 0.0000 52115.3372 0.0000 \n",
"1 0.0345 72721.5583 2.5976 \n",
"2 0.0615 511997.3731 0.8907 \n",
"\n",
" turnover_mean3_avg turnover_mean6_avg turnover_mean12_avg \\\n",
"cluster \n",
"0 0.0000 0.0000 0.0000 \n",
"1 0.0892 0.0914 0.0898 \n",
"2 0.0102 0.0104 0.0105 \n",
"\n",
" exit_rate_per_isin_family months_since_last_tx_family \\\n",
"cluster \n",
"0 1.0000 0.0 \n",
"1 1.0000 80.5 \n",
"2 0.8693 71.0 \n",
"\n",
" family_share_of_client_aum_mean corr_flow_ret_3m corr_flow_ret_6m \\\n",
"cluster \n",
"0 0.5087 0.0000 0.0000 \n",
"1 0.4170 0.0111 0.0178 \n",
"2 0.3587 0.0184 0.0338 \n",
"\n",
" buy_after_good_perf_share_3m buy_after_good_perf_share_6m \n",
"cluster \n",
"0 0.0 0.000 \n",
"1 0.0 0.000 \n",
"2 0.0 0.225 \n"
]
}
],
"source": [
"def describe_family_clusters(family_name, features_for_profile=None):\n",
" if family_name not in family_results:\n",
" print(f\"Aucun résultat stocké pour {family_name}\")\n",
" return None\n",
"\n",
" res = family_results[family_name]\n",
" df_family = res[\"df_family\"]\n",
"\n",
" if features_for_profile is None:\n",
" features_for_profile = [\n",
" \"flow_freq\",\n",
" \"family_aum_val_mean\",\n",
" \"gross_flow_to_aum_family\",\n",
" \"turnover_mean3_avg\",\n",
" \"turnover_mean6_avg\",\n",
" \"turnover_mean12_avg\",\n",
" \"exit_rate_per_isin_family\",\n",
" \"months_since_last_tx_family\",\n",
" \"family_share_of_client_aum_mean\",\n",
" \"corr_flow_ret_3m\",\n",
" \"corr_flow_ret_6m\",\n",
" \"buy_after_good_perf_share_3m\",\n",
" \"buy_after_good_perf_share_6m\",\n",
" ]\n",
"\n",
" summary = (\n",
" df_family.groupby(\"cluster\")[features_for_profile]\n",
" .median()\n",
" .round(4)\n",
" )\n",
"\n",
" sizes = df_family[\"cluster\"].value_counts().sort_index()\n",
"\n",
" print(f\"\\n### Family: {family_name}\")\n",
" print(f\"K retenu : {res['best_k']}\")\n",
" print(\"\\nTailles de clusters :\")\n",
" print(sizes)\n",
" print(\"\\nProfils médians :\")\n",
" print(summary)\n",
" return summary\n",
"\n",
"# Exemple\n",
"if top_15_families[0] in family_results:\n",
" describe_family_clusters(top_15_families[0])"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}