{"id":24682,"date":"2026-09-16T16:56:42","date_gmt":"2026-09-16T16:56:42","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/machine-learning-taches-quotidiennes\/"},"modified":"2026-09-16T16:56:42","modified_gmt":"2026-09-16T16:56:42","slug":"machine-learning-taches-quotidiennes","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/","title":{"rendered":"Machine learning pour les t\u00e2ches quotidiennes"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">On pense souvent que le machine learning est trop compliqu\u00e9 pour les t\u00e2ches de d\u00e9veloppement quotidiennes. Nous l&rsquo;associons souvent \u00e0 des concepts comme le big data, l&rsquo;exploration de donn\u00e9es, la science des donn\u00e9es et l&rsquo;intelligence artificielle. Parfois, cela ressemble \u00e0 ceci\u00a0:<\/p>\n\n\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-6793\"><p class=\"h5 m-0\" id=\"toc-title-6793\">Table des mati\u00e8res<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#le-machine-learning-est-difficile\">Le machine learning est difficile<\/a><a class=\"scrollme link-body-color\" href=\"#un-exemple-concret\">Un exemple concret<\/a><a class=\"scrollme link-body-color\" href=\"#analyse-du-html-provenant-de-linternet-public\">Analyse du HTML provenant de l&rsquo;Internet public<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#lanalyse-de-clusters-a-la-rescousse\">L&rsquo;analyse de clusters \u00e0 la rescousse<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#collecter-un-jeu-de-donnees\">Collecter un jeu de donn\u00e9es<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#determiner-le-nombre-de-clusters\">D\u00e9terminer le nombre de clusters<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">05<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#clustering\">Clustering<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">06<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#classification\">Classification<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">07<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#validation\">Validation<\/a><a class=\"scrollme link-body-color\" href=\"#lecons-retenues\">Le\u00e7ons retenues<\/a><a class=\"scrollme link-body-color\" href=\"#liens-utiles\">Liens utiles<\/a><\/div><\/div><\/nav>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4884\" width=\"698\" height=\"400\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/ml.jpeg\" alt=\"A brain made up of electrical points\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/ml.jpeg 698w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/ml-300x172.jpeg 300w\" sizes=\"(max-width: 698px) 100vw, 698px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Le machine learning est difficile<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">J&rsquo;ai toujours pens\u00e9 que nous pouvions tirer parti du machine learning pour les t\u00e2ches simples que nous effectuons r\u00e9guli\u00e8rement.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Un exemple concret<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Chez Mailgun, nous travaillons avec l&#8217;email et, dans le cadre de notre offre, nous analysons les citations HTML. Cela permet \u00e0 l&rsquo;utilisateur de r\u00e9cup\u00e9rer la derni\u00e8re r\u00e9ponse au lieu de la conversation compl\u00e8te, qui est renvoy\u00e9e dans la r\u00e9ponse de notre webhook. Vous pouvez en savoir plus sur la fa\u00e7on dont nous g\u00e9rons le traitement des messages entrants dans notre\u00a0<a href=\"https:\/\/documentation.mailgun.com\/en\/latest\/user_manual.html?#routes\" target=\"_tabs\" rel=\"noopener noreferrer\">documentation<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour celles et ceux qui l&rsquo;ignorent, voici \u00e0 quoi ressemble l&rsquo;analyse du HTML provenant de l&rsquo;Internet public\u00a0:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4885\" width=\"370\" height=\"276\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/jeep.png\" alt=\"Dirty Jeep stuck in the mud\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/jeep.png 370w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/jeep-300x224.png 300w\" sizes=\"(max-width: 370px) 100vw, 370px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Analyse du HTML provenant de l&rsquo;Internet public<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est fastidieux et il arrive que les processus se bloquent.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Changer la biblioth\u00e8que d&rsquo;analyse peut aider, mais cela ne r\u00e9soudra pas compl\u00e8tement le probl\u00e8me, car chaque biblioth\u00e8que a ses limites. Vous devez restreindre l&rsquo;analyse \u00e0 une limite raisonnable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L&rsquo;analyse de clusters \u00e0 la rescousse<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Mais quels devraient \u00eatre les crit\u00e8res et le seuil\u00a0? Faut-il limiter par la longueur du HTML ou par le nombre de balises\u00a0? Peut-\u00eatre les deux\u00a0? Peut-\u00eatre autre chose\u00a0? L&rsquo;objectif est bien s\u00fbr de traiter autant de messages que possible sans se tirer une balle dans le pied, mais la marche \u00e0 suivre n&rsquo;est pas tr\u00e8s \u00e9vidente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&rsquo;est l\u00e0 que l&rsquo;analyse de clusters et la classification statistique s&rsquo;av\u00e8rent utiles. Pour mes recherches, j&rsquo;utilisais\u00a0<a href=\"https:\/\/www.r-project.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">\u00a0<\/a>, mais selon votre t\u00e2che et vos pr\u00e9f\u00e9rences, vous pourriez utiliser autre chose \u2013\u00a0<a href=\"http:\/\/scikit-learn.org\/stable\/\" target=\"_tabs\" rel=\"noopener noreferrer\">scikit-learn<\/a>,\u00a0<a href=\"http:\/\/www.cs.waikato.ac.nz\/ml\/weka\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Weka<\/a>,\u00a0<a href=\"http:\/\/moa.cms.waikato.ac.nz\/\" target=\"_tabs\" rel=\"noopener noreferrer\">MOA<\/a>, etc.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Collecter un jeu de donn\u00e9es<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tout d&rsquo;abord, nous avons consign\u00e9 la longueur du HTML, le nombre de balises et le temps de traitement des messages, puis nous les avons plac\u00e9s dans un fichier CSV\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                HTML                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-markup\">\r\n                                <code id=\"code_0_content\" class=\"language-markup\">\r\n\r\n                                    htmllen,tagscount,took rn2893762,85527,34.300139904 rn31378,518,0.0368919372559 rn19105,413,0.0545339584351 rn...\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Le traitement de la grande majorit\u00e9 des messages prend des fractions de seconde. Par cons\u00e9quent, lors de la collecte du jeu de donn\u00e9es, nous devions nous assurer d&rsquo;avoir suffisamment de messages \u00ab\u00a0lents\u00a0\u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous avons obtenu deux fichiers CSV, collect\u00e9s \u00e0 des jours diff\u00e9rents. L&rsquo;un contenait 13\u00a0831 lignes et \u00e9tait r\u00e9serv\u00e9 \u00e0 l&rsquo;analyse et \u00e0 l&rsquo;entra\u00eenement du mod\u00e8le (<b>le jeu de donn\u00e9es d&rsquo;entra\u00eenement<\/b>). Un autre contenait 12\u00a0149 lignes et \u00e9tait r\u00e9serv\u00e9 \u00e0 la validation du mod\u00e8le (<b>le jeu de donn\u00e9es de validation<\/b>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En g\u00e9n\u00e9ral, il est conseill\u00e9 d&rsquo;avoir au moins deux jeux de donn\u00e9es\u00a0: un pour l&rsquo;entra\u00eenement et un pour la validation. Sinon, vous risquez de rencontrer un probl\u00e8me de\u00a0<b>surapprentissage<\/b>, o\u00f9 votre mod\u00e8le est bien ajust\u00e9 aux donn\u00e9es d&rsquo;entra\u00eenement mais \u00e9choue dans le monde r\u00e9el.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">D\u00e9terminer le nombre de clusters<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pour visualiser les donn\u00e9es et rechercher des mod\u00e8les\u00a0<a href=\"http:\/\/www.statmethods.net\/advstats\/cluster.html\" target=\"_tabs\" rel=\"noopener noreferrer\">le partitionnement k-means<\/a>\u00a0a d&rsquo;abord \u00e9t\u00e9 essay\u00e9\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                Python                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                    messages &lt;- read.csv(file=&quot;messages080816.csv&quot;, sep=&quot;,&quot;, head=TRUE) rn    mydata &lt;- matrix(messages$took, ncol=1) rnrn    ## Determine the number of clusters rn    wss &lt;- (nrow(mydata)-1)*sum(apply(mydata,2,var)) rn    for (i in 2:15) wss[i] &lt;- sum(kmeans(mydata, rn        centers=i)$withinss) rn    plot(1:15, wss, type=&quot;b&quot;, xlab=&quot;Number of Clusters&quot;, rn        ylab=&quot;Within groups sum of squares&quot;)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Comme vous pouvez le voir, il y a une am\u00e9lioration significative des performances jusqu&rsquo;\u00e0 4 clusters. Apr\u00e8s cela, il n&rsquo;y a plus de v\u00e9ritable am\u00e9lioration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Clustering<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L&rsquo;\u00e9tape suivante consistait \u00e0 comprendre comment les points de donn\u00e9es sont r\u00e9partis entre les clusters\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                Python                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                     ## K-Means Clustering with 4 clustersrn    fit &lt;- kmeans(mydata, 4) rnrn    ## Cluster Plot against 1st 2 principal components rn    ## vary parameters for most readable graph rn    library(cluster) rn        clusplot(mydata, fit$cluster, color=TRUE,rn           shade=TRUE, labels=2, lines=0)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4886\" width=\"663\" height=\"652\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/clusplot.png\" alt=\"A clusplot graph\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/clusplot.png 663w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/clusplot-300x295.png 300w\" sizes=\"(max-width: 663px) 100vw, 663px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Et vous pouvez d\u00e9j\u00e0 anticiper le probl\u00e8me\u00a0: les clusters se forment en isolant les points de donn\u00e9es les plus \u00e9loign\u00e9s, alors que l&rsquo;intervalle qui nous int\u00e9resse (1-20 s) se trouve au beau milieu. Le probl\u00e8me persiste m\u00eame en augmentant le nombre de clusters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De plus, il y a un chevauchement important entre les clusters dans l&rsquo;intervalle\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                Python                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                     ## get clusters mean, min, max rn    mean &lt;- aggregate(mydata,by=list(fit$cluster),FUN=mean) rn    min &lt;- aggregate(mydata,by=list(fit$cluster),FUN=min) rn    max &lt;- aggregate(mydata,by=list(fit$cluster),FUN=max)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4887\" width=\"251\" height=\"321\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/clusters.png\" alt=\"A list of clusters code\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/clusters.png 251w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/clusters-235x300.png 235w\" sizes=\"(max-width: 251px) 100vw, 251px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Comparez les clusters 1 et 4. Le probl\u00e8me persiste m\u00eame en augmentant le nombre de clusters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 ce stade, nous avons d\u00e9cid\u00e9 d&rsquo;essayer une autre approche et d&rsquo;examiner les centiles du temps de traitement des messages\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                Python                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                     percentiles &lt;- quantile(messages$took, seq(0.5, 0.99, 0.01)) rn    plot(seq(0.5, 0.99, 0.01), percentile)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4888\" width=\"639\" height=\"621\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tookpercentiles.png\" alt=\"A graph of percentiles\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tookpercentiles.png 639w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tookpercentiles-300x292.png 300w\" sizes=\"(max-width: 639px) 100vw, 639px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Comme vous pouvez le voir, apr\u00e8s le 78e centile, le temps de traitement grimpe rapidement. Voici notre premier seuil\u00a0: le 78e centile, qui correspondait \u00e0 6,5 secondes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tous les points de donn\u00e9es prenant moins de 6,5 s ont \u00e9t\u00e9 marqu\u00e9s comme \u00ab\u00a0rapides\u00a0\u00bb et les autres comme \u00ab\u00a0lents\u00a0\u00bb.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Classification<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pour la classification, nous avons essay\u00e9\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Support_vector_machine\" target=\"_tabs\" rel=\"noopener noreferrer\">SVM<\/a>\u00a0(Machines \u00e0 vecteurs de support),\u00a0<a href=\"http:\/\/www.statmethods.net\/advstats\/cart.html\" target=\"_tabs\" rel=\"noopener noreferrer\">For\u00eats al\u00e9atoires<\/a>\u00a0et\u00a0<a href=\"http:\/\/www.statmethods.net\/advstats\/cart.html\" target=\"_tabs\" rel=\"noopener noreferrer\">CART<\/a>(Arbre de classification et de r\u00e9gression).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CART a montr\u00e9 des r\u00e9sultats l\u00e9g\u00e8rement meilleurs pour cette t\u00e2che, mais son principal avantage est qu&rsquo;il fournit un arbre de d\u00e9cision facile \u00e0 comprendre, \u00e0 expliquer et \u00e0 impl\u00e9menter, contrairement aux SVM ou aux for\u00eats al\u00e9atoires qui fonctionnent comme une bo\u00eete noire et n\u00e9cessitent d&rsquo;utiliser de lourdes biblioth\u00e8ques de machine learning en production.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voici comment classer \u00e0 l&rsquo;aide de CART\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                Python                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                    x &lt;- subset(messages, select=-took) rnlibrary(rpart) rnrn# grow tree rnfit &lt;- rpart(x$cls ~., method=&quot;class&quot;, data=x) rnrn## display the results rnprintcp(fit)rnrn# detailed summary of splits rnsummary(fit) rnrn# plot tree rnplot(fit, uniform=TRUE, rn    main=&quot;Classification Tree for message processing time&quot;) rntext(fit, use.n=TRUE, all=TRUE, cex=.8) \r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Voici l&rsquo;arbre de d\u00e9cision\u00a0:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4889\" width=\"617\" height=\"590\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tree.png\" alt=\"Classification tree for message processing time\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tree.png 617w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/tree-300x287.png 300w\" sizes=\"(max-width: 617px) 100vw, 617px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Et voici \u00e0 quoi ressemble l&rsquo;impl\u00e9mentation\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                Python                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                    def html_too_big(s): rn    return s.count(&#039;&lt;&#039;) &gt; _MAX_TAGS_COUNT\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">N&rsquo;est-ce pas magnifique\u00a0? Toute la complexit\u00e9 de la recherche en une seule ligne\u00a0!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Validation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pour l&rsquo;\u00e9valuation, nous avons pris le jeu de donn\u00e9es de validation et essay\u00e9 de pr\u00e9dire la classification \u00e0 l&rsquo;aide de notre mod\u00e8le\u00a0:<\/p>\n\n\n    <div data-content-type=\"longform\" class=\"code-snippet longform-spacings rounded-lg overflow-hidden shadow \" data-count=\"1\">\r\n        <ul class=\"nav nav-buttons code-snippet__tabs longform-except position-relative d-flex gap-2 flex-wrap p-3\" role=\"tablist\">\r\n\r\n                            \r\n                    \r\n                        <li class=\"nav-item\" role=\"presentation\">\r\n                            <button class=\"nav-link active\" data-bs-toggle=\"tab\" data-bs-target=\"#code_0\" type=\"button\" role=\"tab\" aria-controls=\"code_0\" aria-selected=\"true\">\r\n                                Python                            <\/button>\r\n                        <\/li>\r\n\r\n                    \r\n                            \r\n        <\/ul>\r\n        <div class=\"code-snippet__tab-content tab-content\">\r\n\r\n                            \r\n                    <div class=\"tab-pane show active\" id=\"code_0\" role=\"tabpanel\" aria-labelledby=\"code_0\">\r\n                        <div class=\"code-snippet__code-wrapper\">\r\n                            <div class=\"nav nav-buttons code-snippet__copy-wrapper\">\r\n                                <button type=\"button\" class=\"nav-link code-snippet__copy\" data-clipboard-target=\"#code_0_content\" data-clipboard-label=\"Copier dans le presse-papiers\" data-clipboard-success-label=\"Copi\u00e9\u00a0!\" data-clipboard-error-label=\"Impossible de copier\" data-tooltip=\"Copier dans le presse-papiers\" data-tooltip-placement=\"left\" role=\"tooltip\" aria-label=\"Copier dans le presse-papiers\">\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--default\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/file-stack.svg\"><\/svg>\r\n                                    <svg class=\"code-snippet__copy-icon code-snippet__copy-icon--success\" width=\"24\" height=\"24\" aria-hidden=\"true\" data-url=\"https:\/\/www.mailgun.com\/wp-content\/plugins\/sinch-core\/assets\/icons\/sinch\/badge-check.svg\"><\/svg>\r\n                                <\/button>\r\n                            <\/div>\r\n                            <pre class=\"w-100 h-100 m-0 line-numbers language-Python\">\r\n                                <code id=\"code_0_content\" class=\"language-Python\">\r\n\r\n                                     validate &lt;- read.csv(file=&quot;messages080916.csv&quot;, sep=&quot;,&quot;, head=TRUE) rn    validate &lt;- subset(validate, select=-took) rn    xv &lt;- subset(validate, select=-cls) rn    y &lt;- predict(fit, xv, type=&quot;class&quot;) rn    table(validate$cls, y)\r\n                                <\/code>\r\n                            <\/pre>\r\n                        <\/div>\r\n                    <\/div>\r\n                                    <\/div>\r\n    <\/div>\r\n\n\n\n<p class=\"wp-block-paragraph\">Voici la matrice de confusion et quelques\u00a0<a href=\"http:\/\/blog.revolutionanalytics.com\/2016\/03\/com_class_eval_metrics_r.html\" target=\"_tabs\" rel=\"noopener noreferrer\">statistiques de classification courantes<\/a>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" class=\"wp-image-4890\" width=\"617\" height=\"501\" src=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/evaluate.png\" alt=\"Evaluation code\" srcset=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/evaluate.png 617w, https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/evaluate-300x244.png 300w\" sizes=\"(max-width: 617px) 100vw, 617px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Le\u00e7ons retenues<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Le machine learning n&rsquo;est pas r\u00e9serv\u00e9 \u00e0 l&rsquo;\u00e9quipe de data science. M\u00eame de simples d\u00e9cisions bas\u00e9es sur le machine learning peuvent vous \u00eatre utiles. Connaissez vos donn\u00e9es. Ne vous fiez pas aveugl\u00e9ment aux algorithmes et mod\u00e8les scientifiques.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Liens utiles<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Excellente explication d&rsquo;un <a href=\"http:\/\/stats.stackexchange.com\/questions\/19048\/what-is-the-difference-between-test-set-and-validation-set\" target=\"_tabs\" rel=\"noopener noreferrer\">train-validate-test<\/a> flux de travail<\/li>\n\n\n\n<li>Guide rapide sur <a href=\"http:\/\/www.statmethods.net\/advstats\/cart.html\" target=\"_tabs\" rel=\"noopener noreferrer\">CART<\/a> et <a href=\"http:\/\/www.statmethods.net\/advstats\/cart.html\" target=\"_tabs\" rel=\"noopener noreferrer\">For\u00eats al\u00e9atoires<\/a> dans R<\/li>\n\n\n\n<li>Guide rapide sur <a href=\"http:\/\/www.statmethods.net\/advstats\/cluster.html\" target=\"_tabs\" rel=\"noopener noreferrer\">L&rsquo;analyse de clusters<\/a> dans R<\/li>\n\n\n\n<li>Comment <a href=\"http:\/\/www.cyclismo.org\/tutorial\/R\/plotting.html\" target=\"_tabs\" rel=\"noopener noreferrer\">tracer<\/a> dans R<\/li>\n\n\n\n<li>Quelques\u00a0<a href=\"http:\/\/www.cyclismo.org\/tutorial\/R\/plotting.html\" target=\"_tabs\" rel=\"noopener noreferrer\">statistiques de classification courantes<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Precision_and_recall\" target=\"_tabs\" rel=\"noopener noreferrer\">Pr\u00e9cision<\/a> et <a href=\"https:\/\/en.wikipedia.org\/wiki\/Precision_and_recall\" target=\"_tabs\" rel=\"noopener noreferrer\">Rappel<\/a> expliqu\u00e9s<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Bon machine learning et bonne exploration de donn\u00e9es\u00a0!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On pense souvent que le machine learning est trop compliqu\u00e9 pour les t\u00e2ches de d\u00e9veloppement quotidiennes. Nous l&rsquo;associons souvent \u00e0 des concepts comme le big data, l&rsquo;exploration de donn\u00e9es, la science des donn\u00e9es et l&rsquo;intelligence artificielle. Parfois, cela ressemble \u00e0 ceci\u00a0:<\/p>\n","protected":false},"author":47,"featured_media":4843,"menu_order":0,"template":"","meta":{"_acf_changed":true,"footnotes":""},"blog_category":[23],"class_list":["post-24682","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-it-and-engineering"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Machine learning pour les t\u00e2ches quotidiennes - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"On pense souvent que le machine learning est trop compliqu\u00e9 pour les t\u00e2ches de d\u00e9veloppement quotidiennes. Cependant, nous pensons que tout le monde peut tirer parti du machine learning, m\u00eame pour des t\u00e2ches simples. En savoir plus -\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Machine learning pour les t\u00e2ches quotidiennes - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"On pense souvent que le machine learning est trop compliqu\u00e9 pour les t\u00e2ches de d\u00e9veloppement quotidiennes. Cependant, nous pensons que tout le monde peut tirer parti du machine learning, m\u00eame pour des t\u00e2ches simples. En savoir plus -\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/it-and-engineering\\\/machine-learning-taches-quotidiennes\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/it-and-engineering\\\/machine-learning-taches-quotidiennes\\\/\",\"name\":\"Machine learning pour les t\u00e2ches quotidiennes - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/it-and-engineering\\\/machine-learning-taches-quotidiennes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/it-and-engineering\\\/machine-learning-taches-quotidiennes\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"datePublished\":\"2026-09-16T16:56:42+00:00\",\"description\":\"On pense souvent que le machine learning est trop compliqu\u00e9 pour les t\u00e2ches de d\u00e9veloppement quotidiennes. Cependant, nous pensons que tout le monde peut tirer parti du machine learning, m\u00eame pour des t\u00e2ches simples. En savoir plus -\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/it-and-engineering\\\/machine-learning-taches-quotidiennes\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/it-and-engineering\\\/machine-learning-taches-quotidiennes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/it-and-engineering\\\/machine-learning-taches-quotidiennes\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/it-and-engineering\\\/machine-learning-taches-quotidiennes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Machine learning pour les t\u00e2ches quotidiennes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Des API d\u2019emails transactionnels puissantes qui vous permettent d'envoyer, de recevoir et de suivre des emails, con\u00e7ues pour les d\u00e9veloppeurs. En savoir plus d\u00e8s aujourd'hui !\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Transactional Email API Service For Developers | Mailgun\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/fr\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Machine learning pour les t\u00e2ches quotidiennes - Transactional Email API Service For Developers | Mailgun","description":"On pense souvent que le machine learning est trop compliqu\u00e9 pour les t\u00e2ches de d\u00e9veloppement quotidiennes. Cependant, nous pensons que tout le monde peut tirer parti du machine learning, m\u00eame pour des t\u00e2ches simples. En savoir plus -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/","og_locale":"fr_FR","og_type":"article","og_title":"Machine learning pour les t\u00e2ches quotidiennes - Transactional Email API Service For Developers | Mailgun","og_description":"On pense souvent que le machine learning est trop compliqu\u00e9 pour les t\u00e2ches de d\u00e9veloppement quotidiennes. Cependant, nous pensons que tout le monde peut tirer parti du machine learning, m\u00eame pour des t\u00e2ches simples. En savoir plus -","og_url":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/","url":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/","name":"Machine learning pour les t\u00e2ches quotidiennes - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","datePublished":"2026-09-16T16:56:42+00:00","description":"On pense souvent que le machine learning est trop compliqu\u00e9 pour les t\u00e2ches de d\u00e9veloppement quotidiennes. Cependant, nous pensons que tout le monde peut tirer parti du machine learning, m\u00eame pour des t\u00e2ches simples. En savoir plus -","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/fr\/blog\/it-and-engineering\/machine-learning-taches-quotidiennes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/fr\/blog\/"},{"@type":"ListItem","position":3,"name":"Machine learning pour les t\u00e2ches quotidiennes"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/fr\/#website","url":"https:\/\/www.mailgun.com\/fr\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Des API d\u2019emails transactionnels puissantes qui vous permettent d'envoyer, de recevoir et de suivre des emails, con\u00e7ues pour les d\u00e9veloppeurs. En savoir plus d\u00e8s aujourd'hui !","publisher":{"@id":"https:\/\/www.mailgun.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/fr\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mailgun.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","width":512,"height":512,"caption":"Transactional Email API Service For Developers | Mailgun"},"image":{"@id":"https:\/\/www.mailgun.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog\/24682","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/users\/47"}],"version-history":[{"count":0,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog\/24682\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media\/4843"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/media?parent=24682"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/fr\/wp-json\/wp\/v2\/blog_category?post=24682"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}