Bir makine öğrenme problemini prototiplemek için hangi programlama dilini önerirsiniz?


12

Şu anda Octave'de çalışıyor, ancak belgelerin zayıf olması nedeniyle ilerleme çok yavaş.

Hangi dili öğrenmek ve kullanmak kolaydır ve makine öğrenimi sorunlarını çözmek için iyi belgelenmiştir? Ben küçük bir veri kümesi üzerinde prototip (binlerce örnek) arıyorum, bu yüzden hız önemli değil.

EDIT: Bir öneri motoru geliştiriyorum. Bu nedenle, Düzenli Doğrusal Regresyon, Sinir Ağları, SVN veya Ortak Filtreleme kullanmakla ilgileniyorum.


1
Bir zamanlar Octave ile de başladım, çünkü profilim matlab'a girdi (uuh bu, prof'in kütüphanesini kullanarak ders sırasında eğlenceliydi, çünkü matlab ve oktav tam olarak aynı sözdizimine sahip değildi ), ama sonra R'ye geçtim ve sadece uçurdum üstün belgeleri ve çeşitli kütüphaneleri ile.
steffen

9
Python'un elbette öğrenmesi ve okuması çok kolay, bu yüzden sanırım bir zevk meselesi. Bu bağlantıları öneriyorum: python-stat-workbench , istatistiksel-çıkarsama-programlama-dili , makine-öğrenme-kullanma-python , clojure
steffen

1
R, Python veya Matlab'ı tavsiye ederim. Ele alınamayacak kadar geniş nedenlerden dolayı, Matlab'ı düşürürüm. Bir istatistik için R ile giderdim, bir programcı için Python ile giderdim. İç döngüler için C / C ++ ile giderdim. Matlab'ın maliyetleri yeterli ölçekte herhangi bir avantajı aşıyor.
Yineleyici

1
veya
Julia'ya

Yanıtlar:


7

Kutunun dışında bir şey kullanmak istiyorsanız, Weka harika bir başlangıç ​​noktası olabilir. Hiçbir şey programlamaya gerek yoktur. Verilerinizi içe aktarır, görselleştirir ve farklı modellerle oynarsınız.

Sıradaki zincir R olacaktır. Özellikle de verilerinizi R veri yapılarına sığdırmak için munging ile ilgili bazı öğrenme eğrileri vardır, ancak bunu aştığınızda, çok fazla çaba harcamadan tüm makine öğrenme yeteneklerini sunan tonlarca kütüphaneniz vardır.

Sıradaki makine öğrenme algoritmalarını elle programlamak olacaktır. Zaten Octave kullandığınız ve alternatifler aradığınız için, belki de istediğiniz şey başka bir sistemde kod algoritmalarını kullanmak değil, sadece başkaları tarafından yazılan kütüphaneleri kullanmaktır.

Eğer R yoluna giderseniz, Luis Torgo (R ile Veri Madenciliği: Vaka Çalışmaları ile Öğrenme) kitabını çok yararlı bulabilirsiniz (açıklama: bağlantı yok). Sorununuza adapte edebileceğiniz derinlemesine vaka çalışmalarını açıklar.


15

İlgilendiğiniz algoritmaları belirtirseniz daha iyi yanıtlar alabilirsiniz. Bu tür şeyler için R kullanıyorum (makine öğrenimi değil zaman serisi ekonometrisi yapıyorum); mevcut işlevselliği burada görebilirsiniz:

http://cran.r-project.org/web/views/MachineLearning.html

ve analizi Hastie, Tibshirani ve Friedman'ın istatistiksel öğrenme Unsurlarında uygulamak için R kodu vardır :

http://www-stat.stanford.edu/~tibs/ElemStatLearn/

R'nin paketleme sistemi oldukça harika ve insanları kodlarını belgelemeye itiyor ve açık kaynak kodlu, böylece her zaman uygulamaya bakabilirsiniz. Matlab'ı birkaç yıldır kullanmadım ve çok fazla makine öğrenimi için kullanmadım - araç kutuları genellikle iyi belgeleniyor, ancak pahalı olabilir, ancak kullanıcının katkıda bulunduğu kod diğer belgeler kadar zayıf bir şekilde belgelenecek.


11

Makine öğrenimi çevrimiçi kursunda, Andrew Ng Octave / Matlab kullanmanızı önerir.

