Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y...

10
0 Reconocimiento de Patrones Informe proyecto final Introducción ………………………………………………… 1 Adiquisición y pre-procesado ……………………….. 2 Extracción y selección de características …………. 3 Clasificadores ……………………………………………….. 5 Combinación de clasificadores ………………………. 7 Conclusiones ……………………………………………….. 9 Referencias ……………………………………………….. 9 Fabio Lima Gainzarain 4250238-1

Transcript of Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y...

Page 1: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

0

Reconocimiento de Patrones

Informe proyecto final

Introducción ………………………………………………… 1

Adiquisición y pre-procesado ……………………….. 2

Extracción y selección de características …………. 3

Clasificadores ……………………………………………….. 5

Combinación de clasificadores ………………………. 7

Conclusiones ……………………………………………….. 9

Referencias ……………………………………………….. 9

Fabio Lima Gainzarain

4250238-1

Page 2: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

1

1. Introducción

Los ECG es una de las señales biológicas más utilizadas en la medicina, permitiendo al médico

entender el funcionamiento del corazón humano y detectar distintas patologías. La detección

temprana de arritmias y anomalías es crucial en el tratamiento de un paciente y prevención de

ataques cardíacos. Por esta razón el procesado informático de ECGs para detección automática

de anomalías ha sido un área de interés para la comunidad científica, habiendo numerosos

trabajos sobre el tema.

El reconocimiento de ECGs presenta distintos problemas, al ser series en el tiempo el clasificar

patrones en base a los datos en crudos no suele ser efectivo. Además las distintas anomalías

presentan variación en un mismo paciente (dos latidos de la misma clase pueden diferir según

la frecuencia cardíaca) y entre pacientes (dos ECGs “diferentes” pertenecientes a dos pacientes

pueden corresponder a la misma anomalía). Todo esto desemboca en un problema de

reconocimiento que es difícil de resolver incluso para el humano entrenado.

En este trabajo se probaran modelos para clasificar cinco clases de latidos: Normal (N), arritmia

auricular (A), arritmia ventricular (V), bloqueo de rama izquierda (L), bloqueo de rama derecha

(R). El trabajo se estructuró de la siguiente manera: Pre-procesado, Extracción de características,

Selección de características, Clasificación individual de clases, Combinación y clasificación

completa.

Una aclaración con respecto al informe de avances, por error en ese informe se trabajaba con

un set reducido de pacientes, reduciendo la variabilidad entre pacientes. Ahora se pasó a

trabajar con la base de 44 pacientes por lo que el desempeño en general disminuyó. Sin embargo

como se verá, al combinar clasificadores se lograron resultados similares.

Page 3: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

2

2. Adquisición y pre-procesado

Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH, esta base es la más

ampliamente utilizada en trabajos de reconocimientos de ECG. La base consta de 102000 latidos

correspondientes a 47 pacientes, la base está en 47 registros correspondientes a cada paciente,

cada registro con una duración de 1000 segundos. Aproximadamente la mitad de los registros

corresponden a pacientes en situación normal, mientras que el resto fueron seleccionados de

pacientes que presentaban fenómenos poco comunes, de manera de lograr un registro más

extensivo de las anomalías. Las clases seleccionadas para el trabajo corresponden a aquellas que

presenten al menos 2500 instancias en la base de datos. Todos los latidos de la base fueron

etiquetados por dos médicos trabajando por separado, y decidiendo por consenso en caso de

diferencias.

Un latido normal presenta 5 complejos bien definidos, llamados P

Q-R-S y T, para la clasificación de un latido normalmente se toma la

información desde el complejo R correspondiente al latido anterior

hasta el complejo R del latido posterior. Por esta razón la base se

reestructuro de manera que cada latido se represente en un vector

con las muestras del R anterior al R posterior. Si bien el

reconocimiento de complejos R no es trivial, hay abundantes

métodos efectivos estudiados para ellos (Rodríguez et al. 2015). En

este trabajo no se realiza un reconocimiento de los complejos R,

sino que se toma su ubicación de las anotaciones de la base original.

Para igualar el largo de los vectores se realizó un submuestreo en cada vector (previa aplicación

de un filtro pasabajo) para igualar el largo de cada vector a 200 muestras, se espera que esto

también aplaque el efecto de la frecuencia cardíaca variable. Para remover el baseline se aplicó

un filtro de continua. No se busca un filtrado estricto del ruido.

Por último hay que aclarar que para todas las pruebas se tomaron las clases como

equiprobables, ya que la idea es estudiar la efectividad de los métodos y no hacer un análisis

riesgo/costo.

Figura 1 ECG, fuente: wikicommons.org

0 200 400 600-1

0

1

