스칼라를 이용한 데이터 분석
데이터 분석에 적합한 도구를 선택하는 것은 매우 중요합니다. 국제 데이터 과학 대회가 열리는 Kaggle 포럼에서 사람들은 종종 어떤 도구가 더 나은지 묻습니다. R과 Python은 목록의 맨 위에 있습니다. 이 기사에서는 Scala를 기반으로 하는 데이터 분석 기술의 대안 스택에 대해 설명합니다.
By 로마 지 코프, 설립자/데이터 과학자 @ TopDataLab
데이터 분석에 적합한 도구를 선택하는 것은 매우 중요합니다. 에 캐글닷컴 국제 데이터 과학 대회가 열리는 포럼에서 사람들은 종종 어떤 도구가 더 나은지 묻습니다. R과 Python은 목록의 맨 위에 있습니다. 이 기사에서는 Scala 프로그래밍 언어 및 불꽃 분산 컴퓨팅 플랫폼.
우리는 그것을 어떻게 생각해 냈습니까? Retail Rocket에서는 매우 큰 데이터 세트에 대해 많은 기계 학습을 수행합니다. 우리는 프로토타입을 개발하기 위해 IPython + Pyhs2(Python용 하이브 드라이버) + Pandas + Sklearn을 사용했습니다. 2014년 여름 말에 우리는 Spark로 전환하기로 근본적인 결정을 내렸습니다. 실험 결과 동일한 서버에서 3-4배의 성능 향상을 얻을 수 있다는 사실이 밝혀졌기 때문입니다.
또 다른 장점은 프로덕션 서버에서 실행될 모델링 및 코드에 하나의 프로그래밍 언어를 사용할 수 있다는 것입니다. Hive, Pig, Java, Python의 4개 언어를 동시에 사용하기 전에 이것은 우리에게 큰 이점이었습니다. 소규모 엔지니어 팀의 문제입니다.
Spark는 API를 통해 Python/Scala/Java 작업을 잘 지원합니다. Spark가 작성된 언어이기 때문에 Scala를 선택하기로 결정했습니다. 즉, 필요한 경우 소스 코드를 분석하고 버그를 수정할 수 있습니다. Hadoop이 실행되는 JVM이기도 합니다.
당시 스칼라를 아는 사람이 아무도 없었기 때문에 선택이 쉽지 않았다고 말해야 한다.
언어로 의사소통을 잘 하려면 그 언어에 몰입해서 최대한 많이 사용해야 한다는 것은 잘 알려진 사실입니다. 그래서 우리는 모델링과 빠른 데이터 분석을 위해 Python 스택을 포기하고 Scala를 선택했습니다.
첫 번째 단계는 IPython 노트북의 대체품을 찾는 것이었습니다. 옵션은 다음과 같습니다.
지금까지 선택은 ISpark였습니다. 단순하기 때문입니다. Scala/Spark용 IPython입니다. HighCharts 및 R 그래픽을 결합하는 것은 비교적 쉽습니다. 그리고 Yarn 클러스터에 연결하는 데 문제가 없었습니다.
태스크
질문에 답해 보겠습니다. 온라인 상점의 평균 구매 금액(AOV)은 정산, 브라우저 유형(모바일/데스크톱), 운영 체제 및 브라우저 버전을 포함한 정적 고객 매개변수에 따라 달라집니까? 당신은 이것을 할 수 있습니다 상호 정보.
우리는 추천 알고리즘과 분석에 엔트로피를 많이 사용합니다. 고전적인 Shannon 공식, Kullback-Leibler divergence, Mutual Information. 우리는 심지어 이 주제에 대한 논문을 제출했습니다. 기계 학습에 관한 Murphy의 유명한 교과서에는 작지만 이러한 측정에 대해 다루는 별도의 섹션이 있습니다.
실제 Retail Rocket 데이터에서 분석해 보겠습니다. 미리 클러스터의 샘플을 csv 파일로 내 컴퓨터에 복사했습니다.
Data
여기에서는 로컬 모드에서 실행되는 ISpark 및 Spark를 사용합니다. 즉, 모든 계산이 로컬에서 수행되고 프로세서 코어 간에 분산됩니다. 모든 것은 코드에 대한 주석에 설명되어 있습니다. 가장 중요한 것은 출력에서 코드에 정의된 Row 유형의 케이스 클래스 모음인 RDD(Spark 데이터 구조)를 얻는다는 것입니다. 이렇게 하면 "."를 통해 필드를 참조할 수 있습니다(예: _.categoryId).
지난 30 일 동안의 주요 기사 | |||||
---|---|---|---|---|---|
|
|
출처: https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- 이점
- 알고리즘
- All
- 아마존
- 중
- 분석
- 아파치
- API
- 앱
- 기사
- 볼트
- 브라우저
- 버그
- 빌드
- 다발
- 이전 단계로 돌아가기
- 차트
- 암호
- 댓글
- 경기
- 컴퓨팅
- 데이터
- 데이터 분석
- 데이터 과학
- 데이터 과학자
- 취급
- 깊은 학습
- 개발
- DID
- 분산 컴퓨팅
- 운전사
- 엔지니어링
- 엔지니어
- 등
- 뛰어나다
- 경험
- 실험
- 탐구
- 페이스메이크업
- 가족
- FAST
- 특징
- Fields
- 먼저,
- 수정
- 설립자
- 뼈대
- GitHub의
- 하둡
- 여기에서 지금 확인해 보세요.
- 하이브
- 방법
- How To
- HTTPS
- 거대한
- 정보
- 대화형
- 국제 노동자 동맹
- IT
- 자바
- 언어
- 언어
- 넓은
- 배우다
- 배우기
- 도서관
- 라인
- 링크드인
- 명부
- 지방의
- 장소 상에서
- 긴
- 기계 학습
- 기계
- 수학
- 통계
- Microsoft
- 모델링
- 가장 인기 많은
- 노트북
- 온라인
- 온라인 상점
- 열 수
- 오픈 소스
- 운영
- 운영 체제
- 옵션
- 주문
- 기타
- 서
- 사람들
- 성능
- 관점
- 물리학
- 플랫폼
- 인기 문서
- 유가 증권
- 생산
- 프로그램 작성
- 프로젝트
- 매수
- Python
- 소매
- 달리기
- 달리는
- 스칼라
- 과학
- 과학자
- 세트
- 정착
- 단순, 간단, 편리
- 크기
- 기술
- 작은
- So
- 소프트웨어
- 스페이스 버튼
- 저장
- 이야기
- 제출
- 여름
- 지원
- 지원
- 스위치
- 체계
- 기술
- 지원
- 그래프
- 시간
- 상단
- 통일
- URI
- us
- 가치
- 웹
- 위키 백과
- 창
- 작업
- X
- 년
- 제로