Klasyfikacja publikacji biomedycznych w konkursie JRS 2012 Data Mining Competition - Szkic koncepcji

Podobne dokumenty
Algorytm. a programowanie -

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

Automatyczna klasyfikacja zespołów QRS

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.

Podręcznik Użytkownika 360 Księgowość Projekty i centra kosztów

Część I Rozpoczęcie pracy z usługami Reporting Services

Przykład wykorzystania dodatku SOLVER 1 w arkuszu Excel do rozwiązywania zadań programowania matematycznego

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

RAPORT z diagnozy umiejętności matematycznych

Zapisywanie algorytmów w języku programowania

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

Technologie informacyjne - wykład 12 -

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

Ćwiczenie numer 4 JESS PRZYKŁADOWY SYSTEM EKSPERTOWY.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Podstawy Programowania Obiektowego

KARTA MODUŁU KSZTAŁCENIA

Historia modeli programowania

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Modelowanie glikemii w procesie insulinoterapii

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Excel - użycie dodatku Solver

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu dla odczytu Australia Employment Change

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Algorytm. Algorytmy Marek Pudełko

Przykładowe sprawozdanie. Jan Pustelnik

Programowanie komputerowe. Geodezja i Kartografia I stopień (I stopień / II stopień) akademicki (ogólno akademicki / praktyczny)

ALGORYTM RANDOM FOREST

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

Lekcja : Tablice + pętle

0 + 0 = 0, = 1, = 1, = 0.

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

Ćwiczenie 6 - Hurtownie danych i metody eksploracje danych. Regresja logistyczna i jej zastosowanie

Rozwiązywanie zależności rekurencyjnych metodą równania charakterystycznego

Zad. 3: Układ równań liniowych

Wyszukiwanie binarne

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Pojęcie bazy danych. Funkcje i możliwości.

Konkurs z przedmiotu eksploracja i analiza danych: problem regresji i klasyfikacji

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Laboratorium technik optymalizacji

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Wszystko na temat wzoru dokumentu elektronicznego

Scenariusz szkolenia

Programowanie celowe #1

Badania operacyjne Instrukcja do c wiczen laboratoryjnych Rozwiązywanie problemów programowania liniowego z użyciem MS Excel + Solver

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

KLUCZ PUNKTOWANIA ODPOWIEDZI

Spis treści. O autorce. O recenzentach. Wprowadzenie

Projektowanie baz danych za pomocą narzędzi CASE

Układy VLSI Bramki 1.0

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie komputerowe Computer programming

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI 2016 ROK

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Algorytmy, reprezentacja algorytmów.

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

Przykłady pytań do zaliczenia programu wykonywanego w ramach zajęć laboratoryjnych 6-8 z Programowania komponentowego w Javie. Zofia Kruczkiewicz

1 Moduł Centrali PPoż 3

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Kurs MATURA Z INFORMATYKI

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Program szkolenia EXCEL PRZEKROJOWY ZAAWANSOWANY.

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

INFORMATYKA POZIOM PODSTAWOWY

Informatyka II. Laboratorium Aplikacja okienkowa

Projekt Sieci neuronowe

Instrukcja laboratoryjna cz.0

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Ćwiczenia 01 [inf II]: zasady oceniania, szkic programu kursu

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie II C10

Laboratorium Komputerowych Systemów Rozpoznawania Projekt 2. Lingwistyczne podsumowania baz danych

Wartość Shapleya w grach koalicyjnych

Szkolenie: Dobry Przypadek Testowy

Aplikacje w środowisku Java

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Piotr Bubacz Cloud Computing

Transkrypt:

Kierunek: Informatyka Zastosowania Informatyki w Medycynie Klasyfikacja publikacji biomedycznych w konkursie JRS 2012 Data Mining Competition - Szkic koncepcji