2

3

0 200 400 600-1

0

1

2

3

0 100 200-1

0

1

2

3

0 100 200-1

0

1

2

3

Figura 2 Ejemplo del submuestreo

Page 4: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

3

3. Extracción y selección de características

Las señales ECG muestran las descargas eléctricas en distintas regiones del corazón, de esta

manera podría pensarse que el ECG es la suma de distintos canales independientes. Por esta

razón un primer candidato para extraer componentes es usar ICA, este método de extracción

fue utilizado en (Yu & Chou 2008) para clasificar 8 clases con un rendimiento de 98.7%, este es

el mejor rendimiento que he encontrado en clasificación de ECGs.

Otro método ampliamente utilizado en varios problemas de reconocimiento por su sencillez y

buen desempeño en general son los PCA, por lo que también se probarán aquí.

Por último dado que los ECG son tratados por el humano de forma visual, se pensó en aplicar

algún método de extracción de características utilizado para reconocimiento de imágenes. El

método seleccionado fue sparse coding (que puede aplicarse a señales también) utilizando la

implementación de (Honglak Lee, Alexis Battle, Rajat Raina 2006), para construir el diccionario

y calcular la codificación de los vectores se utilizó el script de matlab provisto por los autores en

la web de Stanford. Se probará la clasificación con sparse, y con sparse+PCA.

Figura 3 Ejemplo de sparse coding

Tanto para PCA como para ICA se toman los 36 primeros valores y luego se realizó una selección

de características. La selección de características se hace con un método secuencial SFS

(sequentialfs en MatLab), que tiene un rendimiento sub-óptimo pero tiene una buena relación

entre el aumento del rendimiento y el tiempo de selección. La medida de rendimiento para los

subconjuntos es la clasificación de clases mediante Bayes y se usa cross-validation con k = 5.

Además de las características seleccionadas se agrega en todos los casos una nueva variable que

indica la posición del complejo R en relación con los complejos R anterior y posterior.

Para evaluar el rendimiento de los distintos métodos se mide la performance de clasificar cada

una de las clases por separado (frente a una clase de rechazo) utilizando una red neuronal y la

clasificación de todas las clases utilizando Bayes. La capa oculta de la red neuronal consta de

(input + 5)*(2/3) de nodos. Para construir los clasificadores se usó el set de 12500 muestras el

cual fue dividido en 40% entrenamiento, 20% validación, 40% test.

PERFORMANCE ICA (35 COMP) PCA (22 COMP) SPARSE SPARSE+PCA (8 COMP)

BAYES 76,2% 84,0% 64.4% 78.5% RED CLASE N 84,4% 94,1% 68.6% 80.8% RED CLASE A 92,3% 97,0% 83.7% 85.2% RED CLASE V 84,4% 97,2% 93.5% 92.7% RED CLASE L 94,8% 98,3% 90.6% 91.7% RED CLASE R 89,1% 97,6% 88.9% 89.7%

Page 5: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

4

Se observa como el mejor rendimiento se obtiene con PCA, por lo tanto se van a probar los

clasificadores con este método. Un dato curioso es que el uso de ICA no alcanza ni cerca el

rendimiento indicado en el artículo de Yu & Chou, hice varias pruebas de obtener ICAs con

distintos pre-procesados y distintos sets pero el rendimiento no aumenta. También probé

distintos scripts para eliminar posibles errores de progamación.

El sparse coding aunque visualmente bueno (ver diccionario en figura 4) no logra buenos

resultados por sí sólo, posiblemente por la gran cantidad de elementos nulos en cada vector.

Este problema se mitiga al reducir la dimensionalidad con PCA pero sigue sin ser la mejor

extracción. Otro dato interesante son las pocas características seleccionadas en sparse+PCA,

pasando de 36 características a 8.

Vale aclarar que los rendimientos presentados son el porcentaje de patrones correctamente

clasificados, no el porcentaje de patrones pertenecientes a la clase indicada correctamente

clasificados. Para la parte siguiente se tomarán en cuenta ambos desempeños.

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.2

0

0.2

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-1

0

1

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.2

0

0.2

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

0 100 200-0.5

0

0.5

Figura 4 Parte del diccionario obtenido con sparse coding

-5

0

5-6 -4 -2 0 2 4

-8

-6

-4

-2

0

2

4

6

8

Todas las muestras

-6 -4 -2 0 2-6

-4

-2

0

2

4

-10

-5

0

5

10

Submuestreo

Figura 5 Tres PCA con mejor discriminación

Page 6: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

5

4. Clasificadores

Para la construcción de los clasificadores se tomaron sets de 12500 muestras, 2500 por clase. El

