eksploracja danych - Politechnika Warszawska
Transkrypt
eksploracja danych - Politechnika Warszawska
V EKSPLORACJA DANYCH Data Mining • Definicja1: „Nietrywialne wydobywanie ukrytej, poprzednio nieznanej i potencjalnie użytecznej informacji z danych” (W.Frawley, G. Piatetsky-Shapiro, C. Matheus. Knowledge Discovery in Databases: An Overview. AI Magazine , Jesień 1992) • Definicja2: „Nauka zajmująca się wydobywaniem informacji z dużych zbiorów danych lub baz danych” (D. Hand, H. Mannila, P. Smyt. Principles of Data Mining. MIT Press, Cambridge, MA, 2001) V EKSPLORACJA DANYCH Data Mining Firmy z silnym nastawieniem na klienta (i dużymi bazami danych): • Sieci sklepów • Firmy finansowe • Firmy telekomunikacyjne • Firmy marketingowe Pomoc w znalezieniu relacji między czynnikami: • “wewnętrznymi”: • i “zewnętrznymi” V EKSPLORACJA DANYCH Data Mining Zastosowanie inteligentnych metod do wydobycia zależności, wzorców. ■ Popularny przykład (ale czy prawdziwy?): mężczyźni+pieluchy+piątek=piwo ■ Zastosowania (USA): Blockbuster – proponuje filmy na podstawie historii wypożyczeń American Express – proponuje produkty posiadaczom kart na podstawie analizy miesięcznych wydatków ■ Zastosowania techniczne – np.analiza procesu wytwórczego V EKSPLORACJA DANYCH Data Mining Obszary zastosowań ■ Wyszukiwanie asocjacji (pieluchy-piwo) ■ Klasyfikacja(wartości dyskretne), predykcja(wartości ciągłe) ■ Grupowanie (ang. clustering) ■ Eksploracja złożonych typów danych V EKSPLORACJA DANYCH Data Mining Klasyfikacja, predykcja Drzewa decyzyjne Modele Bayes'a Sieci neuronowe Alg. Genetyczne Zbiory rozmyte i przybliżone Statystyczna regresja wielowymiarowa, inne rodzaje regresji (predykcja) V EKSPLORACJA DANYCH Data Mining Przykłady danych produkcyjnych; Przygotowanie danych V EKSPLORACJA DANYCH Przykłady istniejącej dokumentacji w zakładzie produkcyjnym: ANALIZA BRAKÓW WSTAWEK D0-380 - wytop 03008 RODZAJE WAD Paleta 1 ODLEWNICZYCH sztuki Brak rdzenia i wtopki 0 Jamy skurczowe 7 Niedolew 5 Niespaw 0 Odklejona wtopka 4 Pęcherze 26 Porowatość 0 Przestawienia 0 Przypalenia 0 Uszkodzenia mechaniczne 1 Wady ucha 5 Wciągnięcia 2 Wypchnięcia 0 Wypłynięcia 0 Zagazowanie 0 Zagłębiona wtopka 2 Zalane dylatacje 9 Zalewki 0 Zapiaszczenie 35 Zniszczona forma 2 Zniszczony rdzeń 0 Zażużlenia 31 Dobre 0 Suma 129 paleta 1- H paleta 2 - H/B paleta 3 - B % 0,00 5,43 3,88 0,00 3,10 20,16 0,00 0,00 0,00 0,78 3,88 1,55 0,00 0,00 0,00 1,55 6,98 0,00 27,13 1,55 0,00 24,03 0,00 100,00 Paleta 2 sztuki 4 10 1 1 0 1 0 0 0 2 47 3 0 0 0 8 2 0 8 2 0 4 0 93 % 4,30 10,75 1,08 1,08 0,00 1,08 0,00 0,00 0,00 2,15 50,54 3,23 0,00 0,00 0,00 8,60 2,15 0,00 8,60 2,15 0,00 4,30 0,00 100,00 Paleta 3 sztuki 0 7 5 0 2 1 0 0 0 0 39 4 0 0 1 17 6 0 1 2 0 0 0 85 % 0,00 8,24 5,88 0,00 2,35 1,18 0,00 0,00 0,00 0,00 45,88 4,71 0,00 0,00 1,18 20,00 7,06 0,00 1,18 2,35 0,00 0,00 0,00 100,00 Suma sztuki 4 24 11 1 6 28 0 0 0 3 91 9 0 0 1 27 17 0 44 6 0 35 0 307 % 1,30 7,82 3,58 0,33 1,95 9,12 0,00 0,00 0,00 0,98 29,64 2,93 0,00 0,00 0,33 8,79 5,54 0,00 14,33 1,95 0,00 11,40 0,00 100,00 V EKSPLORACJA DANYCH Przykłady opracowanych formularzy elektronicznych: Karta 1. BIEŻĄCE POMIARY WŁASNOŚCI MASY Z MIESZARKI Data Oznaczenia odlewów Asortyment Brygada Nr wytopu Żródło: b b b 2003-01-07 2003-01-07 2003-01-07 2003-01-07 2003-01-07 C A E B H 03-006 03-006 03-006 03-006 03-006 "Żywiec" DO-320 DO-320 DO-380 DO-380 Nr pomiaru Godzina Nr mieszarki Wilgotność [%] Przepuszczalność Żródło: a, c a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0:15 0:15 11:00 11:00 13:00 13:00 14:40 14:40 16:20 16:20 18:20 18:20 20:20 20:20 2 3 1 3 1 3 1 3 1 3 1 3 1 3 [10-8/Pa*s] Zagęszczalność [%] Rc [kPa] a, c a, c a, c a, c 5,00 4,60 4,40 4,60 4,40 4,60 4,60 4,40 4,60 4,40 4,00 4,40 4,20 4,20 220,00 230,00 220,00 200,00 210,00 195,00 205,00 200,00 210,00 195,00 195,00 190,00 200,00 195,00 54,00 55,00 43,00 42,00 41,00 42,00 40,00 38,00 40,00 38,00 37,00 40,00 38,00 38,00 135,00 130,00 145,00 155,00 150,00 155,00 150,00 145,00 145,00 140,00 140,00 150,00 150,00 140,00 w Uwagi bieżące V EKSPLORACJA DANYCH Przetwarzanie danych Generowanie zbioru uczącego V EKSPLORACJA DANYCH Data Mining „Jądrem” Data Mining są systemy uczące się W praktyce często występują procesy o niezidentyfikowanej lub bardzo złożonej naturze fizycznej. Modelowanie tego typu problemów sprowadza się do znalezienia zależności między sygnałami wejściowymi a sygnałami wyjściowymi (wynikowymi) w oparciu o pewną liczbę zaobserwowanych przypadków. Tego typu narzędzia matematyczne znajdują zastosowanie przy projektowaniu i realizacji procesów produkcyjnych. Jedną z korzyści, jakie może dać modelowanie procesów produkcyjnych jest wskazanie wielkości odgrywających dominującą czy przynajmniej bardzo znaczącą, albo też znikomą bądź żadną, rolę w procesie (np. w wykrywanie przyczyn awarii urządzeń, zakłóceń procesów technologicznych, określaniu parametrów procesu technologicznego decydujących o jakości wyrobu i w innych tego typu sytuacjach). V Analiza danych EKSPLORACJA DANYCH Systemy uczące się Modelowanie zjawisk bardzo złożonych o niezbadanej naturze fizycznej, a zwłaszcza poszukiwanie prawidłowości w warunkach dużej liczby zmiennych o różnym charakterze. • Sztuczne sieci neuronowe • Drzewa klasyfikacyjne i regresyjne • Naiwny klasyfikator Bayesa Sprawdzenie przydatności do modelowania procesów związanych z wytwarzaniem form i odlewów oraz ich właściwości V Neuron biologiczny Sztuczne sieci neuronowe EKSPLORACJA DANYCH V EKSPLORACJA DANYCH Drzewa decyzyjne Idea Człowiek posiada tę umiejętność, że na podstawie przeszłych doświadczeń potrafi trafnie sklasyfikować nowy przypadek i podjąć wobec niego dobrą decyzję. My więc chcielibyśmy tego samego nauczyć komputer. Dając mu ''bagaż'' doświadczeń, czyli informację o przypadkach określonego typu, chcielibyśmy, aby podejmował racjonalną decyzję. Racjonalną znaczy najbliższą indukowanym regułom, które w jego mniemaniu zostały użyte do podjęcia tych dobrych decyzji i jednocześnie o niskim przewidywalnym poziomie pomyłek. V EKSPLORACJA DANYCH Drzewa decyzyjne Do tych właśnie celów wymyślono drzewa decyzyjne, które na stałe wpisały się w poczet elementów uczenia maszynowego. Na podstawie dostarczonego zbioru faktów i reguł maszyna uczy się jak sklasyfikować nowe przypadki. Zbiór faktów na podstawie, których będziemy wnioskować nazywamy Training Set, natomiast nowe przypadki, które będziemy chcieli zaklasyfikować to Test Set. Klasyfikacja polega na stwierdzeniu w jakiej kategorii umieścić nowy przypadek, zwykle jest to podział binarny na true lub false itp. Training Set jest zbiorem rekordów o tej samej strukturze, na którą składają się pary typu atrybut/wartość atrybutu. Ponadto każdy rekord jest przyporządkowany do odpowiedniej kategorii. Na podstawie wartości tych atrybutów i Training Set próbujemy sklasyfikować nowe przypadki, w których mamy dane jedynie atrybuty i ich wartości. V EKSPLORACJA DANYCH Drzewa Uczenie drzew Założenia: • przykłady są reprezentowane przez pary <atrybut, wartość> Każdy przykład jest opisany przez zestaw atrybutów, każdy atrybut może przyjmować różne wartości. Wartości muszą być dyskretne, w przypadku ciągłych dokonuje się dyskretyzacji tej wartości na kilka przedziałów. Oczywiści im mniej wartości może przyjmować atrybut, tym lepiej drzewo będzie mniej rozbudowane. • funkcja docelowa musi przyjmować wartości dyskretne • ciąg uczący może zawierać błędy • ciąg uczący może zawierać atrybuty które nie mają określonej wartości V EKSPLORACJA DANYCH Drzewa ■ Drzewo : Wewnętrzne węzły – test na atrybucie Gałęzie – wyniki testu Liście – klasy ■ Przykładowe drzewo (wskazujące, czy klient kupi komputer, czy nie): V EKSPLORACJA DANYCH Drzewa Przykładowe drzewo V Drzewa Przykładowe drzewo z programu komercyjnego EKSPLORACJA DANYCH V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa U podstaw stosowanych mechanizmów wnioskowania wykorzystywanych do uczenia się, leży twierdzenie Bayesa. Ugruntowane teoretycznie i praktyczne zastosowania tego twierdzenia stanowią trzy główne grupy probabilistycznych metod uczenia się, a mianowicie: metody klasyfikacji bayesowskiej, sieci bayesowskie i metody oparte na zasadzie minimalnej długości kodu. Do najczęściej stosowanych metod klasyfikacji bayesowskiej należy naiwny klasyfikator bayesowski, zwany również niezależnym klasyfikatorem bayesowskim, w skrócie NKB. Jest to zdecydowanie najbardziej efektywny obliczeniowo praktyczny algorytm uczenia się pojęć. V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Pojęcia są jedną z postaci naszej wiedzy o świecie, używaną do opisywania i interpretowania zmysłowych obserwacji oraz abstrakcyjnych idei. Pojęcia służą do klasyfikowania pewnych obiektów na grupy, które naiwny klasyfikator bayesowski nazywa kategoriami. Pojęcia są zatem funkcjami przekształcającymi dziedzinę w zbór kategorii, a więc przypisują obiektom etykiety ich kategorii. W podstawowym przypadku pojęcie wyznacza podział zbioru wszystkich rozważanych obiektów, czyli dziedziny, na dwie kategorie: obiektów należących do pojęcia i obiektów nie należących do niego. O pierwszych mówi się, że są przykładami określonego pojęcia, a o drugich, że nie są przykładami tego pojęcia. Dziedziną jest zbiór obiektów, których ma dotyczyć wiedza nabywana przez naiwny klasyfikator bayesowski. Każdy obiekt, element dziedziny dla naiwnego klasyfikatora bayesowskiego jest przykładem. V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Dla naiwnego klasyfikatora bayesowskiego uczenia się ma charakter pewnego rodzaju odwzorowania informacji wejściowej na pewien zbiór wartości wyjściowych. Informacją wejściową są przykłady trenujące pewnej dziedziny, mające postać par złożonych z opisu obiektu i etykiety ich kategorii. Opis obiektu naiwny klasyfikator bayesowki nazywa przykładem nieetykietowanym i utożsamia z samym obiektem, a parę powstającą przez dołączenie do niego kategorii, przykładem etykietowanym. Algorytm otrzymuje wyłącznie opisy przykładów w postaci wartości atrybutów i tylko z nich może korzystać. V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Uczenie się naiwnego klasyfikatora Bayesa polega na znalezieniu hipotezy, która jest zgodna z pojęciem docelowym dla przykładów trenujących i która klasyfikuje również inne przykłady z dziedziny z jak najmniejszym błędem. Ma więc ona możliwie dokładnie przybliżać nieznane pojęcie docelowe. V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Kilka słów o teorii prawdopodobieństwa Rozważania na temat prawdopodobieństwa prowadzi się zakładając, że dana jest pewna przestrzeń zdarzeń elementarnych Ω , będąca zbiorem wszystkich zdarzeń elementarnych, przy czym zdarzeniami elementarnymi są najprostsze możliwe wyniki doświadczenia losowego. Natomiast rodzinę podzbiorów przestrzeni zdarzeń elementarnych, którą zainteresowany jest eksperymentator, nazywa się przestrzenią zdarzeń ( Ω ,,F,gdzie losowych F. Uporządkowaną trójkę P) P jest prawdopodobieństwem, nazywa się przestrzenią probabilistyczną. V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Kilka (prostych) słów o teorii prawdopodobieństwa W potocznym rozumieniu prawdopodobieństwo zajścia danego zdarzenia jest miarą szansy jego wystąpienia. Prawdopodobieństwem nazywamy funkcję P przyporządkowującą każdemu zdarzeniu losowemu A liczbę P(A), zwaną prawdopodobieństwem zajścia zdarzenia A . Często jest tak, że zajście jednego zdarzenia może wpływać na prawdopodobieństwo zajścia innego zdarzenia. Wówczas mówimy o prawdopodobieństwie warunkowym. V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Kilka (prostych) słów o teorii prawdopodobieństwa Często mamy do czynienia z doświadczeniami wieloetapowymi i wówczas pojawia się pytanie, jak liczyć prawdopodobieństwa zdarzeń, których zajście zależy od innych zdarzeń, które zaszły we wcześniejszych etapach doświadczeń. Do tego posłuży wzór na prawdopodobieństwo całkowite. P ( A) = n ∑ i= 1 P( A / H i ) ⋅ P( H i ) V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Twierdzenie Bayesa P( A) = n ∑ i= 1 P( A / H i ) ⋅ P( H i ) Interpretacja się w kategoriach „przyczyna-skutek” - jeżeli skutek A może zajść w wyniku jednej z n przyczyn H1, ... Hn , to prawdopodobieństwo wystąpienia skutku A wyraża się powyższym wzorem. Jeśli natomiast znany jest wynik drugiego etapu doświadczenia i pytamy o to co stało się w jego pierwszym etapie, to stosujemy wzór Bayesa. Interpretacja się w kategoriach „przyczyna-skutek” - jeżeli skutek A nastąpi w wyniku zajścia jednej z n przyczyn H1, ... Hn , to prawdopodobieństwo tego, że Hk była przyczyną zajścia A wyraża się wzorem Bayesa. V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Twierdzenie Bayesa Niech zdarzenia H1, ... Hn ∈ F tworzą układ zupełny zdarzeń w przestrzeni probabilistycznej ( Ω , F, P ) i niech A∈ F będzie dowolnym ustalonym zdarzeniem o dodatnim prawdopodobieństwie. Wówczas prawdziwy jest wzór P( H k A) P( A / H k ) ⋅ P( H k ) P( H k / A) = = n P( A) ∑ P( A / H i) ⋅ P( H i ) i− 1 W odniesieniu do probabilistycznych metod uczenia się twierdzenie Bayesa można przedstawić w sposób następujący: dla dowolnej hipotezy h∈H oraz zbioru danych D zachodzi równość P ( h ) ⋅ P ( D / h) P (h / D) = P( D) V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Twierdzenie Bayesa Dla dowolnej hipotezy h∈H oraz zbioru danych D zachodzi równość P (h / D) = P ( h ) ⋅ P ( D / h) P( D) Hipotezy są funkcjami klasyfikującymi przykłady na podstawie wartości ich atrybutów. Algorytm reprezentuje hipotezy za pomocą pewnych oszacowań prawdopodobieństw, tworzonych na podstawie zbioru trenującego. Zbiór trenujący jest jedyną podstawą wyznaczanych przez naiwny klasyfikator bayesowski oszacowań prawdopodobieństw. Przykłady klasyfikowane są poprzez wybranie dla nich kategorii najbardziej prawdopodobnej z punktu widzenia oszacowań. V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Czy pogoda jest dobra do gry w golfa? V EKSPLORACJA DANYCH Naiwny klasyfiktor Bayesa Zastosowanie bardzo popularne • • Wyszukiwarki internetowe Instalator bieżącej wersji programu Śmieciarek NxG instaluje pliki z podstawową bazą słów, dzięki której już od pierwszego uruchomienia program potrafi automatycznie klasyfikować wiadomości. Baza podstawowych słów jest jednak dość uboga i program powinien być uczony rozpoznawania wiadomości w miarę jak odbierana jest poczta. Z podstawową bazą słów program może się mylić, jednak szybkie reagowanie na te pomyłki i ręczna reklasyfikacja wiadomości pozwoli na coraz lepsze rozróżnianie różnych kategorii wiadomości email. O uczeniu programu przeczytasz w pomocy do programu. Jeśli chcesz samodzielnie uczyć program rozpoznawania wiadomości od samego początku, wybierz pustą bazę słów. Jeśli natomiast chcesz, aby już od pierwszej chwili program rozpoznawał wiadomości i klasyfikował je, wybierz podstawową bazę słów. V EKSPLORACJA DANYCH Zagadnienie produkcyjne Dane produkcyjne Przyjęty sposób zapisu umożliwia przetwarzanie i formatowanie danych za pomocą odpowiednio stworzonego oprogramowania. W ten sposób uzyskuje się zbiory danych uczących, wykorzystywane następnie do uczenia. Fragment przykładowego formularza do zbierania informacji o parametrach mas formierskich Wygenerowany zbiór danych uczących V EKSPLORACJA DANYCH Identyfikacja przyczyn powstawania wad w odlewach Produkcja klocków hamulcowych Zestaw danych – Konfiguracja 1 Dane wejściowe: • Wilgotność • Przepuszczalność • Zagęszczalność • Wytrzymałość • Temperatura • Wilgotność masy zwrotnej Dane wyjściowe: • Wada ”zapiaszczenie” % braków V EKSPLORACJA DANYCH Wspomaganie decyzji odnośnie dodatków odświeżających do syntetycznych mas formierskich Produkcja klocków hamulcowych Zestaw danych – Konfiguracja 2 Dane wejściowe: Dane wyjściowe: • Wilgotność • Dodatek wody • Przepuszczalność • Dodatek pyłu • Zagęszczalność • Dodatek bentonitu • Wytrzymałość • Dodatek piasku V EKSPLORACJA DANYCH Dyskretyzacja danych Dlaczego stosujemy proces dyskretyzacji danych ciągłych? Większość zmiennych, z którymi mamy do czynienia przy rozwiązywaniu rzeczywistych problemów, jest ciągła. Dlatego, aby ciągły atrybut mógł być użyty, musi zostać poddany procesowi dyskretyzacji. Proces ten polega na podzieleniu całego zbioru wartości (dziedziny atrybutu) na podzbiory (przedziały) o określonych własnościach. Każdy z takich przedziałów, u tworzonych w procesie dyskretyzacji, może być wtedy utożsamiany z jedną wartością dyskretną „nowego" atrybutu, równoważnemu. V EKSPLORACJA DANYCH Dyskretyzacja danych Kiedy stosujemy? Dla algorytmów, które nie mają mechanizmów przetwarzania atrybutów ciągłych, dyskretyzacja jest nieodzownym warunkiem stosowalności do dziedzin, w których atrybuty takie występują. Zdecydowana poprawa efektywności obliczeniowej procesu uczenia się dzięki zastąpieniu wielu wartości atrybutu ciągłego niewielką liczbą wartości dyskretyzowanych (obniżenie nakładu obliczeń) Zwiększenie prostoty oraz czytelności hipotez: hipotezy, które bezpośrednio wykorzystują atrybuty ciągłe mogą być zbyt złożone i nieczytelne. Pod wpływem dyskretyzacji hipotezy mogą okazać się prostsze i łatwiejsze do interpretacji. V EKSPLORACJA DANYCH Dyskretyzacja danych Metody Dyskretyzacja wg równej częstości: Zakres wartości atrybutu ciągłego jest dzielony na ustaloną z góry liczbę przedziałów, jednak nie są to przedziały o równej szerokości. Ich końce dobiera się w ten sposób, aby każdemu z nich odpowiadała (możliwie) taka sama liczba przykładów trenujących. V EKSPLORACJA DANYCH Dyskretyzacja danych Metody Dyskretyzacja wg równej szerokości: Jest to najprostsza metoda dyskretyzacji. Zakres wartości dyskretyzowanego atrybutu ciągłego jest dzielony na ustaloną liczbę przedziałów o jednakowej szerokości. Każdemu przedziałowi odpowiada następnie jedna wartość dyskretna. V EKSPLORACJA DANYCH Dyskretyzacja danych Metody Dyskretyzacja zstępująca: Zgodnie z istotą podejścia zstępującego początkowo przyjmuje się cały zakres wartości jako jedyny przedział. Umieszczenie pierwszej wartości progowej dzieli go na dwa podprzedziały, z których każdy może być następnie podzielony na kolejne dwa podprzedziały itd. V EKSPLORACJA DANYCH Dyskretyzacja danych Metody Dyskretyzacja wstępująca: W przypadku dyskretyzacji wstępującej główną rolę pełni operacja mająca na celu łączenie przyległych przedziałów w jeden większy przedział. Zakończenie łączenia przedziałów za pomocą tej metody następuje po ustaleniu kryterium stopu, czyli w momencie gdy albo liczba przedziałów osiągnie wartość minimalną określoną na początku procesu lub gdy wszystkie sąsiadujące ze sobą przedziały będą na tyle różne, że algorytm sam zaprzestanie ich łączenia. V EKSPLORACJA DANYCH Dyskretyzacja danych Metody Dyskretyzacja wstępująca Przykładem metody dyskretyzacji wstępującej jest algorytm ChiMerge. Nazwa algorytmu wskazuje na wykorzystanie statystyki χ2(używanej do oceny czy sąsiednie przedziały można połączyć w jeden) oraz przeprowadzenie dyskretyzacji przez łączenie przedziałów. Rozpoczynając od minimalnych przedziałów pokrywających zakres dyskretyzowanego atrybutu, po jednym dla każdej jego wartości występującej w zbiorze trenującym, algorytm wielokrotnie powtarza podstawowy cykl, w którym rozważa połączenie każdej pary przyległych przedziałów (lub w ogólniejszym wariancie ich pewnej liczby k>1) i dokonuje połączenia tych, dla których da to według stosowanej heurystyki najlepsze efekty. W algorytmie ChiMerge funkcję tej heurystyki pełni właśnie statystyka χ 2. V EKSPLORACJA DANYCH Literatura [1] Data Mining. Przegląd metod eksploracji danych.Mateusz Kobos [2] Drzewo decyzyjne C4_5, czyli jak nauczyć komputer odróżniać dobro od zła. Nikos Drakos, Ross Moore (The translation was initiated by Przemyslaw Strzelczak ) [3] Metody i techniki pozyskiwania wiedzy z danych oraz komputerowego wspomagania decyzji dla potrzeb administracji państwowej.Raport końcowy z realizacji zadania. Politechnika Warszawska.