Một số dự án phân tích thống kê có giá trị hiện có là gì?
Chỉnh sửa: như được chỉ ra bởi Sharpie, có giá trị có thể có nghĩa là giúp bạn hoàn thành công việc nhanh hơn hoặc rẻ hơn.
Một số dự án phân tích thống kê có giá trị hiện có là gì?
Chỉnh sửa: như được chỉ ra bởi Sharpie, có giá trị có thể có nghĩa là giúp bạn hoàn thành công việc nhanh hơn hoặc rẻ hơn.
Câu trả lời:
Dự án R
R có giá trị và có ý nghĩa bởi vì đây là sự thay thế Nguồn mở được chấp nhận rộng rãi đầu tiên cho các gói lớn. Đó là sự trưởng thành, được hỗ trợ tốt và là một tiêu chuẩn trong nhiều cộng đồng khoa học.
Điều này có thể bị bỏ rơi vào quên lãng, nhưng tôi vui vẻ sử dụng bản sao Matlab Octave trong nhiều năm. Có những thư viện khá tốt trong việc rèn quãng tám để tạo ra các biến ngẫu nhiên từ các phân phối khác nhau, kiểm tra thống kê, v.v., mặc dù rõ ràng nó bị lấn át bởi R. Một lợi thế có thể có của R là Matlab / octave là ngôn ngữ của các nhà phân tích số, nhà nghiên cứu tối ưu hóa và một số tập hợp con của các nhà toán học ứng dụng (ít nhất là khi tôi còn đi học), trong khi không ai trong khoa của tôi, theo hiểu biết của tôi, đã sử dụng R. sự mất mát của tôi. học cả nếu có thể!
Hai dự án nảy ra trong đầu:
Weka để khai thác dữ liệu - chứa nhiều thuật toán phân loại và phân cụm trong Java.
ggobi "là một chương trình trực quan hóa nguồn mở để khám phá dữ liệu chiều cao."
Mat Kelcey có một đoạn giới thiệu dài 5 phút để ggobi .
Incanter là một nền tảng giống như R, dựa trên Clojure (môi trường + thư viện) để tính toán và đồ họa thống kê.
Cũng có những dự án do FSF khởi xướng hoặc phân phối lại theo Giấy phép Công cộng GNU, như:
Thậm chí có những ứng dụng được phát hành giống như một phần mềm đồng hành cho sách giáo khoa, như JMulTi , nhưng vẫn được ít người sử dụng.
Thỉnh thoảng tôi vẫn chơi với xlispstat , mặc dù Lisp đã được thay thế phần lớn bởi R (xem tổng quan của Jan de Leeuw về Lisp so với R trong Tạp chí Phần mềm Thống kê ). Thật thú vị, một trong những người đồng sáng lập ngôn ngữ R, Ross Ihaka, đã lập luận ngược lại rằng tương lai của phần mềm thống kê là ... Lisp: Back to the Future: Lisp làm cơ sở cho hệ thống tính toán thống kê . @Alex đã chỉ ra môi trường thống kê dựa trên Clojure Incanter , vì vậy có lẽ chúng ta sẽ thấy sự hồi sinh của phần mềm dựa trên Lisp trong tương lai gần? :-)
RapidMiner để khai thác dữ liệu và văn bản
Trước hết, để tôi nói với bạn rằng theo tôi, công cụ tốt nhất từ trước đến nay là R, nơi có hàng tấn thư viện và tiện ích tôi sẽ không liệt kê ở đây.
Hãy để tôi mở rộng cuộc thảo luận về weka
Có một thư viện cho R, được gọi là Rweka, bạn có thể dễ dàng cài đặt trong R và sử dụng nhiều chức năng từ chương trình tuyệt vời này cùng với các chức năng trong R, hãy để tôi đưa cho bạn một ví dụ mã để thực hiện một cây quyết định đơn giản đọc từ cơ sở dữ liệu tiêu chuẩn đi kèm với gói này (việc vẽ cây kết quả cũng rất dễ dàng nhưng tôi sẽ cho phép bạn thực hiện nghiên cứu về cách thực hiện, trong tài liệu Rweka:
library(RWeka)
iris <- read.arff(system.file("arff", "iris.arff", package = "RWeka"))
classifier <- IBk(class ~., data = iris)
summary(classifier)
Ngoài ra còn có một số thư viện python để làm điều này (python rất rất dễ học)
Đầu tiên hãy để tôi liệt kê các gói bạn có thể sử dụng, tôi sẽ không đi chi tiết về chúng; Weka (vâng, bạn có một thư viện cho python), NLKT (gói mã nguồn mở nổi tiếng nhất để soạn thảo văn bản bên cạnh datamining), statPy , bệnh và scipy.
Ngoài ra còn có màu cam rất xuất sắc (tôi cũng sẽ nói về nó sau), đây là một ví dụ mã để thực hiện một cây từ dữ liệu trong bảng cmpart1, cũng thực hiện xác thực 10 lần, bạn cũng có thể vẽ biểu đồ cây
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
Để kết thúc với một số gói khác tôi đã sử dụng và thấy thú vị
Orange : trực quan hóa và phân tích dữ liệu cho người mới và các chuyên gia. Khai thác dữ liệu thông qua lập trình trực quan hoặc kịch bản Python. Linh kiện cho máy học. Phần mở rộng cho tin sinh học và khai thác văn bản. (Cá nhân tôi khuyên bạn nên điều này, tôi đã sử dụng nó rất nhiều tích hợp nó trong python và nó rất xuất sắc) Tôi có thể gửi cho bạn một số mã python nếu bạn muốn tôi.
ROSETTA : bộ công cụ để phân tích dữ liệu dạng bảng trong khuôn khổ của lý thuyết tập thô. ROSETTA được thiết kế để hỗ trợ quá trình khám phá kiến thức và khai thác dữ liệu tổng thể: Từ duyệt và xử lý dữ liệu ban đầu, thông qua tính toán các tập thuộc tính tối thiểu và tạo quy tắc if-then hoặc mô tả, đến xác thực và phân tích quy tắc hoặc mẫu cảm ứng (Điều này tôi cũng rất thích sử dụng)
KEEL : đánh giá các thuật toán tiến hóa cho các vấn đề Khai thác dữ liệu bao gồm hồi quy, phân loại, phân cụm, khai thác mẫu, v.v. Nó cho phép chúng tôi thực hiện phân tích đầy đủ bất kỳ mô hình học tập nào so với mô hình hiện có, bao gồm cả mô-đun kiểm tra thống kê để so sánh.
DataPlot : để trực quan hóa khoa học, phân tích thống kê và mô hình phi tuyến tính. Người dùng Dataplot mục tiêu là nhà nghiên cứu và phân tích tham gia vào việc mô tả đặc tính, mô hình hóa, trực quan hóa, phân tích, giám sát và tối ưu hóa các quy trình khoa học và kỹ thuật.
Openstats : Bao gồm một thống kê và thống kê đo lường, thống kê mô tả, so sánh đơn giản, phân tích phương sai, tương quan, đa hồi quy, chuỗi thời gian bị gián đoạn, thống kê đa biến, thống kê không tham số, đo lường, kiểm soát quá trình thống kê, quy trình tài chính, mô phỏng
Colin Gillespie đã đề cập đến BUGS, nhưng một lựa chọn tốt hơn cho Gibbs Sampling, v.v., là JAGS .
Nếu tất cả những gì bạn muốn làm là ARIMA, bạn không thể đánh bại X12-ARIMA , đây là một tiêu chuẩn vàng trong lĩnh vực và nguồn mở. Nó không làm đồ thị thực sự (tôi sử dụng R để làm điều đó), nhưng chẩn đoán là một bài học của riêng họ.
Mạo hiểm một chút xa hơn đến một cái gì đó tôi mới phát hiện ra và mới bắt đầu tìm hiểu ...
ADMB (AD Model Builder), mô hình phi tuyến tính dựa trên thư viện AUTODIF, với MCMC và một vài tính năng khác được đưa vào. Nó xử lý và biên dịch mô hình thành một tệp thực thi C ++ và biên dịch nó thành một ứng dụng độc lập, đó là được cho là nhanh hơn các mô hình tương đương được triển khai trong R, MATLAB, v.v. Dự án ADMB
Nó bắt đầu và vẫn còn phổ biến nhất trong thế giới nghề cá, nhưng trông khá thú vị cho các mục đích khác. Nó không có đồ thị hoặc các tính năng khác của R, và rất có thể sẽ được sử dụng cùng với R.
Nếu bạn muốn làm việc với Bayesian Networks trong GUI: SamIam là một công cụ hay. R có một vài gói cũng làm điều này, nhưng SamIam rất đẹp.
GSL cho những ai muốn lập trình trong C / C ++ là một tài nguyên quý giá vì nó cung cấp một số thói quen cho các trình tạo ngẫu nhiên, đại số tuyến tính, v.v. Trong khi GSL chủ yếu có sẵn cho Linux, cũng có các cổng cho Windows. (Xem: http://gladman.plushost.co.uk/oldsite/computing/gnu_scientific_l Library.php và http://david.geldreich.free.fr/dev.html )
Tôi thực sự thích làm việc với RooFit để dễ dàng điều chỉnh phân phối tín hiệu và nền phù hợp và TMVA để phân tích thành phần chính nhanh và mô hình hóa các vấn đề đa biến với một số công cụ tiêu chuẩn (như thuật toán di truyền và mạng thần kinh, cũng như BDT). Cả hai đều là một phần của các thư viện ROOT C ++ có sự thiên vị khá nặng nề đối với các vấn đề vật lý hạt.
Một số chi tiết khác đã được đề cập:
Và từ góc độ không gian:
Tôi thứ hai đó Jay. Tại sao R có giá trị? Đây là một danh sách ngắn các lý do. http://www.inside-r.org/why-use-r . Ngoài ra hãy xem ggplot2 - một gói đồ họa rất đẹp cho R. Một số hướng dẫn hay ở đây .
Điều này rơi vào giới hạn bên ngoài của 'phân tích thống kê', nhưng Eureqa là một chương trình rất thân thiện với người dùng cho các mối quan hệ phi tuyến khai thác dữ liệu trong dữ liệu thông qua lập trình di truyền. Eureqa không phải là mục đích chung, nhưng nó thực hiện những gì nó làm khá tốt và GUI khá trực quan. Nó cũng có thể tận dụng sức mạnh tính toán có sẵn thông qua máy chủ eureqa.
Meta.Numerics là một thư viện .NET hỗ trợ tốt cho phân tích thống kê.
Không giống như R (bản sao S) và Octave (bản sao Matlab), nó không có "mặt trước". Nó giống như GSL, ở chỗ nó là một thư viện mà bạn liên kết đến khi bạn đang viết ứng dụng của riêng bạn cần thực hiện phân tích thống kê. C # và Visual Basic là các ngôn ngữ lập trình phổ biến hơn C / C ++ cho các ứng dụng dành cho doanh nghiệp và Meta.Numerics hỗ trợ rộng rãi hơn cho các cấu trúc và kiểm tra thống kê so với GSL.
Phần mềm toán học tượng trưng cũng có thể là một hỗ trợ tốt cho thống kê. Thỉnh thoảng có một vài GPL tôi sử dụng:
Cả ba đều đang phát triển tích cực.