[44][Machine Learning]

Z książki The Discipline of Machine Learning autorstwa Toma Mitchella:

Dziedzina uczenia maszynowego stara się odpowiedzieć na pytanie „Jak możemy budować systemy komputerowe, które automatycznie ulepszają się wraz z doświadczeniem i jakie są podstawowe prawa rządzące wszystkimi procesami uczenia się?” To pytanie obejmuje szeroki zakres zadań edukacyjnych, takich jak projektowanie autonomicznych robotów mobilnych, które uczą się nawigować na podstawie własnego doświadczenia, jak przeszukiwać historyczną dokumentację medyczną, aby dowiedzieć się, którzy przyszli pacjenci będą najlepiej reagować na które terapie i jak budować wyszukiwarki, które automatycznie dostosowują się do zainteresowań ich użytkowników. Mówiąc dokładniej, mówimy, że maszyna uczy się w odniesieniu do konkretnego zadania T, miernika wydajności P i rodzaju doświadczenia E, jeśli system niezawodnie poprawia wydajność P w zadaniu T, po doświadczeniu E. W zależności od tego, jak określimy T, P i E, zadanie uczenia się może być również nazywane nazwami, takimi jak eksploracja danych, autonomiczne wykrywanie, aktualizacja bazy danych, programowanie według przykładów itp.

PYTANIA:

Użyj liblinear w przypadku dużych zbiorów danych do analizy semantycznej

Używam Libsvm do trenowania danych i przewidywania klasyfikacji na problem analizy semantycznej. Ale ma to problem z wydajnością w przypadku danych o dużej skali, ponieważ analiza semantyczna dotyczy problemu z wymiarami. W zeszłym roku Liblinear został wydany i może rozwiązać wąskie gardło wydajności. Ale kosztowało to zbyt dużo pamięci. Czy MapReduce to jedyny sposób rozwiązania problemu analizy semantycznej w przypadku dużych zbiorów danych? A może są jakieś inne metody, które mogą poprawić wąskie gardło pamięci w Liblinear?

ODPOWIEDZI:

Zauważ, że istnieje wczesna wersja LIBLINEAR przeportowana do Apache Spark. Zobacz komentarze na liście mailingowej, aby uzyskać wczesne szczegóły i witrynę projektu.

Możesz sprawdzić wabbit samogłosek. Jest dość popularny w przypadku uczenia się na dużą skalę i zawiera równoległe przepisy. Z ich strony internetowej:

VW to kwintesencja szybkości w uczeniu maszynowym, umożliwiająca łatwe uczenie się na podstawie zestawów danych terafeature. Poprzez uczenie równoległe może przekroczyć przepustowość dowolnego interfejsu sieciowego maszyny podczas uczenia liniowego, pierwszego spośród algorytmów uczenia się.

Dlaczego nadmierne dopasowanie jest złe w uczeniu maszynowym?

Logika często stwierdza, że ​​nadmierne dopasowanie modelu ogranicza jego zdolność do uogólniania, chociaż może to oznaczać tylko, że nadmierne dopasowanie powstrzymuje model przed ulepszaniem po określonej złożoności. Czy nadmierne dopasowanie powoduje pogorszenie się modeli niezależnie od złożoności danych, a jeśli tak, to dlaczego tak się dzieje? Powiązane: Kontynuacja powyższego pytania: „Kiedy model jest niedopasowany? ”

Przebudowanie jest empirycznie złe. Załóżmy, że masz zbiór danych, który podzielisz na dwie części, test i uczenie. Model nadmiernie dopasowany to taki, który działa znacznie gorzej na zestawie danych testowych niż na zestawie danych uczących. Często obserwuje się, że takie modele również generalnie wypadają gorzej na dodatkowych (nowych) testowych zestawach danych niż modele, które nie są nadmiernie wyposażone.

Jednym ze sposobów zrozumienia tego intuicyjnie jest to, że model może wykorzystywać pewne istotne części danych (sygnał) i niektóre nieistotne części (szum). Model z nadmiernym wyposażeniem wykorzystuje więcej hałasu, co zwiększa jego wydajność w przypadku znanego hałasu (dane treningowe) i zmniejsza jego wydajność w przypadku nowego hałasu (dane testowe). Różnica w wydajności między danymi treningowymi i testowymi wskazuje, ile szumów wychwytuje model; a wychwycenie szumu bezpośrednio przekłada się na gorszą wydajność danych testowych (w tym przyszłych danych). Podsumowanie: nadmierne dopasowanie jest złe z definicji, nie ma to wiele wspólnego ze złożonością lub zdolnością do generalizacji, ale raczej z pomyleniem szumu z sygnałem.

