학문적 목적으로 기계 학습 응용 프로그램 을 개발하기 시작했습니다 . 나는 현재 R을 사용 하고 있으며 스스로 훈련하고 있습니다. 그러나 많은 곳에서 사람들이 Python을 사용하는 것을 보았습니다 .
사람들은 학계와 산업에서 무엇을 사용하며 권장 사항은 무엇입니까?
학문적 목적으로 기계 학습 응용 프로그램 을 개발하기 시작했습니다 . 나는 현재 R을 사용 하고 있으며 스스로 훈련하고 있습니다. 그러나 많은 곳에서 사람들이 Python을 사용하는 것을 보았습니다 .
사람들은 학계와 산업에서 무엇을 사용하며 권장 사항은 무엇입니까?
답변:
R 또는 Python 을 서로 선택할 때 고려해야 할 몇 가지 중요한 차이점은 다음과 같습니다.
따라서 두 언어 모두 똑같이 좋습니다. 따라서 도메인과 작업 장소에 따라 올바른 언어를 현명하게 선택해야합니다. 기술 세계는 일반적으로 단일 언어를 선호합니다. 비즈니스 사용자 (마케팅 분석, 소매 분석)는 대개 빠른 프로토 타이핑을 수행하고 시각화를 구축하기 때문에 R과 같은 통계 프로그래밍 언어를 사용합니다 (파이썬보다 R에서 더 빠름).
"python이 더 낫다"또는 "R이 x보다 훨씬 낫다"와 같은 것은 없습니다.
내가 아는 유일한 사실은 업계에서 많은 사람들이 파이썬을 고수한다는 것입니다. 그것이 그들이 대학에서 배운 것이기 때문입니다. 파이썬 커뮤니티는 실제로 활성화되어 있으며 ML 및 데이터 마이닝 등에 대한 몇 가지 훌륭한 프레임 워크가 있습니다.
그러나 솔직히 말해서, 좋은 c 프로그래머를 얻는다면 사람들은 파이썬이나 r에서하는 것과 같은 일을 할 수 있습니다. 좋은 자바 프로그래머가 있으면 자바의 모든 것을 할 수 있습니다.
따라서 편안한 언어를 고수하십시오.
몇 가지 추가 생각.
프로그래밍 언어 '자체'는 도구 일뿐입니다. 모든 언어는 어떤 유형의 구조물을 다른 것보다 쉽게 구축 할 수 있도록 설계되었습니다. 그리고 프로그래밍 언어의 지식과 숙달은 다른 언어에 비해 해당 언어의 기능보다 더 중요하고 효과적입니다.
내가 알 수있는 한이 질문에는 두 가지 차원이 있습니다. 첫 번째 차원은 빠른 속도로 개념 또는 모델의 증거를 탐색하고 증명할 수있는 능력으로, 통계 테스트, 그래픽, 측정 도구 등과 같은 상황을 연구 할 수있는 충분한 도구를 보유하고 있습니다. 이런 종류의 활동은 일반적으로 연구자와 데이터 과학자들이 선호합니다 (저는 그것이 무엇을 의미하는지 궁금하지만,이 용어를 느슨한 정의로 사용합니다). 그것들은 증명이나 주장에 사용될 수있는 잘 알려지고 검증 된 도구에 의존하는 경향이 있습니다.
두 번째 차원은 도구, 알고리즘 또는 모델을 확장, 변경, 개선 또는 만들 수있는 능력입니다. 이를 위해서는 적절한 프로그래밍 언어가 필요합니다. 거의 모두 동일합니다. 회사에서 일하는 경우 회사의 인프라에 의존하는 것보다 내부 문화 및 선택이 크게 줄어 듭니다. 또한 프로덕션 용도로 알고리즘을 구현하려면 구현을 신뢰해야합니다. 그리고 당신이 숙달하지 않은 다른 언어로 구현하는 것은 당신에게 큰 도움이되지 않습니다.
R 생태계의 첫 번째 활동 유형을 선호합니다. 훌륭한 커뮤니티, 다양한 도구 세트가 있으며 이러한 도구가 예상대로 작동한다는 증거입니다. 또한 신뢰할 수있는 후보 인 Python, Octave (몇 가지 예를 들어)를 고려할 수 있습니다.
두 번째 과제를 위해, 당신은 당신이 정말로 원하는 것을 미리 생각해야합니다. 강력한 프로덕션 준비 도구를 원한다면 C / C ++, Java, C #이 훌륭한 후보입니다. 저는이 범주에서 파이썬을 스칼라와 친구들과 함께 두 번째 시민으로 생각합니다. 나는 화염 전쟁을 시작하고 싶지 않다. 그것은 나의 의견 일 뿐이다. 그러나 개발자로서 17 년이 지난 후에, 나는 당신이 생각하는 모든 것을 할 수있는 자유 (많은 동적 언어에서 일어나는 것처럼)를하는 것보다 엄격한 계약과 지식을 선호합니다.
개인적으로, 나는 가능한 한 많이 배우고 싶습니다. 나는 어려운 방법을 선택하기로 결정했다. 이는 모든 것을 처음부터 구현해야한다는 것을 의미한다. 나는 R을 모델과 영감으로 사용합니다. 도서관에는 큰 보물이 있으며 많은 경험이 증류되어 있습니다. 그러나 프로그래밍 언어로서의 R은 나에게 악몽이다. 그래서 Java를 사용하기로 결정하고 추가 라이브러리를 사용하지 않았습니다. 그건 내 경험 때문일뿐입니다.
시간이 있다면 할 수있는 가장 좋은 방법은이 모든 것들과 함께 시간을 보내는 것입니다. 이런 식으로 당신은 자신에게 가장 적합한 답변을 얻을 수 있습니다. Dijkstra는 도구가 생각하는 방식에 영향을 미쳤다고 생각하기 때문에 도구를 이해하기 전에 도구를 아는 것이 좋습니다. 그의 유명한 논문 인 The Humble Programmer 에서 더 많은 내용을 읽을 수 있습니다.
나는 지금까지 다른 사람들이 한 말에 덧붙일 것입니다. 한 언어가 다른 언어보다 낫다는 단일 대답은 없습니다.
R은 데이터 탐색 및 학습을위한 더 나은 커뮤니티를 가지고 있습니다. 광범위한 시각화 기능이 있습니다. 반면에, 파이썬은 팬더를 도입 한 이후로 데이터 처리가 향상되었습니다. R (저급 언어 인 R)에 비해 Python의 학습 및 개발 시간은 매우 적습니다.
나는 그것이 당신이 속한 생태계와 개인적 취향으로 궁극적으로 귀결된다고 생각합니다. 자세한 내용은 여기 에서이 비교를 볼 수 있습니다 .
모든 데이터 관련 문제를 해결하는 데 사용할 수있는 은색 글 머리 기호는 없습니다. 언어 선택은 문제의 상황, 데이터 크기 및 직장에서 일하는 경우 사용하는 것을 고수해야합니다.
개인적으로 시각화 라이브러리와 대화 형 스타일로 인해 Python보다 R을 더 자주 사용합니다. 그러나 더 많은 성능이나 구조적 코드가 필요한 경우 SciKit-Learn, numpy, scipy 등과 같은 최고의 라이브러리가 있기 때문에 Python을 사용합니다. 프로젝트에서 R과 Python을 모두 사용합니다.
따라서 데이터 과학 작업을 시작하는 경우 두 가지를 모두 배우는 것이 좋습니다 .Python 은 Pandas 와 함께 R과 유사한 인터페이스를 제공하기 때문에 어렵지 않습니다 .
훨씬 더 큰 데이터 세트를 처리해야하는 경우 Java (Hadoop, Pig, Hbase 등)로 구축 된 에코 시스템을 벗어날 수 없습니다.
다른 모든 답변을 해결하지 못하는 문제는 라이센스 문제 입니다.
앞서 언급 한 훌륭한 R 라이브러리의 대부분은 GPL입니다 (예 : ggplot2 , data.table ). 이렇게 하면 소프트웨어를 독점 형태로 배포 할 수 없습니다.
이러한 라이브러리의 많은 사용이 소프트웨어 배포를 의미하지는 않지만 (예 : 오프라인으로 모델 교육) GPL 자체로 인해 회사에서 소프트웨어를 사용하지 못하게 할 수 있습니다. 적어도 내 경험으로는.
반면 파이썬 영역에서는 대부분의 라이브러리에 BSD 또는 MIT와 같은 비즈니스 친화적 인 배포 라이센스가 있습니다.
학계에서 라이센스 문제는 일반적으로 문제가 아닙니다.
제공된 의견에 추가 할 필요가 없습니다. 데이터 과학 목적으로 R과 Python을 비교하는 인포 그래픽만이 http://blog.datacamp.com/r-or-python-for-data-analysis/
나는 R을 시도하지 않았다 (잘, 조금, 그러나 좋은 비교를하기에는 충분하지 않다). 그러나 다음은 몇 가지 Pythons 강점입니다.
element in a_list
, for element in sequence
, matrix_a * matrix_b
(행렬 곱셈에 대한), ...R : R은 공개 소스입니다. 전통적으로 학계와 연구에 사용되었습니다. 오픈 소스 특성으로 인해 최신 기술이 빠르게 출시됩니다. 인터넷을 통해 사용할 수있는 많은 문서가 있으며 매우 비용 효율적인 옵션입니다. Python : 오픈 소스 스크립팅 언어로 시작하여 Python 사용은 시간이 지남에 따라 증가했습니다. 오늘날이 라이브러리는 라이브러리 (numpy, scipy 및 matplotlib)와 거의 모든 통계 작업 / 모델 구축을위한 기능을 제공합니다. 팬더가 도입 된 이후, 구조화 된 데이터에 대한 작업이 매우 강력 해졌습니다.
파이썬 코드
sklearn import linear_model에서
x_train = input_variables_values_training_datasets y_train = target_variables_values_training_datasets x_test = input_variables_values_test_datasets
linear = linear_model.LinearRegression ()
linear.fit (x_train, y_train) linear.score (x_train, y_train)
print ( '계수 : \ n', linear.coef_) print ( '차단 : \ n', linear.intercept_)
predicted = linear.predict (x_test) R 코드
x_train <-input_variables_values_training_datasets y_train <-target_variables_values_training_datasets x_test <-input_variables_values_test_datasets x <-cbind (x_train, y_train)
선형 <-lm (y_train ~., data = x) 요약 (선형)
예측 = 예측 (선형, x_test)
파이썬에는 포인트 클릭 GUI 가 SPSS와 SAS로 바뀌지 않는다고 생각 합니다. 이것들과 놀아 보는 것은 정말로 재미 있습니다.