1. WSTĘP AUTORZY Joanna Binczewska gr. I3.1 94267 Dawid Kowalski gr. I2.2 94320 Zajęcia w środy o godzinie 16:40, grupa A. OPIS PROBLEMU Zdecydowano, że w ramach projektu zaliczeniowego z przedmiotu Zastosowania Informatyki w Medycynie przystąpi się do konkursu, którego celem będzie właściwa klasyfikacja artykułów biomedycznych. Artykuły zostały powiązane przez ekspertów z najbardziej pasującymi do nich nagłówkami ze słownika MeSH (Medical Subject Headings). Dane udostępnione uczestnikom konkursu zawierają opis 10 000 artykułów, każdy z nich składa się z 25 640 atrybutów przyjmujących wartości od 0 do 1000, które pokazują jak bardzo dany artykuł powiązany jest z konkretnym terminem ze słownika MeSH. Dodatkowo, dla danych 10 000 artykułów otrzymano plik z informacją o ogólnej klasyfikacji każdego z nich na tej podstawie wiadomo do których klas należą dane artykuły (artykuł może należeć do wielu klas jednocześnie). Liczba klas wynosi 83. Kwintesencją problemu jest utworzenie klasyfikatora pozwalającego na automatyczne ustalanie na podstawie wartości wszystkich atrybutów klasy, w jakiej badany artykuł się znajduje. Organizatorzy konkursu udostępnili również plik przedstawiający artykuły w taki sam sposób jak opisany powyżej, jednakże bez dodatkowej informacji o klasach do których owe artykuły należą. Jest to tak zwany zbiór testowy i uczestnicy konkursu mają za zadanie odesłać wydedukowane dzięki swojemu rozwiązaniu klasy dla artykułów ze zbioru testowego. Jako informację zwrotną otrzymuje się ocenę jakości klasyfikacji skali od 0 do 1 i na tej podstawie uczestnicy konkursu mogą dowiedzieć się czy rozwiązanie należy jeszcze dopracowywać. Ocena generowana jest jednak tylko na podstawie 10% zbioru testowego. Organizatorzy konkursu umożliwiają 200- krotne sprawdzenie jakości rozwiązania. Ocenę wynikającą z przeanalizowania całego zbioru testowego uczestnicy poznają dopiero na końcu. 2

Warto wspomnieć w jaki sposób generowana jest ocena. Należy zapoznać się z następującą notacją: N liczba testowanych dokumentów, TrueTopicsi zbiór właściwych klas dla dokumentu (przygotowany przez ekspertów), PredTopicsi zbiór ustalonych przez klasyfikator klas. Można zdefiniować dwa składniki: Precisioni = TrueTopicsi PredTopicsi / PredTopicsi Recalli = TrueTopicsi PredTopicsi / TrueTopicsi Ostateczna ocena generowana jest dzięki F-mierze (F-score), będącej miarą dokładności testów. F-scorei = 2 * (Precisioni * Recalli) / (Precisioni + Recalli) Wynik odsyłany do uczestników konkursu jest uśrednieniem oceny dokładności dla każdego z artykułów. AvgF-score = ( F-scorei ) / N OPROGRAMOWANIE Rozwiązanie problemu opracowywano przy udziale dwóch niezależnych środowisk programistycznych. Fragmenty kodów źródłowych zostaną przedstawione w dalszej części dokumentacji. Pierwszym z nich jest Microsoft Visual Studio 2010, gdzie, wykorzystując język C#, stworzono aplikację zajmującą się obróbką testowych plików tekstowych i przetwarzaniem uzyskiwanych rozwiązań. Drugim używanym narzędziem, służącym do rozwiązywania problemów programowania matematycznego jest CPLEX Optimization Studio. Dzięki niemu stworzono model rozwiązania przetwarzający badane artykuły i szukający klasyfikatora - bardziej szczegółowo model ten zostanie opisany również w dalszej części dokumentacji. Warto zauważyć, że program napisany w języku C# w pewien sposób opakowywał model napisany w środowisku CPLEX zarówno odpowiednio porządkował dane wejściowe, jak i, w fazie końcowej, pozwalał na przetworzenie informacji i decyzję o przynależności artykułu do danej klasy. 3