P.S. Jeśli chodzi o „zdolność do uogólniania” pytania, bardzo możliwe jest posiadanie modelu, który ma z natury ograniczoną zdolność do uogólniania ze względu na strukturę modelu (np. Liniowa SVM,…), ale nadal jest podatny na nadmierne dopasowanie. W pewnym sensie nadmierne dopasowanie jest tylko jednym ze sposobów, w jakie uogólnianie może się nie powieść.

Overfitting, w skrócie, oznacza branie pod uwagę zbyt dużej ilości informacji z twoich danych i / lub wcześniejszej wiedzy i wykorzystanie ich w modelu. Aby uprościć sprawę, rozważ następujący przykład: niektórzy naukowcy zatrudniali cię, aby dostarczyć im model do przewidywania wzrostu jakiegoś rodzaju roślin. Naukowcy przez cały rok przekazywali Wam informacje zebrane podczas pracy z takimi roślinami i na bieżąco będą informować o przyszłym rozwoju ich plantacji. Więc przeglądasz otrzymane dane i budujesz na ich podstawie model. Załóżmy teraz, że w swoim modelu uwzględniłeś możliwie jak najwięcej cech, aby zawsze określić dokładne zachowanie roślin, które widziałeś w początkowym zbiorze danych. Teraz jako produkcja

kontynuuje, zawsze będziesz brać pod uwagę te cechy i uzyskasz bardzo szczegółowe wyniki. Jeśli jednak plantacja w końcu ulegnie zmianie sezonowej, wyniki, które otrzymasz, mogą pasować do twojego modelu w taki sposób, że twoje prognozy zaczną zawodzić (albo mówiąc, że wzrost spowolni, podczas gdy faktycznie przyspieszy, lub przeciwieństwo). Oprócz tego, że nie można wykryć tak małych odchyleń i zwykle nieprawidłowo klasyfikować wpisy, drobnoziarnisty model, tj. Duża liczba zmiennych, może spowodować, że przetwarzanie będzie zbyt kosztowne. Teraz wyobraź sobie, że Twoje dane są już złożone. Nadmierne dopasowanie modelu do danych nie tylko sprawi, że klasyfikacja / ocena będzie bardzo złożona, ale najprawdopodobniej sprawi, że błędnie przewidujesz najmniejszą zmienność danych wejściowych, jaką możesz mieć. Edycja: Równie dobrze może to być przydatne, być może dodając dynamiki do powyższego wyjaśnienia

To dlatego, że coś nazywa się dylematem odchylenia i wariancji. Przekrojony model oznacza, że będziemy mieć bardziej złożoną granicę decyzyjną, jeśli damy więcej wariancji w modelu. Chodzi o to, że nie tylko zbyt proste modele, ale także złożone modele mogą ujawnić sklasyfikowane wyniki na niewidocznych danych. W konsekwencji model z nadmiernym dopasowaniem nie jest tak dobry jak model niedopasowany. Dlatego nadmierne dopasowanie jest złe i musimy dopasować model gdzieś pośrodku.

Czy istnieją interfejsy API do przeszukiwania streszczeń papieru?

Jeśli mam bardzo długą listę nazw artykułów, w jaki sposób mogę uzyskać streszczenie tych artykułów z Internetu lub dowolnej bazy danych? Nazwy artykułów są jak „Ocena użyteczności w eksploracji sieciowej w dziedzinie zdrowia publicznego”.

Czy ktoś zna jakieś API, które może dać mi rozwiązanie? Próbowałem zaindeksować Google Scholar, jednak Google zablokowało mojego robota.

Sprawdź to na:

*Google Scholar

* Citeseer

Jeśli trafisz dokładnie w jeden tytuł, prawdopodobnie znalazłeś właściwy artykuł i możesz podać tam resztę informacji. Oba zapewniają linki do pobierania i wyjście w stylu bibtex. To, co prawdopodobnie chciałbyś zrobić, aby uzyskać doskonałe metadane, to pobrać i przeanalizować plik PDF (jeśli istnieje) i poszukać identyfikatora w stylu DOI. Jeśli to zrobisz, bądź miły i ogranicz stawki.

arXiv ma interfejs API i pobieranie zbiorcze, ale jeśli chcesz coś dla płatnych czasopism, trudno będzie go zdobyć bez płacenia indeksatorowi, takim jak pubmed, elsevier lub tym podobnym.

