Niedawno zacząłem uczyć się uczenia maszynowego i analizy danych. Uderzam w ścianę z powodu potrzeby tworzenia i wyszukiwania dużych zestawów danych. Chciałbym pobrać dane, które gromadzę w życiu zawodowym i osobistym, i przeanalizować je, ale nie jestem pewien, jak najlepiej wykonać następujące czynności:
Jak powinienem przechowywać te dane? Przewyższać? SQL? ??
W jaki sposób początkujący może zacząć analizować te dane? Jestem profesjonalnym programistą komputerowym, więc złożoność nie polega na pisaniu programów, ale jest mniej lub bardziej specyficzna dla dziedziny analizy danych.
EDYCJA: Przepraszam za moją niejasność, kiedy zaczynasz się uczyć o czymś, trudno jest wiedzieć, czego nie wiesz, wiesz? ;)
Powiedziawszy to, moim celem jest zastosowanie tego do dwóch głównych tematów:
Wskaźniki zespołu oprogramowania (przemyśl prędkość Agile, oszacuj ryzyko, prawdopodobieństwo udanej iteracji, biorąc pod uwagę liczbę punktów historii)
Uczenie maszynowe (np. W danym zestawie modułów wystąpiły wyjątki systemowe), jakie jest prawdopodobieństwo, że moduł zgłosi wyjątek w tej dziedzinie, ile to będzie kosztowało, co dane mogą mi powiedzieć o kluczowych modułach do ulepszenia, które uzyskają mi najlepszy huk dla mojej złotówki, przewiduj, z jakiej części systemu użytkownik będzie chciał następnie skorzystać, aby rozpocząć ładowanie danych itp.).
źródło
Odpowiedzi:
Jeśli masz duże zestawy danych - takie, które powodują, że Excel lub Notatnik ładują się powoli, to baza danych jest dobrym sposobem. Postgres to oprogramowanie typu open source i bardzo dobrze wykonane, a także łatwe do połączenia z JMP, SPSS i innymi programami. W takim przypadku możesz spróbować. Nie musisz normalizować danych w bazie danych. W przeciwnym razie CSV jest przyjazny dla udostępniania.
Zastanów się nad gałęzią Apache, jeśli masz ponad 100 milionów wierszy.
Jeśli chodzi o analizę, oto kilka punktów wyjścia:
Opisz jedną zmienną:
Opisz zależność między zmiennymi:
Wartości odstające? sprawdź odległość Mahalanobis
Mozaika na kategorię
Prognozuj liczbę rzeczywistą (np. Cenę): regresję
Regresja OLS lub techniki regresji uczenia maszynowego
gdy technika stosowana do przewidywania jest zrozumiała dla ludzi, nazywa się to modelowaniem. Na przykład sieć neuronowa może przewidywać, ale ogólnie nie jest zrozumiała. Za pomocą regresji można także znaleźć kluczowe wskaźniki wydajności.
Przewiduj członkostwo w klasie lub prawdopodobieństwo członkostwa w klasie (np. Zaliczone / nieudane): klasyfikacja
Podziel obserwacje na „naturalne” grupy: grupowanie
Umieść atrybuty w „naturalnych” grupach: faktoring
Kwantyfikacja ryzyka = odchylenie standardowe lub odsetek przypadków, gdy zdarzają się „złe rzeczy” x ich waga
Prawdopodobieństwo pomyślnego ukończenia iteracji przy x liczbie punktów opowieści = regresja logistyczna
Powodzenia!
źródło
Jeśli patrzysz na awarie systemu, być może zainteresuje Cię następujący artykuł wykorzystujący techniki uczenia maszynowego do diagnozowania błędów w serwisie eBay. Może dać ci wyobrażenie o tym, jakie dane należy gromadzić lub w jaki sposób jeden zespół podszedł do konkretnego problemu w podobnej domenie.
Jeśli dopiero zaczynasz, coś takiego jak RapidMiner lub Orange może być dobrym systemem oprogramowania, aby szybko zacząć grać z danymi. Oba mają dostęp do danych w różnych formatach (między innymi plik csv, baza danych).
źródło
Twoje pytanie jest tak szerokie, że odpowiedź brzmi: to zależy. Jednak, aby udzielić bardziej użytecznej odpowiedzi, wskażę, co moim zdaniem jest wspólne w badaniach.
Przechowywanie danych bardzo często odbywa się w plikach tekstowych. Podczas wykonywania analiz statystycznych przeważnie pracujesz z kolekcją jednego rodzaju wektorów. Można to uznać za tabelę i napisane w formacie csv. Powodem, dla którego cienkie są często przechowywane w postaci zwykłego tekstu, jest to, że po prostu każde narzędzie może je odczytać i łatwo je przekształcić.
Jeśli chodzi o analizę, trudniej jest sprecyzować. Jeśli jest dwuwymiarowy, wykonaj wykres rozrzutu. Jeśli jest wielowymiarowy, wykonaj PCA i zobacz, gdzie istnieją pierwsze główne składniki, aby odkryć ważne zmienne. Jeśli masz dane dotyczące czasu, wykreśl je. To wszystko jest tak ogólne, że aby być użytecznym, musisz naprawdę lepiej wskazać swoje dane.
źródło
Jedna rzecz ROOT jest naprawdę dobry jest przechowywanie sa ogromne ilości danych. ROOT to biblioteka C ++ używana w fizyce cząstek; zawiera również powiązania Ruby i Python, dzięki czemu można używać pakietów w tych językach (np. NumPy lub Scipy) do analizowania danych, gdy okaże się, że ROOT oferuje kilka możliwości gotowych do użycia.
Format pliku ROOT może przechowywać drzewa lub krotki, a wpisy można odczytywać sekwencyjnie, więc nie trzeba jednocześnie przechowywać wszystkich danych w pamięci. Pozwala to analizować petabajty danych, czego nie chciałbyś wypróbować za pomocą Excela lub R.
Dokumentacja ROOT I / O jest dostępna tutaj .
źródło