2. OPRACOWANE ROZWIĄZANIE Problem postanowiono rozwiązać przy pomocy programowanie liniowego. W ogólności oprogramowanie w środowisku CPLEX ma przetwarzać atrybuty ze wszystkich 10 000 artykułów testowych, aby następnie, osobno dla każdej z klas, utworzyć wzór z 25 640 współczynnikami. Wzór ten można by zastosować dla dowolnego artykułu i wynikiem jego byłaby jedna liczba na podstawie której decydowano by czy dany artykuł przynależy do danej klasy czy nie. PRZYKŁAD ZASTOSOWANIA 1. Utworzenie wzoru dla danej klasy przy pomocy oprogramowania CPLEX, 2. Wybór artykułu. 3. Wygenerowanie liczby na postawie sumy iloczynów współczynników ze wzoru i atrybutów opisujących artykuł. 4. Decyzja o przydzieleniu artykułu do klasy wynikająca z porównania otrzymanej liczby z progiem przynależności. TWORZENIE KLASYFIKATORA Przyjęto, że proces tworzenia klasyfikatora, a właściwie zestawu współczynników dla każdej z klas powinien odbywać się automatycznie ze względu na bardzo dużą ilość przetwarzanych atrybutów. Należało utworzyć model matematyczny, który osobno dla każdej klasy przetwarzałby dane o wszystkich artykułach testowych. Każdy nowo analizowany artykuł wprowadzałby modyfikacje do wzoru, co sprawiłoby, że po przeanalizowaniu całego zbioru testowego, współczynniki byłyby maksymalnie skalibrowane i zastosowanie ich do dowolnego artykułu ze zbioru testowego dawałoby poprawne wyniki. MODEL Okazało się, że przetwarzanie danych bez wcześniejszego modyfikowania ich będzie zbyt czasochłonne. Plik opisujący artykuły zajmował około 500 MB pamięci, jego otwieranie w zwykłym programie tekstowym zajmowało kilka minut, podobnie przez aplikację napisaną w języku C#. W przypadku programu napisanego w środowisku CPLEX, przekazanie mu takiej ilości 4

danych (10 000 artykułów po 25 640 atrybutów) skutkowało tym, że program nie radził sobie z tak dużym problemem programowania matematycznego. Szukano sposobu, dzięki któremu udałoby się nieco uprościć dane wejściowe. Zauważono, że w zbiorze artykułów, które posiadają daną klasę trzeba uwzględniać i przetwarzać wszystkie wartości atrybutów, bo mogą mieć one znaczenie dla rozwiązania. Selekcją właściwych atrybutów zajmuje się już program napisany w języku C#. Przykładowo: Przetwarza się 3 artykuły o atrybutach odpowiednio (13,27,0,0), (0,11,23,0), (0,0,0,72). Artykuły 1 i 2 należą do klasy 10, a artykuł 3 do 20. Rozwiązuje się problem dla klasy 10. Pod uwagę brane są tylko współczynniki o indeksach 0, 1 i 2, bo tylko one są niezerowe dla artykułów 1 i 2, które należą do danej klasy (stanowią sumę zbiorów niezerowych atrybutów). Ponieważ artykuł 3 nie należy do klasy 10, to atrybut o indeksie 3 nie będzie brany pod uwagę przy generowaniu współczynników dla klasy 10. KOD ŹRÓDŁOWY Poniżej przedstawiono kod źródłowy, opracowywanego w środowisku CPLEX, modelu. Nie jest to pełny kod, a jedynie najbardziej istotny fragment. Pełna wersja została dołączona do sprawozdania jako osobny plik o nazwie ZIWM.mod. Do przedstawionego kodu należy się kilka słów objaśnienia: x atrybuty, które mogą mieć wpływ na daną klasę (może być ich znacznie mniej niż 25 640, co zostało wyjaśnione dokładnie w przykładzie powyżej), e artykuły, które należą do danej klasy przyjmują wartość true, f artykuły, które nie należą do danej klasy przyjmują wartość true, 5

