대답 1:

딥 러닝의 경우 파이썬이 왕입니다. 다른 프로그래밍 언어는 가깝지 않습니다.

"정규"머신 러닝의 차이점은 다음과 같습니다. R은 CRAN 생태계에 많은 ML 패키지를 가지고 있으며, 파이썬이 제공 할 수있는 것보다 훨씬 많습니다. 그들 중 일부는 정말 좋고 일부는 그렇게 크지 않습니다. 파이썬은 기본적으로 하나의 심각한 ML 패키지를 가지고 있으며, 그것은 scikit-learn이지만, 제 생각에는 현존하는 최고의 머신 러닝 라이브러리입니다.

R의 주요 장점은 ML 패키지 자체는 아니지만 ML 프로젝트에 매우 유용한 모든 과학 패키지입니다. 예를 들어 시계열 분석 및 모든 종류의 통계 계산 용 패키지. R이 빛나는 곳입니다.

반면에 분석 솔루션을 프로덕션에 배포하려는 경우 Python이 좋습니다. R과는 달리 범용 프로그래밍 언어이며 장점이 있습니다.


대답 2:

전제 : 이것은 전형적인 Quora 질문입니다. 매우 주관적이고 다소 양극화됩니다. a) 나는 upvoted 답변 중 일부가 실제로 잘못되었거나 날짜가 있다고 생각합니다 .b)이 두 언어를 한동안 사용했습니다 (2000 년 이후 R, 2005 년 이후 Python). 언어의 차이점이 무엇인지, 더 나은 것이 아닌지에 대답하는 데 도움이 될 수있는 역사적 관점 (R에 대한 칭찬은 다른 Quora가 있습니다).

유사점은 무엇입니까?

차이점보다 더 많은 길.

  1. 둘 다 어느 정도까지는 범용 언어입니다. R은 DSL이 아니며 동시에 파이썬은 큰 응용 프로그램을 구축하기위한 것이 아닙니다. 두 언어 모두 동적이고 유연하며 다소 느립니다 (R은 아래 설명 된 이유로 느려집니다). 둘 다 큰 생태계와 큰 사용자 기반을 가지고 있습니다 시간이 지남에 따라 Machine Learning과 관련하여 둘 다 주로 인터페이스 언어가되었습니다. 벡터화되지 않은 기본 작업을 수행하기에는 너무 느리거나 빠른 언어로 전환하기가 너무 어렵습니다. 그것들은 병렬 처리를 위해 설계되지 않았습니다. 다른 한편으로는 DSL을 포함 할 수있는 큰 라이브러리를 스크립팅하고 호출하는 데 적합합니다. 이 단계에서, 그들 사이의 차이는 약간 적습니다. TensorFlow / Keras; Spark; H20; Stan; 모든 가장 일반적인 통계 학습 방법을 지원합니다.

계산은 라이브러리에 의해 수행되고 두 언어 모두 값을 기준으로 데이터를 전달하기 때문에 두 언어 간의 성능 차이는 미미합니다.

