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.