Techniki uczenia maszynowego do szacowania wieku użytkowników na podstawie ulubionych witryn na Facebooku

Mam bazę danych z mojej aplikacji na Facebooku i próbuję wykorzystać uczenie maszynowe do oszacowania wieku użytkowników na podstawie tego, jakie strony na Facebooku lubią. Moja baza danych ma trzy kluczowe cechy:

rozkład wieku w moim zestawie treningowym (łącznie 12 tys. użytkowników) jest wypaczony w kierunku młodszych użytkowników (tj. mam 1157 użytkowników w wieku 27 lat i 23 użytkowników w wieku 65 lat); wiele witryn ma nie więcej niż 5 polubień (odfiltrowałem strony FB z mniej niż 5 polubieniami). jest o wiele więcej funkcji niż próbek. Tak więc moje pytania są następujące: jaką strategię byś zaproponował, aby przygotować dane do dalszej analizy? Czy powinienem dokonać jakiejś redukcji wymiarowości? Która metoda ML byłaby najbardziej odpowiednia do zastosowania w tym przypadku? Używam głównie Pythona, więc wskazówki specyficzne dla Pythona byłyby bardzo mile widziane.

Jedną rzeczą, od której warto zacząć, byłoby k-NN. Chodzi o to, że masz macierz użytkowników / pozycji, a dla niektórych użytkowników masz zgłoszony wiek. Wiek osoby w macierzy elementów użytkownika może być dobrze określony przez coś w rodzaju średniego lub mediany wieku niektórych osób

najbliżsi sąsiedzi w obszarze przedmiotów. Więc masz każdego użytkownika wyrażonego jako wektor w przestrzeni przedmiotów, znajdź k najbliższych sąsiadów i przypisz do danego wektora jakąś sumaryczną statystykę najbliższych sąsiadów. Możesz wybrać k na odcięciu odległości lub, bardziej realistycznie, przez iteracyjne przypisywanie wieku pociągowi i wybranie k, które minimalizuje błąd w tym przypisaniu. Jeśli wymiarowość jest problemem, możesz łatwo przeprowadzić redukcję w tej konfiguracji przez dekompozycję pojedynczych wartości, wybierając m wektorów, które wychwytują największą wariancję w całej grupie. We wszystkich przypadkach, ponieważ każda cecha jest binarna, wydaje się, że podobieństwo cosinusowe będzie miarą odległości. Muszę trochę więcej pomyśleć o innych podejściach (regresja, rf itp.), Biorąc pod uwagę wąski zakres twojej przestrzeni funkcji (wszystkie warianty tego samego działania, upodobanie). Myślę, że podejście użytkownik / przedmiot może być najlepsze. Jedna uwaga, jeśli wiek, który masz na szkolenie, jest zgłaszany przez samego siebie, być może będziesz musiał poprawić niektóre z nich. Osoby na Facebooku zwykle podają wiek w dekadzie urodzenia. Sporządź histogram dat urodzenia (na podstawie wieku) i zobacz, czy masz skoki w dekadach, takich jak lata 70., 80., 90.

Niedawno zrobiłem podobny projekt w Pythonie (przewidywanie opinii przy użyciu danych podobnych do FB) i miałem dobre wyniki w następującym podstawowym procesie:

  1. Wczytaj zestaw uczący (n = N), wykonując iterację po oddzielonych przecinkami, takich jak rekordy wiersz po wierszu, i użyj licznika, aby zidentyfikować najpopularniejsze strony
  2. Dla każdej z K najpopularniejszych stron (użyłem około 5000, ale możesz bawić się różnymi wartościami), użyj pandy.DataFrame.isin, aby sprawdzić, czy każda osoba w zestawie treningowym lubi każdą stronę, a następnie zrób N x K dataframe wyników (nazwę ją xdata_train)
  3. Utwórz serię (nazwę ją ydata_train) zawierającą wszystkie zmienne wynikowe (w moim przypadku opinie w Twoim wieku) z tym samym indeksem co xdata_train
  4. Skonfiguruj losowy klasyfikator lasu za pomocą scikit-learn, aby przewidzieć ydata_train na podstawie xdata_train
  5. Użyj testów krzyżowej walidacji scikit-learn, aby dostosować parametry i poprawić dokładność (poprawianie liczby popularnych stron, liczby drzew, minimalnego rozmiaru liści itp.)
  6. Wyprowadź losowy klasyfikator lasu i listę najpopularniejszych stron z marynatą (lub zachowaj w pamięci, jeśli robisz wszystko na raz)
  7. Wczytaj pozostałe dane, załaduj listę popularnych stron (jeśli to konieczne) i powtórz krok 2, aby utworzyć xdata_new
  8. Załaduj losowy klasyfikator lasu (jeśli to konieczne) i użyj go do przewidywania wartości danych xdata_new
  9. Prześlij przewidywane wyniki do nowego pliku CSV lub innego wybranego formatu wyjściowego

