propozycje projkektów

Transkrypt

propozycje projkektów
Projekt: zgłębianie danych
Wskazówki dotyczące sprawozdania
Niezależnie jaki temat zostanie wybrany, należy szczegółowo udokumentować
przeprowadzane badania lub eksperymenty i wszystko zawrzeć w sprawozdaniu w formie
pdf. Poniżej kilka wskazówek dotyczących jego treści:
• Krótki wstęp. O czym jest projekt? Jakie ma potencjalne zastosowania?
• Jakie narzędzie do pracy wybrałem, skąd je można ściągnąć? Jakie wtyczki/paczki do
narzędzia należy doinstalować i jak to zrobić?
• Na jakich danych pracuję? Skąd wziąłem bazę danych i jak ją dostosowałem do
własnych potrzeb. Należy podać link lub dołączyć bazę do sprawozdania projektu.
• W przypadku zagadnienia teoretycznego: podanie teorii, wzorów stojącej za daną
techniką lub algorytmem. Obliczenia na małym przykładzie przedstawione w
sprawozdaniu.
• Jak przeprowadzałem eksperymenty, krok po kroku. W sprawozdaniu należy zawrzeć
wszystkie komendy lub zrzuty z ekranu. Sprawozdanie ma służyć jako „samouczek” dla
innych osób je czytających.
• Prezentacja wyników w formie tekstowej lub w formie wykresu. Analiza wyników: np.
obliczanie średniej, błędu, odchylenia standardowego. Interpretacja wyników: czy
takich należało się spodziewać? Czy pewne wyniki były zaskakujące? Co oznaczają?
Propozycje tematów
1. Sprawdzić prawo Zipf’a w języku polskim: dla różnych grup dokumentów sporządzić
listę występujących słów, uporządkować je wg częstości wystąpień (od najczęstszego) i
sprawdzić wartości iloczynów r*f gdzie r jest rangą słowa (numerem na liście), f
częstością wystąpień tego słowa. Dla języka angielskiego iloczyn ten wynosi ok. 0.1.
2. Zapoznać się z biblioteką NLTK (Natural Language Toolkit) http://www.nltk.org/ i
przygotować prezentację na temat przykładowych zastosowań.
3. Zapoznać się z biblioteką OpenNLP http://opennlp.apache.org/ i przygotować
przykłady zastosowań.
4. Wykonać raport na temat zastosowania metod zgłębiania danych, np. w medycynie,
w finansach, marketingu.
5. Na stronie https://www.mat.unical.it/OlexSuite/OlexGA/OlexGA-weka.htm jest
biblioteka algorytmów genetycznych dla WEKA. Zainstalować tę bibliotekę i sprawdzić
jej działanie dla prostego problemu, np. problem komiwojażera dla 10 miast.
6. Na stronie https://www.mat.unical.it/OlexSuite/Datasets/SampleDataSetsdownload.htm można znaleźć przygotowane zbiory danych tekstowych w formacie
.arff , pochodzące ze zbioru Reuters-21578, pogrupowane względem kategorii. Użyć
tych danych do testowania algorytmów klasyfikacji tekstów.
7. Na stronie http://eigentaste.berkeley.edu/user/index.php można sprawdzić swoje
poczucie humoru. Teksty żartów oraz oceny przez użytkowników są dostępne na
stronie http://eigentaste.berkeley.edu/jester-data/
8.
9.
10.
11.
12.
13.
14.
Spróbować wykonać eksperymenty grupowania na części danych.
Dla części danych przypisać ręcznie klasy (dobry, słaby) i użyć zbioru do nauczenia
klasyfikatora, następnie na innych danych sprawdzić jakość klasyfikatora.
Przeprowadzić klasteryzację polskich tekstów po uprzednim użyciu stemmera polskich
słów np. Morfologik-Stemming http://morfologik.blogspot.com/ lub
http://plwordnet.pwr.wroc.pl/wordnet/.
Przeprowadzić analizę opinii (sentiment mining) użytkowników Twittera na temat
budzący różne emocje: polityka, politycy (dla kilku – zrobić sondaż) lub bieżące
wydarzenia. Wykorzystać pakiet R z doinstalowaną paczką twitteR lub program
RapidMiner z rozszerzeniem TextMining. Sklasyfikować kilkaset/tysiecy tweetów jako
negatywne i pozytywne (w różnym stopniu) na podstawie odpowiednio dobranej listy
słów kluczowych. Nastepnie przanalizuj i zinterpretuj wyniki: częstość występowania
opinii, średnią, odchylenie standardowe, wykres/histogram.
Czy kupując chleb, klient supermarketu zawsze kupi też masło? Przeprowadź
„Shopping Basket Analysis”, czyli analizę tego co klienci kupują, wykorzystując reguły
asocjacyjne. Wykorzystaj do tego znalezioną w internecie bazę danych (być może
pomocny będzie link: http://www.rdatamining.com/resources/data ).
Zbadać działanie metody „Fuzzy Clustering”. Nalezy pokazać na prostym przykładzie
jak działa rozmyta klasteryzacja (podać teorię, wzory, obliczenia, wykresy). Nastepnie
sprawdzić jej działanie na większym zbiorze korzystając z wybranego narzędzia
(Weka z doinstalowaną paczką lub http://fuzzy.cs.uni-magdeburg.de/fcluster/ lub
inne). Można porównać wyniki ze standardową klasteryzacją.
Chcemy mieć bazę kilku tysięcy filmów z portalu IMDB lub Filmweb z takimi danymi
jak gatunek filmu, reżyser, aktorzy, słowa kluczowe, kraj, rok, język, budżet,ocena. By
ją mieć, należy napisać skrypty pozyskujące dane ze stron internetowych. Warto
skorzystać z API oferowanych przez te strony (o ile istnieją) lub skorzystać z narzędzia
do automatyzacji takich operacji np. Selenium http://docs.seleniumhq.org/ . Mając
bazę danych z ostatnią kolumną będącą oceną użytkowników (klasa), należy znaleźć
„przepis na dobry film” tzn. jakie cechy musi posiadać film, by był dobrze oceniany
przez widzów. Można tego dokonać w programie Weka lub innym. Należy przedstawić
i zinterpretować wyniki.
Pomysł taki jak w poprzednim punkcie, ale nie szukamy przepisu na dobry film, tylko
na inny produkt, na który składa się atrybutów. Być może poszukamy przepisu na
dobrą potrawę biorąc pod uwagę oceny użytkowników, składniki, czas przygotowania.
Napisz aplikację (np. w Javie, lub innym jezyku), która będzie nam podpowiadała co
robić by czuć się dobrze. Użytkownik aplikacji będzie mógł każdego dnia w prosty
sposób zaznaczyć co korzystnego lub niekorzystnego robił w ciągu dnia (sport, praca,
palenie papierosów, ilość snu), co zjadł (owoce, mieso, ilość cukru w produktach, cola,
itp.), jakie były inne dodatkowe warunki dnia (np. pogoda). Następnie użytkownik
odpowiada jak dobrze czuł się w ciągu dnia np. w skali od 1 do 5, lub czy miał
problemy zdrowotne. Aplikacja analizuje bazę danych i próbuje wyciągnąć wnioski:
jaki wpływ mają akcje z dnia na nasze samopoczucie. Być może ważne będzie
analizowanie kilku dni wstecz. Spróbuj dokonać testów aplikacji na sobie lub innych
osobach.
15. Przeprowadź klasyfikację/grupowanie danych za pomocą programu w języku C++
wykorzystującego bibliotekę http MLPack http://mlpack.org/ . Wykorzystaj jeden z
dostępnych zestawów danych i sprawdź działanie dla 2-3 algorytmów klasyfikujących
lub grupujących.