marți, 12 decembrie 2023

A brief introduction to MLOps

What is MLOps?

Machine Learning operations involve applying a set of processes, or more specifically, a sequence of steps to integrate a Machine Learning model into the production environment. There are several stages to go through before such a model is ready for deployment, and these processes ensure that the model can be scaled to meet a large user base and provide accurate results.



Why do we need MLOps?

Creating a machine learning model that can make predictions based on provided data is a relatively straightforward task. However, obtaining a machine learning model that is reliable, fast, accurate, and can be used by a large number of users poses a challenging endeavor.

The importance of MLOps can be summarized in the following points:


1. Machine learning models rely on a vast amount of data that is challenging for a single person to monitor.
2. Tracking the parameters we adjust in machine learning models is difficult, and minor changes can have a significant impact on the results.
3. It is necessary to keep track of the features the model works with, and feature engineering is a separate task that significantly contributes to the model's accuracy.
4. Monitoring a machine learning model is not akin to monitoring an already deployed software application or web application.
5. Debugging a machine learning model is an extremely complicated art.
6. Models rely on real-world data to make predictions, and with changes in real-world data, the model must evolve accordingly. This means monitoring changes in new data and ensuring the model learns accordingly.
7. Let's not forget the old reason cited by Software Engineers. The intention is to avoid that situation.

DevOps vs MLOps


The stages of DevOps are designed for the development of a software application. You plan the features of the application you want to launch, write code, build the code, test it, create a release plan, and deploy it. You monitor the infrastructure where the application is deployed. And this cycle continues until the application is fully built.

The Goal — We define the project, check if the problem requires the use of Machine Learning to solve it. We conduct requirement engineering, check if relevant data is available. We ensure that the data is not biased and reflects real-world usage scenarios.





MLOps Workflow

MLOps pipelines typically include steps such as data ingestion, data preprocessing, model training, model testing, model deployment, and model monitoring.




#1 Data preparation and management

The first phase in any machine learning process is the collection of data. Without clean and accurate data, the models are useless. Hence, data preparation & management is a crucial phase in MLOps workflow.It involves collecting, cleaning, transforming, and managing data so that we have the correct data in place to train the ML models. The end goal is to have data that is complete and accurate.

#2 Model training and validation

Once you have the data ready, you can feed it to your machine-learning models to train them. This is where you ensure that your models are trained well, and validated to ensure they perform accurately in production.

#3 Model deployment

After the model is trained and the performance is validated, it’s time to deploy it to production. The model deployment phase involves taking the model that has been trained, tested, and validated in earlier phases and making it available for use by other applications or systems.

#4 Continuous model monitoring & retraining

Machine learning models aren’t something like deploy and forget. One needs to constantly monitor the model’s performance and accuracy. Since the real world can change which might affect the efficiency and accuracy of the model.

Popular tools:

MLFlow, Seldon Core, Metaflow, and Kubeflow Pipelines.

luni, 11 decembrie 2023

Cirrhosis Patient Survival Prediction

 

Descrierea studiului:

Setul de date "Cirrhosis Patient Survival Prediction" este o colecție de informații care vizează predicția supraviețuirii pacienților cu ciroză hepatică. Acesta cuprinde 17 caracteristici și variabile pentru a prezice supraviețuirea și starea pacienților diagnosticați cu ciroză hepatică, inclusiv date demografice, rezultate ale testelor de laborator, informații despre tratamente și alte factori medicali relevanți.

Supraviețuirea este codificată 0 = D – deces, 1 = C – cenzurat, 2 = CL – cenzurat datorită transplantului

Obiectivul principal al acestui set de date este de a permite analiza și predicția supraviețuirii pacienților în funcție de diferitele lor caracteristici și factori medicali. Ciroza este consecința afectării prelungite a ficatului, care duce la cicatrici extinse, adesea din cauza unor afecțiuni precum hepatita sau consumul cronic de alcool. Datele sunt furnizate dintr-un studiu clinic al Clinicii Mayo privind ciroza biliară primară (CBP) a ficatului (1974 și 1984).

Înțelegerea setului de date:

Setul de date poate conține informații despre diversitatea răspunsurilor pacienților la tratamentele specifice, evoluția bolii și alte detalii clinice care pot fi cruciale pentru înțelegerea și gestionarea cirozei hepatice.

424 de pacienți cu PBC care s-au prezentat la Clinica Mayo s-au calificat pentru un studiu randomizat controlat cu placebo care a testat medicamentul D-penicilamină. Dintre aceștia, primii 312 pacienți au luat parte la studiu și au în mare parte date cuprinzătoare. Restul de 112 pacienți nu s-au alăturat studiului clinic, dar au fost de acord să înregistreze valorile de bază și să fie supuși urmăririi supraviețuirii. Șase dintre acești pacienți au fost în scurt timp imposibil de urmărit după diagnosticul lor, lăsând date pentru 106 dintre acești indivizi, în plus față de cei 312 care au făcut parte din studiul randomizat.

 Acest lucru poate fi utilizat pentru a dezvolta modele predictive care să ajute medicii să evalueze riscurile și perspectivele de supraviețuire pentru pacienții diagnosticați cu ciroză hepatică. Folosind datele din acest set, algoritmi de învățare automată pot fi antrenați pentru a identifica tipare și corelații între variabilele din cadrul acestui context medical specific.

Este important să se menționeze că manipularea și analiza acestui set de date trebuie realizată cu mare atenție și etică medicală, respectând confidențialitatea și drepturile pacienților, precum și utilizând informațiile doar în scopuri de cercetare și îmbunătățire a îngrijirii medicale.

Variabilele setului de date:

 

Procesarea datelor și cercetarea 

https://colab.research.google.com/drive/1752vdy9Zb0MLbEoB-veg5QvRLuClMdgc#scrollTo=dceff5d2


Pentru început am împărțit setul de date în următoarele capitole:

Încărcarea bibliotecilor si a setului de date

Informații despre setul de date

Validarea

Distribuția caracteristicilor numerice

Distribuția caracteristicilor categorice

Distribuția țintita

Colorarea și gruparea ierarhica

Pregătirea setului de date

Validarea încrucișata a modelului

Predicția și transmiterea rezultatelor

Am încărcat bibliotecile: numpy, pandas, matplotlib.pyplot și seaborn, împreună cu module din sklearn, scipy și module din bibliotecile de clasificare precum: xgboost, lightgbm, catboost. Apoi am încărcat seturile de date de antrenament, de test și setul de date original.

Am studiat prin statistică descriptivă toate cele 3 seturi de date.

Am efectuat validarea contradictorie pentru a vedea dacă seturile de antrenament și cel de test au distribuție similara prin determinarea scorului ROC-AUC, cu un rezultat de 0,50192, trăgând concluzia că cele două seturi sunt similare.

Am suprapus în grafice distincte pentru fiecare caracteristică din tabele (coloană) distribuția valorilor numerice observând că cele două seturi de antrenament și de test au o distribuție similară, iar setul de date original o distribuție aparte (albastru).

Am aplicat același lucru pentru variabilele categorice pentru datele din setul de antrenament, creându-ne o imagine despre câți pacienți au primit D-penicilamină, câți placebo, despre distribuția pe sexe (majoritatea fiind bărbați – 93%), despre proporția prezenței ascitei (5%), apariția hepatomegaliei a jumătate dintre pacienți.

Distribuția țintită a pacienților în setul de date de antrenament relevă că 63% au supraviețuit, 34% au decedat, iar 3% au supraviețuit în urma transplantului hepatic. 

Am realizat corelarea și gruparea ierarhică prin realizarea corelațiilor dintre caracteristicile seturilor de date sub forma unui heatmap, prin care s-a observat o corelație puterinică între nivelurile serice ale cuprului și bilirubinei, al SGOT (aspartat aminotransferazei - AST) cu bilirubina, nivelul de cupru și al fosfatazei alcaline. 

Am realizat pregătirea setului de date pentru Machine Learning models și am generat modele precum: regresie logistică, analiza discriminarii liniare, distribuție Gaussiană, distribuție Bernoulli, clasificarea K-Neighbors, Random forest, XGBC, LGBMC, catboost etc. 

