스칼라를 사용한 데이터 과학 도구


15

Spark가 Scala와 완전히 통합되어 있음을 알고 있습니다. 유스 케이스는 특히 대규모 데이터 세트를위한 것입니다. 스칼라를 잘 지원하는 다른 도구는 무엇입니까? Scala는 대규모 데이터 세트에 가장 적합합니까? 아니면 더 작은 데이터 세트에도 적합합니까?


2
FACTORIE와 같은 기계 학습 툴킷에 대한 정보가 필요한가요?
Erik Kaplun

내 질문과 관련이있는 것처럼 들리므로 더 많이 공유하십시오.
sheldonkreger

답변:


11

재 : 데이터 크기

짧은 대답

스칼라는 소규모 및 대규모 데이터 모두에서 작동하지만 확장 가능한 무언가가 필요하여 생성 및 개발에 동기를 부여합니다. Scala는“Scalable Language”의 약어입니다 .

긴 대답

스칼라는 jvm에서 실행 되는 기능적 프로그래밍 언어 입니다 . 이것의 '기능적'부분은 프로그래밍에 대해 다르게 생각하게 만드는 언어의 근본적인 차이입니다. 그런 사고 방식이 마음에 들면 작은 데이터로 빠르게 작업 할 수 있습니다. 당신이 그것을 좋아하든 아니든, 기능적 언어는 기본적으로 대규모 확장이 더 쉽습니다. jvm은 기본적으로 어디에나 있으므로 스칼라 코드는 기본적으로 모든 곳에서 실행될 수 있기 때문에 jvm 조각도 중요합니다. ( jvm에 작성된 다른 언어 와 기타 기능 프로그래밍 언어가 많으며 Scala 이외의 언어가 두 목록에 모두 표시됩니다.)

이 이야기 는 스칼라의 동기에 대한 좋은 개요를 제공합니다.

다시 : 스칼라를 잘 지원하는 다른 도구들 :

앞에서 언급했듯이 Spark (반복적 인 알고리즘보다 반복적 인 알고리즘에서 더 나은 분산 처리)가 큰 문제입니다. Spark에는 기계 학습을위한 라이브러리 Mllib 와 그래프를위한 GraphX 가 있습니다. Erik Allik과 Tris Nefzger가 언급했듯이 AkkaFactorie 가 있습니다. 또한이 재생 .

일반적으로 특정 유스 케이스를 파고 있는지 (그렇다면 질문의 일부로 삼으십시오) 빅 데이터 도구에 대한 설문 조사를 원하고 스칼라를 조금 알고 싶어합니다. 거기서부터 시작합니다.



4

Scala의 창시자 인 Martin Odersky의 프리젠 테이션을 듣는 것에서부터 객체 지향 및 유연한 구문과 함께 기능적 프로그래밍 구조를 활용하여 확장 성이 뛰어난 시스템을 구축하는 데 특히 적합합니다. 또한 작은 언어의 개발 및 빠른 프로토 타이핑에도 유용합니다. 다른 언어보다 코드 줄이 적고 빠른 피드백을위한 대화식 모드가 있기 때문입니다. 주목할만한 스칼라 프레임 워크 중 하나는 Akka로, 동시 계산의 액터 모델을 사용합니다. Odersky의 많은 프레젠테이션은 YouTube에 있으며 wiki.scala-lang.org에 Scala로 구현 된 도구 목록이 있습니다.

암시적인 요점은 Scala로 작성된 도구와 프레임 워크는 본질적으로 Scala 통합과 일반적으로 Scala API를 가지고 있다는 것입니다. 그런 다음 Scala가 이미 통합되어 있으며 실제로 Java에 크게 의존하기 때문에 Java로 시작하는 다른 언어를 지원하기 위해 다른 API를 추가 할 수 있습니다. 도구 또는 프레임 워크가 Scala로 작성되지 않은 경우 Scala를 지원하지 않을 것입니다. 이것이 귀하의 질문에 대한 답변으로 Scala and Spark로 작성된 도구와 프레임 워크를 지적한 이유 중 하나입니다. 그러나 스칼라는 현재 시장 점유율이 미미하지만 채택률이 높아지고 있으며 Spark의 높은 성장률로 인해 시장이 향상 될 것입니다. Scala를 사용하는 이유는 Spark의 Scala API가 Java 및 Python API보다 풍부하기 때문입니다.

내가 스칼라를 선호하는 주된 이유는 객체 지향 모듈성을 유지하면서 객체와 값으로 함수를 사용할 수 있도록 허용하기 때문에 Java보다 훨씬 표현력이 뛰어 나기 때문입니다. 광범위한 사용, 명확성 및 우수한 문서화로 인해 선호했습니다.


1
이것은 일반적으로 스칼라에 대한 훌륭한 정보이지만 스칼라 통합 기능이있는 특정 데이터 과학 도구 또는 프레임 워크에 대한 정보를 찾고 있는데 왜 스칼라가 그 도구를 사용하기에 좋은 언어입니까?
sheldonkreger

0

스칼라는 대규모 및 소규모 데이터 과학 애플리케이션에 적합합니다. Apache Spark와 잘 통합되는 기계 학습 라이브러리를 사용하려면 DynaML을 고려하십시오 . 제공되는 모델 수로 말하면 아직 초기 단계에 있지만 광범위하고 유연한 머신 러닝 API로이를 보완합니다.

일부 샘플 사용 사례를 살펴 보려면 다음을 고려하십시오.

  1. 시스템 식별-Abott 발전소

면책 조항 : 저는 DynaML의 저자입니다


이것이 귀하의 프로젝트 인 경우 귀하의 소속에 유의하십시오.
Sean Owen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.