Jakie są obecnie dostępne niektóre cenne projekty open source do analizy statystycznej?
Edycja: jak wskazał Sharpie, wartościowe mogą oznaczać pomoc w wykonywaniu zadań szybciej lub taniej.
Jakie są obecnie dostępne niektóre cenne projekty open source do analizy statystycznej?
Edycja: jak wskazał Sharpie, wartościowe mogą oznaczać pomoc w wykonywaniu zadań szybciej lub taniej.
Odpowiedzi:
Projekt R.
R jest cenny i znaczący, ponieważ był pierwszą powszechnie akceptowaną alternatywą Open-Source dla dużych pakietów. Jest dojrzały, dobrze wspierany i stanowi standard w wielu społecznościach naukowych.
Może się to pochwalić zapomnieniem, ale z radością korzystałem z klonu Matlab Octave przez wiele lat. Istnieją dość dobre biblioteki w oktawowej kuźni do generowania zmiennych losowych z różnych rozkładów, testów statystycznych itp., Chociaż wyraźnie jest to niejasne przez R. Jedną możliwą przewagą nad R jest to, że Matlab / oktawa jest lingua franca wśród analityków numerycznych, badaczy optymalizacyjnych , a także pewna grupa matematyków stosowanych (przynajmniej kiedy byłam w szkole), podczas gdy nikt w moim dziale, o ile mi wiadomo, nie wykorzystał R. mojej straty. naucz się obu, jeśli to możliwe!
Przychodzą mi na myśl dwa projekty:
Weka do eksploracji danych - zawiera wiele algorytmów klasyfikacji i klastrowania w Javie.
ggobi „to program do wizualizacji typu open source do eksploracji danych wielowymiarowych”.
Mat Kelcey ma dobre 5-minutowe wprowadzenie do ggobi .
Incanter to oparta na Clojure platforma typu R (środowisko + biblioteki) do obliczeń statystycznych i grafiki.
Istnieją również projekty zainicjowane przez FSF lub rozpowszechniane na podstawie GNU General Public Licence, takie jak:
Istnieją nawet aplikacje, które zostały wydane jako dodatkowe oprogramowanie do podręcznika, takie jak JMulTi , ale nadal są używane przez kilka osób.
Od czasu do czasu nadal gram z Xlispstat , chociaż Lisp został w dużej mierze zastąpiony przez R (patrz przegląd Janp Leeuw na temat Lisp vs. R w Journal of Statistics Software ). Co ciekawe, jeden ze współzałożycieli języka R, Ross Ihaka, argumentował wręcz przeciwnie, że przyszłość oprogramowania statystycznego to ... Lisp: Powrót do przyszłości: Lisp jako podstawa systemu obliczeń statystycznych . @Alex już wskazał na środowisko statystyczne oparte na Clojure Incanter , więc może w najbliższej przyszłości zobaczymy ożywienie oprogramowania opartego na Lisp? :-)
RapidMiner do eksploracji danych i tekstu
Przede wszystkim powiem wam, że moim zdaniem najlepszym narzędziem jak dotąd jest R, który ma mnóstwo bibliotek i narzędzi, których tutaj nie wymienię.
Pozwól mi rozwinąć dyskusję o weka
Istnieje biblioteka dla R, która nazywa się RWeka, którą można łatwo zainstalować w R i używać wielu funkcji tego wspaniałego programu wraz z tymi w R, pozwólcie, że podam przykładowy kod do zrobienia prostego drzewa decyzyjnego czytaj ze standardowej bazy danych, która jest dołączona do tego pakietu (bardzo łatwo jest narysować powstałe drzewo, ale pozwolę ci przeprowadzić badania dotyczące tego, jak to zrobić, co jest w dokumentacji RWeka:
library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)
Do tego celu służy również kilka bibliotek Pythona (bardzo łatwo nauczyć się języka Python)
Najpierw pozwól mi wyliczyć pakiety, których możesz użyć, nie zamierzam szczegółowo omawiać ich; Weka (tak, masz bibliotekę dla Pythona), NLKT (najsłynniejszy pakiet open source do zarządzania tekstem oprócz analizy danych), statPy , choroby i scipy.
Jest też pomarańczowy, który jest doskonały (porozmawiam o tym później), oto przykład kodu do zrobienia drzewa z danych w tabeli cmpart1, który wykonuje również 10-krotną walidację, możesz również wykreślić drzewo
import orange, orngMySQL, orngTree
data = orange.ExampleTable("c:\\python26\\orange\\cmpart1.tab")
domain=data.domain
n=10
buck=len(data)/n
l2=[]
for i in range(n):
tmp=[]
if i==n-1:
tmp=data[n*buck:]
else:
tmp=data[buck*i:buck*(i+1)]
l2.append(tmp)
train=[]
test=[]
di={'yy':0,'yn':0,'ny':0,'nn':0}
for i in range(n):
train=[]
test=[]
for j in range(n):
if j==i:
test=l2[i]
else:
train.extend(l2[j])
print "-----"
trai=orange.Example(domain, train)
tree = orngTree.TreeLearner(train)
for ins in test:
d1= ins.getclass()
d2=tree(ins)
print d1
print d2
ind=str(d1)+str(d2)
di[ind]=di[ind]+1
print di
Na koniec kilka innych pakietów, z których korzystałem i które mnie zainteresowały
Pomarańczowy : wizualizacja i analiza danych dla początkujących i ekspertów. Eksploracja danych za pomocą programowania wizualnego lub skryptów w języku Python. Komponenty do uczenia maszynowego. Rozszerzenia dla bioinformatyki i eksploracji tekstu. (Osobiście polecam to, często go integrowałem z Pythonem i było znakomite) Mogę przesłać ci kod Pythona, jeśli chcesz.
ROSETTA : zestaw narzędzi do analizy danych tabelarycznych w ramach teorii zbiorów przybliżonych. ROSETTA została zaprojektowana w celu wspierania całego procesu eksploracji danych i odkrywania wiedzy: od wstępnego przeglądania i wstępnego przetwarzania danych, przez obliczanie minimalnych zestawów atrybutów i generowanie reguł „jeśli-to” lub wzorców opisowych, aż do walidacji i analizy indukowanych reguł lub wzorców (Bardzo podobało mi się to również przy użyciu)
KEEL : ocena algorytmów ewolucyjnych dla problemów Data Mining, w tym regresji, klasyfikacji, grupowania, eksploracji wzorców i tak dalej. Pozwala nam to przeprowadzić pełną analizę dowolnego modelu uczenia się w porównaniu do istniejących, w tym moduł testu statystycznego do porównania.
DataPlot : do wizualizacji naukowej, analizy statystycznej i modelowania nieliniowego. Docelowym użytkownikiem Dataplot jest badacz i analityk zajmujący się charakteryzacją, modelowaniem, wizualizacją, analizą, monitorowaniem i optymalizacją procesów naukowych i inżynierskich.
Openstats : Obejmuje elementarz statystyki i pomiaru, statystyki opisowe, proste porównania, analizy wariancji, korelację, regresję wielokrotną, przerwane szeregi czasowe, statystyki wielowymiarowe, statystyki nieparametryczne, pomiar, kontrolę procesu statystycznego, procedury finansowe, sieci neuronowe, symulację
Colin Gillespie wspomniał o BŁĘDACH, ale lepszym rozwiązaniem do próbkowania Gibbs itp. Jest JAGS .
Jeśli wszystko, co chcesz zrobić, to ARIMA, nie możesz pokonać X12-ARIMA , która jest złotym standardem w tej dziedzinie i open source. Nie robi prawdziwych wykresów (używam do tego R), ale diagnostyka sama w sobie jest lekcją.
Zapuszczam się nieco dalej w stronę czegoś, co niedawno odkryłem i dopiero zacząłem się uczyć ...
ADMB (AD Model Builder), który wykonuje modelowanie nieliniowe w oparciu o bibliotekę AUTODIF, z włączoną MCMC i kilkoma innymi funkcjami. Przetwarza i kompiluje model do pliku wykonywalnego C ++ i kompiluje go jako samodzielną aplikację, która jest ma być znacznie szybszy niż równoważne modele zaimplementowane w R, MATLAB itp. Projekt ADMB
Zaczęło się i nadal jest najbardziej popularne w świecie rybołówstwa, ale wygląda całkiem interesująco do innych celów. Nie ma grafiki ani innych cech R i najprawdopodobniej byłby używany w połączeniu z R.
Jeśli chcesz pracować z Bayesian Networks w GUI: SamIam to miłe narzędzie. R ma kilka pakietów, które również to robią, ale SamIam jest bardzo miły.
GSL dla tych, którzy chcą programować w C / C ++, jest cennym zasobem, ponieważ zapewnia kilka procedur dla generatorów losowych, algebry liniowej itp. Chociaż GSL jest przede wszystkim dostępny dla Linuksa, istnieją również porty dla Windows. (Patrz: http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.php i http://david.geldreich.free.fr/dev.html )
Naprawdę lubię pracować z RooFit dla łatwego właściwego dopasowania dystrybucji sygnału i tła oraz TMVA do szybkiej analizy głównych składników i modelowania problemów na wielu odmianach za pomocą niektórych standardowych narzędzi (takich jak algorytmy genetyczne i sieci neuronowe, również BDT). Obie są częścią bibliotek ROOT C ++, które mają jednak dość poważne nastawienie do problemów fizyki cząstek.
Kilka więcej oprócz wspomnianych już:
I z perspektywy przestrzennej:
Popieram tego Jaya. Dlaczego R jest cenny? Oto krótka lista powodów. http://www.inside-r.org/why-use-r . Zobacz także ggplot2 - bardzo ładny pakiet graficzny dla R. Kilka ładnych tutoriali tutaj .
Wpada to na zewnętrzne granice „analizy statystycznej”, ale Eureqa jest bardzo przyjaznym dla użytkownika programem do eksploracji danych nieliniowych relacji w danych za pomocą programowania genetycznego. Eureqa nie jest tak ogólnego przeznaczenia, ale robi to, co robi dość dobrze, a GUI jest dość intuicyjny. Może również skorzystać z dostępnej mocy obliczeniowej za pośrednictwem serwera eureqa.
Meta.Numerics to biblioteka .NET z dobrym wsparciem dla analizy statystycznej.
W przeciwieństwie do R (klon S) i Octave (klon Matlab), nie ma „frontonu”. Bardziej przypomina GSL, ponieważ jest biblioteką, do której prowadzi link podczas pisania własnej aplikacji, która musi przeprowadzić analizę statystyczną. C # i Visual Basic są bardziej popularnymi językami programowania niż C / C ++ dla aplikacji biznesowych, a Meta.Numerics ma szersze wsparcie dla konstrukcji i testów statystycznych niż GSL.
Oprogramowanie matematyki symbolicznej może być również dobrym wsparciem dla statystyk. Oto kilka licencji GPL, z których korzystam od czasu do czasu:
Wszystkie trzy są w fazie aktywnego rozwoju.