webes felületű orvosi kódolástámogató rendszer

46
Webes felületű orvosi kódolástámogató rendszer BSc önálló laboratórium Sárándi István Konzulens: Héja Gergely 2011 tavasz

Upload: ciara

Post on 15-Mar-2016

61 views

Category:

Documents


1 download

DESCRIPTION

Webes felületű orvosi kódolástámogató rendszer. BSc önálló laboratórium Sárándi István Konzulens: Héja Gergely 2011 tavasz. A problémáról. Célkitűzés. Orvosok segítése diagnózisok kódolásában webes felületen manuálisan sok időt igényel BNO = Betegségek Nemzetközi Osztályozása Célja - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Webes felületű orvosi kódolástámogató rendszer

Webes felületű orvosi

kódolástámogató rendszer

BSc önálló laboratóriumSárándi IstvánKonzulens: Héja Gergely2011 tavasz

Page 2: Webes felületű orvosi kódolástámogató rendszer

A problémáról

Page 3: Webes felületű orvosi kódolástámogató rendszer

Célkitűzés Orvosok segítése diagnózisok kódolásában webes

felületen manuálisan sok időt igényel

BNO = Betegségek Nemzetközi Osztályozása Célja

statisztika finanszírozás

Hierarchikus kódrendszer 21 főcsoport (pl. daganatok) Kb. 10 ezer kód (pl. C3840)

Page 4: Webes felületű orvosi kódolástámogató rendszer

Felhasználási séma

fibrillatio auricula

paroxysmalis

1. a felhasználó (pl. orvos) begépeli a diagnózist2. a rendszer visszaad egy tipplistát3. a felhasználó megnézi a talált kódok leírását és dönt4. (a felhasználó visszajelzést küld a rendszernek, hogy végül mit

választott)

Page 5: Webes felületű orvosi kódolástámogató rendszer

Minták Rendelkezésre állnak szakértők által kódolt, tisztított minták

(diagnózis–kód párok) ~3000 darabos magyar (BNO-10)

ez alapján működne a szolgáltatás ~95.000 darabos német (BNO-9)

a módszerek jobb kiértékelésére

Page 6: Webes felületű orvosi kódolástámogató rendszer

Módszerek

Page 7: Webes felületű orvosi kódolástámogató rendszer

Lehetséges megközelítésekPl.: Strictura ureteris hydronephrosis nélkül

Szintaktikai természetesnyelv-feldolgozás nincs sok elemeznivaló

Szemantikus kifejezések jelentései közötti kapcsolatok leírása tárgyterületi ontológiák szükségesek

Tárgyfüggetlen osztályozó módszerek

Page 8: Webes felületű orvosi kódolástámogató rendszer

Osztályozás Módszerek

Vektortér Bayes-modell Neurális háló (Szupportvektor-gép) Keverékek

Az osztályok a BNO-kódoknak felelnek meg több ezer osztály!

Mind vektorokat igényelnek bementként, de nekünk sztringjeink vannak!

Page 9: Webes felületű orvosi kódolástámogató rendszer

Vektorosítás Szóhalmaz-modell (bag-of-words)

dokumentumosztályozásban népszerű pl. spam szűrés

erős absztrakció sorrend szóhasonlóságok (pl. morfológia, szinonimák)

Page 10: Webes felületű orvosi kódolástámogató rendszer

Vektorosításfibrillatio aricula paroxysmalis

implementációs megjegyzés tároljuk csak az előforduló szavak indexét!

000…010…010…010…000

fibrillatio

auricula

paroxysmalis

urosepsis

sok ezer dimenzió!

Page 11: Webes felületű orvosi kódolástámogató rendszer

Vektortér

Page 12: Webes felületű orvosi kódolástámogató rendszer

Vektortér Előnyei

nagyon egyszerű implementáció Hátrányai

lassú nem veszi figyelembe a szavak fontosságát

~43% előfeldolgozás

IDF súlyozás ~52%

Page 13: Webes felületű orvosi kódolástámogató rendszer

Vektortér IDF súlyozással

Page 14: Webes felületű orvosi kódolástámogató rendszer

Bayes-modell

Page 15: Webes felületű orvosi kódolástámogató rendszer

Naiv Bayes-osztályozó

Page 16: Webes felületű orvosi kódolástámogató rendszer

Naiv Bayes-osztályozó Előnyei:

egyszerű implementáció szilárd elméleti háttér

Hátránya: naiv feltételezés gyenge eredmény (~50%)

Page 17: Webes felületű orvosi kódolástámogató rendszer

Neurális modell Elemi perceptron (neuron)

súlyozott összeg +eltolás nemlinearitás a súlyok tanítása

MLP: multi-layer perceptron rétegesen

+×w1

×w2

×w3

b

Page 18: Webes felületű orvosi kódolástámogató rendszer

Neurális modell Tanítása ciklusokban Súlymódosítás: „legmeredekebb lejtő” Tesztelés

ha a hibamérték „növekedésnek indul”, leállás fordulópont detektálása

hiba-visszaterjesztés (backpropagation)

Page 19: Webes felületű orvosi kódolástámogató rendszer

Neurális modell Osztályozás:

kimenet = osztály relevanciója logisztikus függvény 0..1 a kimeneten több ezer kimenet!

Page 20: Webes felületű orvosi kódolástámogató rendszer

Neurális modell Előnyei:

futáskor gyors csak a nem zérus bemenetek esetén történik szorzás rejtett réteg növeli a számítási komplexitást, de nem

javít sokat a megoldás minőségén jó eredmények (~52%)

Hátrányai tanítása lassú bonyolultabb implementáció

Page 21: Webes felületű orvosi kódolástámogató rendszer

Kevert modellek Különböző osztályozók eredménylistáit súlyozva

egyesítjük Elgondolás:

a hibásak eltérnek súlyozott összegzéssel feljöhet a helyes

Page 22: Webes felületű orvosi kódolástámogató rendszer

EredménykeverésKód Bizonyosság

B 0,27

C 0,26

A 0,25D 0,11

E 0,11

Kód Bizonyosság

D 0,28

A 0,25B 0,17

E 0,16

C 0,14

Kód Bizonyosság

A 0,25B 0,22

C 0,20

D 0,195

E 0,135

0,5

Page 23: Webes felületű orvosi kódolástámogató rendszer

Kevert modellek súlyozás

konstans kapuzó rendszer határozza meg

bemenetfüggő klaszterezés

tippelt szakértelem tippelt osztálycsoport

struktúra kell használjuk ki a BNO kódhierarchiát! 21 szakértő osztályozó a főcsoportokhoz

Page 24: Webes felületű orvosi kódolástámogató rendszer

Konstans súlyú keverés optimális súlyozást keresünk (w, 1-w)

brute-force lépegessünk kis lépésekben w=0..1

a tesztmintán mérjük a jóságát definiálni kell valamilyen mértéket

végül a két osztályozót az egész tanítómintával megtanítjuk

Page 25: Webes felületű orvosi kódolástámogató rendszer

Konstans súlyú keverés Előnyei:

egyszerű legjobb eredmények

Hátrányai: több osztályozó esetén a brute-force módszer nem

megfelelő súlyoptimalizáló rendszer kell

Page 26: Webes felületű orvosi kódolástámogató rendszer

MOE tanításaKapuzó

osztályozó

Címkéző kód

főcs.

diagnózis

szűrés

szakértő

szakértő

szakértő

Page 27: Webes felületű orvosi kódolástámogató rendszer

MOE használataKapuzó

osztályozó

listák összevonása

szakértő

szakértő

szakértő

szakértők becsléseinek súlyozása az adott főcsoport becsült relevanciájával

×

×

×

×

diagnózis

kódlistákrelevanciával

Page 28: Webes felületű orvosi kódolástámogató rendszer

MOE Előnyei:

neurális szakértők esetén gyorsabb és jobb eredmények, mint a lapos neurális modell esetén! (~55%)

egyszerű implementáció Hátrányai:

?

Page 29: Webes felületű orvosi kódolástámogató rendszer

Szakértelembecslés tanítás

tanítóhalmazzal tanítjuk a szakértőket (még nem tudjuk, hogy minek a szakértői lesznek)

kapuzó hálót tanítunk az egyes szakértők mennyire ügyesek az adott

tesztbemenetnél használata

MOE-hoz hasonlóan

Page 30: Webes felületű orvosi kódolástámogató rendszer

Szakértelembecslés Előnyei:

jobb eredmény, mint külön-külön sok szakértővel is hatékony

Hátrányai: nem valószínű szignifikáns összefüggés

a kapuzó ilyen esetben két dolgot tanul: általánosan mennyire nehéz a bemenet (felesleges) általánosan mennyire jók az osztályozók (egyszerűbben is

kiszámolható)

Page 31: Webes felületű orvosi kódolástámogató rendszer

Implementáció

Page 32: Webes felületű orvosi kódolástámogató rendszer

Alapvető felépítés

Osztályozószerver

Webszerver Böngésző

Egyéb kliens-program

TCP,XML

HTTP,XHTML

Page 33: Webes felületű orvosi kódolástámogató rendszer

Osztályozó szerver Különböző parancssori paraméterezések

train config.xml trainingdata.rep classif.dat osztályozó felépítésének (típus, részei, paraméterek)

beolvasása XML fájlból tanítás kapott tanított osztályozó szerializálása fájlba

serve classif.dat 5555 a megadott porton TCP sockettel figyel a beérkező diagnózisokat a megadott fájlból betöltött

osztályozóval kódolja

Page 34: Webes felületű orvosi kódolástámogató rendszer

Konfiguráció<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE architecture SYSTEM "D:\onlab\xml\config.dtd">

<architecture> <classifier id="rootmlp"> <type>MLP</type> <param name="learnrate">0.8</param> <param name="maxepochs">1000</param> <inputtransform>bagofwords</inputtransform> <outputtransform>counter</outputtransform> </classifier>

Page 35: Webes felületű orvosi kódolástámogató rendszer

Konfiguráció <classifier id="childmlp"> <type>MLP</type> <param name="learnrate">0.3</param> <param name="maxepochs">1000</param> <inputtransform>bagofwords</inputtransform> <outputtransform>counter</outputtransform> </classifier>

Page 36: Webes felületű orvosi kódolástámogató rendszer

Konfiguráció <classifier id="hier"> <type>Hierarchic</type> <param name="root"> <classifier ref="rootmlp" /> </param> <param name="child"> <classifier ref="childmlp" /> </param>

Page 37: Webes felületű orvosi kódolástámogató rendszer

Konfiguráció <param name="childselector"> <converter> <type>Interval</type> <param name="file">ICD10.def</param> </converter> </param> </classifier>

<classifier id="main" ref="hier" /></architecture>

Page 38: Webes felületű orvosi kódolástámogató rendszer

Csomagokdiagnosisproject

frameworkio classifiers converters

Main

parallel vector

SparseVectorParallelForT

BagOfWordsTransform

NaiveBayesClassifierOut<<Interface>>

Classifier

InOut

XMLClassifierReader

ClassificationService classifier1

classifier1

Page 39: Webes felületű orvosi kódolástámogató rendszer

Frameworkframework

adaption validation

+train()

<<Interface>>Classifier

InOut

Page 40: Webes felületű orvosi kódolástámogató rendszer

Classifier<<Interface>>Classifier

+train(trainingSet : SampleSet<In, Out>) : void+classify(input : In, limit : int) : ResultSet<Out>

InOut

+Sample(in : In, out : Out)Sample

InOut

+SampleSet()+SampleSet(ins : List<In>, outs : List<...+SampleSet(other : SampleSet<In, Ou...+add(input : In, output : Out) : void

SampleSet

InOut

<<Property>> -limit ...-map : TreeMap<O...+addResultBlender...

ResultSetOut

<<Property>> -output : Out<<Property>> -confidence : double+Result(output : Out, confidence : double)

ResultOut

Page 41: Webes felületű orvosi kódolástámogató rendszer

Classifier Adapter

<<Interface>>Classifier

InOut

<<Interface>>ClassificationAbility

InOut

ClassificationAdapter

InThruInThruOutOut

TrainingAdapter

InThruInThruOutOut

ClassifierAdapter

InOut<<Interface>>

InputTransform

FromTo

<<Interface>>OutputTransform

InnerOuter

-classifier1

-trainable

1

-tr

1

-cl1

-classifier1

-trainable

1

-cl1

Page 42: Webes felületű orvosi kódolástámogató rendszer

Validation

<<Interface>>Validator

TestInTestOut

<<Interface>>ValidationMetric

Out

ValidatorAdapter

TestInInOutTestOut

innerValidator

1

ValidationMetricAdapter

OutNewOut

innerVM1

NormalizedConfidenceMetricT

PositionAtLeastMetricOut

PositionWeightedMetricOut

<<Interface>>Classifier

InOut

SampleSet

InOut

ParallelValidator

InOut

SimpleValidator

InOut

ResultSetOut

innerValidator

1innerVM

1

Page 43: Webes felületű orvosi kódolástámogató rendszer

Neuralnetwork

MLP

MLPClassifier

mlp 1

<<Interface>>MLPTrainer

Layer

<<Interface>>ActivationFunction

layers*

activationFunc

1

BackpropMLPTrainer

<<Interface>>LearningMonitor

AbstractMLPTrainer

DecreaseRatioLearningMonitor

DifferenceErrorMonitor

<<Interface>>ErrorCalculator

errorCalculator

1

LogsigActivationFunction

SquareErrorCalculatorValidationErrorCalculator

<<Interface>>ValidationMetric

Outmetric1

<<Interface>>Classifier

InOut

mlp 1

layers*

activationFunc

1

errorCalculator

1

metric1

Page 44: Webes felületű orvosi kódolástámogató rendszer

Vector

Vector

SparseVectorIndicatorVector FullVector

Page 45: Webes felületű orvosi kódolástámogató rendszer

Parallel többmagos gépen sok

minden gyorsítható tesztelés neurális háló vektortér

Page 46: Webes felületű orvosi kódolástámogató rendszer

Köszönöm a figyelmet!