차이점은 무엇입니까?

  1. 큰 숫자 데이터 세트에서 필자는 파이썬이 더 빠르고 유연하다는 인상을 받았습니다. 긴 / 짧은 수레를 선택하고 정확성을 위해 스토리지를 교환 할 수 있습니다. 그리고 파이썬에는 중간 규모의 데이터 관리를위한 더 많은 라이브러리가 있습니다 (pytable, dask). 이것들은 편리 할 수 ​​있습니다. R에서는 코어 외부의 대용량 데이터를 처리 할 때 표준 DBMS (pPostgres, MS 서버, R과 기본 통합, Redshift)를 사용했습니다. 보너스로 R의 dplyr은 이러한 데이터베이스에 대한 훌륭하고 쉬운 인터페이스를 제공합니다. Cython은 C와 비교할 수있는 속도를 얻는 가장 일반적인 방법이며 Numba가 그 뒤를 따릅니다. R.Python에는 머신 학습자가 사용하는 두 가지 유비쿼터스 모 놀리 식 라이브러리가 있습니다. 데이터 녹이기를위한 Pandas와 모델링을위한 Scikit-learn이 있습니다. 반대로 R에는 더 작은 특수 라이브러리가 있으며 반대로 시각화를 위해 R에는 라이브러리가 거의 없으며 (ggplot2, ggvis), 파이썬에는 많은 수가 있습니다 (matplotlib, seaborn, vincent, altair, bokeh…). 그러나 대부분의 사람들은 Hadley Wickham이 기본적으로 두 번째 시도에서 R을 시각화했기 때문에 R이 시각화에 더 좋다고 동의합니다. 파이썬은 약간 유감스러운 상태입니다 .R 커뮤니티는 Rstudio (대부분)와 다른 모든 두 가지 개발 환경에서 통합 된 것 같습니다. 파이썬에는 더 많은 옵션이 있지만 개발자가 주로 ipython, pycharm 및 spyder를 사용한다는 인상을 받았습니다. 개인적으로 Rstudio는 모든 언어에서 탁월한 IDE라고 생각합니다. 깔끔한 차별화 요소입니다. tidyverse는 동시에 a) 언어를 확장하는 데이터 라이브러리입니다. b) "데이터 분석 철학"과 우수한 프로그래밍 실습을 장려합니다. 다른 언어로 이식 될 수는 있지만 매우 독특한 R입니다. 많은 사람들 (포함)은 생각, 데이터 및 분석을 구성하는 좋은 방법을 찾습니다. 파이썬에는 이런 종류의 것이 없습니다. 일반적으로 R 코드와 Python 코드의 차이점은 전자는 함수와 함수형 프로그래밍으로 구성되는 반면 후자는 객체를 훨씬 더 자주 사용한다는 것입니다. 아직도, 나는 내 코드에서 pytoolz (좋은 기능 라이브러리)를 사용하기에는 너무 이질적이라는 것을 알았습니다. 당신이 보는 대부분의 코드에는 객체 인스턴스와 긴 메소드 체인이 있습니다.

그렇다면 요즘 깊은 인기 형용사는 무엇입니까? 나는 그들이 언어의 기원을 통해 볼 수 있다고 생각합니다. R은 대화식 데이터 분석을 위해 설계되었습니다. 디자이너와 초기 기고자 (Chambers, Ihaka, Gentleman, Tierney)는 기능 프로그래밍 (예 : Luke Tierney의 XLISP-STAT On Abandoning XLISP-STAT 읽기)에 집중했으며 Scheme에서 언어의 의미론을 모델링하면서 구문의 일부를 빌 렸습니다. APL. 또한 대화 형 분석이 가능한 생산성을 높이기 위해 유형 변환 및 승격에 대한 기본값을 설정하도록 신중하게 결정했습니다. 처음부터 수치 벡터에 대한 대수 연산은 계산 속도가 느려지면서 NaN, NA 및 Inf로 확장되었습니다. R의 어휘 범위 지정 및 메타 프로그래밍은 매우 유연하여 비표준 평가가 가능합니다 (데이터 분석에 매우 편리함).

반면 파이썬은 반 로섬이 80 년대에 일한 언어 인 ABC에 기반을두고 있습니다. Python의 초기 목표는 교육을 위해 잘 설계된 언어가되었고, DARPA 이니셔티브 CP4E (모두 컴퓨터 프로그래밍)를 통해 대학생들에게 Python을 통한 프로그래밍을 소개하는 것이 초기 언어였습니다. 귀도는 명료성과 우수한 디자인이 항상 가장 중요했습니다. 예를 들어 그가 함수형 프로그래밍을 싫어한다고 생각하지는 않지만 람다, 맵 및 필터가 파이썬에서 존재하는 것을 싫어합니다. 사람들이 종종 파이썬을 수치 컴퓨팅에 연관시키는 경우에도, 이는 다소 역사적인 사고, 결함이있는 오픈 소스 대안 (예 : 옥타브)의 부산물 및 Jim Hugunin 및 Travis Oliphant와 같은 핵심 인물의 존재로 인해 발생합니다.

이 뿌리는 오늘날에도 여전히 나타납니다. R은 아마도 가장 완벽하게 통합되고 일관된 툴체인과 철학을 통해 원시 데이터에서 변환 된 데이터, 모델, 시각화, 최종 출력 (반짝이 또는 rmarkdown을 통해)으로 전환 할 수 있습니다. 파이썬은 최고의 스크립팅 언어로 잘 설계되고 강력하며 유연하며 빠릅니다. 분석 결과를 이미 파이썬으로 작성된 대규모의 이기종 프로세스에 통합해야하는 경우에는 한 가지 선택 만 할 수 있습니다. 반면에 탐색, 대화 형 분석 및 / 또는 기존 생산 프로세스와의 통합을 포함하여 많은 맞춤형 분석을 수행하는 경우 R은 빛을 발하지 않습니다.


대답 3:

아래에 표지가 첨부 된“기계 학습 통계”라는 제목의 책이 있습니다. 파이썬과 R 언어로 구현 된 k-means 또는 KNN과 같은 기계 학습 알고리즘의 예가 있습니다.

이 예제들을 살펴보면 어떤 경우에는 파이썬이 더 적은 코드 줄을 요구하지만 다른 경우에는 더 얇은 R입니다. 따라서 비지도 기계 학습의 경우 두 언어는 성능과 패키지 수 측면에서 동일합니다.

그러나 텍스트 처리에 특히 딥 러닝 알고리즘을 사용해야하는 경우 Python은 이런 종류의 작업에 대해 Python이 제공하는 라이브러리가 무적이므로 훨씬 좋습니다. TensorFlow와 PyTorch가 그 중 일부입니다.

또한 파이썬은 범용 언어이므로 나머지 분석과 더 잘 통합됩니다. Python을 사용하여 빠른 프로토 타이핑을해야하는 경우 케이크 한 조각을 먹는 것이 쉽습니다. 그렇습니다. 파이썬은 머신 러닝 라이브러리의 가장 훌륭한 컬렉션 중 하나를 제공하는 것 이외의 다른 이점 때문에 범용적인 언어이기도합니다. 그러나 딥 러닝 알고리즘과 관련하여 R은 따라 잡고 있습니다. 마지막으로 심층 학습을위한 세 번째 선택으로 옥타브가 있습니다.


대답 4:

ML / AI에는“probabilistic programming”이라는 새로운 개발 기능도 있습니다. 기본적으로 희소 데이터 세트 및 베이지안 통계를 사용하는 ML입니다. 지금까지는 샘플링 방법의 컴퓨터가 많이 필요하기 때문에 베이지안 통계를 사용하여 더 복잡한 모델을 작성하기가 어려웠습니다. 그러나 새로운 접근 방식과 루틴 및 향상된 컴퓨팅 성능으로 이제 가능합니다. 매우 제한된 데이터 집합을 기반으로 추론 할 수 있습니다.

많은 (내부자)는 "확률 적 프로그래밍"을 "빅 데이터"및 "딥 러닝"이후 ML의 세 번째 물결로 간주합니다.

이미지 인식과 같은 특정 응용 프로그램을 염두에두고 몇 가지 새로운 언어가 개발되었습니다. STAN은 우연히는 아니지만 R과 Python에서 모두 호출 할 수있는 성숙한 언어의 훌륭한 예입니다.

그러나 PyMC3와 Edward의 2 가지 훌륭한 Python 패키지 / 라이브러리도 있습니다. R에는 이와 동등한 것이 없으므로 파이썬에게는 큰 +++입니다.