Powinieneś także pamiętać o najbardziej niesamowitej funkcji lasów losowych w Pythonie: natychmiastowa równoległość! Ci z nas, którzy zaczęli to robić w R, a potem przenieśli się tam, są zawsze zdumieni, zwłaszcza gdy zaczynasz pracować na maszynie z kilkudziesięcioma rdzeniami. Na koniec zwróć uwagę, że byłaby to doskonała aplikacja do analizy sieci, jeśli masz dane o znajomych, a także o samych osobach. Jeśli potrafisz przeanalizować wiek znajomych użytkownika, wiek użytkownika prawie na pewno będzie mniejszy o rok lub dwa od mediany wśród jego znajomych, zwłaszcza jeśli użytkownicy są wystarczająco młodzi, aby zbudować

ich sieci znajomych jeszcze w szkole (ponieważ większość z nich to koledzy z klasy). Ta prognoza prawdopodobnie przewyższyłaby wszystko, co można uzyskać z modelowania – jest to podręcznikowy przykład problemu, w którym za każdym razem właściwe dane> właściwy model.

Inną sugestią jest przetestowanie regresji logistycznej. Dodatkową korzyścią jest to, że wagi (współczynniki) modelu dają wyobrażenie o tym, które witryny mają wpływ na wiek. Sklearn oferuje pakiet sklearn.linear_model.LogisticRegression, który jest przeznaczony do

obsługują również rzadkie dane. Jak wspomniano w komentarzach, w omawianym przypadku, przy większej liczbie zmiennych wejściowych niż próbek, należy uregulować model (za pomocą sklearn.linear_model.LogisticRegression użyj argumentu kara = „l1”).

 Czy nauka o danych to tylko trend, czy też koncepcja długoterminowa?

Widzę wiele kursów z zakresu Data Science pojawiających się w ciągu ostatnich 2 lat. Nawet duże uniwersytety, takie jak Stanford i Columbia, oferują stwardnienie rozsiane w szczególności w naukach o danych. Ale jak długo widzę, wygląda na to, że nauka o danych jest po prostu połączeniem technik informatycznych i statystycznych. Dlatego zawsze o tym myślę. Jeśli to tylko trend i za 10 lat ktoś nadal będzie wymieniał naukę o danych jako całą dziedzinę lub tylko temat / temat w CS lub statystykach. Co myślisz?

Jedno można powiedzieć na pewno: nikt nie może tego powiedzieć na pewno. I rzeczywiście może do pewnego stopnia opierać się na opiniach. Wprowadzenie terminów takich jak „duże zbiory danych”, które niektórzy uważają za „hipnotyzujące” lub „modne słowa”, nie ułatwia sformułowania właściwej odpowiedzi. Ale spróbuję. Ogólnie rzecz biorąc, wydaje się, że dziedziny interdyscyplinarne często mają problem z brakiem traktowania ich poważnie w żadnej z dziedzin, którymi się zajmują. Jednak im więcej badań inwestuje się w daną dziedzinę, tym większa jest potrzeba podzielenia tej dziedziny na kilka podtematów. I te podtematy, które były później znane, muszą zostać ponownie połączone w nowy sposób, aby zapobiec nadmiernej specjalizacji oraz aby zwiększyć i poszerzyć zastosowanie technik opracowanych przez (ponad?) Wyspecjalizowanych ekspertów w różnych dziedzinach. Uważam „naukę o danych” za takie podejście, które łączy wiedzę specjalistyczną i odkrycia z różnych dziedzin. Opisałeś to jako… połączenie technik informatycznych i statystycznych I rzeczywiście, kilka pytań ma na celu rozróżnienie między nauką o danych a statystyką. Jednak czysty statystyka najprawdopodobniej nie będzie w stanie skonfigurować klastra Hadoop i pokazać wyników swojej analizy na interaktywnym pulpicie nawigacyjnym HTML5. A ktoś, kto potrafi zaimplementować ładny pulpit nawigacyjny HTML5, może nie być tak zaznajomiony z matematycznym tłem testu Chi-kwadrat. Rozsądne jest założenie, że przekazanie studentom wystarczającej wiedzy do zastosowania najważniejszych technik z różnych dziedzin, które są objęte nauką o danych, doprowadzi do nowych zastosowań tych technik i przyniesie korzyści – także „purystom” w tych dziedzinach. Połączenie tych technik w wielu przypadkach nie jest proste i może uzasadniać własną gałąź badań. Zapytałeś również, czy za 10 lat nauka o danych będzie traktowana jako „tylko temat w informatyce”. Ponownie: nikt nie może tego powiedzieć na pewno. Ale zastanawiam się, w którym momencie ludzie przestali zadawać sobie pytanie, czy „Informatyka” będzie kiedyś traktowana tylko jako mieszanka (lub przedmiot) elektrotechniki i matematyki…