set a su vez se divide 40% para la extracción de características y entrenamiento, 20% para

validación (en el caso de las ANNs) y el resto para test. Durante la extracción de los PCA en el set

de rendimiento se guarda la matriz U de la descomposición svd y los parámetros del blanqueo.

De esta forma se extraen las características del set de test.

sigmaMat = repmat(sigma,1,nt); latidos_todos = latidos_todos - repmat(mu,1,nt); latidos_todos = U' * (latidos_todos); latidos_todos = latidos_todos./sigmaMat;

Como se vió en la figura 5 las regiones correspondientes a cada clase son de difícil separación,

por lo que las ANNs son buenas candidatas, aunque se probarán otras opciones. La estrategia

de clasificación será construir clasificadores individuales para cada clase y luego combinarlos.

Los clasificadores individuales probados serán: ANNs, 1-NN, y Bayes. Las ANNs se entrenan

utilizando el método del gradiente conjugado (Meiller 1993) y el toolbox de MatLab para redes

neuronales. En principio se probaron árboles pero debido al gran costo computacional de su

construcción y su bajo rendimiento en los pocos que se construyeron (menor a 70%) se descartó

continuar.

%VP/%TOTAL N A V L R

Bayes 86.2/71.0 61.0/89.9 93.6/93.1 91.2/83.8 81.5/95.9 ANN 81.6/94.8 88.5/96.1 94.0/98.2 93.0/97.8 95.1/98.5 1-NN 93.6/97.2 95.3/97.8 94.0/98.4 98.6/99.0 97.5/99.2

Aquí surge algo curioso, se esperaba a priori que las ANNs tuvieran un mejor desmpeño a la

regla del vecino más cercano, sin embargo para todas las clases el vecino más cercano arrojó el

mejor desempeño. Por otro lado se esperaba que los mejores clasificadores de clase no utilicen

siempre el mismo método, el resultado es lo contrario. Para todas las clases 1-NN fue la mejor,

seguida de ANN y por último Bayes.

También se probaron métodos de clustering para separar las clases, los cuales no aportaron

nada a la discriminabilidad de los patrones. Se probó k-means para 5 clases, y un clustering

jerárquico (figura 6), una rápida inspección al dendrograma del clustering jerárquico permite

observar que no existe ningún tipo de separación en 5 clases equiprobables. En la figura 7 se

muestra el clustering obtenido con k-means, se ve como el algoritmo no encuentra

distribuciones similares a las presentadas en la figura 5. De hecho el algoritmo tiende a reducir

el número de clases a tres.

Antes de pasar a la combinación se muestra el rendimiento de clasificación global para Bayes, k-

NN, y ANNs.

CLASIFICADOR PERFORMANCE(%)

BAYES 76.6 ANN 93.4 1-NN 95.8 2-NN 95.8 3-NN 93.2 4-NN 93.5 5-NN 92.1

Page 7: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

6