Bu kursun bir sonraki baskısına kaydolmanızı tavsiye ederim: gerçekten yararlı ve Octave ve farklı makine öğrenme algoritmaları hakkında birçok şey öğreneceksiniz.

DÜZENLEME 1 : R'de çalışmayı tercih eden diğer insanlarla hemfikirim. Bununla birlikte, makine öğrenimi sorunlarını çözerken, hesaplamalarınızın çoğu matris biçiminde olacak ve @Wayne, Matlab veya Octave dillerinin işaret ettiği gibi çok popüler güçlerinden dolayı. Diğer öğrenciler tarafından önerilen makine öğrenimi kurs alıştırmalarının çözümlerine bir göz atmak isteyebilirsiniz; elbette onlardan bazı şeyler öğrenebilirsiniz:

Gkokaisel Github

Merwan Github


1
Ben bu kursa katıldım! Sorun şu ki, dersin dışındaki en basit şeyleri yapmak işe yaramıyor! Belgeler işe yaramaz.
B Seven

3
Matlab'ın (dolayısıyla Octave) korkunç bir programlama dili olduğunu söylemeliyim. Mühendislik ve makine öğrenimi alanlarında çok popülerdir, ancak bunun nedeni, modern bir programlama dili olması nedeniyle değil, okullarda kullanılmasıdır. Bununla birlikte, onu kullanan makine öğrenimi metinleriyle karşılaşmanız, R veya Python'u kullanmanızdan daha olasıdır.
Wayne

1
Tüm işlerimi MATLAB'da yapıyorum, dünyadaki en iyi programlama dili değil (R'nin daha da kötü olduğunu söyleyebilirim; o), ancak makine öğrenimi araştırması için çok iyi olduğu için sebat etmeye değer. Sinir ağları için NETLAB kütüphanesini arayın ve ayrıca GPML kütüphanesi ile Gauss Süreci'ni araştırın, her ikisi de mükemmel kit parçalarıdır ve IIRC her ikisi de oktav ile çalışır. Düzenli doğrusal regresyon için, MATLAB'ın sadece bir satırıdır, doğrusal olmayan modeller için, GKM araç kutusu vardır, theoval.cmp.uea.ac.uk/projects/gkm (üzgünüm henüz mnual yok).
Dikran Marsupial

1
Matris hesaplamaları R'de de yapılabilir, ancak gösterim örneğin t(A) %*% BMatlab'dan daha az sezgiseldir.
Itamar

1
C #, Java, Python ve Perl gibi her üst düzey dil için iyi matris kütüphaneleri yok mu?
B Seven

10

Scikit-öğrenmek (şimdi sklearn) hedeflenen uygulamalar (L1 / L2 ceza regresyon SVM, vb) de dahil olmak üzere, (veri, modeller ve sonuçları kullanım için hızlı ve iyi tasarlanmış sınıfları) tarif edilen kriterlerin çeşitli karşılamalıdır. Zengin bir belge seti ve birçok örnekle birlikte gelir . Ayrıca JMLR'de yayınlanan bir makalede açıklamasına bakın .

Python'daki alternatif bir çerçeve, hafif bir GUI aracılığıyla veya doğrudan komut satırında kullanılabilen Turuncu'dur . İşbirliğine dayalı filtreleme için pyrsvd ilginç olabilir , ancak hiç denemedim. Bununla birlikte, Apache Mahout kesinlikle işbirlikçi filtreleme için kullanılabilir .


1

Endüstriyel bir prototipe (yani saf araştırma için değil, gerçek insanlar tarafından kullanılmak üzere yapılan bir şey) atıfta bulunuyorsanız, şu an için tek yol python'dur.

Matlab, Octave veya R kullanıyorsanız, ML araştırması için kullanımı kolay bir ortam elde edersiniz, ancak modeli bir kullanıcı arayüzü veya bir web hizmeti ile işe koymak bir kabus olacaktır.

Python'da hem kapsamlı bir bilimsel ekosisteme ( ML için sklearn, veri kaydırma için pandalar, görselleştirme için matplotlib / seaborn) hem de bir uygulama ekosistemine ( django ve geri kalan çerçevesini düşünün) sahip olduğumuz için şanslıyız .

Python öğrenmesi kolay bir dildir. Gelecekte Javascript ekosisteminin python olarak bilimsel olarak sağlam hale geleceğini umuyorum, ancak bazı harika projelere rağmen yakında olacağını görmüyorum.

Kendinizi bir kutuya sarmayın, genel bir dil kullanın!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.