Jak określić ważne atrybuty?

Załóżmy, że zbiór danych o luźnej strukturze (np. Tabele internetowe / połączone otwarte dane), składający się z wielu źródeł danych. Nie ma wspólnego schematu, po którym następują dane, a każde źródło może używać atrybutów synonimów do opisu wartości (np. „Narodowość” czy „urodzony w”). Moim celem jest znalezienie „ważnych” atrybutów, które w jakiś sposób „definiują” byty, które opisują. Kiedy więc znajdę tę samą wartość dla takiego atrybutu, będę wiedział, że te dwa opisy najprawdopodobniej dotyczą tego samego podmiotu (np. Tej samej osoby). Na przykład atrybut „lastName” jest bardziej dyskryminujący niż atrybut „nationality”. Jak mogę (statystycznie) znaleźć takie atrybuty, które są ważniejsze od innych? Naiwnym rozwiązaniem byłoby przyjęcie średniej wartości IDF wartości każdego atrybutu i uczynienie z tego współczynnika „ważności” atrybutu. Podobnym podejściem byłoby policzenie, ile różnych wartości pojawia się dla każdego atrybutu. Widziałem termin cecha lub wybór atrybutów w uczeniu maszynowym, ale nie chcę odrzucać pozostałych atrybutów, chcę po prostu nadać większą wagę najważniejszym.

Właściwie jest więcej niż jedno pytanie, na które należy odpowiedzieć:

  1. Jak pracować na danych bez schematów / luźnych / brakujących danych
  2. Jak oznaczyć osobę (z tego, co rozumiem bez nadzoru) i stworzyć identyfikator
  3. Jak wyszkolić swój system, aby mógł powiedzieć, jakich atrybutów należy użyć, aby zidentyfikować osobę

Jak wspomniał Rubens, możesz użyć metod drzew decyzyjnych, w szczególności Random Forests, do obliczania najważniejszych atrybutów na podstawie uzyskanych informacji, jeśli już znalazłeś sposób na określenie, jak nazwać osobę. Jeśli jednak nie masz żadnych informacji o etykiecie, możesz użyć widoku eksperta do wstępnego wyboru atrybutów. Następnie dokonujesz nienadzorowanej klasyfikacji, aby odzyskać swoje etykiety. Na koniec możesz wybrać najważniejsze pola za pomocą Random Forest lub innych metod, takich jak Bayesian Belief Networks.

Aby to wszystko osiągnąć, potrzebujesz również pełnego zestawu danych. Jeśli twój zestaw danych jest luźny, musisz ręcznie lub heurystycznie znaleźć sposób na połączenie atrybutów wskazujących to samo z różnymi nazwami. Co więcej, możesz użyć technik imputacji, takich jak metoda maksymalizacji oczekiwań i uzupełnić zestaw danych. Możesz też pracować z sieciami bayesowskimi i pozostawić brakujące pola bez zmian.

Algorytm generowania reguł klasyfikacji

Mamy więc potencjał dla aplikacji do uczenia maszynowego, która dość dobrze pasuje do tradycyjnej domeny problemu rozwiązanej przez klasyfikatory, tj. Mamy zestaw atrybutów opisujących element i „wiadro”, w którym kończą. Jednak zamiast tworzyć modele prawdopodobieństw, jak w Naiwnych Bayesach lub podobnych klasyfikatorach, chcemy, aby nasz wynik był zbiorem

reguły czytelne dla człowieka, które mogą być przeglądane i modyfikowane przez użytkownika końcowego. Uczenie się reguł asocjacyjnych wygląda jak rodzina algorytmów, które rozwiązują tego typu problemy, ale wydaje się, że algorytmy te koncentrują się na identyfikowaniu typowych kombinacji cech i nie uwzględniają koncepcji końcowego segmentu, na który te cechy mogą wskazywać. Na przykład nasz zestaw danych wygląda mniej więcej tak:

Pozycja A {4-drzwiowa, mała, stalowa} => {sedan}

Pozycja B {2-drzwiowe, duże, stalowe} => {ciężarówka}

Pozycja C {2-drzwiowe, małe, stalowe} => {coupe}

Chcę tylko reguł, które mówią „jeśli jest duży i 2-drzwiowy, to ciężarówka”, a nie reguł, które mówią „jeśli to jest 4-drzwiowe, to jest też małe”. Jednym ze sposobów obejścia tego problemu jest po prostu użycie algorytmów uczenia się reguł asocjacyjnych i

zignoruj ​​zasady, które nie obejmują segmentu końcowego, ale wydaje się to trochę hakerskie. Czy przegapiłem jakąś rodzinę algorytmów? A może na początku podchodzę do problemu nieprawidłowo?

C45 firmy Quinlan jest w stanie stworzyć regułę przewidywania. Sprawdź tę stronę Wikipedii. Wiem, że w Weka nazywa się J48. Nie mam pojęcia, które są implementacjami w R lub Pythonie. W każdym razie z tego rodzaju drzewa decyzyjnego powinieneś być w stanie wywnioskować reguły przewidywania. Możesz również być zainteresowany algorytmami do bezpośredniego wnioskowania reguł klasyfikacji. RIPPER to taki, który ponownie w Weka otrzymał inną nazwę JRip.

W rzeczywistości jest to jeszcze prostsze, z tego, co opisujesz – po prostu szukasz podstawowego algorytmu drzewa klasyfikacyjnego (więc nie ma potrzeby stosowania nieco bardziej złożonych wariantów, takich jak C4.5, które są zoptymalizowane pod kątem dokładności przewidywania). Tekst kanoniczny to:

Jest to łatwo zaimplementowane w R:

http://cran.r-project.org/web/packages/tree/tree.pdf

i Python:

http://scikit-learn.org/stable/modules/tree.html

Możesz rzucić okiem na ucznia reguły CN2 w Orange 2

Rozpoznawanie aktywności człowieka za pomocą zestawu danych smartfonów Jestem nowy w tej społeczności i mam nadzieję, że moje pytanie będzie tu dobrze pasować. W ramach mojego licencjackiego kursu analityki danych zdecydowałem się wykonać projekt dotyczący rozpoznawania działalności człowieka za pomocą zestawów danych smartfonów. Jeśli chodzi o mnie, ten temat dotyczy uczenia maszynowego i maszyn wektorów wsparcia. Nie znam jeszcze dobrze tych technologii, więc będę potrzebować pomocy. Zdecydowałem się podążać za tym pomysłem na projekt http://www.inf.ed.ac.uk/teaching/courses/dme/2014/datasets.html (pierwszy projekt na górze) Celem projektu jest określenie, jaką aktywność wykonuje dana osoba angażowanie się (np. WALKING, WALKING_UPSTAIRS, WALKING_DOWNSTAIRS, SITTING, STANDING, LAYING) z danych zarejestrowanych przez smartfon (Samsung Galaxy S II) w talii badanego. Korzystając z wbudowanego akcelerometru i żyroskopu, dane obejmują 3-osiowe przyspieszenie liniowe i 3-osiową prędkość kątową przy stałej częstotliwości 50 Hz. Cały zestaw danych znajduje się w jednym folderze z opisem i etykietami funkcji. Dane są podzielone na pliki „testowe” i „pociągowe”, w których dane są reprezentowane w następującym formacie:

2.5717778e-001 -2.3285230e-002 -1.4653762e-002 -9.3840400e-001 -9.2009078e-001 -6.6768331e-001 -9.5250112e-

A to tylko bardzo mała próbka zawartości pliku. Naprawdę nie wiem, co reprezentują te dane i jak można je zinterpretować. Jakich narzędzi będę potrzebować również do analizy, klasyfikacji i grupowania danych? Czy jest jakiś sposób, w jaki mogę umieścić te dane w programie Excel z dołączonymi etykietami i na przykład użyć R lub Pythona do wyodrębnienia przykładowych danych i pracy nad tym? Wszelkie wskazówki / wskazówki byłyby bardzo mile widziane.

Definicje zestawu danych znajdują się na stronie tutaj:

Informacje o atrybutach na dole lub możesz zobaczyć w folderze ZIP plik o nazwie activity_labels, który zawiera nagłówki kolumn, upewnij się, że uważnie przeczytałeś README, zawiera on kilka dobrych informacji. Możesz łatwo wprowadzić plik .csv do R za pomocą polecenia read.csv. Na przykład, jeśli nazwiesz plik samsungdata, możesz otworzyć R i uruchomić to polecenie:

data <- read.csv (“katalog / gdzie / plik / jest / znajduje / samsungdata.csv”, nagłówek = PRAWDA)

Lub jeśli jesteś już w katalogu roboczym w R, możesz po prostu uruchomić następujące

dane <- read.csv (“samsungdata.csv”, nagłówek = TRUE)

Gdzie dane nazwy można zmienić na cokolwiek chcesz nazwać swoim zestawem danych.

Wygląda na to, że ten (lub bardzo podobny zestaw danych) jest używany do kursów Coursera. Czyszczenie tego zestawu danych jest zadaniem pobierania i czyszczenia danych, ale jest również używane w studium przypadku do analizy danych eksploracyjnych. Film z tego studium przypadku jest dostępny w postaci nagrań wideo z 4 tygodnia materiałów szkoleniowych EDA. Może ci pomóc zacząć od tych danych.

Czy algorytmy uczenia maszynowego mogą przewidywać wyniki sportowe lub gry?

Mam wiele zbiorów danych dotyczących NFL, które moim zdaniem mogą stanowić dobry projekt poboczny, ale jeszcze nic z nimi nie zrobiłem. Wejście na tę stronę sprawiło, że pomyślałem o algorytmach uczenia maszynowego i zastanawiałem się, jak dobre mogą one być w przewidywaniu wyniku meczów piłkarskich lub nawet następnego meczu. Wydaje mi się, że można by było zidentyfikować pewne trendy – przy trzeciej próbie i pierwszej, drużyna z silnym biegiem teoretycznie powinna mieć w tej sytuacji tendencję do prowadzenia piłki. Punktacja może być trudniejsza do przewidzenia, ale zwycięska drużyna może być. Moje pytanie brzmi, czy są to dobre pytania do rzucenia na algorytm uczenia maszynowego. Możliwe, że tysiące osób próbowało tego wcześniej, ale natura sportu sprawia, że ​​jest to niewiarygodny temat.

Jest wiele dobrych pytań na temat piłki nożnej (i ogólnie sportu), które fajnie byłoby rzucić na algorytm i zobaczyć, co z niego wyjdzie. Najtrudniejsze jest wiedzieć, co wrzucić do algorytmu. Drużyna z dobrym RB mogłaby po prostu spasować na trzecim i krótkim miejscu tylko dlatego, że na przykład przeciwnicy prawdopodobnie oczekiwaliby runu. Tak więc, aby faktycznie uzyskać jakieś wartościowe wyniki, rozbiję problem na mniejsze części i przeanalizuję je statystycznie, rzucając je do maszyn! Istnieje kilka (dobrych) witryn internetowych, które próbują zrobić to samo. Sprawdź je i skorzystaj z wszelkich znalezionych informacji, aby Ci pomóc:

* Football Outsiders

* Zaawansowana analiza piłki nożnej

A jeśli naprawdę chcesz poznać analizę danych sportowych, zdecydowanie powinieneś sprawdzić filmy z konferencji Sloan Sports Conference

Tak. Dlaczego nie?! Przy tak dużej ilości danych zapisywanych w każdym sporcie w każdej grze, inteligentne wykorzystanie danych może doprowadzić nas do uzyskania ważnych informacji na temat wyników graczy. Kilka przykładów:

Baseball: W filmie Moneyball (będącym adaptacją książki MoneyBall) Brad Pitt gra postać, która analizuje statystyki graczy, aby stworzyć drużynę, która radzi sobie niezwykle dobrze! Było to przedstawienie prawdziwej historii życia drużyny baseballowej Oakland Athletics. Aby uzyskać więcej informacji, http://www.theatlantic.com/entertainment/archive/2013/09/forget-2002-this-yearsoakland- as-are-the-real-em-moneyball-em-team / 279927 /

Krykiet: SAP Labs opracowało narzędzie do analizy aukcji, które dostarczyło wglądu w wpływ graczy, których warto kupić na aukcji Indian Premier League w 2014 roku dla zespołu Kolkata Knight Riders, który ostatecznie wygrał IPL Championship 2014. Aby uzyskać więcej informacji, http://scn.sap.com/community/hana-inmemory/blog/2014/06/10/sap-hana-academy-cricket-demo—how-sap-hana-poweredthe- kolkata-knight- mistrzostwa-zawodników-ipl.