442946564633436146244755438348734010400743484084413940294709425046514458463949104895 13 496 528 818 342 86 295 370 829 885 960 111 820 151 728 194 203 169 225 596 699 642 945 109 446 8714213498944194507480445284079461441074412449944274316459547684984428948604758459346104704439949034628465940144155471443934623404241094317489940884578454848894841402142634062417745414780482440324518410346094727416945034241440044834475476449884655495840194790422043574224404049274328405144894782460345134620421146624682483148944370463142354799431047474794405441594295441048854424495341004243440742174822407047914374492145714586 15 443 583143830314094 74 853 505 731 7811465 796102513391519 66328622041275012742800 126 1712731 9041090224623072876 6832591 76512161915133716082001274126072891250925242922213924242717217327152213297222852648228729972304280529852315201725942772213721922698 33 804 441 190 921 547 50441484813 181 80521472860 2302873 437 543 259 561 6414408 511 16 440 823 509 414 132 857 187 268 273 901 266 939 103 344 972 650 82242884379 360 621 729 802 199 749 493 400 949 6914058477945094912464946414852468649874106446049014447475647844352472944694986 7082266259227262348246426392503209925652323284029322136215323242223239325792599245825102819256223102571237926612493 45 5454719 176 209 488 161 195 457 246 582 525 647 95 236 281 478 239 529 272 748 63 205 598 672 83 907 954 787 291 357 847 368 860 284 9614902 406 86240894178 29622922197 66925132180216426932770263823922705241229772084265021332799223328162044213127362585275729022943 518 9263024399632653307339439513139395633683981 539384834374000 92433673419350037333163319936473604 3741458 486204211122020245414321723150417641897207723752615290125082727100411631411221129131852186119811159118614192689151119001615 43 697 551 957 552 61841214957451647204850 107 934 900 121 8134066412942594522409144254321437640764443423242524382466843144465417144864642419346194959414149294430455046224785415646984254489850004951 66 442 287 59440334596411049644164425144454297409948494608422247364861449848024558 2 120 390 671 615 872 55 701 675 216 263 665 970 914 224 636 760 913 4834703 67 91 969 464 916 135 140 770 335 435 395 951 182401540434305407849244467456645144743 4 311 112 659 174 685 678 752 40 931 136 364 651 828 680 854 113 722 875 125 655 867 157 507 328 653 9 91847334783 58 868 999 105 833 1181577 94630093089358031553601 247 292 500 3381158 419 715 213386017973825 492467441894919 350 927 59529262966154516192532 21145534142464447674941405742814300416246694087469241864920416343654974447240084063466448694947499242424968404441264262463442764589487443844930480649084980 4071881327337683440352335373634388432743531397531753260399932713401394434063475359934743614351936183651 35 53 952 87 305 597 381 210 127 557 8484006404549334068443648054098434744944975473042864652482747174731484747344913 279 4974973431340354830476641144520405540724172423443204745413446114693415142024179443140134272418846814721412448704423499141324981449141854914424744404158465342984601477049904772481943954970454446964888496644374587439744164542459448934017429645994769410142824191436444704136496146574212453049364020438141924405484241444960473842164025433643434529416146634670490749184073411647164345464048294833431243884952421845904965422645174679426846664890457643244702435840954311473243664435493240804468467748164969458446714687 6 558 778 929 149 235 201 40235773056360933043992384139023013341430873541309134203046345935213090363331673129384739743551 41 179 869 466 645 427 990 759 878 958 62 935 245 2623111384931033116314232443843336031443865361635013659 540 65730293554354530623656326235133171343932923393 48 207 89938513028306931983487 569 97931023893392531263192354736433426398430043135314737323868328635863945315139303208302334043153394730113148336431933938321330483266356836503842339035603380367637843421348838463714388036253196351434563464321433843644363939613217379333053685307839273254317932093405353438523096311736363607382932483285375731043853321934853940383932903905 7 38 170 789 585 17 580 631 846 178 280 310 389 801 614 565 606 839 22 638 767 375 627 661 811 143 248 214 609 777 373 991 738 474 628 119 4801809 131 570 413 842 393 81424082948 21 702 944 891 988 90 99 560 27 542 42 51 720 31 276 940 189 632 737 228 709 4621012125814751564177917521760 36 959 652 831 154 851 321 326 840 932 556 704 930 425 468 589 186 337 763 52140384180428444334146457444634253439041454204418149784826419742214688453547954147461841984701405949464349456243754723497747714115419945274538412341824362474646834277495044044415444247534041461640974742428744574757434247074206435447984606410443154105424642664386434644804808493445024739 477 481 852410843714604426945374452418745754748426144514765447747974462463844794524459849064676473740034726470642314982492245474789403047524245455649054067451144504896415043234471416841734022465843404967446448254028486542784333486840754137450647154023456746294577408144954883436841674256487646674125448249424387443948554053448845004394422849044285431949374012429444324582430944594875412840264834485642734378475144874699479247054265458548034031471240484249457247494130456848284264427940694722429147254238425743304501483643294565485348174880435644024613469149564082437244464484452643274774458046654413465447284117443841314196438545694200441148824675449048644940498346054832 28530953755359533763971367837863743387230103098391133613369369735063051330035763844375130263593340732553522352532983007387338563020357435493624398732943959308237583253362137713777337137593986346938353094369034423569354834513894313339483136378330683306313737753490399132413926369439773333350234083578362837823709300235653389361532113867305232043481378138053076356639663077318334313887322233173712361039953918343035843460382030553256306739893114376433483866379833633668318432843313341235203629325837463814342739503115317435093702325935873291382630063816326732123373381239793202349730273483384030653626390130363936326336053461346335523725309935033180322338133561306439653471380430803215379632313341382839523589387737603949377231703734363139883092348235273536322539983582391630433252383039763774322735923715391031213146360632453530341731343745398233563382346531763876344534543963323832613344380938153385353236603378399734023567321636223970366337113808 526342199254428342890202825522572 9082312235728631314133613481865219128952975 19 797 920 812 17519511531 356 4011303176613421481 536157411901280 714297411851473187019961357164715751714155315571634 568 995275416911869 71018032961246626192764 744 989 9023071207122162676243627742420 61717921078108210311708152211321275167012371326156820001719131722692284255426852996206526882274273828872043269220482127237621452609214826812481279527592923201521872149289222252767203624702576218526752989222125472960219622472371248020612489296422012608208324862264 8927983859 42627032037237426942904 365 718202424292391101914201698129413561459137113771115144619941080166111841240130713501248 345 571 347 716368332423312369237783050392831873881343531493693 64 133 75 97810011169123410921770198415471784196718541565162519911759 354 76411371414120619821027172018371296199513541389158516461838114718901641105218661429119212501979116613301172124718851492188210971972178814891985181116601934171612231871189216811297189815421648178012811367107516291791158716241941 57 434 782 8211729 122 355 503 9112457 31610181611 3234004492543024948417444224322 761198 923271225532867 277 824 42912612670 30011651218111716331167 9741142172810681119 318187214992899100711481488125323171696210921402874221522522781286832373314 41818062945 4751789 57415601044112511461409126514231980105413931656284611601480180021811134196511801450131311752987202725192434 96 512143016221940244525952677 4652171263611941400205525572373266621522872 264 604 626 3611829 452292710171692 2821141152416371773 73257326572870212321692978235924062802 71119682604298324332790282826112880201227922667207822972662230623972124278322882228288929912414208923652830257421462384223022762482268428771006159517181162122712321988153017351116191014871555170610091828125219351369181315961700168410281387177515781150182613901398115210391273157322771110120313101498140718242200375338033845388240014120484349764056417047774923497141954274480144284504453648204887403441494363436746784963409342404377478842394602401140654999406445104543413847624878489144444740489741574838462742994485435144814835488649164111428346474391464341404318466148674355445345254694486640024360420744664759488149284939402448234434463046324154417549794307494444744650409247114689444148514214470047084420425549434546480748404858422944014473449746174625481243394398481144184449471344214009496244934997401648794050418340864540491542934334451546904046411849384417463745644684477842904985486244034409487245454521481046354018474442604227453249454215430842754911451940394710495546954230473541434917433743804900405248544209434142674846479645084763422345704389461541904478445643444561410244924225418445514208403642034993404942194954455948924581464645834845412249724724499643314648481844964645404743924060420145494621467347414152453142924270477344554660493143064454487740744280411345734160468047604697411942484153433844484406457945394793 3 84 616 167 232 499 706 159 183 8874037 333 388 351 754 14 938 2511320249027002995 4051433 608 9652080219321382166 64613221084137014561529 87616622643137225232635107019181089185020382853241528132743278624532495 81 516 922 255 619 698 730 858 378290815382427375211551628142414511427152816511036110011911507110918891143210724012293274210142597120715171663211122832835253529841758194824912545217827482827 49 208 250 315 747 473 254 562 439 487 467 469 238 983 416 690 864430443964814 358115740714083202626542179 780217727332536 9561649 3772094226322592172273422672858255520232340279623032936 314 925 734455515411554199918391189126614711417144210351046153219371257143712821002174918591455192315151091138211314233151018911277140318251874102614781721109613961876157112131376195912641502102915261630125517991550177719551742177818161087122112421544138317221594188011511214173115631929 8 600 221 11 485 630 61 185 260 346 202 834 838 12 892 173 696 963 348 884 137 634 724 257 253 992 290 643 984 882 449 541 727 18109811451023113810661363174517481105187315801887148215991743 7231344 758158610721179128910101122134016581168149610131975122014261308181716351822106719281164158312951856109516021334181812301733 37 8981794 1561512113919691930 92 800 5864718 155 303 422 753 104 693 517212523212088278528032869 114 455 472 9334591 584 601130221551183166545632010212826372916 198 424 660 694 532 996 910 20 267 501 334 44 404 106 896 962 234 491 625 134 527 153 242 719 252 793 756 164 320 849 520 640 682 736 845 463 371 733 662 740 987 666 667 587 779 46 340 204 942 261 883 392 412 249 803 336 482 953 110 721 637 343 592 433 725 554 396 398 622 611 761 993 786 810 843 212 825 432 788 717 25 71 981319437973883 288 421 735127216041904 163 226 530 450 298 524 555 265 453 394 522 890 3121494 397 563 548 624 70 329 129 148 160 893 196 775 633 998 451 994 537 790 85 141 8163448305833203780 308 399 941 668 423 515 549 29 732 928 77 795 142 705 102 165 240 830 919 502 799 936 352 383 489 546 791 445 861 534 745 88 139 233 844 275 943 479 906 349 870 317 897 855 184 278 294 664 301 471 967 454 771 880 579 985 32 635 743 976 538 576 785 757 977 108 327 362 50 700 68 227 877 806 448 975 217 773 4903413345337483559 28 4031133 101 82712461469 1971034188811971832124118751238197710151049196114391212173217111107156612591855136114861293181513241394146014901762145215511949167617091931104012491047121015611318161810761130146315591672156711061178151616161316159213581895134518191362 591000 3671188 593197424722671200920492851104519931239128517961060118713231864105716991736195714661309137916971701195616951144153318341879117715621707173016001650149315981603 65 575 841 415 873 8563726 359 38432463424303530543381343236953289365734413351353930393112328232403724369931643980367531193457314039353358363731453898399433593646377038623044310533183047373633013323340331783704333539903913391434913540 1153387343434283444379230403166333234993326344337663897316137763790392036823191339133533362372939343045307938573512399330603679317332833763331933213738355336523563307338743508317237063177370135423749313833293833347036673581334639083620383837733425389539373156328031953201383238863220393133273383335746723001313038963157332532063343319738343205371036733386359436803005347334553890397330173143329932183597370530373124312836003127366637413909380239603467367136893476300338373904354638223337365337423182355536863869378932393250396839323070324731073924335536193466363034803113329335353807328733283721348935173109334037883955334538793677389236123108328837273310360839393185339739673526365535733642386139213207382433723794383631603684323033223479327637653954302232963278364537853324337437673370303030933122365430723795333639853038325136643452352437183739376133313379360236813779300832813719333938013101333438853063346839723086330336583249301635753627382733923496364836873436313135913570315930423352370337543226353831813821351036493075335438183154346231183969381935643507392935903018345838883505316835293858308335503190394332693477330832283941372331203189379134113750360335833817392330213899357232703438395832293735334234953823385536233632315238103669351138113084357937003233329531323915312333113484363530123558302534103365355639003400309732003203354433383277338838313688394230493125349430743429358835043720351639623613373139333059325739463066339831583243341534863315342236703903316234163418358539123169385038643707391733753533361736963806100310421173125613111069128619171395105013991123172416551298136519581016168317471193110814341686163919091913105313781570167116211539174018621912136618571846100515911244167911711790158216231795124314841391127618961588169310481497112814021381193815131821154811261127140419161851186813521267144312711798162712881304176815251953146710111867107415401254164216451102120417821840148315791737190819461947141216821921196319441767193215561992183518601989104115231903126817611290168717261746179310941640167413331922176511141477146115931620196419191120175319011202178116121756115618411335173811011785191412221299168819331181196013311712152019201021138815521943114013641495184819361845164318051844165318011689103714621589175415841306137418311447163618101886105111761270136819071056118218491906105816521406140817861022121513511024153410641440124519701986107115091457163817041111152719391174137514161474126219051814131219971321164418201291141519981741159716261858102010831808110419731987108513291632141817441757103010731343151418631103155811361613117013151605192615061038107919621086161712261200170313321201150518831135144114911569108813601124128414011413166612871669123319901664128318421576182316311300173410631325138517511769119519021205148512691713195217831113165716671149150012091353154618071836121714211435144517251878195012921305141015901927138018941301142817051161189313271229127917021690153612081464153719761518177612281260166814791843 1 863 152 971 366 835 460 950 494 572 10 23 850 130 324 526 26 826 283 382 519402740614205461241654426421044614512499846074909 69 304 387 755 966 484 94 649 774 784 411 456 836 93 679 776 837 986 4284761 144 274 695 739 470 564 85941944859424443734626433548004857 54 590 658150341274560 566 94842584588184723982794280422102725 123 9034781 256 567 865203541664786 461 602 559 607 91721512856238332752658 514 90543694554 6542053235529862431293924872504205629682294209226912299249727162404 808154322982372103324072603261028792998 8792237263011212046202123162479 180 438 915333037283978361110551355167318041924 193 2702531262829632229283625872695203021762082218322802218 325 973 369 581158116012102254222712942 3721444423744142938177122432894203424462220246227662976216125672190284928752281271823522714250725272773 8323309147610081319106117551059250125332335281029582338111816101196172718301349177217631425168518991911104321162395263127822050211223672095231127632386207425682248295326272334268326792933109316091219202525282212291523502530264922512272234627752448291220142865265327892944259029342054270428962969207321052336224222732154216728382897292526212160250025752739 30 495 353 417 97 888 376 610 162 623 746 968 231 762 613 809 588 688 603 792 807304133953236364030533638371330853571364137993433352836623515387139643672318838543235 39 138 573 6732170452325842930 603800 15032724326 191 508 783 874 258 510 81721292261139729072956219423822505227823092327 599207222952847217426012801200623304926207924302589 79 686 6482732236226172815 100 670 8191077145425492937 220 889311041124636 9092437154920292206 42012631470 895245026603088344633473878109923992108278724162747258826651199173913842914206321352570284423612723264625832843 147 707 815417648374821 24437083472 322 6814096477548844949 52 677 751 299 431 444 768 982 436 56 363 513 206 674 4301032115318021468157212511827171721981422181216782032244920702839220426002381295427972002274421412051272423222672242324742563278820972640224529712134255126802578287126682885277628592022244027072209224125122226223523492605272125932651201320682917235126062779205929572339237021182697236327112886230523662833298124852369238828932432283121622227262423412231227024252596279324212760256124382618 34 476 684 980 297 380 146 459 218 40840904844 229 553 577208528482973264233502659 14535182353241928782920 168275310622708 28614052343209023782060224429702622275829402967 886292920032106147229192208 9551677204527062598209824942260265524592947200527682898231423442441271021442829253421892360 166 41013471614187716591966 31312111787 9371231144819711942 981853123520522737288823322951143114361710 69226991680198324221129123619451694 47 222 458 330 620 612 750 78 82 713 306 319 332 533 339 656215622242496 177 271 307 544 550 289 302 578 676 629 644 741 9644754 8943015301937471224251420642730288424092546236426902696295221042475286128262258246329312325251128202081225327652784211528372478297927512990285729002905211928092864230828222184220223422142272823802614274527782702214322382982237726442100228625062319230027352516258624522994215025252347248325812924 12434924935 506 5913141329735963302 531 7262882231824282808226227492385253726412935 53526562709150126782040246723204871 26912784848 7723906 447323437162354284128122850 742305734783691230233772558274030813186310637873717 9471346 997139217741884133816542456280725263000 158 6893032386333963450 219 703 798203329113165321034234005459247763316349336613870 128 912 215408545574271 385225724022522238924982842 386 8662502153521952903206227522560450522052291239024602687299329092980 712 766206927712791235624612447262010651925152119541328150817151154272220912426296520932301254329624133435943324301453449954350447645974809 243919 1174236 2413409334913592492285421323722209629062019257721631449197820862121215920312468251720392442303449943698376930143907323232793891344930613665373739221341253932242632284537621373175013862207232929552821258020182941245522682488256926122664205826252682247325292652276920042629212221302538218226132008254026232729275626452825 7221132313 33136742158223629103983167520872279211429922249243532213953460020112855235827463399225524442451233131003957374020752239215721752165223424032866 17223372443 1884863 523 3413557359814531833 1924135 60524182101 237 30922403889303334473268432543534787 37937303498225423332541315022902410 409 794271929492219252122322832281716061607475028243744407721202188239624992686211032643366220327202222205724692780282325642811276223452413281825482928221424052328256627772476 80430348392250226522822673 116375627612959 200 223207627132582 2934815201620072755206725592946206626472602 243232624842806455223872950 39110812988 4982103251845334685122522892368227525152047288129992117225625562550356221262471241129182168218628832394354324392633240026743875241724772663 639 687 769 881229626262814261629212852221724652520270126690

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

Medida: ward

Figura 7 Dendrograma obtenido en el clustering jerárquico

-10

0

10-10 -5 0 5 10

-6

-4

-2

0

2

4

6

8

-6-4-2024

-6

-4

-2

0

2

4

6

8

-10

-5

0

5

10

Figura 6 Clustering obtenido con k-means

Page 8: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

7

5. Combinación

En principio (como se había mostrado en el informe de avances) se ideaba combinar

clasificadores expertos por clase, esto no tiene sentido si todos los clasificadores expertos son

1-NN ya que nunca va a haber dos positivos distintos para una misma muestra. Por esto se

cambió la estrategia y se crearon tres clasificadores (Bayes, 1-NN y ANN) para utilizar una

combinación en paralelo. Se utilizaron tres criterios de combinación:

1) Votación simple eligiendo la clase con más votos (en caso de empate se elige el voto del 1-

NN).

2) Se idea un ANN combinador cuyas entradas sean las salidas de los clasificadores de nivel 0. La

idea conceptual de esta red es que podría aprender cuando los clasificadores se equivocan. Se

espera tener un mejor desempeño que ante la votación simple.

3) Gating con 1-NN y ANN, en caso de clasificar distinto se elige la clase que tenga más

verosimilitud en el clasificador bayesiano.

