Welche wertvollen Open-Source-Projekte für die statistische Analyse sind derzeit verfügbar?
Bearbeiten: Wie von Sharpie hervorgehoben, kann wertvoll bedeuten, Ihnen dabei zu helfen, Dinge schneller oder billiger zu erledigen.
Welche wertvollen Open-Source-Projekte für die statistische Analyse sind derzeit verfügbar?
Bearbeiten: Wie von Sharpie hervorgehoben, kann wertvoll bedeuten, Ihnen dabei zu helfen, Dinge schneller oder billiger zu erledigen.
Antworten:
Das R-Projekt
R ist wertvoll und bedeutsam, weil es die erste allgemein akzeptierte Open-Source-Alternative zu Big-Box-Paketen war. Es ist ausgereift, gut unterstützt und ein Standard in vielen wissenschaftlichen Communities.
Für eine Vielzahl von MCMC-Aufgaben in Python gibt es PyMC , von dem ich ziemlich viel Gebrauch gemacht habe. Ich habe nichts gefunden, was ich in BUGS tun kann, was ich in PyMC nicht kann, und die Art und Weise, wie Sie Modelle angeben und Daten einbringen, scheint mir viel intuitiver zu sein.
Das wird vielleicht in Vergessenheit geraten, aber ich habe den Matlab-Klon Octave viele Jahre lang gerne verwendet . Es gibt ziemlich gute Bibliotheken in Octave Forge für die Erzeugung von Zufallsvariablen aus verschiedenen Verteilungen, statistischen Tests usw., obwohl sie eindeutig von R in den Schatten gestellt werden. Ein möglicher Vorteil gegenüber R ist, dass Matlab / Octave die Verkehrssprache unter numerischen Analytikern und Optimierungsforschern ist und eine Untergruppe von angewandten Mathematikern (zumindest in der Schule), während meines Wissens niemand in meiner Abteilung R. meinen Verlust nutzte. lerne beides wenn möglich!
Zwei Projekte fallen mir ein:
Weka for Data Mining - enthält viele Klassifizierungs- und Clustering-Algorithmen in Java.
ggobi "ist ein Open-Source-Visualisierungsprogramm zum Erkunden von hochdimensionalen Daten."
Mat Kelcey hat eine gute 5-minütige Einführung in ggobi .
Incanter ist eine Clojure-basierte, R-ähnliche Plattform (Umgebung + Bibliotheken) für statistische Berechnungen und Grafiken.
Es gibt auch solche Projekte, die von der FSF initiiert oder unter GNU General Public License weiterverteilt wurden, wie:
Es gibt sogar Anwendungen, die nur als Begleitsoftware für ein Lehrbuch wie JMulTi veröffentlicht wurden , aber immer noch von wenigen Leuten verwendet werden.
Von Zeit zu Zeit spiele ich immer noch mit xlispstat , obwohl Lisp von R weitgehend abgelöst wurde (siehe Jan de Leeuws Übersicht über Lisp vs. R im Journal of Statistical Software ). Interessanterweise argumentierte Ross Ihaka, einer der Mitbegründer der R-Sprache, im Gegenteil, dass die Zukunft statistischer Software ... Lisp: Zurück in die Zukunft: Lisp als Basis für ein statistisches Rechensystem . @Alex wies bereits auf die Clojure-basierte statistische Umgebung Incanter hin , also werden wir vielleicht in naher Zukunft eine Wiederbelebung der Lisp-basierten Software sehen? :-)
RapidMiner für Data- und Text-Mining
Lassen Sie mich zunächst sagen, dass meiner Meinung nach das mit Abstand beste Tool R ist, das Tonnen von Bibliotheken und Dienstprogrammen enthält, die ich hier nicht aufzählen werde.
Lassen Sie mich die Diskussion über Weka erweitern
Es gibt eine Bibliothek für R namens RWeka, die Sie einfach in R installieren können. Ich möchte Ihnen ein Codebeispiel für die Erstellung eines einfachen Entscheidungsbaums geben, in dem Sie viele der Funktionen dieses großartigen Programms zusammen mit denen in R verwenden können Lesen Sie aus einer Standarddatenbank, die mit diesem Paket geliefert wird (es ist auch sehr einfach, den resultierenden Baum zu zeichnen, aber ich überlasse Ihnen die Recherche, wie dies zu tun ist, die in der RWeka-Dokumentation enthalten ist:
library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)
Dazu gibt es auch mehrere Python-Bibliotheken (Python ist sehr einfach zu erlernen).
Lassen Sie mich zuerst die Pakete aufzählen, die Sie verwenden können. Ich werde nicht im Detail auf sie eingehen. Weka (ja, Sie haben eine Bibliothek für Python), NLKT (das bekannteste Open-Source-Paket für Textmining neben Datamining), statPy , sickits und scipy.
Es gibt auch Orange, was ausgezeichnet ist (darüber werde ich später noch sprechen). Hier ist ein Codebeispiel für die Erstellung eines Baums aus den Daten in der Tabelle cmpart1, das auch eine 10-fache Validierung durchführt. Sie können den Baum auch grafisch darstellen
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
Zum Schluss noch ein paar andere Pakete, die ich benutzt und interessant gefunden habe
Orange : Datenvisualisierung und -analyse für Anfänger und Experten. Data Mining durch visuelle Programmierung oder Python-Scripting. Komponenten für maschinelles Lernen. Erweiterungen für Bioinformatik und Text Mining. (Ich persönlich empfehle dies, ich habe es viel benutzt, um es in Python zu integrieren, und es war exzellent.) Ich kann Ihnen Python-Code schicken, wenn Sie wollen, dass ich das tue.
ROSETTA : Toolkit zur Analyse tabellarischer Daten im Rahmen der Grobsatztheorie . ROSETTA wurde entwickelt, um den gesamten Data Mining- und Knowledge Discovery-Prozess zu unterstützen: Vom anfänglichen Durchsuchen und Vorverarbeiten der Daten über die Berechnung minimaler Attributsätze und die Generierung von Wenn-Dann-Regeln oder deskriptiven Mustern bis hin zur Validierung und Analyse der induzierten Regeln oder Muster (Das habe ich auch sehr genossen)
KEEL : Bewertung evolutionärer Algorithmen für Data Mining-Probleme, einschließlich Regression, Klassifizierung, Clustering, Pattern Mining usw. Es ermöglicht uns, eine vollständige Analyse jedes Lernmodells im Vergleich zu bestehenden durchzuführen, einschließlich eines statistischen Testmoduls zum Vergleich.
DataPlot : Zur wissenschaftlichen Visualisierung, statistischen Analyse und nichtlinearen Modellierung. Der Dataplot-Zielbenutzer ist der Forscher und Analyst, der mit der Charakterisierung, Modellierung, Visualisierung, Analyse, Überwachung und Optimierung von wissenschaftlichen und technischen Prozessen befasst ist.
Openstats : Enthält eine Statistik- und Messgrundlage , beschreibende Statistiken, einfache Vergleiche, Varianzanalysen, Korrelationen, multiple Regressionen, unterbrochene Zeitreihen, multivariate Statistiken, nicht parametrische Statistiken, Messungen, statistische Prozesskontrolle, Finanzverfahren, neuronale Netze, Simulation
Colin Gillespie erwähnte BUGS, aber eine bessere Option für Gibbs Sampling ist JAGS .
Wenn alles, was Sie tun möchten, ARIMA ist, können Sie X12-ARIMA nicht schlagen. Dies ist ein Goldstandard auf dem Gebiet und Open Source. Es werden keine echten Grafiken erstellt (ich verwende dafür R), aber die Diagnose ist eine Lektion für sich.
Ich wage mich ein bisschen weiter weg zu etwas, was ich kürzlich entdeckt habe und gerade erst angefangen habe zu lernen ...
ADMB (AD Model Builder), das eine nichtlineare Modellierung basierend auf der AUTODIF-Bibliothek mit MCMC und einigen anderen Features durchführt. Es verarbeitet das Modell vor, kompiliert es zu einer ausführbaren C ++ - Datei und kompiliert es als eigenständige App soll wesentlich schneller sein als äquivalente Modelle, die in R, MATLAB usw. implementiert sind. ADMB Project
Es hat angefangen und ist in der Fischereiwelt immer noch am beliebtesten, sieht aber für andere Zwecke recht interessant aus. Es hat keine grafische Darstellung oder andere Merkmale von R und würde höchstwahrscheinlich in Verbindung mit R verwendet.
Wenn Sie mit Bayesian Networks in einer GUI arbeiten möchten : SamIam ist ein schönes Werkzeug. R hat ein paar Pakete, die dies auch tun, aber SamIam ist sehr nett.
GSL für diejenigen unter Ihnen, die in C / C ++ programmieren möchten, ist eine wertvolle Ressource, da es verschiedene Routinen für Zufallsgeneratoren, lineare Algebra usw. bietet. Während GSL hauptsächlich für Linux verfügbar ist, gibt es auch Ports für Windows. (Siehe: http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.php und http://david.geldreich.free.fr/dev.html )
Ich arbeite sehr gerne mit RooFit, um die Signal- und Hintergrundverteilungen problemlos anzupassen, und mit TMVA, um Hauptkomponenten schnell zu analysieren und multivariate Probleme mit einigen Standardwerkzeugen (wie genetischen Algorithmen und neuronalen Netzen, auch BDTs) zu modellieren. Sie sind beide Teil der ROOT C ++ - Bibliotheken, die sich jedoch stark auf Probleme der Teilchenphysik konzentrieren.
Einige mehr zusätzlich zu den bereits erwähnten:
Und aus räumlicher Sicht:
Ich stimme diesem Jay zu. Warum ist R wertvoll? Hier ist eine kurze Liste von Gründen. http://www.inside-r.org/why-use-r . Schauen Sie sich auch ggplot2 an - ein sehr schönes Grafikpaket für R. Einige nette Tutorials finden Sie hier .
Dies stößt an die äußeren Grenzen der statistischen Analyse, aber Eureqa ist ein sehr benutzerfreundliches Programm für das Data-Mining nichtlinearer Beziehungen in Daten über genetische Programmierung. Eureqa ist nicht für allgemeine Zwecke gedacht, aber es funktioniert recht gut, und die Benutzeroberfläche ist sehr intuitiv. Es kann auch die verfügbare Rechenleistung über den eureqa-Server nutzen.
Meta.Numerics ist eine .NET-Bibliothek mit guter Unterstützung für statistische Analysen.
Anders als R (ein S-Klon) und Octave (ein Matlab-Klon) hat es kein "Front-End". Es ist eher wie GSL, da es sich um eine Bibliothek handelt, mit der Sie eine Verknüpfung herstellen, wenn Sie Ihre eigene Anwendung schreiben, die statistische Analysen durchführen muss. C # und Visual Basic sind häufigere Programmiersprachen als C / C ++ für Branchenanwendungen, und Meta.Numerics bietet eine umfassendere Unterstützung für statistische Konstrukte und Tests als GSL.
Symbolische Mathematik-Software kann auch eine gute Unterstützung für Statistiken sein. Hier sind einige GPL, die ich von Zeit zu Zeit benutze:
Alle drei sind in aktiver Entwicklung.