Zatem tak, analiza statystyczna zapisów graczy może dać nam wgląd w to, którzy gracze są bardziej skłonni do wykonania, ale nie którzy zagrają. Tak więc uczenie maszynowe, bliski kuzyn analizy statystycznej, okaże się przełomem.

Zdecydowanie tak. Mogę skierować cię do ładnego papieru. Kiedyś użyłem go do implementacji algorytmu przewidywania wyników ligi piłkarskiej, przede wszystkim mając na celu uzyskanie pewnej wartości dla bukmacherów.

Ze streszczenia artykułu:

dynamiczny uogólniony model Bayesa do szacowania zależnych od czasu umiejętności wszystkich drużyn w lidze i przewidywania meczów piłkarskich w przyszły weekend.

Słowa kluczowe:

Modele dynamiczne, uogólnione modele liniowe, modele graficzne, metody Monte Carlo łańcucha Markowa, przewidywanie meczów piłkarskich

Jakie są łatwe do nauczenia aplikacje do uczenia maszynowego?

Będąc nowicjuszem w uczeniu maszynowym, chciałbym zacząć się bawić i zobaczyć, jakie są możliwości. Jestem ciekawy, jakie aplikacje możesz polecić, które zapewniłyby najszybszy czas

od instalacji do uzyskania znaczącego wyniku. Będą również mile widziane wszelkie zalecenia dotyczące dobrych materiałów początkowych na temat uczenia się maszynowego.

Poleciłbym zacząć od kursu MOOC na temat uczenia maszynowego. Na przykład kurs Andrew Ng na Coursera. Warto też przyjrzeć się aplikacji Orange. Ma interfejs graficzny i prawdopodobnie łatwiej jest zrozumieć niektóre techniki ML przy jego użyciu.

Szczerze mówiąc, myślę, że robienie niektórych projektów nauczy Cię znacznie więcej niż zrobienie pełnego kursu. Jednym z powodów jest to, że robienie projektu jest bardziej motywujące i otwarte niż wykonywanie zadań. Kurs, jeśli masz czas ORAZ motywację (prawdziwą motywację), jest lepszy niż robienie projektu. Inni komentatorzy wydali dobre rekomendacje platformy dotyczące technologii. Myślę, że z punktu widzenia projektu fajnego powinieneś zadać pytanie i zdobyć komputer, aby nauczył się odpowiadać. Niektóre dobre klasyczne pytania, które mają dobre przykłady, to:

* Sieci neuronowe do rozpoznawania odręcznych cyfr

* Klasyfikacja spamu przy użyciu regresji logistycznej

* Klasyfikacja obiektów za pomocą modeli mieszanin Gaussa

* Niektóre zastosowanie regresji liniowej, być może prognozowanie cen artykułów spożywczych w poszczególnych dzielnicach

Te projekty mają już zrobioną matematykę, zrobiony kod i można je łatwo znaleźć w Google. Możesz robić inne fajne tematy!

Na koniec zajmuję się robotyką, więc dla mnie najbardziej ZABAWNE aplikacje są behawioralne. Przykłady mogą obejmować (jeśli potrafisz bawić się arduino) Stwórz aplikację, która prawdopodobnie wykorzystuje regresję logistyczną, która uczy się, kiedy wyłączyć i włączyć wentylator, biorąc pod uwagę temperaturę wewnętrzną i stan światła w pomieszczeniu. Stwórz aplikację, która uczy robota poruszania siłownikiem, np. Kołem, na podstawie danych wejściowych z czujnika (np. Naciśnięcia przycisku), przy użyciu modeli mieszanin Gaussa (ucząc się z demonstracji). W każdym razie te są dość zaawansowane. Chodzi mi o to, że jeśli wybierzesz projekt, który (naprawdę) ci się podoba i spędzisz nad nim kilka tygodni, nauczysz się bardzo dużo i zrozumiesz o wiele więcej niż wykonanie kilku zadań.

Odpowiedź iliasfl Myślę, że Weka to dobry punkt wyjścia. Możesz zrobić wiele rzeczy, takich jak nadzorowane uczenie się lub grupowanie i łatwo porównać duży zestaw algorytmów z metodologiami. Podręcznik Weka to w rzeczywistości książka o uczeniu maszynowym i eksploracji danych, której można użyć jako materiału wprowadzającego

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *