R'den Python'a geçiş buna değer mi? [kapalı]


31

R öğretildiğimiz 1 yıllık bir Data Science master programı bitirdim. Python'un daha popüler olduğunu ve AI'da daha büyük bir topluluğa sahip olduğunu buldum.

Benim pozisyonumdaki birinin Python'a geçiş yapması değerli mi ve eğer öyleyse, neden? Python'un R'de mevcut olmayan oyun değiştirme özellikleri var mı, yoksa sadece bir topluluk meselesi mi?


2
Bir devlet üniversitesinde, özel bir üniversitede veya kurumsal eğitim sisteminde bir kurs muydu?
Manuel Rodriguez

12
Sen olamaz geçiş Python kendinizi. Daha önce R'de yazdığınız ve Python'a taşımak istediğiniz bir projeden bahsetmiyorsunuz, sadece Python'u (R'yi unutmamak) öğrenmekle ilgili sorularınız var. Python'u öğrenmeye değer mi? Nowdays o neredeyse imkansızdır değil ... Eğer bir bilgisayarla veri işleme ile ilgili bir şey çalışıyorsanız Python öğrenmek
lvella

1
Bunun neden görüşe dayalı olarak kapanmadığından emin değilim, ama memnunum.
Evorlor

1
@Evorlor Cevabımı gör, bu sorunun gerçekten de temelde kanaat temelli cevaplara yol açacağını belirtir . Ayrıca, bir cevap vermeme rağmen, bu soruyu öncelikle görüş temelli olarak kapatmak için oy kullandım. Bu web sitesinde, bu tür bir çok soru var. Bunun iyi bir şey olup olmadığından emin değilim, ancak bu sorunun son cevapları birçok insan için faydalı oldu.
nbro

2
Bu nasıl kapanmaz? Bu kanonik görüşe dayalı bir sorudur.
spacetyper

Yanıtlar:


60

Sorunuzu tekrarlamak istiyorum.

Geçiş yapmayı düşünmeyin, eklemeyi düşünün.

Veri biliminde, python veya r ile çok ileri gidebilirsiniz, ancak her ikisiyle de en uzağa gideceksiniz.

Python ve r, reticulatepaket sayesinde çok iyi bir şekilde entegre olur . Verileri sık sık toplarım çünkü daha kolay çünkü benim için daha kolay, üstün hızdan faydalanmak ve sonuçları ggplotbir dizüstü bilgisayarda güzelce görüntülemek için python'da bir model eğitin !

Zaten onu terk etmenin bir anlamı olmadığını biliyorsan, senin için mantıklı ve kolay olduğu yerlerde kullan. Fakat birçok kullanım için python eklemek% 100 iyi bir fikirdir.

Her ikisinde de kendinizi rahat hissettiğinizde, en sevdiğiniz dilin hakimiyetine en uygun olan bir iş akışına sahip olacaksınız.


Sizin bakış açınıza tamamen katılıyorum. Sadece ekleyerek R beceri setinizi bırakmamaya çalışın.
Jens Kohl

3
için oy reticulate. rstudio pitonu denetleme konusunda bazı desteğe sahiptir ve daha fazlasını ekleme sürecindedir
blues

Her ikisini de kullanmanın tek problemi, diğerlerini aşağı havzada bırakmanızdır. R ve Python'a da bağlıdır. Beceri setinize "ekleme" konusunda hemfikir olsam da - senaryo yazarken hala saf şeyler tutardım!
PascalVKooten

reticulateR'nin Python kullanmasına izin verir; Benzer şekilde, rpy2Python'un R kullanmasına izin verir. Dilleri benzer amaçlarla programlamak için birbirleriyle konuşmanın bir yolu vardır.
JG

Kesinlikle. Aletinizi takas etmeyin, ancak kemerinize bir tane ekleyin. Artık daha fazla sorunu daha iyi çözebilmenizi sağlayan daha fazla aracınız var.
Mast

28

Tabii ki, bu tür sorular da öncelikle görüşe dayalı cevaplara yol açacaktır. Bununla birlikte, aşağıda listelenmeye çalışacağım makine öğrenmesi, istatistik ve veri analizi görevleriyle ilgili olarak her dilin güçlü ve zayıf yönlerini belirlemek mümkündür.

R,

Güçlü

  • O sağlar, yani R, tasarlanmış ve istatistikçiler ve veri analistler için geliştirilmiştir dışı-box (olduğunu, bunlar dilin kendisinin bir parçası olan), özellikleri ve sürece Python bulunmayan istatistikçiler, için tesisler ilgili bir paket kurun. Örneğin, ünlü Python pandaspaketini yüklemediğiniz sürece Python'un sağlamadığı veri çerçevesi . Matrisler, vektörler vb. Gibi başka örnekler de vardır. Python'da, benzer veri yapıları da vardır, ancak bunlar daha geneldir, bu yüzden özellikle istatistikçiler için hedeflenmemiştir.

  • Çok fazla istatistiksel kitaplık var.

zayıflık

piton