Evaluarea rezultatelor

Rezultatele generate de modelele noastre pentru regresii, distribuții și clasificări le-am reprezentat grafic într-un barplot care ne sugerează că cel mai bun model pentru următoarele predicții este GradientBoostingClassifier. În urma rezultatelor antrenăm modelul pe setul de date de antrenament, urmând a face predicțiile. 

Perspective de viitor

În viitor propunem să realizăm predicțiile pentru aceste seturi de date. 

Bibliografie

https://www.kaggle.com/datasets/joebeachcapital/cirrhosis-patient-survival-prediction/data

vineri, 8 decembrie 2023

Artificial Intelligence approaches to Chatbot Development


Artificial Intelligence approaches  to Chatbot Development 






INTRODUCTION : 

    Artificial Intelligence (AI) enables machines to be intelligent, most importantly using Machine Learning (ML) in which machines are trained to be able to make better decisions and predictions. In particular, ML-based chatbot systems have been developed to simulate chats with people using Natural Language Processing (NLP) techniques. The adoption of chatbots has increased rapidly in many sectors, including, Education, Health Care, Cultural Heritage, Supporting Systems and Marketing, and Entertainment. Chatbots have the potential to improve human interaction with machines, and NLP helps them understand human language more clearly and thus create proper and intelligent responses. 

STATE OF THE ART : 

In 2023, the field of AI chatbots has seen significant advancements. Some of the best AI chatbots available this year include ChatGPT, Google Bard, Appy Pie Chatbot, ChatSonic, and Ada, among others. These chatbots are designed to engage with users in natural language, providing a wide range of benefits across industries. They offer features such as multichannel integration, real-time assistance, and seamless integration with other software. These chatbots are equipped with advanced features such as multilingual support and user-friendly interfaces. The use of AI-powered chatbots is one of the most popular applications of AI, and their 24/7 availability and rapid response times make them an invaluable asset for businesses.

IMPORTANCE : 

    Chatbots are important for several reasons, as highlighted by various sources. Some of the key benefits and reasons for their importance include:
  • 24/7 Availability and Instant Responses
  • Time and Cost Savings
  • Improved User Experience
  • Task automation
  • Ability to speak multiple languages

HOW DO THEY WORK :

    Chatbots work through a combination of algorithms, machine learning, and natural language processing. They are trained using large datasets of conversations and information to enable them to understand and respond to user queries. Here are the key aspects of how chatbots work:

Training and Learning: Chatbots are trained on large datasets of conversations and      information. 
Natural Language Processing (NLP): NLP enables chatbots to understand and interpret human language. 
Response Generation: Once a chatbot understands a user's query, it uses its training data and algorithms to generate a relevant response. 
Task Automation: Chatbots are designed to carry out specific tasks based on user queries.
Continuous Improvement: Through ongoing interaction and feedback, chatbots continue to learn and improve their performance. 

CONCLUSION :

    In the coming years, machine learning-based chatbots are poised to become more human-like manner, with the capacity to comprehend nuanced conversations and deliver responses in a manner that closely resembles human interaction. Furthermore, the sentiment analysis and emotion detection capabilities of these chatbots are expected to become more precise, facilitating easier social media monitoring for companies utilizing NLP-powered bots. These advancements are anticipated to significantly enhance user satisfaction and the overall quality of interactions with chatbots.

REFERENCES :

1.https://www.researchgate.net/publication/370844182_Artificial_Intelligence_Chatbots_A_Survey_of_Classical_versus_Deep_Machine_Learning_Techniques

2.https://www.appypie.com/blog/best-ai-chatbot

3.https://neptune.ai/blog/building-machine-learning-chatbots-platforms-and-applications

4.https://thesuperblogs.com/state-of-the-art-research-on-conversational-ai-and-chatbots-2023/


Gestionarea traficului prin inteligenta artificiala

  Gestionarea traficului             Circulația rutieră devine din ce în ce mai aglomerată și mai lentă, favorizându-se producerea a numeroa...