이것은 매우 방대한 질문이므로 완전한 답변을 의도 한 것은 아니지만 데이터 과학과 관련하여 업무에 가장 적합한 도구를 결정하는 일반적인 방법을 알려주는 데 도움이되기를 바랍니다. 일반적으로, 나는이 분야의 도구와 관련하여 내가 찾는 자격 목록이 비교적 짧습니다. 특별한 순서는 없습니다 :
- 퍼포먼스 : 기본적으로 데이터 곱셈에서 가장 중요한 작업 인 언어가 얼마나 빨리 매트릭스 곱셈을 수행하는지로 요약됩니다.
- 확장 성 : 적어도 개인적으로는 분산 시스템을 쉽게 구축 할 수 있습니다. 이것은 같은 언어가
Julia
실제로 빛을 발하는 곳입니다.
- 커뮤니티 : 어떤 언어를 사용하든 사용중인 도구를 사용하여 문제를 해결할 수있는 적극적인 커뮤니티를 찾고 있습니다. 이곳은
python
대부분의 다른 언어보다 훨씬 앞서 있습니다.
- 유연성 : 사용하는 언어에 의해 제한되는 것보다 더 나쁜 것은 없습니다. 그것은 자주 발생하지는 않지만 그래프 구조를 표현하려는
haskell
것은 악명 높은 고통이며, Julia
그러한 어린 언어의 결과로 많은 코드 아키텍처 고통으로 가득 차 있습니다.
- 사용 편의성 : 더 큰 환경에서 무언가를 사용하려면 설정이 간단하고 자동화 될 수 있어야합니다. 십여 대의 기계에 삐걱 거리는 빌드를 설정하는 것보다 더 나쁜 것은 없습니다.
성능과 확장성에 대한 많은 기사가 있지만 일반적으로 특정 응용 프로그램에 따라 중요하지 않을 수도있는 언어 간 5-10 배의 성능 차이를 봅니다. GPU 가속이 진행 cudamat
되는 한 실제로 작업을 원활하게 수행하는 방법 python
이며, cuda
라이브러리는 일반적으로 GPU 가속을 예전보다 훨씬 쉽게 액세스 할 수 있도록했습니다.
커뮤니티와 유연성 모두에 사용하는 두 가지 기본 메트릭은 언어의 패키지 관리자와 SO와 같은 사이트의 언어 질문을 보는 것입니다. 많은 양질의 질문과 답변이 있다면, 커뮤니티가 활발하다는 것을 나타내는 좋은 신호입니다. 패키지 수와 해당 패키지에 대한 일반 활동도이 지표에 적합한 프록시가 될 수 있습니다.
사용의 용이성이있는 한, 나는 실제로 알 수있는 유일한 방법은 실제로 그것을 스스로 설정하는 것입니다. 많은 데이터 과학 도구, 특히 데이터베이스 및 분산 컴퓨팅 아키텍처와 같은 많은 미신이 있지만, 직접 구축하지 않고 무언가를 설정하고 배포하기가 쉬운 지 실제로 알 수는 없습니다.