<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="https://muthukamalan.github.io/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>https:&#x2F;&#x2F;muthukamalan.github.io&#x2F;</tabi:base_url>
        <tabi:separator>
            •
        </tabi:separator>
        <tabi:about_feeds>This is a web feed, also known as an Atom feed. Subscribe by copying the URL from the address bar into your newsreader. Visit About Feeds to learn more and get started. It&#x27;s free.</tabi:about_feeds>
        <tabi:visit_the_site>Visit website</tabi:visit_the_site>
        <tabi:recent_posts>Recent posts</tabi:recent_posts>
        <tabi:last_updated_on>Updated on $DATE</tabi:last_updated_on>
        <tabi:default_theme>one-dark-pro</tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>Python</tabi:current_section>
    </tabi:metadata><link rel="extra-stylesheet" href="https://muthukamalan.github.io/skins/blue.css?h=a4dc1e94d3f5759784d2" /><title>Muthukamalan - Python</title>
        <subtitle>Friendly Neighbour Programmer</subtitle>
    <link href="https://muthukamalan.github.io/tags/python/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://muthukamalan.github.io/tags/python/" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2024-01-09T05:20:35+00:00</updated><id>https://muthukamalan.github.io/tags/python/atom.xml</id><entry xml:lang="en">
        <title>Tamil Tokenizer</title>
        <published>2024-01-09T05:20:35+00:00</published>
        <updated>2024-01-09T05:20:35+00:00</updated>
        <author>
            <name>Muthukamalan</name>
        </author>
        <link rel="alternate" href="https://muthukamalan.github.io/projects/tamil-tokenizer/" type="text/html"/>
        <id>https://muthukamalan.github.io/projects/tamil-tokenizer/</id>
        
            <content type="html">&lt;p&gt;&lt;h align=&#x27;center&#x27;&gt;&lt;a href=&#x27;https:&#x2F;&#x2F;github.com&#x2F;Muthukamalan&#x2F;TamilTokenizers&#x27;&gt; Project Url&lt;&#x2F;a&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title>MediaToAscii</title>
        <published>2023-07-01T05:20:35+00:00</published>
        <updated>2023-07-01T05:20:35+00:00</updated>
        <author>
            <name>Muthukamalan</name>
        </author>
        <link rel="alternate" href="https://muthukamalan.github.io/projects/media2ascii/" type="text/html"/>
        <id>https://muthukamalan.github.io/projects/media2ascii/</id>
        
            <content type="html">&lt;p&gt;Project:: https:&#x2F;&#x2F;github.com&#x2F;Muthukamalan&#x2F;media2ascii&lt;&#x2F;p&gt;
