UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA

Size: px
Start display at page:

Download "UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA"

Transcription

1 UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICǍ ŞI INFORMATICǍ SPECIALIZAREA INFORMATICĂ LUCRARE DE DIPLOMǍ Conducător ştiinţific Prof. univ. dr. Czibula Gabriela Absolvent Morariu Alina Bianca 2013

2 UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICǍ ŞI INFORMATICǍ SPECIALIZAREA INFORMATICĂ LUCRARE DE DIPLOMǍ Tehnici de clasificare în diagnosticarea medicală Conducător ştiinţific Prof. univ. dr. Czibula Gabriela Absolvent Morariu Alina Bianca 2013

3 CUPRINS INTRODUCERE Învăţare automată Aspecte generale Taxonomia învăţării automate Voting feature interval Învăţare bazată pe instanţe Reprezentarea învăţării bazate pe instanţe K-Nearest Neighbors Weighted Nearest Neighbor Tehnici de clasificare în diagnosticarea medicală Importanţa sistemelor inteligente în diagnosticarea medicală Modelul unui sistem inteligent Exemple reprezentative..., Aplicaţia practică Descrierea problemei şi abordări existente în literatură Aplicaţia Analiza şi proiectare Implementare Manual de utilizare Rezultate comparative Extinderi posibile CONCLUZII...56 BIBLIOGRAFIE...57