y liczba określająca granicę przynależności, CPLEX sam ją dobiera (poniżej y artykuł nie należy do klasy, a powyżej należy), w funkcji celu maksymalizujemy liczbę tych artykułów, które powinny należeć do klasy i jednocześnie liczbę tych, które nie powinny. To znaczy, że celem jest doprowadzenie do takiego wzoru, który zarówno klasyfikowałby artykuły w rzeczywistości należące do badanej klasy jako przynależne do niej jak i wykluczał przynależność tych artykułów, które eksperci odrzucili jako nienależące do danej klasy, dvar boolean x[attributesrange]; dvar boolean e[articleswithclass]; dvar boolean f[articleswithoutclass]; dvar int+ y; maximize sum(article in articleswithclass) e[article] + sum(article in articleswithoutclass) f[article]; subject to { forall (article in articleswithclass) { (e[article] == true) => (sum(attribute in attributesrange : article.attributes[attribute] >= 1) (x[attribute]) >= y); (sum(attribute in attributesrange : article.attributes[attribute] >= 1) (x[attribute]) >= y) => (e[article] == true); }; forall (article in articleswithoutclass) { (f[article] == true) => (sum(attribute in attributesrange : article.attributes[attribute] >= 1) (x[attribute]) <= (y-1)); }; (sum(attribute in attributesrange : article.attributes[attribute] >= 1) (x[attribute]) <= (y-1)) => (f[article] == true); } 6

3. PLAN DALSZEJ PRACY W czasie przeprowadzania wstępnych testów okazało się, że opracowanie rozwiązania będzie wymagało dopracowania kilku ważnych szczegółów. BŁĘDY ZAOKRĄGLEŃ Okazało się, że po przemnożeniu atrybutów artykułów i współczynników ze wzoru dla każdej z klas, a następnie zsumowanie otrzymanych wyników końcowych może dawać liczbę znajdującą się na granicy przynależności do klasy. Niepokojący był fakt, że taka sytuacja pojawiała się dość często. Przykładowo, gdy artykuł należał do danej klasy jeżeli wzór generował dla niego liczbę 100, to pojawiało się dużo przypadków, gdzie wynosiła ona nieco ponad 99. Wątpliwe pozostawało czy w takiej sytuacji artykuł rzeczywiście nie należy do badanej klasy czy może jest błąd zaokrąglenia i w rzeczywistości liczba ta powinna być większa lub równa 100. Wstępnie postanowiono rozsunąć granice przynależności i nieprzynależności do klas, tak aby oprogramowanie CPLEX mogło generować liczby bez wątpienia wskazujące czy dany artykuł należy do danej klasy czy nie. Zdecydowano, że jeżeli artykuł należy do danej klasy do będzie on generował liczbę większą lub równą 10 000, a jeżeli nie będzie należał to liczba będzie wynosiła 100 000 lub mniej. Rozwiązanie to wydawało się sensowne, wymagało jednak pewnego dopracowania okazało się, że część otrzymanych dla badanych artykułów liczb mieści się w przestrzeni pomiędzy granicami, a więc wciąż istnieje problem (choć o mniejszej skali) artykułów, które nie mogą być jednoznacznie sklasyfikowane. W tej sytuacji postanowiono aby program CPLEX sam dobierał granice przynależności, tak jak jest to pokazane w modelu opisanym powyżej (zmienna y). Rozwiązanie to wymaga kolejnych testów. CZAS OBLICZEŃ Czasy przetwarzania danych i generowania wzorów dla większości klas są do przyjęcia, jednak istnieje kilka trudnych obliczeniowo dla programu CPLEX klas, co powoduje, że czasy stają się niepraktycznie długie. Przykładowo, dla klasy 67 obliczenia wykonywały się bez przerwy przez 12 godzin i wciąż nie otrzymano wyniku. Model napisany w środowisku CPLEX może być uruchamiany z wieloma opcjami optymalizacji. Wpływają one na jakość otrzymanych rozwiązań oraz na czas po jakim to następuje. Należy więc znaleźć kompromis, tak aby w rozsądnym czasie udało uzyskać się wartościowe wzory dla wszystkich klas. 7