โครงการโอเพ่นซอร์สการวิเคราะห์เชิงสถิติที่มีคุณค่าในปัจจุบันมีอะไรบ้าง
แก้ไข: ตามที่ชาร์ปชี้ให้เห็นว่ามีค่าอาจหมายถึงการช่วยให้คุณทำสิ่งต่าง ๆ ได้เร็วขึ้นหรือถูกลง
โครงการโอเพ่นซอร์สการวิเคราะห์เชิงสถิติที่มีคุณค่าในปัจจุบันมีอะไรบ้าง
แก้ไข: ตามที่ชาร์ปชี้ให้เห็นว่ามีค่าอาจหมายถึงการช่วยให้คุณทำสิ่งต่าง ๆ ได้เร็วขึ้นหรือถูกลง
คำตอบ:
โครงการ R
R เป็นสิ่งที่มีค่าและมีความสำคัญเนื่องจากเป็นทางเลือกแรกของโอเพ่นซอร์สที่ได้รับการยอมรับอย่างกว้างขวางสำหรับแพ็คเกจขนาดใหญ่ มันเป็นผู้ใหญ่ได้รับการสนับสนุนเป็นอย่างดีและเป็นมาตรฐานในชุมชนวิทยาศาสตร์หลายแห่ง
สำหรับการทำภารกิจ MCMC ที่หลากหลายใน Python นั้นมีPyMCซึ่งฉันใช้ไปค่อนข้างน้อย ฉันไม่ได้ทำงานในสิ่งที่ฉันสามารถทำได้ใน BUGS ที่ฉันไม่สามารถทำได้ใน PyMC และวิธีที่คุณระบุรุ่นและนำข้อมูลเข้ามาดูเหมือนจะง่ายกว่าสำหรับฉันมาก
นี้อาจได้รับ downvoted จะให้อภัย แต่ฉันมีความสุขใช้โคลน Matlab คู่เป็นเวลาหลายปี มีห้องสมุดที่ดีเป็นธรรมในการปลอมคู่สำหรับคนรุ่นของตัวแปรสุ่มจากการแจกแจงที่แตกต่างกัน, การทดสอบทางสถิติ ฯลฯ มี แต่เห็นได้ชัดว่ามันเป็นคนแคระอาร์ข้อดีอย่างหนึ่งที่เป็นไปได้มากกว่า R คือว่า Matlab / คู่เป็นภาษากลางในหมู่นักวิเคราะห์เชิงตัวเลขการเพิ่มประสิทธิภาพของนักวิจัย และบางส่วนของนักคณิตศาสตร์ประยุกต์ (อย่างน้อยตอนที่ฉันอยู่ในโรงเรียน) ในขณะที่ไม่มีใครในแผนกของฉันความรู้ของฉันใช้อาร์สูญเสียของฉัน เรียนรู้ทั้งสองอย่างถ้าเป็นไปได้!
โครงการสองโครงการที่อยู่ในใจ:
Wekaสำหรับ data mining - มีอัลกอริธึมการจัดหมวดหมู่และการจัดกลุ่มจำนวนมากใน Java
ggobi "เป็นโปรแกรมสร้างภาพโอเพนซอร์สสำหรับการสำรวจข้อมูลมิติสูง"
Mat Kelcey มีการแนะนำ ggobi 5 นาทีที่ดี
Incanterเป็นแพลตฟอร์มที่คล้ายกับ Clojure R (สภาพแวดล้อม + ไลบรารี) สำหรับการคำนวณเชิงสถิติและกราฟิก
นอกจากนี้ยังมีโครงการที่ริเริ่มโดย FSF หรือแจกจ่ายต่อภายใต้สัญญาอนุญาตสาธารณะทั่วไปของกนูเช่น:
มีแม้แต่แอพพลิเคชั่นที่เปิดตัวในฐานะซอฟต์แวร์ตัวช่วยสำหรับตำราเรียนเช่นJMulTiแต่ก็ยังมีคนใช้งานอยู่ไม่กี่คน
ฉันยังคงเล่นกับxlispstat เป็นครั้งคราวแม้ว่า Lisp จะถูกแทนที่โดย R (ดูภาพรวมของ Jan de Leeuw เกี่ยวกับLisp vs. Rในสมุดรายวันของซอฟต์แวร์ทางสถิติ ) ที่น่าสนใจซึ่งเป็นหนึ่งในผู้ร่วมก่อตั้งของภาษาการ R, รอสส์อิฮากะที่ถกเถียงกันอยู่ในทางตรงกันข้ามว่าอนาคตของซอฟต์แวร์ทางสถิติคือ ... เสียงกระเพื่อม: กลับไปสู่อนาคต: เสียงกระเพื่อมเป็นฐานสำหรับระบบคอมพิวเตอร์ทางสถิติ @Alex ชี้ไปที่สภาพแวดล้อมทางสถิติตาม Clojure Incanterดังนั้นบางทีเราจะเห็นการฟื้นตัวของซอฟต์แวร์ที่ใช้ Lisp ในอนาคตอันใกล้ :-)
RapidMinerสำหรับการทำ data และ text
ก่อนอื่นให้ฉันบอกคุณว่าในความคิดของฉันเครื่องมือที่ดีที่สุดของทั้งหมดคือ R ซึ่งมีไลบรารีและยูทิลิตี้มากมายฉันจะไม่ระบุที่นี่
ฉันขอขยายการสนทนาเกี่ยวกับ weka
มีไลบรารีสำหรับ R ซึ่งเรียกว่า RWeka ซึ่งคุณสามารถติดตั้งใน R ได้อย่างง่ายดายและใช้ฟังก์ชันการทำงานมากมายจากโปรแกรมที่ยอดเยี่ยมนี้พร้อมกับไลบรารีที่อยู่ใน R ให้ฉันยกตัวอย่างโค้ดสำหรับการตัดสินใจแบบง่าย ๆ อ่านจากฐานข้อมูลมาตรฐานที่มาพร้อมกับแพ็คเกจนี้ (มันง่ายมากในการวาดแผนผังผลลัพธ์ แต่ฉันจะให้คุณทำวิจัยเกี่ยวกับวิธีการทำซึ่งอยู่ในเอกสาร RWeka:
library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)
นอกจากนี้ยังมีห้องสมุดหลามหลายแห่งสำหรับการทำเช่นนี้ (หลามเป็นเรื่องง่ายมากที่จะเรียนรู้)
ก่อนอื่นให้ฉันระบุแพคเกจที่คุณสามารถใช้ได้ฉันจะไม่ลงรายละเอียดเกี่ยวกับพวกเขา Weka (ใช่แล้วคุณมีไลบรารี่สำหรับไพ ธ อน), NLKT (แพ็คเกจโอเพ่นซอร์สที่โด่งดังที่สุดสำหรับการส่งข้อความนอกเหนือจากการจัดหมวดหมู่ข้อมูล), statPy , sickitsและ scipy
นอกจากนี้ยังมีสีส้มซึ่งเป็นเลิศ (ฉันจะพูดถึงมันในภายหลัง) นี่คือตัวอย่างรหัสสำหรับทำต้นไม้จากข้อมูลในตาราง cmpart1 ที่ยังทำการตรวจสอบ 10 เท่าคุณยังสามารถกราฟต้นไม้
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
เพื่อจบด้วยแพ็คเกจอื่น ๆ ที่ฉันใช้และพบว่าน่าสนใจ
Orange : การสร้างภาพข้อมูลและการวิเคราะห์สำหรับมือใหม่และผู้เชี่ยวชาญ การขุดข้อมูลผ่านการเขียนโปรแกรมด้วยภาพหรือการเขียนสคริปต์ Python ส่วนประกอบสำหรับการเรียนรู้ของเครื่อง ส่วนขยายสำหรับชีวสารสนเทศและการทำเหมืองข้อความ (โดยส่วนตัวแล้วฉันแนะนำสิ่งนี้ฉันใช้มันมากในการรวมกันในหลามและมันก็ยอดเยี่ยม) ฉันสามารถส่งรหัสหลามให้คุณถ้าคุณต้องการให้ฉัน
ROSETTA : ชุดเครื่องมือสำหรับการวิเคราะห์ข้อมูลแบบตารางภายในกรอบของทฤษฎีเซตหยาบ ROSETTA ได้รับการออกแบบมาเพื่อสนับสนุนการขุดข้อมูลโดยรวมและกระบวนการค้นหาความรู้: เริ่มต้นการเรียกดูและประมวลผลข้อมูลล่วงหน้าผ่านการคำนวณชุดคุณลักษณะขั้นต่ำสุดและการสร้างกฎหรือรูปแบบการอธิบายแบบนั้นไปจนถึงการตรวจสอบและวิเคราะห์กฎ (ฉันชอบใช้มันมาก)
KEEL : ประเมินอัลกอริทึมวิวัฒนาการสำหรับปัญหาการทำเหมืองข้อมูลรวมถึงการถดถอยการจัดหมวดหมู่การทำคลัสเตอร์การทำรูปแบบและอื่น ๆ มันช่วยให้เราสามารถทำการวิเคราะห์ที่สมบูรณ์ของรูปแบบการเรียนรู้ใด ๆ เมื่อเปรียบเทียบกับแบบที่มีอยู่รวมถึงโมดูลทดสอบทางสถิติเพื่อการเปรียบเทียบ
DataPlot : สำหรับการสร้างภาพทางวิทยาศาสตร์การวิเคราะห์เชิงสถิติและการสร้างแบบจำลองที่ไม่ใช่เชิงเส้น ผู้ใช้ดาต้าล็อตเป้าหมายคือนักวิจัยและนักวิเคราะห์ที่เกี่ยวข้องกับคุณลักษณะการสร้างแบบจำลองการสร้างภาพการวิเคราะห์การตรวจสอบและการเพิ่มประสิทธิภาพของกระบวนการทางวิทยาศาสตร์และวิศวกรรม
Openstats : รวมถึงสถิติและการวัดเบื้องต้น, สถิติเชิงพรรณนา, การเปรียบเทียบอย่างง่าย, การวิเคราะห์ความแปรปรวน, สหสัมพันธ์, การถดถอยหลายครั้ง, อนุกรมเวลาขัดจังหวะ, สถิติหลายตัวแปร, สถิติที่ไม่ใช่พารามิเตอร์, การวัด, การควบคุมกระบวนการทางสถิติ, กระบวนการทางการเงิน
โคลินกิลเลสกล่าวถึงข้อบกพร่อง แต่ตัวเลือกที่ดีสำหรับการสุ่มตัวอย่างกิ๊บส์ ฯลฯ เป็นJAGS
หากสิ่งที่คุณต้องการคือ ARIMA คุณไม่สามารถเอาชนะX12-ARIMAซึ่งเป็นมาตรฐานทองคำในสนามและโอเพ่นซอร์ส มันไม่ได้ทำกราฟจริง (ฉันใช้ R เพื่อทำสิ่งนั้น) แต่การวินิจฉัยเป็นบทเรียนของพวกเขาเอง
ปล่อยให้ไกลออกไปเล็กน้อยเพื่อค้นพบสิ่งที่ฉันเพิ่งค้นพบและเพิ่งเริ่มเรียนรู้ ...
ADMB (AD Model Builder) ซึ่งทำโมเดลที่ไม่ใช่เชิงเส้นโดยอิงตามไลบรารี AUTODIF ด้วย MCMC และคุณสมบัติอื่น ๆ อีกสองสามตัวซึ่งจะประมวลผลและคอมไพล์โมเดลลงไปที่ปฏิบัติการ C ++ และคอมไพล์มันเป็นแอพแบบสแตนด์อโลน น่าจะเป็นวิธีที่เร็วกว่าแบบจำลองที่เทียบเท่าใน R, MATLAB และอื่น ๆโครงการ ADMB
มันเริ่มต้นและยังคงเป็นที่นิยมมากที่สุดในโลกการประมง แต่ดูน่าสนใจมากสำหรับวัตถุประสงค์อื่น ๆ มันไม่มีกราฟหรือคุณสมบัติอื่น ๆ ของ R และน่าจะใช้ร่วมกับ R
ถ้าคุณต้องการทำงานกับ Bayesian Networks ใน GUI: SamIamเป็นเครื่องมือที่ดี R มีแพ็คเกจสองสามชุดที่ทำเช่นนี้ แต่ SamIam นั้นดีมาก
GSLสำหรับผู้ที่ต้องการเขียนโปรแกรมใน C / C ++ เป็นทรัพยากรที่มีค่าเนื่องจากมีการทำกิจวัตรประจำวันสำหรับเครื่องกำเนิดไฟฟ้าแบบสุ่มพีชคณิตเชิงเส้นและอื่น ๆ ในขณะที่ GSL พร้อมใช้งานบน Linux เป็นหลักนอกจากนี้ยังมีพอร์ตสำหรับ Windows (ดู: http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_library.phpและhttp://david.geldreich.free.fr/dev.html )
ฉันสนุกกับการทำงานกับRooFitสำหรับการปรับสัญญาณและพื้นหลังอย่างเหมาะสมและTMVAสำหรับการวิเคราะห์องค์ประกอบหลักอย่างรวดเร็วและการสร้างแบบจำลองของปัญหาหลายตัวแปรด้วยเครื่องมือมาตรฐานบางอย่าง (เช่นอัลกอริทึมทางพันธุกรรมและเครือข่ายประสาทเทียม) พวกเขาทั้งสองเป็นส่วนหนึ่งของห้องสมุดROOT C ++ ซึ่งมีอคติค่อนข้างหนักต่อปัญหาฟิสิกส์ของอนุภาค
ฉันสองที่เจ เหตุใด R จึงมีค่า นี่คือรายการสั้น ๆ ของเหตุผล http://www.inside-r.org/why-use-r ยังตรวจสอบggplot2 - แพคเกจกราฟิกที่ดีมากสำหรับอาร์บางบทเรียนที่ดีที่นี่
สิ่งนี้ตรงกับขอบเขตด้านนอกของ 'การวิเคราะห์เชิงสถิติ' แต่Eureqaเป็นโปรแกรมที่เป็นมิตรกับผู้ใช้มากสำหรับความสัมพันธ์ที่ไม่เป็นเชิงเส้นของการขุดข้อมูลในข้อมูลผ่านการโปรแกรมเชิงพันธุกรรม Eureqa ไม่ได้เป็นวัตถุประสงค์ทั่วไป แต่ทำในสิ่งที่ทำได้ค่อนข้างดีและ GUI นั้นค่อนข้างใช้งานง่าย นอกจากนี้ยังสามารถใช้ประโยชน์จากพลังการประมวลผลที่มีอยู่ผ่านเซิร์ฟเวอร์ eureqa
Meta.Numericsเป็น. NET library ที่สนับสนุนการวิเคราะห์ทางสถิติได้ดี
ต่างจาก R (โคลน S) และ Octave (โคลน Matlab) แต่ไม่มี "front end" มันเป็นเหมือน GSL ซึ่งเป็นห้องสมุดที่คุณลิงค์ไปเมื่อคุณเขียนแอปพลิเคชันของคุณเองที่ต้องทำการวิเคราะห์ทางสถิติ C # และ Visual Basic เป็นภาษาการเขียนโปรแกรมทั่วไปมากกว่า C / C ++ สำหรับแอปสายธุรกิจและ Meta.Numerics มีการสนับสนุนอย่างกว้างขวางมากขึ้นสำหรับการสร้างและทดสอบทางสถิติกว่า GSL
ซอฟต์แวร์คณิตศาสตร์เชิงสัญลักษณ์สามารถรองรับสถิติได้เป็นอย่างดี นี่คือ GPL บางส่วนที่ฉันใช้เป็นครั้งคราว:
ทั้งสามอยู่ในการพัฒนาที่ใช้งานอยู่