4 INTRODUCERE Diagnosticarea este o etapă a actului medical care permite identificarea naturii şi cauzei afecţiunii de care suferă un pacient. În unele situaţii, precum şi cazul bolilor de piele, acest proces este îngreunat de similitudinea simptomelor şi de caracteristici specifice altor boli în diferite momente ale afecţiunii. Scopul proiectului este de a demonstra necesitatea asistării doctorilor de către sistemele inteligente. Din cauza numărului mare de informaţii, a erorii umane şi a dificulaţii ridicate a procesului de diagnosticare în anumite situtatii, aceste sisteme pot fi mai precise şi mai rapide decât cadrele medicale. Studiul de caz urmăreşte realizarea unui sistem inteligent, sub forma unui instrument vizual, care să ajute dermatologii la determinare exactă a tipului de boală erythemato-squamous. Se urmăreşte catalogarea pacientului într-una din cele şase categorii: psoriasis, seboreic dermatitis, lichen planus, pityriasis rosea, cronic dermatitis şi pityriasis rubra pilaris. Pentru realizarea obiectivului se folosesc trei algoritim de clasificare K-Nearest Neighbor (cel mai apropiat vecin de distanta K), Distance Weighted Nearest Neighbor şi Voting Feature Intervals. Pe baza unui set de date existent, aplicaţia permite catalogarea unui nou pacient oferind un diagnostic şi o explicaţie a deciziei luate. Lucrare conţine şi o comparaţie şi o analiză a rezultatelor obţinute. Setul de date este preluat din baza de date de pe site-ul UCI Machine Learning ( O înregistrare are 34 de caracteristici, fiecare pacient fiind evaluat cu 12 atribute clinice şi 22 atribute histopatologice (valoarea acestora este obţinută prin analiza microscopică a ţesutului). Pe baza acestui set de date cei trei algoritmi şi-au dezvoltat propria schemă de clasificare. Aşadar, pentru diagnosticarea unui pacient, fiecare clasificator dă un diagnostic şi rezultatele sunt prezentate utilizatorului, împreună cu explicaţiile corespunzatoare. 1

5 Partea practică a lucrării este o aplicaţie având o interfata grafică care permite doctorilor gestiunea pacienţilor şi a fişelor lor medicale, un istoric al consultaţiilor şi posibilitatea diagnosticării cu ajutorul celor trei clasificatori. Aplicaţia conţine şi o bază de date pentru salvarea tututor datelor. Primul capitol al lucrării oferă o perspectivă de ansamblu asupra învăţării automate, iar al doilea se axează pe o categorie particulară, învăţarea bazată pe instanţe. Aici sunt prezentaţi şi algoritmii KNN şi DWNN. Capitolul trei urmăreşte evoluţia diagnosticării în medicină accentuând importanţa sistemelor inteligente în acest domeniu, arată modelul unui sistem inteligent, iar partea finală a acestui capitol descris cele mai reprezentative exemple de aplicaţii. Ultimul capitol este un studiu de caz asupra diagnosticarii bolilor de piele, prezentând rezultatele utilizării algoritmilor de clasificare K-Nearest Neighbor (cel mai apropiat vecin de distanta K), Weighted Distance Nearest Neighbor şi VFI în aplicaţia practică. Secţiunea finală reprezintă concluziile desprinse din lucrare. 2

6 CAPITOLUL 1 Învăţare automată 1.1 Aspecte generale Capacitatea de a învăţa reprezintă o caracteristică centrală a inteligenţei, motiv pentru care devine o preocupere importantă atât pentru psihologia cognitivă cât şi pentru inteligenţa artificială. Domeniul învăţării automate, care întrepătrunde aceste disciplini, studiază procesul computaţional care marchează învăţarea umană, cât şi automată. Deşi au o identitate separată, există două aspecte principale pentru care învăţarea automată este o parte integrală a acestor domenii mari. În primul rând, cercetatorii nu pot ignora problemele legate de reprezentarea cunoştinţelor, organizarea memoriei şi performanţa, acestea fiind preocupări majore pentru ambele domenii. În al doilea rând, învăţarea are loc în orice domeniu care necesiţă inteligenţă, fie că sarcinile de bază implică diagnosticarea, planificarea, limbajul natural sau altceva. Astfel, învăţarea automată poate fi privită mai puţin ca un subdomeniu al Inteligenţei Artificiale şi al ştiinţelor cognitive, şi mai mult ca o paradigma pentru cercetare şi dezvoltare. Interesul pentru abordarea inteligenţei din punct de vedere computaţional apare o data cu începuturile inteligenţei artificiale, la mijlocul anilor Diversitatea problemelor atinge subiecte precum rezolvarea jocurilor, recunoaşterea literelor, concepte abstracte şi memoria verbală. Învăţarea era privită ca o trăsătură definitorie a sistemelor inteligente, iar îmbunătăţirea acesteia era în strânsă legătură cu dezvoltarea mecanismelor generale pentru cunoaştere, percepţie şi acţiune. Puncte istorice În anii 1960, cercetătorii IA au realizat importanţa cunoaşterii specializate a unui domeniu, apărând astfel primele sisteme intensive în cunoştinţe. Totuşi, oamenii de ştiinţă şi-au concentrat atenţia în continuare pe metode generale, independente de vre-un domeniu şi cu aplicaţii pe cele 3

7 perceptibile. În final, recunoaşterea şabloanelor şi inteligenţa artificială s-au dezvoltat în două branşe separate. Diferenţele s-au accentuat şi mai mult, pe măsură ce cercetătorii în recunoaşterea tiparelor au subliniat importanţa algoritmilor şi a metodelor numerice care erau în contrast cu euristicile şi metodele simbolice asociate paradigmelor de IA. În această perioadă, cercetătorii IA evitau discuţiile legate de învăţare, în timp ce încercau să înţeleagă rolul cunoştinţelor în comportamentul inteligent. Această eră era dominată de studii asupra reprezentării cunoştinţelor, a limbajului natural şi a sistemelor expert. Cu toate acestea, pe fundal au continuat şi studiile având la bază inteligenţa, manifestate prin reprezentări şi metode euristice care au devenit punctul central al inteligenţei artificiale. Anii 1970 aduc un interes crescut în domeniul învăţării automate, având ca motivaţie atât frustrarea datorată accentului pus pe sistemele expert, orientate pe domenii specifice, în ciuda faptului că învăţarea însemna întoarcerea la principiile generale, cât şi entuziasmul automatizării acestor cunoştinţe legate de un anumit câmp, precum şi speranţa modelării gândirii umane. Se propun multe metode noi şi se reînoieşte interesul asupra reţelelor neuronale, aducând din nou în atenţie tehnici care au fost abandonate în anii anteriori. Învăţarea automată se extinde în anii 1980 pe domeniile de planificare, diagnosticare, control şi modelare. Oamenii de ştiinţă devin mai serioşi în ce priveşte potenţialul algoritmilor de învăţare în rezolvarea problemelor din lumea reală, iar numarul aplicaţiilor de succes demonstrează că aceste tehnologii pot avea impact asupra industriei. De asemenea, meotodologia îşi formează o bază din ce în ce mai solidă, experimentele sistematice pe baze de date şi analizele teoretice precise devenind o normă şi nu o excepţie. Primul workshop despre învăţarea automată a avut loc la Universitatea Carnegie Mellon în anul 1980 şi a avut doar 30 de participanţi. Domeniul a cunoscut o creştere rapidă, apărând cărţi pe subiecte generale şi specializate, jurnale, articole şi conferinţe anuale cu un număr mai mare de participanţi de la an la an. 4

8 Învaţarea O definiţie clară, neambiguuă pentru învăţare nu se poate formula astfel încât să surprindă toată complexitatea conceptului. Conform dicţionarului, învăţarea poate fi definită ca procesul de dobândire a cunoştinţelor prin studiu, experienţă sau educare; dobândirea conştiinţei prin informaţie sau observaţie; angajamentul memoriei. Aceste definiţii au mai multe neajunsuri, fiind imposibil de testat dacă învăţarea a fost dobândită. Totuşi, o definiţie practică, cu ajutorul căreia să pastrăm subiectul sub studiu, este următoarea: Învăţarea este îmbunătăţirea performanţei într-un mediu prin achiziţionarea cunoştinţelor rezultate din experienţa obţinută în acel domeniu. Astfel, obiectele învaţă când sunt capabile săşi schimbe comportamentul astfel încât să aibă o execuţie mai performantă în viitor. 1 Scopul învăţării automate Deşi învăţarea automată are la bază preocuparea pentru învăţare, literatura de specialitatea prezintă patru scopuri explicite, de bază, fiecare cu propriile metodologii, abordări de evaluare şi poveşti de succes. Un prim scop implică modelarea mecanismului care stă la baza învăţării umane. În acest cadru psihologic, cercetătorii dezvoltă algoritmi de învăţare care sunt consistenţi cu cunoştinţele arhitecturii cognitive umane şi care sunt proiectaţi să explice anumite comportamente de învăţare observate. Această abordare produce o varietate largă de modele computaţionale, unele dintre ele explicând comportamentul la un nivel calitativ, pe când altele ajustează rata erorilor şi timpurile de răspuns a subiecţilor umani. O problemă tipică de învăţare poate fi definită de diagrama următoare: 1 Ian W. & Eibe F,- Data Mining- Practical machine learning tools and techniques, 2005, pg-12 5

9 Figura 1. Diagrama unei probleme de învăţare. Sursa: Rob Schapire Foundations of machine learning, 2003 Un al doilea grup de interes se referă la abordările empirice ale studiului învăţării automate. Scopul, în acest caz, este de a descoperi principii generale care corelează caracteristicile algoritmilor de învăţare şi a domeniului în care acţionează, cu comportamentul de învăţare. Abordarea standard este de a face experimente în care variază fie algoritmul, fie domeniul şi observarea impuctului rezultatelor asupra învăţării. Unele studii se bazează pe comparaţii între diferite clase de algoritmi, pe când altele examinează variaţiuni ale unuia singur; unele experimente consideră comportamentul în medii naturale, pe când altele variază caracteristicile mediilor sintetice. Studiile experimentale au ca rezultat o serie de generalizări empirice referitoare la metode alternative care sugerează zonele de slăbiciune, idei de îmbunătăţire a algoritmilor şi surse de dificultate în realizarea sarcinilor. O a treia categorie de preocupare are în vedere principiile generale, tratând învăţarea automată ca un domeniu aparţinând studiului matematic, cu scopul de a formula şi demonstra teoreme. Abordarea tipică presupune definirea unei probleme de învăţare, presupunând că poate sau nu poate fi rezolvat cu un număr rezonabil de cazuri de antrenament şi demonstrând această ipoteză pe caz general. Dacă abordarea empirică împrumută tehnici experimentale din fizică şi psihologie, abordarea matematică foloseşte instrumente şi concepte din informatică şi statistică. O ultima abordare este cea aplicativă, având ca scop principal utilizarea învăţării automate în problemele din lumea reală. Majoritatea aplicaţiilor de acest fel se bazează pe sisteme expert care necesită ani pentru dezvoltarea şi depanarea cunoştinţelor extensive specifice domeniului. Datorită faptului ca prin utilizarea învăţării automate se pot transforma datele de antrenament în 6

10 cunoştinţe, aceasta deţine potenţialul de a automatiza procesul de dobândire a cunoştinţelor. Paşii tipici de dezvoltare presupun forumlarea unei probleme interesante, proiectarea unei reprezentări pentru cazurile de antrenament şi dobândirea cunoştinţelor, colectarea datelor de antrenament şi utilizarea învăţării automate pentru generarea bazei de cunoştinţe. Un punct central al acestor abordări este preocuparea pentru dezvoltarea, înţelegerea şi evaluarea algoritmilor de învăţare. Dacă învăţarea automată este o ştiinţă, este, în mod cert, o ştiinţă a algoritmilor. 2 Un avantaj al învăţării automate este faptul că presupune căutarea într-un spaţiu mare de posibile ipoteze pentru a determina cea mai buna dintre cele care se potriveşte datelor observate pe baza cunoştinţelor deţinute a-priori. Domenii de aplicare O măsură a progresului realizat în învăţarea automată este numărul aplicaţiilor dezvoltate pentru lumea reală. Câteva din aplicaţiile de succes, din diferite domenii, sunt următoarele: Recunoaşterea vocală: aceasta are ca motivaţie faptul că recunoaşterea vocii are o mai mare acurateţe dacă este învăţată şi nu programată manual. În general există două faze de învăţare: prima, înainte ca produsul soft să fie livrat şi presupune învăţarea sistemului independent de utilizator şi a doua, dependentă de utilizator. Computer vision: Aceste sistemele vizuale includ aplicaţii precum recunoaşterea feţei (de exemplu, identificarea feţelor în imagini), sisteme care clasifică automat imaginile microscopice a celulelor şi recunoaşterea caracterelor optice. Ultimul tip de aplicaţie este utilizată la un nivel foarte mare de Oficiul Poştal US, pentru sortarea automată a scrisorilor cu adresele scrise de mână, peste 85% din corespondenţa din Statele Unite este sortată utilizând software de acest fel. Bio-supraveghere: multe eforturi guvernamentale sunt făcute pentru a identifica şi urmări apariţia focarelor de boli. Un exemplu de aplicaţie de succes este proiectul RODS care colectează în timp real fişele de internare în sălile de urgenţe a spitalelor din Pennsylvania pentru a determina şabloane de simptome care prezintă anomalii. 2 Langley P. Elements of Machine Learning, 1998, England, p

11 Controlul robortic: învăţarea automată a fost folosită cu succes în sistemele robotice. Ştiinţele empirice: ştiinţele intensive în date utilizează invăţarea automată pentru a uşura procesul descoperirilor ştiinţifice (de exemplu, modelarea expresiei genelor din celule, descoperirea obiectelor astronomice suspecte, caracterizarea tiparelor de activitate a creierului uman). 3 Filtarea spam-urilor: identificarea mailurilor ca fiind spam-uri sau nu. Înţelegerea limbii vorbite: în contextul unui domeniu limitat, algoritmul determină sensul cuvintelor utilizatorului. Diagnosticarea medicală: diagnostichează un pacient ca suferind sau nu de o boală. Segmentarea clienţilor: utilizat, spre exemplu, pentru a prezice reacţia unui pacient la o campanie promoţională. Detectarea fraudei: un exemplu de acest fel este identificarea tranzacţiilor de o natură frauduloasa. Predicţia vremii Taxonomia învăţării automate În funcţie de rezultatul dorit al algoritmului sau de datele de intrare disponibile se propune următoarea taxonomie pentru învăţarea automată: supervizată, nesupervizată, semi-supervizată, de întărire, învăţare prin învăţare. Învăţarea supervizată Acest tip de învăţare presupune că algoritmul generează o funcţie de mapare a datelor de intrare la rezultatul dorit. O formulare standard a sarcinilor de învăţare supervizată sunt problemele de clasificare: algoritmul trebuie să înveţe (să aproximeze comportamentul) o funcţie care clasifică o instanţă într-una dintre clasele disponibile observând mai multe exemple de input-output ale funcţiei. 3 Tom M. Mitchell- The discipline of machine learning, Rob Schapire Foundations of machine learning,

12 Primul pas în aplicarea învăţării supervizate este colectarea datelor. În cazul diponibilităţii unui expert, acesta ar trebui să sugereze atributele relevante. Altfel, cea mai simplă metodă este aplicarea forţei brute, adică măsurarea tuturor datelor disponibile în speranţa că atributele corecte (informative, relevante) pot fi izolate. Totuşi, această metodă are dezavantajul de a introduce zgomot şi atribute cu valori lipsă, necesitând un grad mare de preprocesare. Pregătirea datelor şi preporcesarea este al doilea pas aplicat, în scopul detectării zgomotului. O tehnică de reducere a acestuia este selectarea instanţelor. Selectarea instanţelor este o problemă de optimizare care încearcă să menţină calitatea datelor interesante extrase dintr-o bază de date, în timp ce reduce dimensiunea înregistrărilor. O altă tehnică presupune identificarea şi eliminarea atributelor irelevante care, prin reducerea cantităţii de date, ajută la îmbunătăţirea performanţei algoritmilor. Totuşi, multe atribute depind unele de altele şi combinaţia lor influenţează acurateţea modelelor de învăţare supervizată. O soluţie pentru această problemă este transformarea atributelor, prin contruirea unor atribute noi din setul de date iniţial. Atributele generate pot duce la crearea unor clasificiatori cu o precizie şi acurateţe mai ridicată. În plus, descoperirea atributelor seminficative ajută la o mai bună întelegere a procesului de clasificare şi a conceptului învăţat. Algoritmii specifici învăţării supervizate sunt grupaţi în mai multe categorii: clasificatori liniari (regresie logică, clasificatorul bayesian naiv, perceptron, maşinile cu suport vectorial), clasificatoriul quadratic, k-means Clustering, arborii de decizie, reţele neuronale şi reţele bayesiane. Procesul învăţarii supervizate este descris în următoarea figură: 9

13 Figura 2: Procesul învăţării automate supervizare Sursa: Taiwo Oladipupo Ayodele Types of Machine Learning Algorithms, 2010 Învaţarea nesupervizată În acest tip de învăţare, instanţele pe care se face învăţarea nu sunt catalogate, urmărindu-se modelarea datelor de intrare. La prima vedere, această învăţare pare mai dificilă, calculatorul fiind nevoit să înveţe ceva fără să ştie cum. Există două abordări pentru învăţarea nesupervizată. Prima este învăţarea agentului fără a da categorizările explicite, ci folosind un sistem de recompensare pentru a indica succesul. Acest tip de antrenament intră în categoria problemelor de decizie, scopul fiind de a lua decizii care maximizează recompensa şi nu de de clasificare. Abordarea este o generalizare a lumii reale, agenţii fiind recompensaţi pentru anumite acţiuni şi pedepsiţi pentru altele. De multe ori, învăţarea nesupervizată foloseşte o formă de învăţare prin întărire, agenţii bazânduşi acţiunile pe recompensele şi pedepsele anterioare, fără a învăţa informaţii despre felul în care 10

14 acţiunilor lor afectează mediul. Într-un fel, aceste informaţii nu sunt necesare deoarece prin învăţarea funcţiei de recompensare, agentul ştie ce trebuie să facă fară procesări ulterioare, deoarece ştie ce recompensă se aşteaptă să primească pentru fiecare acţiune pe care poate să o facă. Această abordare este avantajoasă în cazul în care calcularea fiecărei posibilităţi durează mult (chiar dacă sunt cunoscute toate posibilităţile de tranziţie între stări). Totuşi, la fel de mult poate dura şi acest tip de învăţare, bazat pe încercări şi eşecuri, însă puterea acestui tip de învăţare constă în presupunerea că nu există clasificări ale exemplelor pre-descoperite. A doua abordare a învăţării nesupervizate se numeşte clustering, prin care nu se urmăreşte maximizarea funcţiei de utilitate, ci descoperirea similitudinilor în cadrul setului de date. Se presupune că grupurile (clustere) descoperite pot fi folosite pentru clasificările intuitve. De exemplu, aplicarea metodei pe seturi de date demografice pot grupa indivizii în grupuri în funcţie de bunăstare, bogaţi şi săraci. Deşi algoritmul nu oferă nume pentru clusterele descoperite, prin găsirea lor, sunt utilizate la clasificarea noile instanţe într-unul sau în altul. Această abordare este bazată pe date şi poate fi aplicată dacă există un număr suficient de mare de date. Algoritmii de învăţare nesupervitată sunt proiectaţi să extragă structuri din datele de antrenament. Calitatea structurilor este măsurată cu ajutorul funcţiilor de cost care este minimizată prin deducerea parametrilor optimi care caracterizeaza structurile ascunse din date. Învăţarea semi-supervizată Acest tip de învăţare combină instanţele clasificate cu cele neclasificate cu scopul construirii unei funcţii sau a unui clasificator corespunzător. Un sub-tip din această categorie este transducţia, sau inferenţa transductivă, care încearcă să prezică rezultate noi bazându-se pe nişte cazuri de testare specifice şi fixate, deduse din observarea datelor de antremanet. Învăţarea prin întărie Algoritmii din această categorie învaţă un comportament bazat pe observarea mediului înconjurător. Fiecare acţiune a agentului are o consecinţă asupra mediului, iar mediul oferă un răspuns care ghidează algorimul de învăţare. 11

15 Învăţarea prin învăţare Acest algoritm face un set de presupuneri pe care le utilizează în predicţia clasificărilor instanţelor necunoscute. În funcţie de rezultatele obţinute, algoritmul obţine o anumită experienţă care formează baza porcesului de învăţare Voting feature interval În continuare este prezentat algoritmul Voting feature interval, cum se realizează învaţarea şi cum se face clasificarea unui obiect nou. VFI este asemănător clasificatorului bayesian naiv deoarece fiecare trasătură a unui obiect este prelucrată individual. Astfel, unitatea de lucru a acestui algoritm este intervalul caracteristic : pentru fiecare atribut al unui obiect se calculează intervalele sale caracteristice. Fiecare interval conţine instanţe ale mai multor clase, rezultând că fiecare atribut are o pondere în acestea. Pe baza acestor ponderi se acordă voturi iar scorul final este calculat ca suma a voturilor individuale raportate la fiecare atribut. În clasa cu scorul cel mai mare este clasificată noua instanţă. Etapa de învăţare VFI este un algoritm de clasificare non-incremental. Fiecare exemplar este reprezentat ca un vector de valori ale caracteristicilor sale şi o etichetă care precizează clasa din care obiectul face parte. Prima etapa a algoritmului presupune construirea intervalelor caracteristice pentru fiecare caracteristică. Un interval caracteristic apare sub forma unui set de valori pentru o anumită trăsătură, valori pentru care se observă aceleaşi subset de date dintr-o clasă. Găsirea intervalelor specifice unui atribut presupune determinarea punctelor minime şi maxime pentru fiecară clasă, pentru acel atribut (în cazul celor liniare). Lista punctelor găsite este ordoantă crescător, fiecare pereche de puncte consecutive considerându-se un interval. Pentru atributele nominale, se consideră fiecare valoare un punct diferit, respectiv un interval cuprinzând o sigura valoare. 6 5 Taiwo Oladipupo Ayodele Types of Machine Learning Algorithms, Narin Emeksiz Havelsan, Ankara Turke, Application of Machine Learning Techniques to Differential Diagnosis of Erythemato-Squamous Diseases 12

16 Reprezentarea fiecărui interval se face sub forma unui vector cu valorile: <atribut, limitainferioară, numărclasa1, numărclasa2,, numărclasak>, unde atribut este caracteristica pentru care este definit intervalul, limitainferioară este limita inferioară a acelui interval, k este numarul de clase şi numărclasai este egal cu numărul de instanţe ale clasei care aparţin intervalului. Astfel, un interval poate reprezenta mai multe clase. Se utilizează doar limita inferioară deoarece, în cazul caracteristicilor liniare, limiat superioară a unui interval este limita superioară a intervalului următor, iar în cazul trăsăturilor nominale limitele superioare şi inferioare a unui interval sunt egale. Un caz special apare când o instanţă a unei clase are ca valoare punctul limită al unui interval. În această situaţie, se consideră că obiectul respectiv face parte din ambele intervale care au ca limită punctul respectiv şi se adauga 0.5 la numărul instanţelor din acea clasă (pentru fiecare interval). Se poate observa că nu este necesară o normalizare a datelor deoarece fiecare caracteristică este procesată individual. 7 Etapa de clasificare Apartenenţa unei noi instanţe la o clasă se face pe baza voturilor acordate de fiecare caracteristică, pentru fiecare clasă. Se calculează voturile primite de fiecare clasă, ca şi suma voturilor acordate de fiecare atribut pentru acea clasă. Obiectul nou este clasificat în clasa cu cel mai mare punctaj. Pentru acordarea voturilor, pentru fiecare atribut se caută intervalul în care este cuprinsă valoarea atributului corespunzator a obiectului care trebuie clasificat. Fie <atribut1, limitainferioară, numărclasa1, numărclasa2,, numărclasak> intervalul găsit pentru atributul atribut1. Se calculează pentru fiecare clasă votul acordat de acest atribut ca raportul dintre numărul de instanţe ale clasei din acel interval şi numărul total de instanţe din acea clasă. Un caz special apare atunci când obiectul de catalogat are valori lipsă pentru unele atribute. În această situaţie, votul atributelor respective este 0 pentru fiecare clasă. O altă situaţie deosebită este în cazul în care valoarea atributului obiectului nou reprezintă limita unui interval. Valoarea votului este egală cu media voturilor celor două intervale corespunzătoare. Următorul pas din această etapa 7 Narin Emeksiz Havelsan, Ankara Turke, Application of Machine Learning Techniques to Differential Diagnosis of Erythemato-Squamous Diseases 13

17 are în vedere normalizarea acestor rezultate astfel încât suma voturilor acordate de un atribut fiecarei clase sa fie egală cu unu. Se calculează voturile totale obţinute de fiecare clasă prin însumarea voturilor individuale obţinute din partea fiecărei caracteristici. Clasa cu cel mai mare vot este clasa în care obiectul necunoscut este catalogat. 8 8 Narin Emeksiz Havelsan, Ankara Turke, Application of Machine Learning Techniques to Differential Diagnosis of Erythemato-Squamous Diseases 14

18 CAPITOLUL 2 Învăţare bazată pe instanţe 2.1 Reprezentarea învăţării bazate pe instanţe În contrast cu alte metode de învăţare, care construiesc o funcţie de evaluare generală şi explicită pentru antrenarea datelor, metodele învăţării bazate pe instanţe pur şi simplu memorează aceste date. Generalizarea dincolo de aceste exemple este amânată până în momentul în care trebuie clasificată o nouă instanţă. De fiecare dată când se găseşte o instanţă necunoscută, se examinează relaţia sa cu celelalte exemplare memorate, cu scopul de a ataşa acesteia o nouă valoare pentru funcţia de evaluare. O dată ce datele de antrenament au fost memorate, pentru realizarea unei noi clasificări se caută între aceste instanţe cea care se aseamană cel mai mult cu cea studiată. Problema care apare este cum se interpretează aceste asemanări, comparând instanţele noi, a căror clasificare este necunoscută cu cele a căror clasă se cunoaşte. Într-un fel, şi celelate metode de învăţare sunt bazate pe instanţe deoarece toate au ca punct de pornire un set de date care reprezintă baza iniţială de obţinere a informaţie. Însă, în contrast cu aceasta, reprezentarea cunoştinţelor bazată pe instanţe foloseşte instanţele în sine pentru a reprezenta ce se învaţă, şi nu se deduce o regulă care să se memoreze. Învăţarea bazată pe instanţe include metoda celui mai apropiat vecin şi metoda regresiei ponderate locale, care presupun că instanţele pot fi memorate ca puncte în spaţiul Euclidian. De asemenea, include şi metode de case-based reasoning care presupun reprezentări simbolice mult mai complexe. Într-un fel diferenţa dintre învăţarea bazată pe instanţe şi celelate este momentul în care are loc procesul de învăţare. Toate aceste metode sunt catalogate ca fiind lazy deoarece amână procesul de învăţare panâ când o nouă instanţă trebuie clasificată. Un avantaj pentru această abordare este faptul că în loc să se estimeze o funcţie de evaluare de la început, pentru tot spaţiul de instanţe, metodele estimează funcţia local şi diferit pentru fiecare dată nouă care trebuie clasificată. 15

19 Calcularea distanţei dintre două exemplare este trivială când acestea au un singur atribut numeric: se calculează diferenţa dintre valorile celor două atribute. La fel de uşor este tratat şi cazul mai multor atribute numerice: în general, se utilizează distanţa Euclidiană. Totuşi, trebuie ţinut cont de normalizarea atributelor şi de importanţa lor diferită. 9 În cazul atributelor nominale, este necesară gasirea unei distanţe între valorile diferite ale atributelor. De exemplu, cum se poate calcula distanţa dintre valorile roşu, galben şi verde? De obicei, se consideră distanţa zero pentru valori identice şi unu în caz contrar, astfel că distanţa dintre roşu şi roşu este zero, pe când distanţa dintre roşu şi verde este unu. Totuşi, este de dorit o reprezentare mai sofisticată a acestor atribute, spre exemplu, având mai multe culori se poate utiliza o măsură metrică a nuanţelor din spaţiul culorilor, punând galbenul mai apropiat de portocaliu decât verde. Unele atribute au o importanţă diferită care este reflectată în distanţa metrică cu ajutorul anumitor ponderi. Derivarea ponderilor pentru fiecare atribut din setul de antrenament este o problemă importantă în învăţarea bazată pe instanţe. Nu este necesar sau indicat să fie reţinute toate datele de antrenament, o primă motivaţie fiind încetinirea procesului de calculm, iar a doua spaţiul enorm ocupat. În general, există regiuni ale spaţiului atributelor sunt mai stabile decât altele, raportate la clasă, astfel că sunt necesare câteva exemple din interiorul regiunilor stabile. Spre exemplu, se cere o densitate mai mică a exemplarelor din interiorul regiunilor stabile decât densitatea necesară în jurul limitelor claselor. Decizia de a renunţa saun nu la anumite instanţe este un alt punct cheie în învăţarea bazată pe instanţe. Un inconvenient al reprezentărilor din acest model este că nu fac explicite structurile care se învaţă, violând asftel noţiunea de învăţare, prin faptul că nu descriu şabloanele datelor. Totuşi, instanţele împreună cu distanţele metrice consturiesc anumite bariere care diferenţiază o clasa de alta şi astfel reuşesc să reprezinte explicit cunoştinţele obţinute. Spre exemplu, avand două clase, fiecare cu o singură instanţă, regula celui mai apropiat vecin împarte spaţiul de-a lungul bisectoarei perpendiculare a liniei care uneşte cele două instanţe. Având un număr mai mare de instanţe, spaţiul este împărţit de o mulţime de linii care reprezintă bisectoarele perpendiculare ale liniilor selectate care unesc instanţele dintr-o clasă cu cele din cealalată. 9 Tom M. Mitchell- Machine Learning, ed. McGraw Hill,

20 Figura de mai jos ilustrează un poligon cu nouă laturi care separă clasa cercurilor umplute de clasa cercurilor goale. Renunţând la o parte din datele de antrenament, se păstrează instanţele care sunt de fapt folosite în luarea deciziei conform celui mai apropiat vecin. Figura. (b) prezintă cercurile colorate cu gri ca fiind instanţele la care se poate renunţa fară a afecta rezultatul final. De asemenea, exemplele prototipice servesc ca o reprezentare explicită a cunoştinţelor. 10 Figura 3. Partiţionarea spaţiului instanţelor şi reprezentarea cunoştinţelor (pg 79) Sursa: Ian W. & Eibe F, Data Mining- Practical machine learning tools and techniques, 2005, pg.79 Un dezavantaj al abordărilor bazate pe instanţe este costul ridicat pentru fiecare nouă clasificare, datorită faptului că majoritatea calculelor se fac în momentul clasificării şi nu atunci când sunt memorate iniţial datele de test. Ca o consecinţă, se caută tehnici eficiente de indexare a datelor de antrenament cu scopul reducerii calculelor necesare la fiecare nouă interogare. Un alt dezavantaj are în vedere faptul că iau în considerare toate atributele instanţelor, chiar dacă numai câteva sunt relevante pentru o corectă clasificare. 11 Alte puncte slabe sunt faptul că acurateţea algorimului scade pe măsura apariţiei zgomotului, precum şi faptul că funcţiile pentru calcularea distanţelor sunt neadecvate pentru aplicaţii cu atribute liniare şi nominale, cât şi din lipsa abilităţii de a modifica barierele de decizie o dată ce datele au fost salvate. Principalele avantaja ale acestor tehnici sunt învăţarea rapidă, faptul că nu pierd informaţii şi capacitatea de a învăţa funcţi de evaluare complexe. 10 Ian W. & Eibe F,- Data Mining- Practical machine learning tools and techniques, 2005, Tom M. Mitchell- Machine Learning, ed. McGraw Hill,

21 2.2 K-Nearest Neighbors În acest capitol este prezentat algoritmul k-nearest neighbor, utilizat pentru clasificări sau pentru predicţii (în cazul rezultatelor numerice). Pentru a clasifica sau prezice o noua dată, metoda se bazează pe găsirea altor înregistrări similare în datele de antrenament. Aceşti vecini sunt apoi folosiţi pentru a deriva o clasificare/ predicţie pentru noul obiect prin votare (pentru clasificare) sau printr-o medie (pentru predicţie). 12 Pe parcursul capitolului se arată cum se determină similitudinile, modalitatea prin care se alege numărul de vecini şi cum se realizează clasificarea. Ultima parte a capitolului prezintă avantajele şi dezavantajele algoritmului din perspectiva performanţei şi a altor considerente de ordin practic, de exemplu timpul computaţional. În recunoaşterea modelelor, algoritmul KNN este o metodă de clasificare a obiectelor folosinduse de cele mai apropiate k obiecte din setul de antrenament. KNN foloseşte învăţarea bazată pe instanţe (sau învaţarea întârziată), unde funcţia este aproximată local iar calculele efective sunt amânate până la clasificare. KNN este unul dintre cei mai simpli algoritmi de învaţare automată: un obiect este clasificat în funcţie de votul majoritar al vecinilor săi, de cele mai multe ori fiind clasat în categorie din care fac parte cei mai multi dintre cei k vecini. K este un număr întreg, pozitiv, în general mic. Dacă k este 1, obiectul este adăugat în clasa din care face parte cel mai apropiat vecin. 13 Se consideră reprezentare noului obiect ca fiind (x1,x2,..xp), unde x1,x2..xp reprezintă valorile atributelor obiectului. Căutam date în setul de antrenament care sunt similare sau apropiate înregistrării care urmează să fie clasificată (datele care au valori apropiate lui x1, x2,.. xp). Apoi, pe baza claselor din care fac parte datele găsite, atribuim o clasă obiectului necatalogat. 14 Determinarea vecinilor Algoritmul K-NN este o metodă de clasificare care nu ţine cont de relaţiile dintre membrii claselor şi a atributelor (X1..Xp), ci se foloseşte de informaţiile extrase din similitudinile dintre 12 Bruce P. et all (2010), Data Mining for Business Intelligence: Concepts, Techniques, and Applications in Microsoft Office Excel with XLMiner, ed John Wiley & Sons Inc, Hoboken, New Jersey Zheming L. et all (2010)- Three-Dimensional Model Analysis and Processing, ed. Zhejiang University Press, Hangzhou, p Bruce P. et all (2010), Data Mining for Business Intelligence: Concepts, Techniques, and Applications in Microsoft Office Excel with XLMiner, ed John Wiley & Sons Inc, Hoboken, New Jersey

22 valorile atributelor înregistrărilor. Vecinii sunt aleşi dintr-un set de obiecte pentru care se cunoaşte clasificarea corectă. Ei pot fi consideraţi ca fiind echivalentul datelor de învăţare, deşi nu există o etapă specifică de antrenare. Se poate considera, totuşi, că etapa de antrenament a algortimului constă numai în memorarea vectorilor caracteristici şi a etichetelor claselor pentru datele de antrenament.15 Dupa cum este menţionat mai sus, pentru identificarea vecinilor, obiectele sunt reprezentate ca vectori de poziţie într-un spaţiu multi-dimensional caracteristic. În momentul actual de clasificare, datele de test (a caror clasă e necunoscută) sunt reprezentate şi ele ca un vector în spaţiul caracteristic. Se calculează distanţa de la noul vector la cei existenţi şi se selectează primii k cu cea mai mică distanţă. Problema care apare în acest moment este modalitatea de determinare a distanţei dintre obiecte pe baza atributelor lor. Cea mai utilizată metoda de calcul a distanţei este distanţa Euclidiană. Astfel, distanţa Euclidiană dintre două obiecte, unul din setul de date de antrenament (x1,..,xp) şi unul nou care trebuie catalogat (u1,..,up) este:. Reguli de clasificare După calcularea distanţei dintre obiectul care trebuie clasificat şi celelate înregistrări, este necesară o regulă de asociere a acestuia la una din clasele primilor k vecini cu cea mai mică distanţă. Spaţiul este împărţit în regiuni de locaţie şi etichete pentru datele de antrenament. Un punct în spaţiu este atribuit unei clase c, dacă c este cea mai frecvetă etichetă a claselor celor mai apropiate k date de antrenament. 16 Există mai multe tehnici de clasificare a noului vector la o clasă particulară, cea mai utilizată fiind adăugarea acestuia la clasa predominantă a celor k vecini. Principala problemă este faptul că clasele cu exemplare numeroase influenţează catalogarea noului vector deoarece apar mai des 15 Zheming L. et all (2010)- Three-Dimensional Model Analysis and Processing, ed. Zhejiang University Press, Hangzhou, p Bruce P. et all (2010), Data Mining for Business Intelligence: Concepts, Techniques, and Applications in Microsoft Office Excel with XLMiner, ed John Wiley & Sons Inc, Hoboken, New Jersey

23 printre cei k vecini selectaţi. O soluţie posibilă este predicţia în funcţie de distanţa dintre fiecare k vecin şi noul vector. 17 Alegerea corectă a valorii lui k se face în funcţie de date. De obicei, pentru un k mare se reduce zgomotul în procesul de clasificare, însă trasează bariere clare între clasele asemănătoare. Pentru alegerea unui k potrivit se pot utiliza diferite metode euristice (de exemplu, crossvalidation- validarea încrucişatş). Cazul special în care un obiect este atribuit clasei cu cel mai similar exemplar (pentru k=1) este numit algoritmul nearest neighbor (cel mai apropiat vecin). 18 Avantaje şi dezavantaje ale algoritmului Principalul avantaj al K-NN este simplitatea şi lipsa presupunerilor parametrizate. De asemenea, în cazul unui set de date de antrenament mare, algoritmul are rezultate foarte bune. Un alt factor care influenţează performanţa algoritmului este caracterizarea unei clase prin multilple combinaţii de atribute. Spre exemplu, având o bază de date de imobiliare, există o probabilitate mai mare ca multiple combinaţii între {tipul locuinţei, numărul de camere, cartier, preţ să caracterizeze locuinţele care se vând repede versus cele care rămân pe piaţă o perioada mai mare de timp. Dificultăţile observate au în vedere faptul că precizia algoritmului KNN este afectată de existenţa zgomotului sau a caracteristicilor irelevante, precum şi dacă pondera acestora nu este în consistenţa cu importanţa. O alta problemă sesizată se referă la durata găsirii celui mai apropiat vecin, care este destul de mare, mai ales în cazul unui set de date de antrenament voluminos. 19 Ultimul dezavantaj observat se referă la blestemul dimensionalităţii, făcând referire la numărul mare de atribute. Pentru un segment de dreapta de coordonate (0,1), lungimea sa este 0, pentru un pătrat, lungimea între vârfurile opuse, de coordonate (0,0) şi (1,1) este, pentru un cub, 17 Zheming L. et all (2010)- Three-Dimensional Model Analysis and Processing, ed. Zhejiang University Press, Hangzhou, p Zheming L. et all (2010)- Three-Dimensional Model Analysis and Processing, ed. Zhejiang University Press, Hangzhou, p Bruce P. et all (2010), Data Mining for Business Intelligence: Concepts, Techniques, and Applications in Microsoft Office Excel with XLMiner, ed John Wiley & Sons Inc, Hoboken, New Jersey

24 lungimea diagonalei este dar pentru un hipercub cu 100 de dimensiuni, lungimea e egala cu 100. Cu cât numărul de atribute este mai mare, cu atât datele din acel spatiu sunt mai rare şi este cu atat mai greu de realizat un model de clasificare precis Weighted Nearest Neighbor Un rafinament evident al algoritmului KNN este ponderarea contribuţiei fiecăruia k vecin în funcţie de distanţa faţă de noua instanţă care trebuie clasificată, acordând o pondere mai mare vecinilor mai apropiaţi. Dudani introduce pentru prima dată o metodă de ponderare a voturilor, denumită regula distanţei ponderate a celor mai apropiaţi k-vecini. Pentru a calcula pondera w i corespunzătoare corespunzătoare celui de-al i-lea vecin al noii instanţe x, se aplică următoarea formulă 21 : Pentru a rezolva cazul în care valorile atributelor unui vecin sunt identice cu cele ale noii instanţe de catalogat, numitorul ponderii devenind zero, se clasifică noua instanţă în aceeaşi clasă cu prima, renunţându-se la alte calcule. Dacă există mai multe exemplare pentru care se întâmplă acest lucru, se alege clasa majoritară. Rezultatul clasificării este dat de majoritatea voturilor ponderate: Deşi algoritmul KNN consideră doar primii k vecini pentru etapa de clasificare, o dată ce se introduce ponderarea distanţelor, se reduce riscul unui rezultat greşit, în cazul în care se iau în considerare toate instanţele, prin faptul că vecinii mai îndepărtaţi vor primi o pondere mai mică. 9 Florin Leon (2012), Inteligenta atificiala: rationament probabilistic, tehnici de clasificare, ed Tehnopress, Iasi 21 Jianping Gou, Lan Du, Yuhong Zhang, Taisong Xiong- A New Distance-weighted k-nearest Neighbor Classier,

25 Singurul dezavantaj în considerarea tututor exemplarelor este încetinirea clasificatorului şi scăderea performanţei. Algoritmul care ia în considerare toate exemplarele se numeşte global, iar cel care ia în considerare doar o parte din vecini, se numeşte local. Dacă se aplică DWNN global, se obţine algoritmul cunoscut sub numele de metoda Shepard. 22 Rezultate experimentale comparative În această secţiune este prezentată performanţa celor doi clasificatori aplicaţei pe douăzeci de seturi de date preluate din baza de date UCI. În acest experiment, fiecare set de date este împărţit aleator în date de antreament şi date de test. Proprietăţile generale ale acestor date, precum şi partiţionarea lor, sunt prezentate în tabelul următor: Tabel 1. Seturile de date UCI şi partiţionările corespunzătoare Setul de date Număr Număr Număru clase Număr date Număr atribute instanţe antrenament de test Sticlă Vin Sonar Parkinson Ionosferă Mosc Vehicule Segmentarea imaginii Cardiotocografie Recunoaşterea optică a literelor scrise manual Sateliţi Recunoaşterea literelor Sursa: Jianping Gou, Lan Du, Yuhong Zhang, Taisong Xiong- A New Distance-weighted k-nearest Neighbor Classier, 2012 date Pentru creşterea confidenţei în performanţa clasificatorilor, se fac experimente de timpul validării încrucişate cu 20 de sub-seturi şi obţinând o acurateţe de 95%. Valoarea lui k variază de la 1 la 22 Tom M. Mitchell- Machine Learning, ed. McGraw Hill,

26 15. Pentru fiecare set de date se alege k care obţine cea mai mare rată de acurateţe. Perfomanţa finală este evaluată ca media ratelor de acurateţe. Rezultatele experimentului, din punct de vedere al acurateţii algoritmilor, sunt prezentate în tabelul de mai jos. Se observă că WKNN obţine o performanţă mai bună ca şi acurateţe, iar numarul optim k este mai mare pentru al doilea algoritm: 23 Tabel 2. Acurateţea obţinută pentru KNN şi WKNN şi k optim Setul de date KNN WKNN Acurateţe K optim Acurateţe K optim Sticlă Vin Sonar Parkinson Ionosferă Mosc Vehicule Segmentarea imaginii Cardiotocografie Recunoaşterea optică a literelor scrise manual Sateliţi Recunoaşterea literelor Sursa: Jianping Gou, Lan Du, Yuhong Zhang, Taisong Xiong- A New Distance-weighted k-nearest Neighbor Classier, Jianping Gou, Lan Du, Yuhong Zhang, Taisong Xiong- A New Distance-weighted k-nearest Neighbor Classier,

27 CAPITOLUL 3 Tehnici de clasificare în diagnosticarea medicală 3.1 Importanţa sistemelor inteligente în diagnosticarea medicală Simptomele sunt reacţiile fizice sau stările mentale care necesită atenţie medicală. Având un caracter intrusiv, obstructiv şi indezirabil, precum şi o complexitate dată de felul cum sunt percepute, interpretate şi tratate, simptomele creează o stare de incertitudine care necestită explicaţii. Ele trebuie să fie etichetate şi înţelese pentru a se putea găsi o cale de recuperare, de revenire la sinele obişnuit. Toţi oamenii care se îmbolnăvesc vor un diagnostic, fiind prima speranţă către însănatoşire. Diagnosticul este numele bolii: când se dă un diagnostic, se dă o boală. De obicei, doctorii sunt cei care diagnostichează şi se luptă cu boala. Aceştia au nevoie de diagnosticare pentru a afla de ce, pentru a putea discuta şi compara, pentru a găsi soluţii şi pentru a face presupuneri asupra viitorului. Diagnosticarea transformă starea unei persoane în ceva tangibil, palpabil, care poate fi biruit, fiind primul şi cel mai crucial pas către vindecare. Etichetarea este o activitate umană de bază: punând o denumire lucrurilor, omul se orientează în lume, încearcă să le înţeleagă şi să le stăpânească. Etichetele se referă la modele, la şabloane, creând categorii în care fiecare fenomen poate fi grupat. Problema care apare este în delimitarea clara a categoriilor şi catalogarea corectă. La fel şi diagnosticarea, este un proces de etichetare, fiind rezultatul investigaţiilor care o preced. Aceasta fază poate fi precisă şi rapidă sau poate fi prelungită şi neorientată către un rezultat. Multe dintre simptomole care fac pacienţii să ceară ajutor sunt atât de vagi că pot îndrepta diagnosticarea spre direcţii multiple. În mod traditional, doctorii sunt cei care dau un diagnostic şi prescriu un tratament. În ultima perioadă se observă o tentinţă de utilizare a programelor soft în medicină pentru a ajuta şi corecta deciziile cadrelor medicale. O maximă latina spune ca Errare humanum est 24, eroarea umană fiind posibilă şi în acest domeniu, însă cu consecinţe mult mai grave. Diagnosticarea cazurilor dificile creşte şansele unei greşeli, astfel ca un sistem inteligent care să confirme sau să sugereze o posibilă boală este indicat şi necesar. 24

28 Diagnosticarea fără asistenţă computerizată presupune că un clinician să ţină minte sute de boli cunoscute împreună cu numele, simptomele, cauzele şi mecanismele corespunzatoare. Astfel, bolile uitate sau cele care nu au fost niciodată învaţate, nu vor fi diagnosticate niciodată. Având în vedere creşterea explozivă a cunoştinţelor medicale este imposibil de memorat toată informaţia. O soluţie partială este utilizarea specialiştilor medicali, însă aceasta este o soluţie imprefectă deoarece cunoştinţele sunt atât de vaste încât nici măcar specialiştii nu pot să reţină toate informaţiile. De asemenea, accesul la această categorie de medici nu este tot timpul facil. Adăugând complexitatea procesului de diagnosticare, simptomele similare şi investigaţiile neconcludente, existenţa programelor de diagnosticare este de o importanţă imperativă. Calculatoarele pot oferi o asistenţă excelentă în astfel de situaţii. Cu o capacitate de memorare foarte mare, pot memora cu uşurinţă multe textele medicale, iar procesoarele pot aduce rapid informaţiile dorite. Deşi diagnosticarea medicală computerizată este de o importanţă foarte mare, asistenţa doctorilor de către aceste programe nu este un fenomen răspândit. Dintre motivele care împiedică dezvoltarea şi utilizarea sistemelor de diagnosticare se observă: - problema interdisciplinară: programatorii nu au experienţă necesară pentru a observa nuanţele din practicile medicale, iar medicii nu au abilitaţile matematice şi logice necesare în domeniul informaticii; - dificultatea misiunii: medicina are multe aspecte care nu pot fi traduse în algoritmi matematici; - algoritmi bazaţi pe premise false; - credinţa falsă că toate nuanţele practicilor medicale zilnice pot fi reprezentate cu ajutorul instrumentelor matematice sofisticate; 25 - acurateţea deciziilor: deciziile trebuie sa aibă un grad mare de corectitudine, însă foarte puţine aplicaţii au atins performaţele de acurateţe a experţilor umani, - existenţa unui flux de lucru continuu: sistemele nu oferă toate informaţiile de care are nevoie un clinician (spre exemplu, sistemele nu oferă şi un plan de tratament, medicul fiind nevoit să caute informaţii în altă parte), - gradul de utilizabilitate: interfeţele primelor sisteme nu erau orientate către utilizator, iar pentru utilizarea acestora este nevoie de o perioada de învăţare, 24 A greşi e omeneşte (lat) 25 Carlos Feder- Computerized Medical Diagnosis: A Novel Solution to an Old Problem, ed. Infinity, SUA,

29 - lipsa explicaţiilor: un număr mare de sisteme nu oferă explicaţii pentru deciziile sugerate, reducând gradul de încredere în acestea. 26 Un sistem de diagnosticare trebuie să îndeplinească următoarele cerinţe: - Performanţa bună: acurateţea clasificării noului pacient trebuie să fie cât mai mare, în general aceasta trebuie să fie cel puţin egală cu acurateţea medicilor. - Tratarea valorilor lipsă: în diagnosticarea medicală, unele date nu sunt disponibile, iar algoritmii trebuie trateze aceste situaţii. - Tratarea zgomotului datelor: unele date suferă de incertitudine şi erori, iar algoritmii trebuie să aibă mijloace de a lucra cu acestea. - Transparenţa diagnosticării: decizia luată de sistem trebuie să fie transparentă pentru medic pentru ca acesta să poată analiza şi întelege datele generate. - Abilitatea de a explica decizia luată: în cazul unei situaţii neaşteptate, medicul poate cere informaţii suplimentare, în caz contrar nu va lua în serios sugestia dată de sistem. - Diminuarea numărului de teste: colectarea datelor pacienţilor este costisitoare, motiv pentru care se preferă un sistem care poate da un diagnostic folosind un număr restrâns de date Modelul unui sistem inteligent De la începuturile sistemelor expert la sfârşitul anilor 1960, începutul anilor 1970, diagnosticarea şi interpretarea au fost zonele de aplicabilitate favorite. Figura 5 prezintă componentele logice ale procesului de diagnosticare. În general, un sistem este alcătuit din două componente: o componentă având la bază cunoştinţe medicale (cuprind informaţii despre raporturile simptomeboli, inter-simptome şi inter-boli) şi o interfaţă (utilizată pentru interpretarea datelor pacientului pe baza cunoştinţelor medicale). 26 Kavishwar B. Wagholikar, Vijayraghavan Sundararajan, Ashok W. Deshpande- Modeling Paradigms for Medical Diagnostic Decision Support: A Survey and Future Directions, Józef Karbicz - Fault Diagnosis.: Models, Artificial Intelligence, Applications, ed Springer, Berlin,

30 Figura 4. Componentele logice ale procesului de diagnosticare medicală Sursa: Kavishwar B. Wagholikar et All- Modeling Paradigms for Medical Diagnostic Decision Support: A Survey and Future Directions, 2011 Complexitatea problemei de diagnosticare depinde de domeniu, numărul de instanţe de învăţare, de numărul şi tipul atributelor şi de numărul categoriilor de clasificat. Domeniile medicale au un grad variat de complexitate: de exemplu, bolile cardiovasculare, având un număr mare de simptome prezintă un grad de complexitate redus faţă de diagnosticările pentru cancer, cu un număr mic de simptome. În plus, o problemă de diagnosticare poate fi mai complexă din cauza unui număr mic de instanţe de antrenare sau a atributelor. De asemenea, diagosticările binare, care presupun afirmarea sau infiramarea prezenţei unei boli, sunt mai puţin complexe decât cele cu un grad mai mare decât cele cu mai multe diagnosticări posibile. 28 În trecut, cele mai multe eforturi de a aplica inteligenţa artificială în diagnosticare utilizau sitemele bazate pe reguli. Aceste programe erau uşor de creat, deoarece cunoştinţele erau catalogate sub forma regulilor de tipul dacă..atunci.., formând un lanţ de deducţii pentru a ajunge la o concluzie. În domeniile cu constrângeri bine definite, aceste programe s-au dovedit a fi foarte exacte. Totuşi, numărul domeniilor era unul mic, iar problemele clinice serioase sunt atât de complexe încât nu este posibilă crearea unui set de reguli bine format. Problema apare din faptul că aceste sisteme nu sunt formate pe baza unui model de boala sau pe raţionamente clinice. În absenţa acestor modele, prin adăugarea unei noi reguli, se ajungea la interacţiuni neanticipate între reguli, astfel încât performanţa programului avea de suferit. 28 Kavishwar B. Wagholikar, Vijayraghavan Sundararajan, Ashok W. Deshpande- Modeling Paradigms for Medical Diagnostic Decision Support: A Survey and Future Directions,

31 Având în vedere aceste dificultăţi, eforturile recente de a utiliza inteligenţa artificială în diagnosticare s-au focalizat pe sisteme create în jurul unui model de boală. Astfel, s-au făcut progrese remarcabile în ce priveşte înţelegerea expertizei clinice şi în translatarea acesteia în modele cognitive şi apoi, conversia modelelor în programe experimentale. 3.3 Exemple reprezentative Câteva dintre primele programe de diagnosticare aparute au avut succes şi au devenit clasice. Un exemplu este MYCIN, dezvoltat la începutul anilor 70, sistem utilizat pentru diagnosticarea infecţiilor bacteriene şi prescrierea antibioticelor. Alte sisteme cunoscute din acest domeniu sunt: CASNET (pentru diagnosticarea şi tratarea glaucomului), PIP (pentru diagnosticarea bolilor renale), Internist-I (diagnosticarea bolilor interne). Anii 90 aduc o îmbunătăţire prin combinarea a două sau mai multe tehnici. Astfel apare ICHT- dezvoltat pentru a reduce mortalitatea copiilor în special în zonele rurale, HERMES- utilizat în previziunea bolilor de ficat, Neo-Dat- sistem expert pentru studiile clinice, ISS- folosit pentru diagnosticarea bolilor cu transmitere sexuală. Apar sistemele de diagnosticare on-line: Experienced Based Medical Diagnostics System şi Case Based Resoning. Altă tehnică utilizată în diagnosticare este data mining - descoperirea informaţiilor interesante în bazele de date de dimensiuni mari. Utilizând aceasta tehnică, erau generate diagrame şi noi reguli pentru îmbunătăţirea sistemelor bazate pe reguli existente. Logica fuzzy şi reţelele neuronale sunt alte tehnici utilizate frecvent în acest domeniu. 29 Diagnosticarea autismului În Statele Unite, media de vârstă pentru diagnosticarea autismului este de 5 ani jumătate, dar un sfert din copii rămân nediagnosticaţi până la vârsta de 8 ani. Deşi autismul are o puternică componentă genetică, diagnosticarea sa se face pe baza comportamentului. Cele mai utilizate instrumente pentru diagnosticarea autismului sunt ADI-R (Autism Diagnostic Interview Revised), care constă într-un chestionar de 93 de întrebări şi ADOS (Autism Diagnostic 29 Wan Hussain Wan Ishak, Fadzilah Siraj Artificial intelligence in medical applications: an exploration 28

32 Observation Schedule), care implică observarea de către un clinician a 27 de atribute de comportament. Ambele teste pot dura până la trei ore. Încercările de a diminua durata testelor sunt privite cu scepticism, experţii considerând că eliminare anumitor întrebări duce la excluderea anumitor categorii de pacienţi, cum ar fii indivizii cu o funcţionalitate ridicată sau copiii mici. Ultimele studii dezvoltate de Dennis Wall, directorul Iniţiativei Biologiei Computaţionale de la Şcoala Medicală Harvard, arată că utilizând inteligenţa artificială şi sistemele expert a identificat un subset de 7 întrebări din ADI-R şi o serie de comportamente evaluate de ADOS ca fiind cruciale pentru identificarea autismului. Testând performanţa a 15 algoritmi bazaţi pe învăţare automată pe cele 93 de întrebări, se observă ca cele mai bune rezultate sunt obţinute de Arborii de Decizie Alternantă, cu o sesibilitate perfectă de 1 şi o rata de pozitiv fals de şi o acurateţe de ansamblu de 99,9%. Conform acestui clasificator, doar 7 întrebări sunt relevante şi necesare pentru o diagnosticare corectă, reduând timpul în mod considerabil. Rezultatele celor 15 algoritmi sunt prezentate în tabelul de mai jos. Table 3. Rezultatele celor 15 algoritmi folosiţi pentru diagnosticarea autismului. Sursa: Dennis P. Wall et All - Use of Artificial Intelligence to Shorten the Behavioral Diagnosis of Autism 29

33 Sistemul dezvoltat este aproape în perfectă concordanţă cu diagnosticările specialiştilor în ce priveşte identificarea autismului. Este mai puţin specific în ce priveşte catalogarea persoanelor care nu au această boală, şi anume 92%, ceea ce înseamană că 8% din cei care nu suferă de aceasta afecţiune sunt catalogaţi greşit, ca fiind bolnavi Dennis P. Wall, Rebecca Dally, Rhiannon Luyster, Jae-Yoon Jung, Todd F. DeLuca- Use of Artificial Intelligence to Shorten the Behavioral Diagnosis of Autism 30

34 CAPITOLUL 4 Aplicaţia practică 4.1 Descrierea problemei şi aborări existente în literatură Descrierea problemei Dermatologia este o ramură a medicinii care urmăreşte explicarea, diagnosticarea şi tratarea bolilor de piele, păr şi unghii. O clasă particulară a bolilor dermatologice este denumită erythemato-squamous, indicând înroşirii pielii (erythemato) cauzată de pierderea celulilor de piele (squamous). În general, cauza bolii este fie genetică, fie dată de factori de mediu şi se manifestă în perioade specifice ale vieţii (copilărie, adolescenţă timpurie). Erythemato-squamous este o categorie generică pentru o varietate de condiţii medicale care prezintă simptome care coincid. Se practică trei metode principale pentru diagnosticarea condiţiilor medicale: clinic, hispatologic şi recent, o nouă metodă prin examinare microscopică specializată. Examinarea clinică se bazează pe un control non-invaziv, vizual al simptomelor (cum ar fi locaţia, mărimea, prezenţa pustulelor, culoarea). Examinarea hispatologică necesită prelevarea unei mostre de ţesut (biopsie) şi o analiză de sânge pentru detectarea eventualelor surse virale. Cea mai recentă metodă de diagnosticare se bazează pe o microscopie confocală non-invazivă. Există şase sub-tipuri ale acestei boli (psoriasis, seboreic dermatitis, lichen planus, pityriasis rosea, cronic dermatitis şi pityriasis rubra pilaris), iar diagnosticarea corectă a uneia dintre ele este o problemă des întâlnită. Încadrarea într-una dintre cele saşe categorii este o îngreunată din cauza faptului că au multe simptome similare (de exemplu eritemul - roseata a pielii). O altă dificultate în diagnosticare apare în cazul în care o boală prezintă caracteristicile alteia în faza incipientă, crescând astfel şansele unei diagnosticări greşite Kenneth Revett, Florin Gorunescu, Abdel-Badeeh Salem & El-Sayed El-Dahshan Evaluation of the Feature Space of an Erythematosquamous Dataset Using Rough Sets,

35 În lucrearea de faţă sunt considerate 12 atribute clinice şi 22 de atribute hispatologice. Acestea sunt ilustrate în tabelul de mai jos: Tabel 4: Datele (atribute şi clase) folosite în aplicaţie Sursa: H. Altay Guvenir, Gulsen Demiroz, Nilsel Ilter Learning differential diagnosis of erythemato-squamous diseases using voting feature intervals, 1988 Setul de date folosi în aplicaţie este preluat din data de baze UCI şi conţine 266 de pacienţi, diagnosticaţi cu una dintre cele şase subtipuri ale erythemato-squamous, menţionate mai sus. Fiecare pacient are cele 34 de atribute şi o clasă de decizie, indicând cu ce tip de boală este diagnosticat pacientul. Valorile atributelor sunt nominale şi, cu excepţia vârstei, sunt cuprinse între 0 şi 3. Zero indică lipsa atributului, 3 este valoarea maximă posibilă, iar 1 şi 2 sunt valori intermediare. Atributul de vârstă conţine valorile reale, cuprinse între 17 şi 69, iar pentru acest atribut există 8 valori lipsă. Distribuţia pacienţilor în fiecare clasă de decizie este prezentată în tabelul următor: 32

36 Tabel 5: Distribuţia pacienţilor în fiecare clasa de decizie Studii existente Literatura care analizează boala erythemato-squamous este relativ recentă, iar cele mai multe studii exploatează setul de date oferit de UCI, folosit şi în această lucrare. H. A. Guvenir publică o serie de studii bazate pe aceste date în care analizeaza noua schemă de clasificare, voting feature intervals. Rezultatele arată că datele pot fi clasificate corect cu o acurateţe ridicată (aproximativ 99%). VFI (şi versiunea îmbunătăţită, VFI-5) produce un set de reguli, însă aceste reguli sunt bazate pe intervale şi descrise valori numerice greu de interpretat pentru neiniţiaţi. Ca extensie a acestui studiu, cu ajutorul unui algoritm genetic, se găseşte ponderea fiecărui atribut. Confom acestuia, koebner phenomenon are cea mai mare influenţă în luarea deciziei de clasificare, primind o pondere de 0.062, fiind urmat de inflammatory mononuclear infiltrare, cu La polul opus, atribute precum acanthosis, follicular horn plug sau vârsta sunt cele mai puţin relevante. Tot pe aceste date, Castellano realizează un sistem neuro-fuzzy bazat pe reguli în mai mulţi paşi, denumit Kernel. Sistemul Kernel are o abordare pe trei etape: în prima fază, un algoritm supervizat de grupare (cluster) este folosit pentru a găsi informaţii de pe datele iniţiale. Apoi, o învăţare supervizată de tipul fuzzy- reţele neuronale pentru ajustarea parametrilor din algormitmul fuzzy. Ultimul pas este procesul de rafinare a regulilor cu scopul de a minimiza setul de reguli final. Autorii constată că atributul de vârstă reduce acurateţea clasificatorului, de la o acurateţe de 95% în cazul eliminării acestui atribut, la 71% în cazul prezenţei sale. Alţi autori au implementat maşini cu suport vectorial (SVM) pentru clasificarea datelor specifice bolii erythemato-squamous. Într-un raport realizat de Nanni, un ansamblu de clasificatori, fiecare 33

37 utilizând un subset de date, sunt combinaţi pentru a forma o schema de clasificare holistică superioară altor SVM-uri pentru acest set particular de date, cu o rată de eroare între 2 şi 3%. Derya şi Dogdu publică rezultatele unui studiu bazat pe o abordare k-means clustering având ca rezultat o acurateţe a clasificării de 94%, utilizând datele corespunzătoare pentru 5 clase din 6 (este omisă pityriasis rubra pilaris, cu 20 de instanţe). Czibula şi alţi colaboratori discută utilizarea unui sistem suport de decizie de tip multi-agent pentru clasificarea acestor date dermatologice, prezentând un MDSS care dispune de o reţea neuronală antrenată cu backpropagation, obţinând ca rezultat o acurateţe de peste 99%. Karabatak prezintă un algoritm hibrid oferind ca date de intrare pentru reţelele neuronale, reguli de asociere. Regulile de asociere reflectă date interesante conţinute în setul de date şi, prin definiţie, acestea reduc spaţiul atributelor prin extragerea relaţiilor utile care păstrează esenţa informaţiilor. Noile date obţinute sunt date apoi reţelei neuronale spre prelucrare. Regulile de asociere reduc spaţiul atributelor de la 34 la 20, iar algorimul obţine o acurateţe de 99%. Prezentarea studiilor asupra diagnosticării acestui tip de boală nu este exhaustivă, însă oferă o indicaţie asupra abordărilor diferite folosite în investigarea conţinutului informaţiilor din acest set de date. O observaţie imediată este acurateţea ridicată a clasificării pentru mulţi din algoritmii menţionaţi peste 99%. Acest procent ridicat este neaşteptat din perspectiva faptului că setul de date conţine şase clase de decizie şi un număr relativ mic de înregistrări (366). O explicaţie posibilă este dimensiunea mare a spaţiului atributelor (34). Importanţa fiecăruit atribut constituie preocuparea cercetătorului Kenneth Revett în studiul referitor la evaluarea atributelor cu ajutorul datelor neprelucrate. Metoda seturilor de date brute (Rough Sets) are ca filosofie de bază reducerea elementelor (atributelor) pe baza conţinutului informaţiilor despre fiecare atribut sau colecţie de atribute (obiecte) astfel încât să existe o mapare între obiectele similare şi clasa de decizie corespunzătoare. Rezultatele studiului arată că deciziile de clasificare sunt influenţate de valorile intermediare (1 şi 2) ale atributelor şi nu de cele maximale. Valorile intermediare sunt mai puţin precise decât cele extreme, generând astfel un număr ridicat de reguli. De asemenea, utilizând doar atributele clinice, acurateţea este de 50%. Atributele histopatologice produc o acurateţe a clasificării mai ridicată, de 85%

38 4.2 Aplicaţia Analiză şi proiectare Document de specificare functională Cerinţele funcţionale se referă la serviciile pe care un sistem software trebuie să le ofere. Programul va executa acţiuni precum afişarea, procesarea şi managementul datelor în funcţie de aceste specificări funcţionale. Funcţionalitatea aplicaţiei constă în gestionarea pacienţilor, a fişelor medicale, a tratamentelor precum şi probleme de diagnosticare. Detalierea acestor activităţi este realizată în tabelul următor: Nr crt Funcţionalitate 1 Autentificarea medicilor prin userul şi parola personală 2 Doctorii vor putea introduce noi pacienţi şi modifica datele pacienţilor deja existenţi 3 Doctorii au posibilitatea de a consulta fişa medicalş a pacienţilor, de a vedea istoricul şi date medicale personale. 4 Doctorii vor putea vedea istoricul consultaţiilor şi prescrie noi tratamente 5 Doctorii vor putea folosi algoritmii de diagnosticare pentru boala de piele erythemato-squamous. Acest sistem este until în multe acţiuni de management al pacienţilor unui spital, ajutând la o mai bună organizare a datelor şi a muncii. 32 Kenneth Revett, Florin Gorunescu, Abdel-Badeeh Salem & El-Sayed El-Dahshan Evaluation of the Feature Space of an Erythematosquamous Dataset Using Rough Sets,

39 Cazuri de utilizare Caz de utilizare: Autentificare Actor: Doctor Descriere: Doctorul doreşte să înceapă o sesiune de lucru în sistem. Scenariu: CU începe când un doctor doreşte să efectueze diferite acţiuni 1. Terminalul afişează un mesaj prin care cere doctorului userul şi parola. 2. Doctorulul introduce datele cerute. 3. Sistemul verifică credenţialele primite. 4. Sistemul afişează pagina de start a aplicaţiei. 5. CU se incheie. Scenarii alternative: A1. La pasul 3, autentificarea eşuează, se afisează un mesaj corespunzător şi acţiunea este reluată de la pasul 1. Preconditii: Doctorul are credenţiale valide. Postconditii: Doctorul este autentificat şi poate să acceseze data pacienţilor. Caz de utilizare: Gestionează pacient Actor: Doctor Descriere: Doctorul doreşte să înregistreze/modifice datele unui pacient nou 36

40 Scenariu: CU începe când un doctor doreşte să gestioneze un pacient 1. Doctorul selectează adăugarea unui nou pacient / un pacient existent 2. Doctorulul introduce datele personale ale pacientului (nume, prenume, CNP, adresa, telefon)/ modifică date existente 3. Sistemul actualizează datele datele. 4. CU se incheie. Scenarii alternative: A1. La pasul 3, actualizarea eşuează în cazul în care datele introduse nu sunt valide, se afişeaza un mesaj corespunzător şi acţiunea este reluată de la pasul 2. Preconditii: Doctorul este autentificat. Postconditii: Daca CU se încheie cu succes,un nou pacient este creat/ datele unui vechi pacient sunt actualizate. Caz de utilizare: Caută pacient Actor: Doctor Descriere: Doctorul doreşte să caute un pacient în BD Scenariu: CU începe când un doctor doreşte să caute un pacient 1. Doctorul intoduce datele numele sau CNP-ul 2. Doctorul apasă butonul de căutare corespunzator: căutare dupa CNP sau după nume 3. Sistemul afişează datele găsite. 4. CU se incheie. Scenarii alternative: A1. La pasul 2, cautarea eşuează în cazul în care datele introduse nu sunt valide, se afisează un mesaj corespunzator şi acţiunea este reluată de la pasul 1. Preconditii: Doctorul este autentificat, pacientul căutat există în sistem. Postconditii: Daca CU se încheie cu succes, pacientul căutat este afişat. Caz de utilizare: Adaugă consultaţie Actor: Doctor Descriere: Doctorul doreşte să adauge o nouă consultaţie Scenariu: CU începe când un doctor doreşte să prescrie un tratament. 1. Doctorul selectează adăugarea unui tratament nou. 2. Doctorul introduce data, diagnosticul şi tratamentul. 3. Sistemul actualizează lista tratamentelor prescrise şi istoricul medical al pacientului. 4. CU se incheie. 37

41 Preconditii: Doctorul este autentificat şi pacientul există în baza de date. Postconditii: Daca CU se incheie cu succes,un nou tratament este prescris pacientului şi este actualizat istoricul său medical. Caz de utilizare: Gestionează fişa medicală Actor: Doctor Descriere: Doctorul doreşte să vizualizeze şi să modifice fişa medicală a pacientului. Scenariu: CU începe când un doctor doreşte să vizualizeze fişa medicală. 1. Doctorul selectează vizualizarea fişei medicale. 2. Doctorul modifică datele din fişa şi apasă butonul de salvare. 3. Sistemul actualizează fişa medicală. 4. CU se încheie. Preconditii: Doctorul este autentificat şi pacientul există în baza de date. Postconditii: Dacă CU se încheie cu succes, fişa medicală a pacientului este actualizată. Caz de utilizare: Diagnosticare Actor: Doctor Descriere: Doctorul doreşte ca pacientul să fie diagnosticat pentru una din cele şase tipuri de boli de piele erythemato-squamous. Scenariu: CU începe când un doctor doreşte să diagnosticheze un pacient. 1. Doctorul introduce datele necesare pentru diagnosticare. 2. Doctorul selectează metoda de diagnosticare. 3. Sistemul procesează datele şi execută algoritmul. 4. Sistemul returnează rezultatul diagnosticării. 5. Sistemul salvează datele primite ca noi date de învăţare. 6. CU se încheie. Preconditii: Doctorul este autentificat, pacientul există în baza de date şi doctorul deţine toate informaţiile necesare pentru efectuarea diagnosticării. Postconditii: Daca CU se încheie cu succes, lista datelor de învaţare este actualizată, doctorul primeşte un rezultat iar istoricul medical al pacientului este actualizat. 38

42 Diagrama entitate-relaţie 39

43 Diagrame de secvenţe a) Pentru cazul de utilizare de diagnosticare b) Pentru cazul de utilizare de adaugare consultaţie 40