COMBINADOR PERFORMANCE

VOTACION 95.9% ANN 93.9% GATING 98.0%

Tiene sentido que el combinador por ANN tenga mal rendimiento, ya que estrictamente está

clasificando atributos nominales (la clase indicada en el nivel 0) a las que se les dieron un valor

numérico. La votación apenas mejora el rendimiento del clasificador 1-NN. Por otro lado el

combinador con gating sí logra una mejora significativa en el desempeño.

Ya que la mayoría de las clasificaciones erróneas se dan cuando el objetivo es la clase “N”, se

modificó el gating para que decidiera “N” si el clasificador 1-NN así lo decidía, esto empeoró el

rendimiento llevándolo a 96.5%.

No se han presentado en este informe los rendimientos presentados en el informe de avances,

ya que como se dijo antes estos tenían por error un número reducido de pacientes (Por lo que

se lograban rendimientos cercanos al 98%). Aún así el último resultado usando gating logra un

rendimiento mayor sobre 44 pacientes frente a los 24 pacientes usados anteriormente.

Figura 8 Matriz de confusión para Gating

Page 9: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

8

Visualizando algunos de los patrones mal clasificados pueden obtenerse algunas conclusiones.

En la figura 9 se muestra un patrón mal clasificado, se observa que el ruido de la señal es tan

