Projekt akcelerometr a Matematyka dla Ciekawych Świata

W marcu, w ramach Matematyki dla Ciekawych Świata będę prowadził kilka spotkań o analizie danych kierowanych do licealistów i gimnazjalistów.

Co im pokazać by ich porwać? Aby pokazać, że analiza danych jest fajna i nie polega wyłącznie na liczeniu ile jest chłopców a ile dziewczyn w klasie / szkole / bloku?

Ostatnio rozmawiałem o tym z Bartkiem Męglickim, który na ostatnim SERze pokazywał robota zrobionego z LEGO komunikującego się przez wifi z R. Od słowa do słowa zeszło na czujniki i kontrolery, takie jak np. przyspieszeniomierz, czyli akcelerometr, które generują sygnały, których analiza jest niebanalna. Z robota zeszło na telefon i tak…

Użytkownicy smartfonów mogą pobrać sobie bezpłatną apkę SensorLog, rejestrującą wartości z wielu czujników dostępnych w telefonie (kompas, akcelerometr, żyroskop, lokalizacja, itp). Takie logi można rejestrować i wysyłać mailem.

Później można je oglądać i próbować robić jakieś analizy.

Na tej stronie umieściłem trzy próbki nagrane podczas swobodnego marszu, wchodzenia po schodach i podskakiwania. Zobaczmy jak wygląda suma kwadratów każdej ze współrzędnych akcelerometru (pomiary dotyczą wymiaru X, Y i Z, klikając możemy powiększyć obrazek).

marszschodyskoki

Czy mając taki odczyt można odgadnąć co robiłem? Czy akurat w czasie pomiaru maszerowałem, skakałem, wchodziłem po schodach a może jeździłem na łyżwach? Skoki łatwo rozpoznać po amplitudzie a co z marszem i wchodzeniem po schodach? Czy któryś z tych profilów jest bardziej regularny?

Z pomocą może przyjść funkcja autokorelacji. Bada ona siłę korelacji szeregu pomiarów z samym sobą przesuniętym o określony krok. Zobaczmy jak wyglądają autokorelacje dla tych trzech aktywności.

ACFmarsz
ACFschody
ACFskoki

Marsz jest znacznie bardziej regularny, pewnie z tego powodu, że wchodząc po schodach trafia się na półpiętra, które ,,wybijają” z rytmu. Można dla niego prosto policzyć z jaką częstotliwością stawiam kroki.

Co więcej przyglądając się odczytom z akcelerometru można zauważyć, że marsz ma znacznie bardziej symetryczne zbocza, niż wchodzenie po schodach, gdzie występuje pewna asymetria. Z dydaktycznego punktu widzenia posiłkując się takim przykładem możemy teraz opowiedzieć o autokorelacji, o badaniu okresowości, o odszumianiu z użyciem filtrów, np. ruchomej średniej, o transformacjach danych itp.

Analizując dane z telefonu możemy rozpoznać co też użytkownik robi. Możemy zbudować prosty krokomierz, możemy zbudować ,,wysiłkomierz”, możemy badać jak długo siedzimy w bezruchu przed komputerem. Można robić fajne rzeczy.

Pomysł nie jest nowy. Łukasz W, któremu opowiadałem o tym projekcie podesłał mi link do większego, otagowanego zbioru danych do pobrania z UCI.

Jak myślicie, czy ten problem nada się aby zainteresować gimnazjalistów i licealistów analizą danych? A może macie pomysł na inny ,,wciągajacy” młode umysły przykład analizy danych?

Kod, który wygenerował powyższe wykresy (jest też na githubie):