44 Diagrama de activităţi c) Pentru algoritmul VFI 41

45 Structura bazei de date: 42

46 Diagrama de componente 43

47 Interfaţa grafică Fereastra pentru introducerea valorilor atributelor: Fereastra pentru vizualizarea rezultatelor 44

48 4.2.2 Implementare Programul este scris în limbajul Java şi implementează şablonul Model-View-Controler. Interfaţa este realizată cu ajutorul GWT Designer iar pentru popularea tabelelor cu date este folosit Beans Binding. Pentru manipularea datelor la nivelul bazei de date se utilizează Activejdbc. public class DiagnosisInstance { int[] instance; public DiagnosisInstance(int[] instance) { this.instance = instance; public int[] getinstance() { return instance; public void setinstance(int[] instance) { this.instance = instance; public class DiagnosisTrainingSet { int[][] data; public DiagnosisTrainingSet(int[][] data) { this.data = data; public int[][] getdata() { return data; public void setdata(int[][] data) { this.data = data; public class DiagnosisModel { private static final int NUMBER_OF_INSTANCES = 366; private static final int NUMBER_OF_FEATURES = 34; public DiagnosisTrainingSet readtrainingdata() { int[][] rez = new int[number_of_instances][number_of_features + 1]; try { BufferedReader br = new BufferedReader(new FileReader( "trainingdata")); String linie; int i = 0; while ((linie = br.readline())!= null) { String[] line = linie.split(","); for (int j = 0; j < line.length; j++) { rez[i][j] = Integer.parseInt(line[j]); i++; br.close(); catch (IOException e) { System.err.println("Eroare" + " " + e); return new DiagnosisTrainingSet(rez); public class VotingFeatureInterval { private int NUMBER_OF_INSTANCES; private static final int NUMBER_OF_FEATURES = 34; private static final int NUMBER_OF_CLASSES = 6; 45

49 private static final double MIN_VALUE = -100; private static final double MAX_VALUE = 100; public static final Map<Integer, String> diseases = new HashMap<Integer, String>() { { put(1, "psoriasis"); put(2, "seboreic dermatitis"); put(3, "lichen planus"); put(4, "pityriasis rosea"); put(5, "cronic dermatitis"); put(6, "pityriasis rubra pilaris"); ; public String message = ""; public int votingfeatureinterval(diagnosisinstance instance, DiagnosisTrainingSet testdata) { int[] unknown = instance.getinstance(); NUMBER_OF_INSTANCES = testdata.getdata().length; LinkedList<double[][]> intervals = train(testdata.getdata()); double[][] vote = new double[number_of_features][number_of_classes]; for (int i = 0; i < intervals.size(); i++) { LinkedList<Integer> intervalnumber = findintervalforfeature( intervals.get(i), unknown[i]); for (int iclass = 0; iclass < NUMBER_OF_CLASSES; iclass++) { double classvote = 0; if (intervalnumber.size() == 1) { classvote = intervals.get(i)[intervalnumber.get(0)][iclass + 1] / count(testdata.getdata(), i, , 100.0, iclass + 1); else if (intervalnumber.size() == 2) { double cv1 = intervals.get(i)[intervalnumber.get(0)][iclass + 1]; double cv2 = intervals.get(i)[intervalnumber.get(1)][iclass + 1]; classvote = (cv1 + cv2) / (count(testdata.getdata(), i, , 100.0, iclass + 1) * 2); vote[i][iclass] = classvote; normalizevotes(vote); double[] result = new double[number_of_classes]; int found = 0; for (int ii = 0; ii < NUMBER_OF_FEATURES; ii++) { for (int j = 0; j < NUMBER_OF_CLASSES; j++) { result[j] = result[j] + vote[ii][j]; List<Double> aux = new LinkedList<Double>(); for (int j = 0; j < NUMBER_OF_CLASSES; j++) { aux.add(result[j]); Collections.sort(aux); double max = (double) aux.get(number_of_classes - 1); for (int j = 0; j < NUMBER_OF_CLASSES; j++) { if (result[j] == max) { found = j; found++; return found; public LinkedList<double[][]> train(int[][] data) { LinkedList<double[][]> matrix = new LinkedList<>(); for (int j = 0; j < NUMBER_OF_FEATURES; j++) { double[][] aux = new double[number_of_classes][2]; 46

50 matrix.add(aux); // get end point of each feature for each class for (int j = 0; j < NUMBER_OF_FEATURES; j++) { for (int i = 1; i <= NUMBER_OF_CLASSES; i++) { (matrix.get(j))[i - 1][0] = findendpoints(data, j, i)[0]; (matrix.get(j))[i - 1][1] = findendpoints(data, j, i)[1]; // sort end points LinkedList<double[][]> matrix2 = new LinkedList<>(); for (int j = 0; j < NUMBER_OF_FEATURES; j++) { ArrayList<Double> val = createinterval(matrix.get(j)); double[][] aux = new double[val.size() + 2][NUMBER_OF_CLASSES + 1]; matrix2.add(aux); // count(data,j,val.get(0),val.get(1)); // count each instance for (int ji = 0; ji < val.size() - 1; ji++) { (matrix2.getlast())[ji + 1][0] = val.get(ji); for (int cls = 1; cls < NUMBER_OF_CLASSES + 1; cls++) { (matrix2.getlast())[ji + 1][cls] = count(data, j, val.get(ji), val.get(ji + 1), cls); // set values for (-infinity,x) (matrix2.getlast())[0][0] = MIN_VALUE; for (int cls = 1; cls < NUMBER_OF_CLASSES + 1; cls++) { (matrix2.getlast())[0][cls] = count(data, j, MIN_VALUE, val.get(0), cls); (matrix2.getlast())[matrix2.getlast().length - 2][0] = val.get(val.size() - 1); for (int cls = 1; cls < NUMBER_OF_CLASSES + 1; cls++) { (matrix2.getlast())[matrix2.getlast().length - 2][cls] = count( data, j, val.get(val.size() - 1), MAX_VALUE, cls); // set values for (x, infinity) (matrix2.getlast())[matrix2.getlast().length - 1][0] = MAX_VALUE; for (int cls = 1; cls < NUMBER_OF_CLASSES + 1; cls++) { (matrix2.getlast())[matrix2.getlast().length - 1][cls] = 0; return matrix2; public LinkedList<Integer> findintervalforfeature(double[][] interval, int value) { LinkedList<Integer> aux = new LinkedList(); for (int i = 0; i < interval.length - 1; i++) { if ((value >= interval[i][0] && value <= interval[i + 1][0])) { aux.add(i); if (value >= interval[interval.length - 1][0]) { aux.add(interval.length - 1); return aux; public double[] findendpoints(int[][] data, int feat, int cls) { double[] aux = new double[2]; int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; for (int i = 0; i < data.length; i++) { if (data[i][number_of_features] == cls) { if (data[i][feat] > max) 47

51 aux[0] = min; aux[1] = max; return aux; max = data[i][feat]; if (data[i][feat] < min) min = data[i][feat]; private double count(int[][] data, int feat, Double min, Double max, int cls) { double nr = 0; for (int i = 0; i < NUMBER_OF_INSTANCES; i++) { if (data[i][number_of_features] == cls && data[i][feat] < max && data[i][feat] > min) { nr++; else if (data[i][number_of_features] == cls && (data[i][feat] == min data[i][feat] == max)) { nr = nr + 0.5; return nr; private ArrayList<Double> createinterval(double[][] ds) { ArrayList<Double> d = new ArrayList<Double>(); for (int i = 0; i < NUMBER_OF_CLASSES; i++) { if (!d.contains(ds[i][0])) { d.add(ds[i][0]); if (!d.contains(ds[i][1])) { d.add(ds[i][1]); Collections.sort(d); return d; private void normalizevotes(double[][] vote) { for (int i = 0; i < vote.length; i++) { double sum = 0; for (int j = 0; j < vote[i].length; j++) { sum = vote[i][j] + sum; for (int j = 0; j < vote[i].length; j++) { vote[i][j] = vote[i][j] / sum; public class KNearestNeighbour { public int KNearestNeighbour(Integer k, DiagnosisInstance instance, DiagnosisTrainingSet testdata2) { int[] unknown = instance.getinstance(); NUMBER_OF_INSTANCES = testdata2.getdata().length; double[][] testdata = normalizare(testdata2.getdata()); Double[][] distance = getdistance(testdata, unknown); // order distance bubblesort(distance); // take first sorted k-neighbers's classes List<Integer> foundclass = new LinkedList<Integer>(); for (int i = 0; i < k; i++) { int index = (int) Math.round(distance[i][0]); 48

52 foundclass.add((int) testdata[index][34]); int clasa = 0; int max = 0; for (int i = 1; i <= NUMBER_OF_CLASSES; i++) { int nr = Collections.frequency(foundClass, i); if (nr > max) { max = nr; clasa = i; return clasa; public Double[][] getdistance(double[][] testdata, int[] unknown) { Double[][] distance = new Double[NUMBER_OF_INSTANCES][2]; // 366 instances for testing for (int i = 0; i < NUMBER_OF_INSTANCES; i++) { distance[i][0] = (double) i; // calculate distance distance[i][1] = 0.0; for (int j = 0; j < NUMBER_OF_FEATURES; j++) { distance[i][1] = distance[i][1] + Math.pow(testData[i][j] - unknown[j], 2); distance[i][1] = Math.sqrt(distance[i][1]); return distance; public static void bubblesort(double[][] distance) { int n = distance.length; for (int pass = 1; pass < n; pass++) { // count how many times for (int i = 0; i < n - pass; i++) { if (distance[i][1] > distance[i + 1][1]) { // exchange elements Double temp = distance[i][0]; distance[i][0] = distance[i + 1][0]; distance[i + 1][0] = temp; temp = distance[i][1]; distance[i][1] = distance[i + 1][1]; distance[i + 1][1] = temp; public double[][] normalizare(int[][] data) { double[][] aux = new double[number_of_instances][number_of_features + 1]; int[] min = new int[number_of_features]; int[] max = new int[number_of_features]; for (int i = 0; i < NUMBER_OF_FEATURES; i++) { min[i] = Integer.MAX_VALUE; max[i] = Integer.MIN_VALUE; for (int i = 0; i < data.length; i++) { for (int j = 0; j < data[i].length - 1; j++) { if (data[i][j] > max[j]) max[j] = data[i][j]; if (data[i][j] < min[j]) min[j] = data[i][j]; 49

53 for (int i = 0; i < data.length; i++) { for (int j = 0; j < NUMBER_OF_FEATURES; j++) { aux[i][j] = ((double) data[i][j] - (double) min[j]) / ((double) max[j] - (double) min[j]); for (int i = 0; i < data.length; i++) { aux[i][number_of_features] = ((double) data[i][number_of_features]); return aux; public class DistanceWeightedNearestNeighbor { public int distanceweightednearestneighbor(integer k, DiagnosisInstance instance, DiagnosisTrainingSet testdata2) { int[] unknown = instance.getinstance(); NUMBER_OF_INSTANCES = testdata2.getdata().length; double[][] testdata = normalizare(testdata2.getdata()); Double[][] distance = getdistance(testdata, unknown); // order distance bubblesort(distance); // take first sorted k-neighbers's classes double[] weight = new double[number_of_classes]; for (int i = 0; i < NUMBER_OF_CLASSES; i++) { weight[i] = 0; int clasa = 0; for (int i = 0; i < k; i++) { int index = (int) Math.round(distance[i][0]); int disease = (int) testdata[index][number_of_features]; if ((distance[i][1]) == 0) { clasa = disease; return clasa; weight[disease - 1] = weight[disease - 1] + (1 / (distance[i][1])); Double max = MIN_VALUE; for (int i = 0; i < NUMBER_OF_CLASSES; i++) { if (weight[i] > 0 && weight[i] > max) { max = weight[i]; clasa = i; return (clasa + 1); public Double[][] getdistance(double[][] testdata, int[] unknown) { Double[][] distance = new Double[NUMBER_OF_INSTANCES][2]; // 366 instances for testing for (int i = 0; i < NUMBER_OF_INSTANCES; i++) { distance[i][0] = (double) i; // calculate distance distance[i][1] = 0.0; for (int j = 0; j < NUMBER_OF_FEATURES; j++) { distance[i][1] = distance[i][1] + Math.pow(testData[i][j] - unknown[j], 2); distance[i][1] = Math.sqrt(distance[i][1]); return distance; 50

54 4.2.3 Manual de utilizare Utilizare aplicaţiei Pentru a utiliza aplicaţia, dupa rularea programului, este necesarcă o autentificare cu credenţiale valide. Cautarea unui pacient Prima ferestra care se deschide, după autentificare, perminte căutarea pacienţilor în baza de date. Căutarea se poate face după nume sau prenume, prin introducerea datelor şi apăsarea butonului Search by name. Rezultatul căutării este afişat în tabelul din partea de jos a ferestrei. De asmenea, pacienţii pot fi cautaţi dupa CNP, prin introducerea datelor şi apasarea butonului Search by CNP. Rezultatul căutării este afişat în tabelul din partea de jos a ferestrei. În lipsa unui text de căutare, prin apăsarea unuia dintre cele două butoane menţionate, toţi pacienţii sunt afişaţi în tabel. Adaugarea unui nou pacient Prin apăsarea butonului New Pacient, se deschide o nouă fereastră care permite introducerea datelor de identificare a pacientului. Nu este permisă introducerea unui pacient cu un CNP care exista deja în baza de date, un numar de telefon cu cifre sau o data care nu respecta formatul dd/mm/yyyy. Butonul Save pacient salveaza datele în baza de date. Vizualizarea datelor unui pacient Selectând din listă un pacient, se deschide o nouă fereastră unde sunt afişate datele personale ale pacientului. Datele pot fi modificate, iar prin apăsarea butonului Save changes se realizează salvarea în baza de date. Simultan, se pot vizualiza datele mai multor pacienţi. 51

55 Vizualizarea fişei medicale Prin apasarea butonului Medical Chart din fereastra Pacient s personal data se deschide o noua fereastra unde sunt afişate datele medicale ale pacientului. Informaţiile medicale ale pacientului pot fi modificate, salvarea acestora fiind facută prin apăsarea butonului Save changes. Adăugarea unei noi consultaţii în fişa pacientului se face prin apăsarea butonului New Exam, completarea datelor şi salvarea acestora. Consulaţiile pacientului sunt afişate în tabel. Diagnosticarea bolii de piele Prin apăsarea butonului de Skin disease diagnosis se deschide o fereastră care permite introducerea datelor specifice diagnosticării bolilior de piele. Apasarea butonului Diagnosticate actualizează datele în baza de date şi deschide o nouă fereastră pentru procesarea datelor. După introducerea valorii k (numărul de vecini) şi apăsarea butonului Results, diagnosticul dat de fiecare algoritm este afişat în dreptul numelui său. În partea de mijloc a ferestrei sunt afişate pentru fiecare algoritm, motivaţia alegerii diagnosticului. Partea de jos a ferestrei prezintă informaţii generale despre algorimti, şi anume, acurateţea fiecăruia, pe baza metodei de validare cross-validation de tipul leave-one-out. 4.3 Rezultate comparative Utilizând cross-validation cu metoda leave-one-out, pe un set de 366 de instanţe, VFI obţine cele mai bune rezultate, clasificând corect 91,8% dintre ele. Pentru un k =3, DWNN clasifică corect un procent de 76,5%, fiind mai precis decat KNN, cu doar 72,67% de instanţe clasificate corect. 52

56 Figura 5. Rezultatele obţtinute de VFI, KNN, DWNN (numărul de răspunsuri corecte/ greşite din 366 de instanţe) Se observă variaţii ale datelor pentru algoritmii KNN şi DWNN, în funcţie de numărul de vecini, k. KNN are cea mai mare acurateţe pentru un k de valoare 2, catalogând corect 270 de instanţe din 365. DWNN obţine cele mai bune rezultate pentru un k = 3, catalogând corect 280 de instanţe. Figura 6. Rezultatele obţinute de KNN şi DWNN în funcţie de numărul k (% de catalogări corecte) 53

57 Pentru cei doi algoritmi datele sunt normalizate, însă se obţin rezultate mai bune înainte de normalizare. Astfel, pentru un k de valoare 1, KNN cataloghează greşit doar 36 de instanţe, iar pentru k de valoare 5, DWNN cataloghează greşit doar 35. Această anomalie a datelor este pusă pe faptul ca atributele au ponderi diferite, fapt de care nu se ţine cont în algoritmul curent. Figura 7. Rezultatele obţinute de KNN şi DWNN în funcţie de numărul k (% de catalogări corecte) fără normalizare 4.4 Extinderi posibile Aplicaţia de faţă poate suferi mai multe îmbunăţări, existând neajunsuri specifice algorimilor cât şi specifice problemei studiate. KNN şi WDNN au câteva ingrediente principale care pot influenţa performanţa acestora: distanţa metrică, numarul de vecini aleşi pentru a face clasificarea, ponderea vecinilor (pentru WDNN) şi funcţia de predicţie. Distanţa metrică, care determină cele mai apropiate instanţe, poate fi imbunătăţite prin utilizarea unui calcul mai complex decât distanţa euclidiană. Acest lucru se aplică şi în cazul funcţiei de predicţie şi a calcului ponderilor, prin complicarea metodelor actuale. Acurateţea algoritmului este influenţată de numarul k, motiv pentru care se sugerează 54

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice

Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice Titlul lucrării propuse pentru participarea la concursul pe tema securității informatice "Îmbunătăţirea proceselor şi activităţilor educaţionale în cadrul programelor de licenţă şi masterat în domeniul

More information

Modalitǎţi de clasificare a datelor cantitative

Modalitǎţi de clasificare a datelor cantitative Modalitǎţi de clasificare a datelor cantitative Modul de stabilire a claselor determinarea pragurilor minime şi maxime ale fiecǎrei clase - determinǎ modul în care sunt atribuite valorile fiecǎrei clase

More information

Procesarea Imaginilor

Procesarea Imaginilor Procesarea Imaginilor Curs 11 Extragerea informańiei 3D prin stereoviziune Principiile Stereoviziunii Pentru observarea lumii reale avem nevoie de informańie 3D Într-o imagine avem doar două dimensiuni

More information

Reţele Neuronale Artificiale în MATLAB

Reţele Neuronale Artificiale în MATLAB Reţele Neuronale Artificiale în MATLAB Programul MATLAB dispune de o colecţie de funcţii şi interfeţe grafice, destinate lucrului cu Reţele Neuronale Artificiale, grupate sub numele de Neural Network Toolbox.

More information

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban

Reflexia şi refracţia luminii. Aplicaţii. Valerica Baban Reflexia şi refracţia luminii. Aplicaţii. Sumar 1. Indicele de refracţie al unui mediu 2. Reflexia şi refracţia luminii. Legi. 3. Reflexia totală 4. Oglinda plană 5. Reflexia şi refracţia luminii în natură

More information

Metrici LPR interfatare cu Barix Barionet 50 -

Metrici LPR interfatare cu Barix Barionet 50 - Metrici LPR interfatare cu Barix Barionet 50 - Barionet 50 este un lan controller produs de Barix, care poate fi folosit in combinatie cu Metrici LPR, pentru a deschide bariera atunci cand un numar de

More information

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin

Structura și Organizarea Calculatoarelor. Titular: BĂRBULESCU Lucian-Florentin Structura și Organizarea Calculatoarelor Titular: BĂRBULESCU Lucian-Florentin Chapter 3 ADUNAREA ȘI SCĂDEREA NUMERELOR BINARE CU SEMN CONȚINUT Adunarea FXP în cod direct Sumator FXP în cod direct Scăderea

More information

Subiecte Clasa a VI-a

Subiecte Clasa a VI-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul numarului intrebarii

More information

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC)

Semnale şi sisteme. Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) Semnale şi sisteme Facultatea de Electronică şi Telecomunicaţii Departamentul de Comunicaţii (TC) http://shannon.etc.upt.ro/teaching/ssist/ 1 OBIECTIVELE CURSULUI Disciplina îşi propune să familiarizeze

More information

GHID DE TERMENI MEDIA

GHID DE TERMENI MEDIA GHID DE TERMENI MEDIA Definitii si explicatii 1. Target Group si Universe Target Group - grupul demografic care a fost identificat ca fiind grupul cheie de consumatori ai unui brand. Toate activitatile

More information

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila

MS POWER POINT. s.l.dr.ing.ciprian-bogdan Chirila MS POWER POINT s.l.dr.ing.ciprian-bogdan Chirila chirila@cs.upt.ro http://www.cs.upt.ro/~chirila Pornire PowerPoint Pentru accesarea programului PowerPoint se parcurg următorii paşi: Clic pe butonul de

More information

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC

REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC REVISTA NAŢIONALĂ DE INFORMATICĂ APLICATĂ INFO-PRACTIC Anul II Nr. 7 aprilie 2013 ISSN 2285 6560 Referent ştiinţific Lector univ. dr. Claudiu Ionuţ Popîrlan Facultatea de Ştiinţe Exacte Universitatea din

More information

Versionare - GIT ALIN ZAMFIROIU

Versionare - GIT ALIN ZAMFIROIU Versionare - GIT ALIN ZAMFIROIU Controlul versiunilor - necesitate Caracterul colaborativ al proiectelor; Backup pentru codul scris Istoricul modificarilor Terminologie și concepte VCS Version Control

More information

Managementul Proiectelor Software Metode de dezvoltare

Managementul Proiectelor Software Metode de dezvoltare Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Managementul Proiectelor Software Metode de dezvoltare 2 Metode structurate (inclusiv metodele OO) O mulțime de pași și

More information

ISBN-13:

ISBN-13: Regresii liniare 2.Liniarizarea expresiilor neliniare (Steven C. Chapra, Applied Numerical Methods with MATLAB for Engineers and Scientists, 3rd ed, ISBN-13:978-0-07-340110-2 ) Există cazuri în care aproximarea

More information

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962)

ARBORI AVL. (denumiti dupa Adelson-Velskii si Landis, 1962) ARBORI AVL (denumiti dupa Adelson-Velskii si Landis, 1962) Georgy Maximovich Adelson-Velsky (Russian: Гео ргий Макси мович Адельсо н- Ве льский; name is sometimes transliterated as Georgii Adelson-Velskii)

More information

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm

D în această ordine a.î. AB 4 cm, AC 10 cm, BD 15cm Preparatory Problems 1Se dau punctele coliniare A, B, C, D în această ordine aî AB 4 cm, AC cm, BD 15cm a) calculați lungimile segmentelor BC, CD, AD b) determinați distanța dintre mijloacele segmentelor

More information

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N

2. Setări configurare acces la o cameră web conectată într-un router ZTE H218N sau H298N Pentru a putea vizualiza imaginile unei camere web IP conectată într-un router ZTE H218N sau H298N, este necesară activarea serviciului Dinamic DNS oferit de RCS&RDS, precum și efectuarea unor setări pe

More information

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M )

INFORMAȚII DESPRE PRODUS. FLEXIMARK Stainless steel FCC. Informații Included in FLEXIMARK sample bag (article no. M ) FLEXIMARK FCC din oțel inoxidabil este un sistem de marcare personalizată în relief pentru cabluri și componente, pentru medii dure, fiind rezistent la acizi și la coroziune. Informații Included in FLEXIMARK

More information

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND

Textul si imaginile din acest document sunt licentiate. Codul sursa din acest document este licentiat. Attribution-NonCommercial-NoDerivs CC BY-NC-ND Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document

More information

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii

Aspecte controversate în Procedura Insolvenţei şi posibile soluţii www.pwc.com/ro Aspecte controversate în Procedura Insolvenţei şi posibile soluţii 1 Perioada de observaţie - Vânzarea de stocuri aduse în garanţie, în cursul normal al activității - Tratamentul leasingului

More information

Metoda BACKTRACKING. prof. Jiduc Gabriel

Metoda BACKTRACKING. prof. Jiduc Gabriel Metoda BACKTRACKING prof. Jiduc Gabriel Un algoritm backtracking este un algoritm de căutare sistematică și exhausivă a tuturor soluțiilor posibile, dintre care se poate alege apoi soluția optimă. Problemele

More information

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: "9",

La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - <numarul dvs de carnet> (ex: 9, La fereastra de autentificare trebuie executati urmatorii pasi: 1. Introduceti urmatoarele date: Utilizator: - (ex: "9", "125", 1573" - se va scrie fara ghilimele) Parola: -

More information

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows

Ghid identificare versiune AWP, instalare AWP şi verificare importare certificat în Store-ul de Windows Ghid identificare versiune AWP, instalare AWP 4.5.4 şi verificare importare certificat în Store-ul de Windows Data: 28.11.14 Versiune: V1.1 Nume fişiser: Ghid identificare versiune AWP, instalare AWP 4-5-4

More information

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB

Grafuri bipartite. Lecție de probă, informatică clasa a XI-a. Mihai Bărbulescu Facultatea de Automatică și Calculatoare, UPB Grafuri bipartite Lecție de probă, informatică clasa a XI-a Mihai Bărbulescu b12mihai@gmail.com Facultatea de Automatică și Calculatoare, UPB Colegiul Național de Informatică Tudor Vianu București 27 februarie

More information

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A.

Excel Advanced. Curriculum. Școala Informală de IT. Educație Informală S.A. Excel Advanced Curriculum Școala Informală de IT Tel: +4.0744.679.530 Web: www.scoalainformala.ro / www.informalschool.com E-mail: info@scoalainformala.ro Cuprins 1. Funcții Excel pentru avansați 2. Alte

More information

INSTRUMENTE DE MARKETING ÎN PRACTICĂ:

INSTRUMENTE DE MARKETING ÎN PRACTICĂ: INSTRUMENTE DE MARKETING ÎN PRACTICĂ: Marketing prin Google CUM VĂ AJUTĂ ACEST CURS? Este un curs util tuturor celor implicați în coordonarea sau dezvoltarea de campanii de marketingși comunicare online.

More information

M C I O H L BAZE DE CUNOŞTINŢE A H E O L N S I S T E M E D E R E P R E Z E N A R E Ş I P R O C E S A R E A A C U N O Ş T I N Ţ E L O R

M C I O H L BAZE DE CUNOŞTINŢE A H E O L N S I S T E M E D E R E P R E Z E N A R E Ş I P R O C E S A R E A A C U N O Ş T I N Ţ E L O R BAZE DE CUNOŞTINŢE S I S T E M E D E R E P R E Z E N A R E Ş I P R O C E S A R E A C U N O Ş T I N Ţ E L O R M C I O H L A H E O L N A TIPURI DE CUNOŞTINŢE Pentru a putea rezolva problemele complexe de

More information

Auditul financiar la IMM-uri: de la limitare la oportunitate

Auditul financiar la IMM-uri: de la limitare la oportunitate Auditul financiar la IMM-uri: de la limitare la oportunitate 3 noiembrie 2017 Clemente Kiss KPMG in Romania Agenda Ce este un audit la un IMM? Comparatie: audit/revizuire/compilare Diferente: audit/revizuire/compilare

More information

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE)

ANTICOLLISION ALGORITHM FOR V2V AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP V2V (VEHICLE-TO-VEHICLE) ANTICOLLISION ALGORITHM FOR VV AUTONOMUOS AGRICULTURAL MACHINES ALGORITM ANTICOLIZIUNE PENTRU MASINI AGRICOLE AUTONOME TIP VV (VEHICLE-TO-VEHICLE) 457 Florin MARIAŞIU*, T. EAC* *The Technical University

More information

SISTEME INTELIGENTE DE SUPORT DECIZIONAL. Ș.l.dr.ing. Laura-Nicoleta IVANCIU. Curs 7 Sisteme inteligente de suport decizional bazate pe RNA

SISTEME INTELIGENTE DE SUPORT DECIZIONAL. Ș.l.dr.ing. Laura-Nicoleta IVANCIU. Curs 7 Sisteme inteligente de suport decizional bazate pe RNA SISTEME INTELIGENTE DE SUPORT DECIZIONAL Ș.l.dr.ing. Laura-Nicoleta IVANCIU Curs 7 Sisteme inteligente de suport decizional bazate pe RNA Cuprins RNA pentru aproximare de funcții Clasificatori cu RNA Studii

More information

Documentaţie Tehnică

Documentaţie Tehnică Documentaţie Tehnică Verificare TVA API Ultima actualizare: 27 Aprilie 2018 www.verificaretva.ro 021-310.67.91 / 92 info@verificaretva.ro Cuprins 1. Cum funcţionează?... 3 2. Fluxul de date... 3 3. Metoda

More information

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date.

9. Memoria. Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. 9. Memoria Procesorul are o memorie cu o arhitectură pe două niveluri pentru memoria de program și de date. Primul nivel conține memorie de program cache (L1P) și memorie de date cache (L1D). Al doilea

More information

Mecanismul de decontare a cererilor de plata

Mecanismul de decontare a cererilor de plata Mecanismul de decontare a cererilor de plata Autoritatea de Management pentru Programul Operaţional Sectorial Creşterea Competitivităţii Economice (POS CCE) Ministerul Fondurilor Europene - Iunie - iulie

More information

METODE FIZICE DE MĂSURĂ ŞI CONTROL NEDISTRUCTIV. Inspecţia vizuală este, de departe, cea mai utilizată MCN, fiind de obicei primul pas într-o

METODE FIZICE DE MĂSURĂ ŞI CONTROL NEDISTRUCTIV. Inspecţia vizuală este, de departe, cea mai utilizată MCN, fiind de obicei primul pas într-o Cuprins: 1. Introducere 2. Inspecţia vizuală 6. Testarea ultrasonică 7. Radiografia 3. Metoda lichidului penetrant 4. Inspecţia cu particule magnetice 5. Testarea folosind curenţii Eddy 1 Inspecţia vizuală

More information

Olimpiad«Estonia, 2003

Olimpiad«Estonia, 2003 Problema s«pt«m nii 128 a) Dintr-o tabl«p«trat«(2n + 1) (2n + 1) se ndep«rteaz«p«tr«telul din centru. Pentru ce valori ale lui n se poate pava suprafata r«mas«cu dale L precum cele din figura de mai jos?

More information

Software Process and Life Cycle

Software Process and Life Cycle Software Process and Life Cycle Drd.ing. Flori Naghiu Murphy s Law: Left to themselves, things tend to go from bad to worse. Principiile de dezvoltare software Principiul Calitatii : asigurarea gasirii

More information

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog

Laborator 1. Programare declarativă. Programare logică. Prolog. SWI-Prolog Laborator 1 Programare declarativă O paradigmă de programare în care controlul fluxului de execuție este lăsat la latitudinea implementării limbajului, spre deosebire de programarea imperativă în care

More information

Transmiterea datelor prin reteaua electrica

Transmiterea datelor prin reteaua electrica PLC - Power Line Communications dr. ing. Eugen COCA Universitatea Stefan cel Mare din Suceava Facultatea de Inginerie Electrica PLC - Power Line Communications dr. ing. Eugen COCA Universitatea Stefan

More information

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE

O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE WebQuest O ALTERNATIVĂ MODERNĂ DE ÎNVĂŢARE Cuvinte cheie Internet WebQuest constructivism suport educational elemente motivationale activitati de grup investigatii individuale Introducere Impactul tehnologiilor

More information

Universitatea Lucian Blaga din Sibiu Facultatea de inginerie Hermann Oberth Catedra de Calculatoare şi automatizări

Universitatea Lucian Blaga din Sibiu Facultatea de inginerie Hermann Oberth Catedra de Calculatoare şi automatizări Universitatea Lucian Blaga din Sibiu Facultatea de inginerie Hermann Oberth Catedra de Calculatoare şi automatizări Dezvoltarea unei ontologii de domeniu (Support Vector Machine versus Bayes Naive) Referat

More information

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe

Candlesticks. 14 Martie Lector : Alexandru Preda, CFTe Candlesticks 14 Martie 2013 Lector : Alexandru Preda, CFTe Istorie Munehisa Homma - (1724-1803) Ojima Rice Market in Osaka 1710 devine si piata futures Parintele candlesticks Samurai In 1755 a scris The

More information

METODE DE EVALUARE A IMPACTULUI ASUPRA MEDIULUI ŞI IMPLEMENTAREA SISTEMULUI DE MANAGEMENT DE MEDIU

METODE DE EVALUARE A IMPACTULUI ASUPRA MEDIULUI ŞI IMPLEMENTAREA SISTEMULUI DE MANAGEMENT DE MEDIU UNIVERSITATEA POLITEHNICA BUCUREŞTI FACULTATEA ENERGETICA Catedra de Producerea şi Utilizarea Energiei Master: DEZVOLTAREA DURABILĂ A SISTEMELOR DE ENERGIE Titular curs: Prof. dr. ing Tiberiu APOSTOL Fond

More information

Update firmware aparat foto

Update firmware aparat foto Update firmware aparat foto Mulţumim că aţi ales un produs Nikon. Acest ghid descrie cum să efectuaţi acest update de firmware. Dacă nu aveţi încredere că puteţi realiza acest update cu succes, acesta

More information

Baze de date distribuite și mobile

Baze de date distribuite și mobile Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Baze de date distribuite și mobile Lect.dr. Adrian Runceanu Curs 3 Model fizic şi model

More information

Metoda de programare BACKTRACKING

Metoda de programare BACKTRACKING Metoda de programare BACKTRACKING Sumar 1. Competenţe............................................ 3 2. Descrierea generală a metodei............................. 4 3......................... 7 4. Probleme..............................................

More information

earning every day-ahead your trust stepping forward to the future opcom operatorul pie?ei de energie electricã și de gaze naturale din România Opcom

earning every day-ahead your trust stepping forward to the future opcom operatorul pie?ei de energie electricã și de gaze naturale din România Opcom earning every day-ahead your trust stepping forward to the future opcom operatorul pie?ei de energie electricã și de gaze naturale din România Opcom RAPORT DE PIA?Ã LUNAR MARTIE 218 Piaţa pentru Ziua Următoare

More information

METODE INTELIGENTE DE REZOLVARE A PROBLEMELOR REALE. Laura Dioşan Tema 4

METODE INTELIGENTE DE REZOLVARE A PROBLEMELOR REALE. Laura Dioşan Tema 4 METODE INTELIGENTE DE REZOLVARE A PROBLEMELOR REALE Laura Dioşan Tema 4 Text mining Task-uri Regăsirea informaţiei Clasificarea automată a textelor Text mining Task-uri Regăsirea informaţiei Clasificarea

More information

Preţul mediu de închidere a pieţei [RON/MWh] Cota pieţei [%]

Preţul mediu de închidere a pieţei [RON/MWh] Cota pieţei [%] Piaţa pentru Ziua Următoare - mai 217 Participanţi înregistraţi la PZU: 356 Număr de participanţi activi [participanţi/lună]: 264 Număr mediu de participanţi activi [participanţi/zi]: 247 Preţ mediu [lei/mwh]:

More information

Nume şi Apelativ prenume Adresa Număr telefon Tip cont Dobânda Monetar iniţial final

Nume şi Apelativ prenume Adresa Număr telefon  Tip cont Dobânda Monetar iniţial final Enunt si descriere aplicatie. Se presupune ca o organizatie (firma, banca, etc.) trebuie sa trimita scrisori prin posta unui numar (n=500, 900,...) foarte mare de clienti pe care sa -i informeze cu diverse

More information

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive.

Dispozitive Electronice şi Electronică Analogică Suport curs 02 Metode de analiză a circuitelor electrice. Divizoare rezistive. . egimul de curent continuu de funcţionare al sistemelor electronice În acest regim de funcţionare, valorile mărimilor electrice ale sistemului electronic sunt constante în timp. Aşadar, funcţionarea sistemului

More information

R O M Â N I A CURTEA CONSTITUŢIONALĂ

R O M Â N I A CURTEA CONSTITUŢIONALĂ R O M Â N I A CURTEA CONSTITUŢIONALĂ Palatul Parlamentului Calea 13 Septembrie nr. 2, Intrarea B1, Sectorul 5, 050725 Bucureşti, România Telefon: (+40-21) 312 34 84; 335 62 09 Fax: (+40-21) 312 43 59;

More information

Proiectarea Sistemelor Software Complexe

Proiectarea Sistemelor Software Complexe Proiectarea Sistemelor Software Complexe Curs 3 Principii de Proiectare Orientată pe Obiecte Principiile de proiectare orientată pe obiecte au fost formulate pentru a servi ca reguli pentru evitarea proiectării

More information

Propuneri pentru teme de licență

Propuneri pentru teme de licență Propuneri pentru teme de licență Departament Automatizări Eaton România Instalație de pompare cu rotire în funcție de timpul de funcționare Tablou electric cu 1 pompă pilot + 3 pompe mari, cu rotirea lor

More information

CERERI SELECT PE O TABELA

CERERI SELECT PE O TABELA SQL - 1 CERERI SELECT PE O TABELA 1 STUD MATR NUME AN GRUPA DATAN LOC TUTOR PUNCTAJ CODS ---- ------- -- ------ --------- ---------- ----- ------- ---- 1456 GEORGE 4 1141A 12-MAR-82 BUCURESTI 2890 11 1325

More information

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs

Updating the Nomographical Diagrams for Dimensioning the Concrete Slabs Acta Technica Napocensis: Civil Engineering & Architecture Vol. 57, No. 1 (2014) Journal homepage: http://constructii.utcluj.ro/actacivileng Updating the Nomographical Diagrams for Dimensioning the Concrete

More information

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET

CAIETUL DE SARCINI Organizare evenimente. VS/2014/0442 Euro network supporting innovation for green jobs GREENET CAIETUL DE SARCINI Organizare evenimente VS/2014/0442 Euro network supporting innovation for green jobs GREENET Str. Dem. I. Dobrescu, nr. 2-4, Sector 1, CAIET DE SARCINI Obiectul licitaţiei: Kick off,

More information

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales

MANAGEMENTUL CALITĂȚII - MC. Proiect 5 Procedura documentată pentru procesul ales MANAGEMENTUL CALITĂȚII - MC Proiect 5 Procedura documentată pentru procesul ales CUPRINS Procedura documentată Generalități Exemple de proceduri documentate Alegerea procesului pentru realizarea procedurii

More information

LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE

LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE LIDER ÎN AMBALAJE EXPERT ÎN SISTEMUL BRAILLE BOBST EXPERTFOLD 80 ACCUBRAILLE GT Utilajul ACCUBRAILLE GT Bobst Expertfold 80 Aplicarea codului Braille pe cutii a devenit mai rapidă, ușoară și mai eficientă

More information

Studiu comparat asupra tehnicilor de data mining utilizate în rezolvarea problemelor de regresie si clasificare

Studiu comparat asupra tehnicilor de data mining utilizate în rezolvarea problemelor de regresie si clasificare Revista Informatica Economica, nr. 3(27)/2003 105 Studiu comparat asupra tehnicilor de data mining utilizate în rezolvarea problemelor de regresie si clasificare Ec. Valentin MILITARU Catedra de Informatica

More information

Managementul referinţelor cu

Managementul referinţelor cu TUTORIALE DE CULTURA INFORMAŢIEI Citarea surselor de informare cu instrumente software Managementul referinţelor cu Bibliotecar Lenuţa Ursachi PE SCURT Este gratuit Poţi adăuga fişiere PDF Poţi organiza,

More information

INFLUENŢA CÂMPULUI MAGNETIC ASUPRA DINAMICII DE CREŞTERE"IN VITRO" LA PLANTE FURAJERE

INFLUENŢA CÂMPULUI MAGNETIC ASUPRA DINAMICII DE CREŞTEREIN VITRO LA PLANTE FURAJERE INFLUENŢA CÂMPULUI MAGNETIC ASUPRA DINAMICII DE CREŞTERE"IN VITRO" LA PLANTE FURAJERE T.Simplăceanu, C.Bindea, Dorina Brătfălean*, St.Popescu, D.Pamfil Institutul Naţional de Cercetere-Dezvoltare pentru

More information

Lucrarea de laborator nr. 4

Lucrarea de laborator nr. 4 Metode merice - Lucrarea de laborator 4 Lucrarea de laborator nr. 4 I. Scopul lucrării Elemente de programare în MAPLE II. III. Conţinutul lucrării 1. Atribuirea. Decizia. Structuri repetitive. 2. Proceduri

More information

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală

Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple. Memoria cache Memoria virtuală Ierarhia memoriilor Tipuri de memorii Memorii semiconductoare Memoria cu unități multiple Memoria cache Memoria virtuală 1 Memorii RAM: datele sunt identificate cu ajutorul unor adrese unice Memorii asociative:

More information

Detecţia regiunilor de interes în identificarea biometrică folosind caracteristicile urechii

Detecţia regiunilor de interes în identificarea biometrică folosind caracteristicile urechii Detecţia regiunilor de interes în identificarea biometrică folosind caracteristicile urechii Detecţia regiunilor de interes în identificarea biometrică folosind caracteristicile urechii Sorin SOVIANY 1,

More information

ACTA TECHNICA NAPOCENSIS

ACTA TECHNICA NAPOCENSIS 273 TECHNICAL UNIVERSITY OF CLUJ-NAPOCA ACTA TECHNICA NAPOCENSIS Series: Applied Mathematics, Mechanics, and Engineering Vol. 58, Issue II, June, 2015 SOUND POLLUTION EVALUATION IN INDUSTRAL ACTIVITY Lavinia

More information

Eficiența energetică în industria românească

Eficiența energetică în industria românească Eficiența energetică în industria românească Creșterea EFICIENȚEI ENERGETICE în procesul de ardere prin utilizarea de aparate de analiză a gazelor de ardere București, 22.09.2015 Karsten Lempa Key Account

More information

CHAMPIONS LEAGUE 2017 SPONSOR:

CHAMPIONS LEAGUE 2017 SPONSOR: NOUA STRUCTURĂ a Ch League Pe viitor numai fosta divizie A va purta numele Champions League. Fosta divizie B va purta numele Challenger League iar fosta divizie C se va numi Promotional League. CHAMPIONS

More information

Evoluția pieței de capital din România. 09 iunie 2018

Evoluția pieței de capital din România. 09 iunie 2018 Evoluția pieței de capital din România 09 iunie 2018 Realizări recente Realizări recente IPO-uri realizate în 2017 și 2018 IPO în valoare de EUR 312.2 mn IPO pe Piața Principală, derulat în perioada 24

More information

ANALIZA FUNCŢIONALĂ, O METODĂ DE MODELARE ÎN PROIECTAREA UTILAJELOR

ANALIZA FUNCŢIONALĂ, O METODĂ DE MODELARE ÎN PROIECTAREA UTILAJELOR ANALIZA FUNCŢIONALĂ, O METODĂ DE MODELARE ÎN PROIECTAREA UTILAJELOR ANALIZA FUNCŢIONALĂ, O METODĂ DE MODELARE ÎN PROIECTAREA UTILAJELOR Prof. univ. dr. ing. Florin CHICHERNEA Universitatea Transilvania

More information

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip

Mods euro truck simulator 2 harta romaniei by elyxir. Mods euro truck simulator 2 harta romaniei by elyxir.zip Mods euro truck simulator 2 harta romaniei by elyxir Mods euro truck simulator 2 harta romaniei by elyxir.zip 26/07/2015 Download mods euro truck simulator 2 harta Harta Romaniei pentru Euro Truck Simulator

More information

Calculatoare Numerice II Interfaţarea unui dispozitiv de teleghidare radio cu portul paralel (MGSH Machine Guidance SHell) -proiect-

Calculatoare Numerice II Interfaţarea unui dispozitiv de teleghidare radio cu portul paralel (MGSH Machine Guidance SHell) -proiect- Universitatea Politehnica Bucureşti Facultatea de Automaticăşi Calculatoare Calculatoare Numerice II Interfaţarea unui dispozitiv de teleghidare radio cu portul paralel (MGSH Machine Guidance SHell) -proiect-

More information

Inteligenta sintetica Rationament sintetic

Inteligenta sintetica Rationament sintetic SISTEME CU INTELIGENTA ARTIFICIALA INTRODUCERE Ce este un SISTEM INTELIGENT? un sistem complex care, folosind noile tehnologii informatice (soft & hard), impreuna eventual cu tehnologiile de comunicatii,

More information

USING SERIAL INDUSTRIAL ROBOTS IN CNC MILLING PROCESESS

USING SERIAL INDUSTRIAL ROBOTS IN CNC MILLING PROCESESS BULETINUL INSTITUTULUI POLITEHNIC DIN IAŞI Publicat de Universitatea Tehnică Gheorghe Asachi din Iaşi Tomul LXI (LXV), Fasc. 3, 2015 Secţia CONSTRUCŢII DE MAŞINI USING SERIAL INDUSTRIAL ROBOTS IN CNC MILLING

More information

NOTE PRIVIND MODELAREA MATEMETICĂ ÎN REGIM CVASI-DINAMIC A UNEI CLASE DE MICROTURBINE HIDRAULICE

NOTE PRIVIND MODELAREA MATEMETICĂ ÎN REGIM CVASI-DINAMIC A UNEI CLASE DE MICROTURBINE HIDRAULICE NOTE PRIVIND MODELAREA MATEMETICĂ ÎN REGIM CVASI-DINAMIC A UNEI CLASE DE MICROTURBINE HIDRAULICE Eugen DOBÂNDĂ NOTES ON THE MATHEMATICAL MODELING IN QUASI-DYNAMIC REGIME OF A CLASSES OF MICROHYDROTURBINE

More information

Printesa fluture. Мобильный портал WAP версия: wap.altmaster.ru

Printesa fluture. Мобильный портал WAP версия: wap.altmaster.ru Мобильный портал WAP версия: wap.altmaster.ru Printesa fluture Love, romance and to repent of love. in romana comy90. Formular de noastre aici! Reduceri de pret la stickere pana la 70%. Stickerul Decorativ,

More information

Drd. Ionela-Cătălina (ZAMFIR) TUDORACHE Scoala Doctorală de Cibernetică si Statistică Economică Academia de Studii Economice din Bucuresti

Drd. Ionela-Cătălina (ZAMFIR) TUDORACHE Scoala Doctorală de Cibernetică si Statistică Economică Academia de Studii Economice din Bucuresti Drd. Ionela-Cătălina (ZAMFIR) TUDORACHE Scoala Doctorală de Cibernetică si Statistică Economică Academia de Studii Economice din Bucuresti POT MODELELE ALTMAN SI KIDA IDENTIFICA STAREA DE FALIMENT PENTRU

More information

10. Modelarea şi eliminarea zgomotelor din imaginile digitale

10. Modelarea şi eliminarea zgomotelor din imaginile digitale Procesarea Imaginilor - Laborator 0: Modelarea şi eliminarea zgomotelor din imagini 0. Modelarea şi eliminarea zgomotelor din imaginile digitale 0.. Introducere Zgomotul este o informaţie nedorită care

More information

COMUNICAȚII INFORMATIZARE

COMUNICAȚII INFORMATIZARE COMUNICAȚII INFORMATIZARE 120 Migrare servicii telefonie la Vodafone S-a asigurat suportul tehnic și s-a colaborat cu echipele Vodafone la portarea numerelor UPT și migrarea infrastructuri: 1200 linii

More information

INTEROGĂRI ÎN SQL SERVER

INTEROGĂRI ÎN SQL SERVER INTEROGĂRI ÎN SQL SERVER Principala operaţie efectuată într-o bază de date este operaţia de extragere a datelor, care se realizează cu ajutorul unei clauze SELECT. SELECT Clauza SELECT are o sintaxă foarte

More information

INFLUENŢA CÂMPULUI MAGNETIC ASUPRA GERMINĂRII "IN VITRO" LA PLANTE FURAJERE

INFLUENŢA CÂMPULUI MAGNETIC ASUPRA GERMINĂRII IN VITRO LA PLANTE FURAJERE INFLUENŢA CÂMPULUI MAGNETIC ASUPRA GERMINĂRII "IN VITRO" LA PLANTE FURAJERE T.Simplăceanu, Dorina Brătfălean*, C.Bindea, D.Pamfil*, St.Popescu Institutul Naţional de Cercetere-Dezvoltare pentru Tehnologii

More information

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; }

Arbori. Figura 1. struct ANOD { int val; ANOD* st; ANOD* dr; }; #include <stdio.h> #include <conio.h> struct ANOD { int val; ANOD* st; ANOD* dr; } Arbori Arborii, ca şi listele, sunt structuri dinamice. Elementele structurale ale unui arbore sunt noduri şi arce orientate care unesc nodurile. Deci, în fond, un arbore este un graf orientat degenerat.

More information

TEZĂ DE DOCTORAT. Ing. ALEXANDRINA MIRELA PATER. Conducător ştiinţific: Prof. Univ. Dr. Ing. IONEL JIAN TIMIŞOARA

TEZĂ DE DOCTORAT. Ing. ALEXANDRINA MIRELA PATER. Conducător ştiinţific: Prof. Univ. Dr. Ing. IONEL JIAN TIMIŞOARA UNIVERSITATEA POLITEHNICA TIMIŞOARA FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE Ing. ALEXANDRINA MIRELA PATER TEZĂ DE DOCTORAT Conducător ştiinţific: Prof. Univ. Dr. Ing. IONEL JIAN TIMIŞOARA -2006- ING.

More information

Prelucrarea numerică a semnalelor

Prelucrarea numerică a semnalelor Prelucrarea numerică a semnalelor Assoc.Prof. Lăcrimioara GRAMA, Ph.D. http://sp.utcluj.ro/teaching_iiiea.html 27 februarie 2017 Lăcrimioara GRAMA (sp.utcluj.ro) Prelucrarea numerică a semnalelor 27 februarie

More information

CONTRIBUŢII PRIVIND MANAGEMENTUL CALITĂȚII PROIECTULUI ÎN INDUSTRIA AUTOMOTIVE

CONTRIBUŢII PRIVIND MANAGEMENTUL CALITĂȚII PROIECTULUI ÎN INDUSTRIA AUTOMOTIVE UNIVERSITATEA POLITEHNICA TIMIŞOARA Școala Doctorală de Studii Inginerești Ing. Daniel TIUC CONTRIBUŢII PRIVIND MANAGEMENTUL CALITĂȚII PROIECTULUI ÎN INDUSTRIA AUTOMOTIVE Teză destinată obținerii titlului

More information

ALGORITMI DE OPTIMIZARE EVOLUTIVI UTILIZAȚI ÎN PROIECTAREA DISPOZITIVELOR DE ÎNCĂLZIRE PRIN INDUCȚIE

ALGORITMI DE OPTIMIZARE EVOLUTIVI UTILIZAȚI ÎN PROIECTAREA DISPOZITIVELOR DE ÎNCĂLZIRE PRIN INDUCȚIE ALGORITMI DE OPTIMIZARE EVOLUTIVI UTILIZAȚI ÎN PROIECTAREA DISPOZITIVELOR DE ÎNCĂLZIRE PRIN INDUCȚIE Mihaela NOVAC 1, Ecaterina VLADU 1, Ovidiu NOVAC 1, Adriana GRAVA 1 1 Universitatea din Oradea, Facultatea

More information

Behavioral design patterns (comportamentale) ALIN ZAMFIROIU

Behavioral design patterns (comportamentale) ALIN ZAMFIROIU Behavioral design patterns (comportamentale) ALIN ZAMFIROIU Behavioral design patterns Furnizează soluții pentru o mai bună interacțiune între obiecte și clase. Aceste design pattern-uri controlează relațiile

More information

Curs 1 17 Februarie Adrian Iftene

Curs 1 17 Februarie Adrian Iftene Curs 1 17 Februarie 2011 Adrian Iftene adiftene@info.uaic.ro 1 Limbajele calculatorului Compilate Interpretate Scripting P-cod Orientate pe aspect Orientate spre date 2 Cum lucrează? Orice program trebuie

More information

Caracterizarea electrica si optica a unor filme subtiri. Partea I: Tehnici de depunere de filme subtiri STUDENT: LAZAR OANA

Caracterizarea electrica si optica a unor filme subtiri. Partea I: Tehnici de depunere de filme subtiri STUDENT: LAZAR OANA Caracterizarea electrica si optica a unor filme subtiri Partea I: Tehnici de depunere de filme subtiri STUDENT: LAZAR OANA INTRODUCERE Filmul subtire strat de material cu grosimea de ordinul nanometrilor

More information

O abordare Data Mining pentru detectarea accesului neautorizat la baza de date.

O abordare Data Mining pentru detectarea accesului neautorizat la baza de date. O abordare Data Mining pentru detectarea accesului neautorizat la baza de date. 1. Introducere 2. Lucrări asemănătoare 3. Modelul de clasificare 4. Dependenţele intre date 4.1 Terminologia dependenţei

More information

INTELIGENŢĂ ARTIFICIALĂ

INTELIGENŢĂ ARTIFICIALĂ INTELIGENŢĂ ARTIFICIALĂ Curs 10 Sisteme inteligente Sisteme care învaţă singure arbori de decizie Laura Dioşan Sumar A. Scurtă introducere în Inteligenţa Artificială (IA) B. Rezolvarea problemelor prin

More information

EPIDEMIOLOGIE GENERALĂ. Dr. Cristian Băicuş Medicală Colentina, 2005

EPIDEMIOLOGIE GENERALĂ. Dr. Cristian Băicuş Medicală Colentina, 2005 EPIDEMIOLOGIE GENERALĂ Dr. Cristian Băicuş Medicală Colentina, 2005 metodologia cercetării (validitate) = EPIDEMIOLOGIA CLINICĂ cercetare clinică ŞI BIOSTATISTICA articol, prezentare evaluarea critică

More information

Generatorul cu flux axial cu stator interior nemagnetic-model de laborator.

Generatorul cu flux axial cu stator interior nemagnetic-model de laborator. Generatorul cu flux axial cu stator interior nemagnetic-model de laborator. Pentru identificarea performanţelor la funţionarea în sarcină la diferite trepte de turaţii ale generatorului cu flux axial fară

More information

LINEAR VOLTAGE-TO-CURRENT CONVERTER WITH SMALL AREA

LINEAR VOLTAGE-TO-CURRENT CONVERTER WITH SMALL AREA BULETINUL INSTITUTULUI POLITEHNIC DIN IAŞI Publicat de Universitatea Tehnică Gheorghe Asachi din Iaşi Tomul LXI (LXV), Fasc. 1, 2015 Secţia ELECTROTEHNICĂ. ENERGETICĂ. ELECTRONICĂ LINEAR VOLTAGE-TO-CURRENT

More information

Lucrarea Nr.1. Sisteme de operare. Generalitati

Lucrarea Nr.1. Sisteme de operare. Generalitati Lucrarea Nr.1 Sisteme de operare. Generalitati Scopul lucrarii Lucrarea îsi propune familiarizarea studentilor cu sistemele de operare disponibile în laborator, respectiv acele sisteme de operare cu ajutorul

More information

INTELIGENŢĂ ARTIFICIALĂ

INTELIGENŢĂ ARTIFICIALĂ UNIVERSITATEA BABEŞ-BOLYAI Facultatea de Matematică şi Informatică INTELIGENŢĂ ARTIFICIALĂ Curs 8 Sisteme inteligente Sisteme care învaţă singure arbori de decizie Laura Dioşan Sumar A. Scurtă introducere

More information

Laborator 2 - Statistică descriptivă

Laborator 2 - Statistică descriptivă Laborator 2 - Statistică descriptivă Statistica descriptivă are rolul de a descrie trăsăturile principale ale unor eşantioane şi constă în determinarea unor măsuri simple şi analize grafice ale datelor

More information

Itemi Sisteme de Operare

Itemi Sisteme de Operare Itemi Sisteme de Operare 1. Pentru a muta un dosar (folder) de pe partiţia C: pe partiţia D: folosim: a. New Folder b. Ctrl + C din bara de instrumente şi Copy; c. Ctrl + X şi Ctrl + V; d. Edit Paste;

More information

PROCEDURA PRIVIND DECONTURILE. 2. Domeniu de aplicare Procedura se aplică în cadrul Universităţii Tehnice Cluj-Napoca

PROCEDURA PRIVIND DECONTURILE. 2. Domeniu de aplicare Procedura se aplică în cadrul Universităţii Tehnice Cluj-Napoca PROCEDURA PRIVIND DECONTURILE 1. Scpul: Descrie structura si mdul de elabrare si prezentare a prcedurii privind dcumentele care trebuie intcmite si cursul acestra, atunci cind persana efectueaza un decnt.

More information

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci.

În continuare vom prezenta unele dintre problemele de calcul ale numerelor Fibonacci. O condiţie necesară şi suficientă ca un număr să fie număr Fibonacci Autor: prof. Staicu Ovidiu Ninel Colegiul Economic Petre S. Aurelian Slatina, jud. Olt 1. Introducere Propuse de Leonardo Pisa în 1202,

More information