Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:aml:lab5 [2013/11/15 12:12]
esimon [Analiza danych]
pl:dydaktyka:aml:lab5 [2018/11/19 06:35]
esimon [Analiza danych]
Linia 4: Linia 4:
  
 ==== Analiza danych ==== ==== Analiza danych ====
-Napisz program zapisujący dane z akcelerometru do bazy SQLite. ​+Napisz program zapisujący dane z akcelerometru do bazy SQLite ​(mozesz tez przerobic program: [[https://​ai.ia.agh.edu.pl/​wiki/​_media/​pl:​dydaktyka:​aml:​prv:​projects2016:​amlactivityrecognition.zip|Wykrywanie Aktywnosci]])
 Aby zapisać bazę danych w pamięci urządzenia,​ wykorzystaj poniższy kod. Aby zapisać bazę danych w pamięci urządzenia,​ wykorzystaj poniższy kod.
 +  * Pamiętaj żeby dodać odpowiednie ''​uses-permission''​ do manifestu
 +  * Jeśli z poziomu systemu operacyjnego nie będzie dostępu do pamięci urządzenia,​ spróbuj zapisać bazę danych w katalogu ze zdjęciami i np. wysłać ją sobie z telefonu mailem.
  
 Ustalmy że: Ustalmy że:
-  * Baza danych będzie nazywać się **acc**+  * Baza danych będzie nazywać się **acc**, tabela przechowująca dane, również ​**acc**
   * Będzie zawierać 4 kolumny: **id, acc_x, acc_y, acc_z**   * Będzie zawierać 4 kolumny: **id, acc_x, acc_y, acc_z**
  
-<code java>+<code java> ​
 try { try {
   File sd = Environment.getExternalStorageDirectory();​   File sd = Environment.getExternalStorageDirectory();​
Linia 25: Linia 27:
     FileChannel src = new FileInputStream(currentDB).getChannel();​     FileChannel src = new FileInputStream(currentDB).getChannel();​
     FileChannel dst = new FileOutputStream(backupDB).getChannel();​     FileChannel dst = new FileOutputStream(backupDB).getChannel();​
-    dst.transferFrom(src,​ 0, src.size());​+    dst.transferFrom(src,​ 0, src.size()); ​
     src.close();​     src.close();​
-    dst.close();​+    dst.close(); ​
   }   }
 } catch (Exception e) { } catch (Exception e) {
Linia 34: Linia 36:
 </​code>​ </​code>​
  
-==== Import do Octave ​==== +=== Import do Octave/Python=== 
-Zaimportuj dane z odczytów do Octave. +  ​- ​Zaimportuj dane z odczytów do Octave: 
-W tym celu otwórz bazę danych w SQLite: ​``sqlite3 acc.db``+    ​* ​W tym celu otwórz bazę danych w SQLite: ​<code bash> ​sqlite3 acc.db</​code>​ 
 +    * Ustaw separator danych na tabulator <code sqlite> .mode tabs </​code> ​ albo na przecinki ​ <code sqlite> .mode csv </​code>​  
 +    * Ustaw wyjscie z SQLite do pliku: <code sqlite> .output '​dane.dat'</​code>​ 
 +    * Wrzuć dane z trzech osi do pliku: <code sql>​select acc_x, acc_y, acc_z from acc;</​code>​ 
 +  - Następnie otwórz Octave i zaimportuj dane do zmiennej **Acc**: 
 +    - <code octave>​Acc = load('​dane.dat'​);</​code>​ 
 +    - <code python>​df = pandas.read_csv('​dane.dat',​sep='​\t'​);</​code>​
  
-Następnie zapisz dane bazy danych ​do pliku + 
 + 
 +=== Określenie parametrów danych === 
 +  - Przyglądając się wykresom wyodrębnij cechy które twoim zdaniem mogą mieć wpływ na rozróżnienie poszczególnych aktywności użytkownika takich jak: 
 +    - stanie 
 +    - chodzenie 
 +    - bieganie 
 +    - siadanie 
 +    - wstawanie 
 +  - Spróbuj określić aktywność na podstawie maksymalnej i minimalnej amplitudy oraz średniej amplitudy w oknie czasowym o długości np. 3 sekund. 
 +  - Zapoznaj się (pobieżnie) ​artykułem: {{:​pl:​dydaktyka:​aml:​activity-recognition-phone.pdf| Activity recognition}} i zastanów się, czy możesz zastosowac którys z opisanych algorytmów ​do swoich danych 
 +  - Możesz też wykorzystać "​gotowiec"​ z poprzedniego semestru: https://​drive.google.com/​file/​d/​1-8bU3wu5oPP2ybIuyFskIvBwNIIN6eWz/​view (Sekcja "Dane to wszystko"​
  
  
Linia 44: Linia 63:
  
  
-==== Klasteryzacja ==== 
-//​Klasteryzacja z wykorzystaniem danych z analizy// 
  
 ===== Android===== ===== Android=====
-// Przetestowanie aplikacji ​do wykrywania ​aktywnosci//+  - Android API oferuje wbudowaną klasę ​do wykrywania ​aktywności o nazwie ​//ActivityRecognition//​. 
 +  - Pobierz przykładową aplikację wykorzystującą tą klasę: [[http://​developer.android.com/​shareables/​training/​ActivityRecognition.zip|Activity recognition]] i zapoznaj się z kodem źródłowym. Opis kodu źródłowego znajduje się [[http://​developer.android.com/​training/​location/​activity-recognition.html|tutaj]] 
 +  - Przetestuj działanie aplikacji. Czy klasę można byłoby udoskonalić o analizę danych z akcelerometru jak w pierwszym zadaniu z laboratorium?​
pl/dydaktyka/aml/lab5.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0