16 myśli na temat “Projekt akcelerometr a Matematyka dla Ciekawych Świata”

  1. Może coś co można powiedzieć o grach komputerowych. Z tego co kojarzę Steam przez API udostępnia dane nt. m.in. Dota 2. Pokazanie procesu wyciągnięcia danych rozgrywek profesjnoalnych, ich przeczyszczenia (jeśli potrzebne) i pokazanie kilku fajnych rzeczy które można z nimi zrobić powinno świetnie do nich trafić.
    Oczywiście to jest potencjalnie bardzo czasochłonne i ostatecznie można się zastanowić co ciekawego na ten temat można powiedzieć. Wydaje mi się jednak, że kilka fajnych rzeczy potencjalnie można pokazać np. skoki skuteczności poszczególnych teamów wskazujące kiedy pojawiły się patche (można też w ten sposób pokazać, które patche zmieniły rozgrywkę najbardziej), czy jakiś sensowny system rankingowania drużyn etc.

    Wydaje mi się, że to może być fajniejsze niż obróbka danych nt. chodzenia.

    1. Pomysł ciekawy, choć nie nie znam tej gry Dota,
      czy ona jest popularna w Polsce?
      (takie zajęcia mają sens jeżeli większość uczestników będzie wiedziała o co chodzi w tej grze)

  2. @smarterpoland: Dota należy do gatunku “Multiplayer online battle arena” (MOBA) — na anglojęzycznej Wikipedii jest artykuł wyjaśniający mechanikę rozgrywki. Z grubsza chodzi o to, że do rozgrywki stają dwie drużyny o identycznych zasobach, a celem jest zniszczenie zamku drużyny przeciwnej. Postać kontrolowana przez gracza nie może zostać usunięta z gry, może być tylko wykluczona na kilkadziesiąt sekund. To taka wariacja szachów przystosowana do oczekiwań dzisiejszej młodzieży. Inną popularną grą z tego gatunku jest “League of Legends”. Większość* osób z grupy docelowej powinno kojarzyć któryś z tych dwóch tytułów.

    Nie wiem jakie dane udostępnia Valve, ale w tego typu grze najciekawsze jest chyba poszukiwanie punktu, po przekroczeniu którego wynik rozgrywki jest już „przesądzony”.

    * Pewnym problemem jest to, że — zwłaszcza w gimnazjum — zainteresowania są dość silnie powiązane z płcią. Więc idąc w kierunku np. gier komputerowych ryzykujesz, że chłopcy nie będą chcieli wypuścić Cię z sali, a dziewczynki będą zanudzone na śmierć.

  3. League of Legends jest bez porównania popularniejsze – uchodzi wręcz za najpopularniejszą grę komputerową na świecie. Problem jest taki, że do LoLa nie ma żadnego API umożliwiającego wyciągnięcia statystyk rozgrywek. Dota2 ma coś takiego, choć nie pamiętam jak szczegółowe i chyba nie ma informacji nt. rozwijania się gry. To zresztą byłoby dość trudne do ogarnięcia w prezentacji dla ludzi ze szkoły. W skali światowej Dota2 to wciąż ~10mln graczy, więc myślę że i w Polsce jest sporo fanów.

    Jeżeli badania będą na tyle ogólne, że na przykładzie Dota2 będzie się pokazywać jak można badać generalnie gry tego gatunku (bo podstawy Dota2 i LoL są niemal takie same), to powinno zainteresować się większość graczy.

    Wreszcie – nie wiem jak popularne są te gry wśród dziewcząt, ale na pewno nie można ufać badaniu Jestem Graczem. Myślę że sporo z nich gra.

    Jednocześnie do marca nie jest dużo czasu i cała ta problematyka może być zbyt czasochłonna.

    1. Dobrze, że kończy się semestr. Będzie trochę czasu na głębsze badania obu gier.

      Celem tych spotkań jest zaciekawienie młodzieży analizą danych.
      Kto wie, może wystarczy powiedzieć, że w pracy badacza danych czasem trzeba kilka dni pograć w gry by zdobyć dane do badań i to ich zaciekawi.

  4. Gry mają jedną wadę: nie porwą dziewczyn ;). Ja bym im pokazała kilka fascynujących przykładów wizualizacji danych, takich jak choćby: http://hint.fm/wind/ , http://armsglobe.chromeexperiments.com/ czy http://newsmap.jp/ . Opowiedziałabym o rodzących się zawodach, takich jak data journalist czy data scientist. I o konkursach statystycznych: najpierw o Neflix Prize z nagrodą wysokości milliona $ (młodzież lubi duże liczby), potem o kaggle i crowdanalytix (na kaggle jest obecnie konkurs z nagrodą główną wysokości 100 tys $). Może nie jest to temat na cykl zajęć, ale na pewno jest to coś, o czym powinni się dowiedzieć zanim wybiorą studia. :)

    1. Dzięki za pomysł.
      Zajęcia chcemy robić w trybie: posłuchać + zrobić. Pokazywanie wizualizacji danych na wykładzie to świetny pomysł, a na labach mogą trochę sami podłubać przy wykresach.

      Co do gier i dziewczyn, ponoć ,,średnio” dziewczyny spędzają wiele czasu na portalach społecznościowych. Można pokazać jakieś analizy takich danych.

  5. Przyznam rację poprzednikom i poprzedniczkom, że temat akcelerometr może nie do końca trafić, z drugiej strony to tylko i wyłącznie kwestia młodzieży. Dla mnie osobiście w tym wieku byłoby to bardzo ciekawe :D

    API do LOLa ? raz dwa trzy i google poprzez zapytanie “LOL API” zwraca “https://developer.riotgames.com/”

    Przy czym faktycznie może być problem, że płeć męska zainteresowana będzie grami, natomiast płeć żeńska zainteresowana będzie facebookiem, czy tweeterem. Na pierwszy rzut oka widzę, że jedyne co to na razie łączy to API więc może to wykorzystać?

    Trzymam kciuki! :)

    1. Rewelacyjny zbiór, szkoda że nie ma najnowszych filmów, ale zbiór super.
      Świetnie opisany zbiór użytkowników.
      Jak będę miał jakieś wizualizacje to napiszę o nich na blogu.

  6. Dzięki, wykorzystam,
    aktualny pomysł na zajęcia jest oparty o taką interakcję:
    – pytanie do sali jaki film im się podobał, który ostatnio oglądali
    – na żywo wyszukujemy oceny tego filmu, patrzymy w której grupie wiekowo płciowej ten film podobał się najbardziej
    – a później sprawdzamy co jeszcze się podobało osobom, które lubiły dany film
    – i pogadanka o tym gdzie można użyć systemów rekomendacji (defacto taki zbudowaliśmy i podobne są stosowane w różnych miejscach)

    a na lab samodzielne odtwarzanie tej ścieżki pracy, ale każda grupa startuje od innego filmu

  7. @smarterpoland

    To przypomina mi ten projekt zainicjowany przez Netflixa – ale podobno w środowisku było o nim bardzo głośno więc na pewno o nim słyszałeś…?

    Wracając jeszcze do gier komputerowych – mam luźny kontakt z doktorantem (może już doktorem) z Norwegii/Szwajcarii, który utrzymuje stronę aligulac.com to rankingowania StarCrafta 2. Jedyne co w tym przypadku jest prostsze względem Dota2/LoL to że gra się 1 na 1. Natomiast, jeśli dobrze pamiętam, jego rozwiązanie rankingowania opiera się na rankingu Glicko-2. Starał się też uwzględnić pewne interesujące cechy wyłaniające się w rozgrywkach komputerowych – np. to że gracze z reguły grają głównie w obrębie danej sceny (więc ich ranking określa raczej siłę w obrębie danego klastra), ale sceny nie są równie silne itd. http://aligulac.com/about/faq/ <- tutaj nawet jest jakiś sklecony papierek w PDF, a sam gość jest raczej bardzo otwarty na kontakt i sympatyczny :)

    I to chyba dobry moment żeby zamknąć ten wątek.

    @bsekiewicz
    wow, dzięki. Chyba żyłem przy "cichym" założeniu.

    1. Dane Netflixa już nie są publicznie dostępne z uwagi na jakieś prawne problemy,

      Niestety okazało się, że w zbiorze http://datahub.io/dataset/movielens nie ma filmów wyprodukowanych po roku 2000,
      więc gdy rozmawiać z gimnazjalistami okazuje się że dostępne są tylko dane dla filmów starszych niż oni sami.

      A szkoda, bo dostępność informacji o wieku i płci dawała wiele możliwości.

      Filmy lub książki byłyby lepsze niż gry.
      Jeżeli znacie jakieś współczesne dane związane z filmami to dajcie znać.

      W odwodzie są zawsze dane o analizie nastroju wzdłuż lektur.

  8. Widziałem jakiś czas temu analizę danych z Facebooka, która pozwalała na “przewidywanie” (w cudzysłowie, bo było to po prostu klasyczne badanie ex post, ale w artykule pojawiła się luźna propozycja ekstrapolacji tych danych na inne przypadki i w przyszłość), którzy użytkownicy zostaną parą. Okazywało się, że jakiś czas przed wejściem w związek (a przynajmniej przed upublicznieniem go na Facebooku) rośnie liczba interakcji między dwójką użytkowników – więcej sobie lajkują, częściej odnoszą się do siebie w komentarzach, etc. O ile dobrze pamiętam różnice były na tyle znaczące, że można było pokusić się o przywidywanie, którzy użytkownicy wejdą ze sobą w związek (abstrahuję od metodologicznej poprawności takiego wnioskowania).

    Temat z całą pewnością powinien zainteresować nastolatki, ale też nastolatków – któż nie chciałby wiedzieć, jakie są facebookowe oznaki zainteresowania potencjalnej sympatii moją osobą?

    Nie wiem jednak, jak wygląda dostęp do takich danych.

    1. Dzięki za temat. Znalazłem jest kilka artykułów o tym jak przewidywać i rozpoczęcie i zakończenie związku. Te bardziej zaawansowane wykorzystują parametry grafu komunikacji, a te prostsze wiek użytkownika czy informacje o stanie znajomych.
      A co do danych, wykorzystam chyba zbiór, które kiedyś przygotował Wojtek Walczak, nie ma szczegółów topologi grafu połączeń, ale jest wystarczająco liczb by zapełnić wykład i zajęcia w labie
      http://smarterpoland.pl/index.php/2013/02/milosc-zdrada-facebook-i-lancuch-markowa/

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">