grande que la detección visual de los complejos es casi imposible. En la figura 10 se muestra un

latido normal que fue clasificado en la clase L, más allá de que el latido sea normal se observa

un complejo T muy grande lo cual es frecuente en la clase L, el modelo utilizado no tuvo la

versatilidad suficiente para clasificarlo correctamente.

Aunque en general los patrones mal clasificados son casos extremos, sigue habiendo casos

donde la mala clasificación es evidente (figura 11). Esto da a entender que el modelo puede

seguir mejorando.

0 20 40 60 80 100 120 140 160 180 200-1.5

-1

-0.5

0

0.5

1

1.5Pac: 15. Clase: 3. Clasific: 2

0 20 40 60 80 100 120 140 160 180 200-0.2

0

0.2

0.4

0.6

0.8

1

1.2Pac: 38. Clase: 8. Clasific: 3

0 20 40 60 80 100 120 140 160 180 200-2

-1.5

-1

-0.5

0

0.5

1

1.5Pac: 1. Clase: 1. Clasific: 2

Figura 9 Clase R, Clasificado L

Figura 11 Clase N, Clasificado L

Figura 10 Clase 8, Clasificado 3

Page 10: Reconocimiento de Patrones Informe proyecto final · 2016. 12. 27. · 2 2. Adquisición y pre-procesado Los patrones utilizados corresponden a la base de datos de ECG de MIT-BIH,