</content>
        <summary type="html">Convert Media into Ascii (Image&#x2F;Video)</summary>
        </entry><entry xml:lang="en">
        <title>Telecom Churn Prediction MLOps</title>
        <published>2022-01-09T05:20:35+00:00</published>
        <updated>2022-01-09T05:20:35+00:00</updated>
        <author>
            <name>Muthukamalan</name>
        </author>
        <link rel="alternate" href="https://muthukamalan.github.io/projects/mlops-churn-prediction/" type="text/html"/>
        <id>https://muthukamalan.github.io/projects/mlops-churn-prediction/</id>
        
            <content type="html">&lt;details&gt;
    &lt;summary&gt;Table Of Content&lt;&#x2F;summary&gt;
    &lt;!-- toc --&gt;
&lt;&#x2F;details&gt;
&lt;p&gt;Building an End-to-End Telecom Churn Prediction Pipeline: DVC, Hydra, Optuna, and MLflow in Docker&lt;&#x2F;p&gt;


&lt;noscript&gt;
    &lt;strong&gt;⚠️ JavaScript is required to render the diagram.&lt;&#x2F;strong&gt;
&lt;&#x2F;noscript&gt;
&lt;pre class=&quot;mermaid invertible-image&quot;&gt;
    flowchart TD

subgraph group_data[&quot;Data lifecycle&quot;]
  node_raw[&quot;Raw Excel files&lt;br&#x2F;&gt;source data&lt;br&#x2F;&gt;[.gitkeep]&quot;]
  node_prep[&quot;Ingestion preparation&lt;br&#x2F;&gt;Python script&quot;]
  node_postgres_init[&quot;Postgres initialization&lt;br&#x2F;&gt;database bootstrap&lt;br&#x2F;&gt;[init-db.sh]&quot;]
  node_postgres[(&quot;Customer churn table&lt;br&#x2F;&gt;PostgreSQL&quot;)]
  node_dvc[&quot;Versioned CSV export&lt;br&#x2F;&gt;DVC artifact&quot;]
end

subgraph group_ml[&quot;ML workflows&quot;]
  node_train_config[&quot;Hydra train composition&lt;br&#x2F;&gt;configuration&lt;br&#x2F;&gt;[train.yaml]&quot;]
  node_model_configs[&quot;Model variants&lt;br&#x2F;&gt;Hydra model configs&lt;br&#x2F;&gt;[default.yaml]&quot;]
  node_training[&quot;Model training&lt;br&#x2F;&gt;Python entry point&lt;br&#x2F;&gt;[train.py]&quot;]
  node_hparams_config[&quot;Tuning settings&lt;br&#x2F;&gt;Hydra configuration&lt;br&#x2F;&gt;[hparams.yaml]&quot;]
  node_search_spaces[&quot;Model search spaces&lt;br&#x2F;&gt;Optuna configs&quot;]
  node_tuning[&quot;Hyperparameter tuning&lt;br&#x2F;&gt;Python entry point&lt;br&#x2F;&gt;[hparams.py]&quot;]
end

subgraph group_runtime[&quot;Local runtime&quot;]
  node_mlflow[(&quot;MLflow tracking&lt;br&#x2F;&gt;experiment tracking&quot;)]
  node_minio[(&quot;MinIO artifact storage&lt;br&#x2F;&gt;S3-compatible storage&quot;)]
  node_compose[&quot;Docker Compose&lt;br&#x2F;&gt;local orchestrator&lt;br&#x2F;&gt;[compose.local.yaml]&quot;]
  node_prometheus[&quot;Prometheus&lt;br&#x2F;&gt;metrics collection&lt;br&#x2F;&gt;[prometheus.yaml]&quot;]
  node_grafana[&quot;Grafana&lt;br&#x2F;&gt;metrics visualization&quot;]
  node_app_environment[&quot;Python application environment&lt;br&#x2F;&gt;runtime definition&lt;br&#x2F;&gt;[pyproject.toml]&quot;]
end

node_raw --&gt;|&quot;prepare&quot;| node_prep
node_prep --&gt;|&quot;produces ingestion-ready data&quot;| node_postgres_init
node_postgres_init --&gt;|&quot;loads&quot;| node_postgres
node_postgres --&gt;|&quot;DVC import&#x2F;export&quot;| node_dvc
node_train_config --&gt;|&quot;selects&quot;| node_model_configs
node_train_config --&gt;|&quot;composes runtime config&quot;| node_training
node_model_configs --&gt;|&quot;configures classifier&quot;| node_training
node_dvc --&gt;|&quot;dataset input&quot;| node_training
node_training --&gt;|&quot;logs runs and models&quot;| node_mlflow
node_hparams_config --&gt;|&quot;controls trials&quot;| node_tuning
node_search_spaces --&gt;|&quot;defines candidates&quot;| node_tuning
node_model_configs --&gt;|&quot;tunes model family&quot;| node_tuning
node_dvc --&gt;|&quot;dataset input&quot;| node_tuning
node_tuning --&gt;|&quot;logs tuning runs&quot;| node_mlflow
node_mlflow --&gt;|&quot;stores artifacts&quot;| node_minio
node_compose --&gt;|&quot;starts service&quot;| node_postgres
node_compose --&gt;|&quot;starts service&quot;| node_mlflow
node_compose --&gt;|&quot;starts service&quot;| node_minio
node_compose --&gt;|&quot;starts service&quot;| node_prometheus
node_compose --&gt;|&quot;starts service&quot;| node_grafana
node_prometheus --&gt;|&quot;metrics source&quot;| node_grafana
node_app_environment -.-&gt;|&quot;provides dependencies&quot;| node_training
node_app_environment -.-&gt;|&quot;provides dependencies&quot;| node_tuning

click node_raw &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;data&#x2F;raw&#x2F;.gitkeep&quot;
click node_prep &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;scripts&#x2F;prep_db_ingestion.py&quot;
click node_postgres_init &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;postgres&#x2F;init-db.sh&quot;
click node_dvc &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;customer_churn.csv.dvc&quot;
click node_train_config &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;configs&#x2F;train.yaml&quot;
click node_model_configs &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;configs&#x2F;model&#x2F;default.yaml&quot;
click node_training &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;src&#x2F;train&#x2F;train.py&quot;
click node_hparams_config &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;configs&#x2F;hparams.yaml&quot;
click node_search_spaces &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;configs&#x2F;hparams&#x2F;random_forest_hparam.yaml&quot;
click node_tuning &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;src&#x2F;hparams&#x2F;hparams.py&quot;
click node_compose &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;compose.local.yaml&quot;
click node_prometheus &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;prometheus&#x2F;prometheus.yaml&quot;
click node_app_environment &quot;https:&#x2F;&#x2F;github.com&#x2F;muthukamalan&#x2F;customer-churn-prediction&#x2F;blob&#x2F;main&#x2F;pyproject.toml&quot;

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_raw,node_prep,node_postgres_init,node_postgres,node_dvc toneBlue
class node_train_config,node_model_configs,node_training,node_hparams_config,node_search_spaces,node_tuning toneAmber
class node_mlflow,node_minio,node_compose,node_prometheus,node_grafana,node_app_environment toneMint
&lt;&#x2F;pre&gt;
</content>
        <summary type="html">https:&#x2F;&#x2F;github.com&#x2F;Muthukamalan&#x2F;Customer-Churn-Prediction</summary>
        </entry><entry xml:lang="en">
        <title>FastAPI-PetClinic Microservices</title>
        <published>2021-01-09T05:20:35+00:00</published>
        <updated>2021-01-09T05:20:35+00:00</updated>
        <author>
            <name>Muthukamalan</name>
        </author>
        <link rel="alternate" href="https://muthukamalan.github.io/projects/petclinic-microservice/" type="text/html"/>
        <id>https://muthukamalan.github.io/projects/petclinic-microservice/</id>
        
            <content type="html"></content>
        <summary type="html">https:&#x2F;&#x2F;github.com&#x2F;Muthukamalan&#x2F;Customer-Churn-Prediction</summary>
        </entry>
</feed>