Güçlü

  • Python'a Google ve Facebook dahil pek çok kişi ve şirket yatırım yapıyor. Örneğin, TensorFlow ve PyTorch'un ana programlama dili (yaygın olarak kullanılan iki makine öğrenme çerçevesi) Python'dur. Bu nedenle, Python'un makine öğrenmesinde en az 5-10 yıl daha yaygın olarak kullanılmaya devam etmesi pek olası değildir.

  • Python topluluğu muhtemelen R topluluğundan çok daha büyüktür. Aslında, örneğin, Tiobe'nin dizinine bakarsanız , Python 3., R ise 20. sırada yer alıyor.

  • Python ayrıca istatistikler veya makine öğrenen topluluklar dışında da yaygın olarak kullanılmaktadır. Örneğin, web geliştirme için kullanılır (bakınız örneğin Python çerçeveleri Django veya Flask).

  • Çok sayıda makine öğrenme kütüphanesi var (örneğin, TensorFlow ve PyTorch).

zayıflık

  • Uygun bir paket kurmazsanız, R'nin sağladığı istatistiksel ve veri analizi işlevlerini sağlamaz. Bu, felsefi bakış açınıza bağlı olarak bir zayıflık veya güç olabilir.

Bu dillerin başka olası avantajları ve dezavantajları vardır. Örneğin, her iki dil de dinamiktir. Ancak, bu özellik hem avantaj hem de dezavantaj olabilir (ve kesinlikle makine öğrenmesi veya istatistikle ilgili değildir), bu yüzden yukarıda listelemedim. Belirgin nedenlerden ötürü kod okunabilirliği ve öğrenme eğrisi gibi düşünülmüş dil özelliklerinden bahsetmekten kaçındım (örneğin, tüm insanlar aynı programlama deneyimine sahip değil).

Sonuç

Makine öğrenimi veya istatistik eğitimi alıyorsanız Python kesinlikle öğrenmeye değer. Ancak, artık R kullanmayacağınız anlamına gelmez. R, bazı görevler için hala hantal olabilir.


3
Görünüşe göre "kutunun dışında" özellik seti ilgisiz. İlgili olan, ne istersen yapan paketlerin mevcudiyeti, değil mi?
Dean MacGregor

1
@DeanMacGregor İnternete erişiminiz yoksa, bu özellik alakalı! Ayrıca, bir programlama dili zaten kutudan bir özellik sağlıyorsa, onu aramak için zaman kaybetmenize gerek yoktur.
nbro

Python'un 'batarya dahil' olma konusunda yoğun bir istila olduğu göz önüne alındığında, zayıflığı sıkça karşılaştığınız biri değildir. Kullanılan Python yüklemeleri varsa Özellikle de yapmak istatistiki paketler dahil ettik. Özellikle veri bilimi için, Anaconda oldukça popülerdir ve acil endişenizi çözer.
Mast

6

Bu seçeneğe sahip değildim çünkü R'den Python'a geçmek zorunda kaldım:

Ortamınıza bağlıdır : Bir mühendis departmanına yerleştirildiğinizde, çalışan teknik grup veya Python benzeri bir şey daha uygundur.

Bilim adamları ve özellikle istatistikçiler tarafından kuşatıldığınızda , R ile kalın.

Not: R, python başlığı altında uygulanmasına rağmen, keras ve tensorflow da sunar. Sadece çok gelişmiş şeyler Python'a ihtiyacınız olacak. Python'a gittikçe daha fazla alışıyor olmama rağmen, R'deki synthax daha kolay . Her paketin kendine ait olmasına rağmen, Python olmasa da bir şekilde tutarlı. Ve ggplot çok güçlü. Python'un bir klonu (plotnini) vardır, ancak birkaç (önemli) özelliği yoktur. Prensipte R'de olduğu gibi yapabilirsiniz, ancak özellikle görselleştirme ve veri silme R'de çok daha kolaydır. Bu nedenle, en ünlü Python kütüphanesi pandalar R'nin bir klonudur .

PSS: Gelişmiş istatistikler kesinlikle R.'yi hedefler. Python, bir veri bilimcisi için birçok günlük araç ve yöntem sunar, ancak R'nin sağladığı > 13,000 paketin hiçbirine ulaşamaz . Örneğin, ters bir regresyon yapmak zorunda kaldım ve python bunu önermiyor. R'de birkaç güven testi ile doğrusal mı yoksa doğrusal mı olmadığını seçebilirsiniz. Aynısı karma modellere gider: Python'da uygulanır, ancak o kadar basit ki, bunun birileri için nasıl yeterli olabileceğini anlayamıyorum.


4

Evet derim. Python çoğu görev için R'den daha iyidir, fakat R'nin nişi vardır ve hala birçok durumda kullanmak istersiniz.

Ek olarak, ikinci bir dil öğrenmek, programlama becerilerinizi geliştirecektir.

R vs Python'un güçlü yönlerine dair kendi bakış açım, tabloları veya çizelgeleri içeren küçük, tek amaçlı bir program veya aynı damardaki keşif çalışmaları için R'yi tercih edeceğim. Python'u her şey için tercih ederim.

  • R masa ezme için gerçekten iyidir. Belirli bir programın yapacaklarının çoğu, bazı tabloları farklı şekillerde düzeltmekse, R seçilecek şeydir. Python'un bunun için araçları var, ancak R bunun için tasarlandı ve daha iyi yaptı.
  • Ne zaman bir çizelge hazırlamanız gerektiğinde R'ye geçmeye değer , çünkü ggplot2 API kullanılabilirliğinin bir başyapıtı ve matplotlib bir tarama korkusudur .
  • Python genel amaçlı programlama için iyi tasarlanmıştır. Çok iyi tasarlanmış bir standart veri yapıları, standart kütüphaneler ve kontrol akış deyimleri kümesine sahiptir.
  • R genel amaçlı programlama için uygun değil. Ağaç yapılı veya grafik yapılı verileri iyi işlemez. Derhal elverişli olan bazı kurallara (ana alanınıza bakma ve bunları değiştirme gibi) hemen elverişlidir, ancak kullanıldığında büyümesi, değiştirilmesi ya da oluşturulması zor olan programlara yol açar.
  • R'de ayrıca bazı kötü şeyler var. Bunlar çoğunlukla üç farklı nesne sistemi gibi tarihi kalıntılardır.

Son noktada daha fazla ayrıntıya girmek için: iyi bir bilgisayar programı yapmak kendi tuğlalarınızı (fonksiyonlar ve modüller) yaptığınız yerde lego'dur.

Programlar genellikle özgün tasarımlarından sonra değiştirilir ve yeniden düzenlenir. Bunları oluşturdukça, hangi parçaların yeniden kullanılabileceğini düşünmek ve bu parçaları diğer tuğlalara bağlamalarını sağlayacak şekilde inşa etmek faydalıdır.

R, tüm tuğlaları birlikte eritmeye teşvik eder.


1

Diğerlerinin dediği gibi, bu bir "anahtar" değil. Ama cephanene Python eklemeye değer mi? Kesinlikle söyleyebilirim. Veri biliminde, Python popülerdir ve R popülerleşirken, R popülerleşiyor. Makine öğrenimi ve sinir ağları alanlarında, Python'un şimdi ana dil olduğunu söyleyebilirim. R'nin kullanım açısından gerçekten bu kadar yaklaştığını sanmıyorum. Tüm bunların nedeni genellik. Python genel bir programlama dili olarak tasarlanmıştır ve her türlü görevi kolayca yazmanıza olanak tanır. Düzgün bir şekilde yapılandırılmış istatistiksel dünyada kesinlikle kalıyorsanız, R mükemmeldir, ancak AI ile sık sık yeni, çeşitli şeyler yapmak zorunda kalırsınız ve R'nin Python'u yenebileceğini düşünmüyorum. Ve bundan dolayı,


0

Bu tamamen benim kişisel görüşüm.

Ofisimde (bir inşaat sahasında) "Her görev için doğru bir araç var" olduğunu okudum.

Bir programcı olarak çeşitli görevlerle karşılaşmamı bekliyorum. Mümkün olduğu kadar, "alabileceğim veya yatırım yapabileceğim" kadar çok araç istiyorum. Bir gün bir araç çözmeme yardımcı olacak, başka bir gün başka bir araç. R (istatistik için) ve Python (genel olarak) kesinlikle yanımda istediğim iki araç ve benim için yatırım yapmaya değer olduğunu düşünüyorum.

Geçiş söz konusu olduğunda, bildiğim en verimli aracı kullanacağım (verimliliğin müşterinin gereksinimi, zaman ve maliyet yatırımı ve kodlama kolaylığı ile ölçüldüğü yerlerde). Bildiğim daha fazla araç, neşeli! Elbette bunun pratik bir sınırı var.

Bütün bunlar benim kişisel görüşüm ve mutlaka doğru değil.


0

R ile veri bilimine 1 yıl yatırım yaptınız ve R ortamına gömülmüş gibi görünüyorsunuz, ancak veri bilimi için python'u keşfetmek istiyorsunuz.

İlk önce pythonun temellerini, listelerin ve bağlantıların nasıl çalıştığını ve sınıfların ve nesnelerin nasıl çalıştığını öğrenin.

Öyleyse ellerini numpy matplotlib pandalar gibi bazı kütüphanelerle kirlet. Tensorflow veya keras'ı öğrenin ve ardından veri bilimine gidin.


-1

İki tavşan kovalayan kişi ikisini de yakalamaz

Ve evet, Python daha popüler. Her ikisinde de çalışıyorum ama, iş konuşarak, Python'da bir iş bulmak R'den daha kolay.

Yani, şunları yapabilirsiniz:

  • Python'u seçin çünkü daha popüler. Ancak, sıfırdan başlamanız gerekir.

Veya

  • Ne de olsa R'de kalın, R'de bir yıllık eğitim hakkınız var. Ama popüler değil.

Ek bir programlama dili öğrenmenin bir şekilde sizi daha da kötüleştireceği önerisi saçma. Ek programlama dilleri, özellikle de bilmediğiniz dilleri öğrenmek, her dilde bir programcı olarak yeteneklerinizi her zaman geliştirecektir.
Da Silva,
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.