9

6. Conclusiones

Es posible lograr un rendimiento aceptable en señales temporales utilizando una buena

extracción y selección de características. Más allá de las diferencias obtenidas con los distintos

clasificadores, si se clasifica la señal en bruto se obtienen performances cercanas al 20% (igual

probabilidad de acertar que de errar) lo cual fue ampliamente mejorado en cualquiera de los

métodos utilizados para extraer características, luego incluso utilizando clasificadores simples

como Bayes se obtuvieron rendimientos mayores a 75%. En cuanto a la extracción mediante

sparse coding, si bien con los clasificadores utilizados no se lograron buenos resultados, los

diccionarios obtenidos aparentan ser útiles visualmente, debería estudiarse mejor su

implementación.

Es importante también el correcto pre-procesamiento de las señales, en este caso el filtrado de

continua contribuyó a aumentar el rendimiento, mientras que el submuestreo efectivamente

permitió mitigar el efecto de la frecuencia cardíaca.

En cuanto a los clasificadores utilizados sorprendió ver que 1-NN obtenía el mejor rendimiento

para todas las clases. Debido a esto tuvo que descartarse la estrategia inicial de tener

clasificadores expertos por cada clase y combinarlos de forma paralela. En su lugar se utilizó un

pseudo-gating para combinar dos clasificadores fuertes (ANN y 1-NN), utilizando como

desempate Bayes, el desempeñó obtenido fue el mejor de los probados.

Los métodos de clustering probados no lograron obtener clases similares a las buscadas, por lo

que se descartó usarlos para la clasificación.

Queda abierta la posibilidad de utilizar AdaBoost con clasificadores débiles y estudiar su

desmpeño.

7. Referencias

Honglak Lee, Alexis Battle, Rajat Raina, A.Y.N., 2006. Efficient Sparse coding algorithms. Advances in nerual infromation processing systems, pp.801–808.

Meiller, M.F., 1993. ORIGINAL CONTRIBUTION A Scaled Conjugate Gradient Algorithm for Fast Supervised Learning. , 6, pp.525–533.

Rodríguez, R. et al., 2015. Feature Extraction of Electrocardiogram Signals by Applying Adaptive Threshold and Principal Component Analysis. Journal of Applied Research and Technology, 13(2), pp.261–269. Available at: http://linkinghub.elsevier.com/retrieve/pii/S1665642315000103.

Yu, S.N. & Chou, K.T., 2008. Integration of independent component analysis and neural networks for ECG beat classification. Expert Systems with Applications, 34(4), pp.2841–2846.