Top

[빅데이터 분석과 예측 모델 트레이닝을 위한]
Spark와 머신 러닝

  • 원서명Machine Learning with Spark - Tackle Big Data with Powerful Spark Machine Learning Algorithms (ISBN 9781783288519)
  • 지은이닉 펜트레스(Nick Pentreath)
  • 옮긴이조효성
  • ISBN : 9788960778061
  • 35,000원
  • 2015년 12월 23일 펴냄 (절판)
  • 페이퍼백 | 408쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

요약

이 책은 급변하는 비즈니스 환경에서 대규모 데이터를 실시간으로 처리해서 분류, 회귀, 클러스터 등 다양한 모델을 트레이닝한다. 데이터의 모델 트레이닝을 통해 다양한 소프트웨어 비즈니스 요구사항을 높은 정확도로 예측할 때 사용할 수 있다. 이 책은 독자가 대규모 실시간 데이터를 처리할 때 다양한 모델을 이용해서 애플리케이션을 작성할 수 있도록 안내한다.

이 책에서 다루는 내용

스칼라, 자바, 파이썬을 이용한 독자의 첫 번째 스파크 프로그램 개발

독자의 컴퓨터에서뿐만 아니라 아마존 EC2에서 스파크를 이용한 개발환경 설치와 설정

공개된 머신 러닝 데이터 집합 접근과 스파크를 이용한 데이터 로드, 처리, 클린, 변환

협력 필터, 분류, 회귀, 클러스터링, 차원 축소 등의 잘 알려진 머신 러닝 모델을 활용해서 프로그램을 구현할 때 스파크 머신 러닝 라이브러리 사용

머신 러닝 모델의 성능을 평가할 수 있는 스파크 메소드 개발

특징 추출과 머신 러닝 모델에 입력할 텍스트 데이터를 이용한 대규모의 텍스트 데이터 처리

온라인 머신 러닝 메소드 분석과 온라인 러닝과 모델을 평가할 때 스파크 스트림 사용

이 책의 대상 독자

머신 러닝과 데이터 분석 분야에 관심이 있는 스칼라, 자바, 파이썬 개발자이면서 스파크 프레임워크를 이용해서 보편적인 머신 러닝 기술을 확장성 측면에서 어떻게 적용해야 할지 열망한다면 이 책은 당신을 위한 것이다. 스파크의 기본 지식이 있는 독자라면 책을 이해할 때 도움이 되겠지만 사전 지식이 꼭 필요한 것은 아니다.

이 책의 구성

1장, '스파크의 시작과 구동'에서는 스파크 프레임워크를 설치하는 방법과 로컬 개발환경 구축 방법뿐 아니라 아마존 EC2를 이용한 클라우드 스파크 클러스터 생성 방법까지 설명한다. 스파크 프로그래밍 모델과 API를 소개할 뿐 아니라 스칼라, 자바, 파이썬 API를 이용해서 간단한 스파크 애플리케이션을 작성한다.
2장, '머신 러닝 시스템 설계'에서는 머신 러닝 시스템을 활용한 실세계 유스케이스(use case)의 예를 다룬다. 여기서 설명한 유스케이스를 바탕으로 스파크 지능 시스템용 상위 레벨 아키텍처를 설계한다.
3장, '스파크를 이용한 데이터 수집, 프로세싱, 준비'에서는 머신 러닝 시스템에서 실사용하기 위한 데이터 수집 방법을 자세하게 설명하는데, 특히 무료로 오픈된 다양한 가용 데이터 수집 방법을 다룬다. 가공하지 않은 데이터를 적절한 도구, 라이브러리, 스파크 기능을 이용해 머신 러닝 모델에 적용할 수 있는 특징으로 처리하거나, 초기화 또는 변환하는 방법을 배운다.
4장, '스파크를 이용한 추천 엔진 구현'에서는 협업 필터링 방식을 바탕으로 추천 모델을 개발하는 방법을 다룬다. 이 모델을 이용해서 사용자에게 아이템을 추천하거나 검색하는 아이템과 유사한 다른 아이템 목록을 생성한다. 추천 모델의 성능을 평가하는 표준 메트릭스(metrics)도 다룬다.
5장, '스파크를 이용한 분류 모델 구현'에서는 이항 분류를 위한 모델을 생성하는 방법뿐 아니라 분류 태스크를 위한 표준 성능 평가 메트릭스를 사용하는 방법까지 자세하게 설명한다.
6장, '스파크를 이용한 회귀 모델 구현'에서는 5장에서 생성한 분류 모델을 확장하는 개념으로, 회귀 모델의 생성 방법을 설명한다. 회귀 모델의 성능 평가 메트릭스도 자세히 설명한다.
7장, '스파크를 이용한 클러스터 구축 모델 구현'에서는 클러스터링 모델 생성 방법뿐 아니라 클러스터 연관 평가 방법을 사용하는 방법까지 설명한다. 독자는 7장에서 생성된 모든 클러스터에서 발생된 데이터를 분석하고 가시화하는 방법을 배울 수 있다.
8장, '스파크를 이용한 차원 축소'에서는 데이터에서 기본 구조를 추출하고 데이터 구조의 차원을 줄일 수 있는 방법을 살펴본다. 범용적인 일부 차원 축소 기술을 배우며, 그 기술의 적용과 분석 방법뿐 아니라 결과 데이터 모델을 입력으로 다른 머신 러닝 모델에 활용하는 방법까지 배운다.
9장, '스파크를 이용한 고급 텍스트 프로세싱'에서는 텍스트에서 특징 추출을 위한 기술을 비롯한 대규모 텍스트 데이터를 처리하는 방법을 소개하고, 텍스트 데이터에서 높은 차원의 특징을 다룬다.
10장, '스파크 스트리밍을 이용한 실시간 머신 러닝'에서는 스파크 스트리밍의 개요와 온라인에서 스파크 스트리밍이 어떻게 조절되는지, 데이터 스트리밍에 머신 러닝을 적용할 수 있는 점진적 학습 방법을 설명한다.

저자/역자 소개

지은이의 말

최근 수집과 저장, 그리고 분석되는 데이터의 규모는 폭발적으로 증가했는데, 특히 웹과 모바일 단말을 사용할 때 발생하는 것뿐 아니라 센서 네트워크를 통해 물리적인 데이터와 연관해서 늘어나고 있다. 과거 대규모 데이터 스토리지, 프로세싱, 분석, 모델링은 구글, 야후, 페이스북, 트위터 등 공룡 기업의 영역이었으나 점차 많은 기업이 방대한 양의 데이터를 어떻게 처리해야 할지 도전에 직면하고 있다.

이와 같은 데이터 양과 실시간으로 이 데이터를 활용해야 하는 공통 요구 사항에 직면하고 있으나 인력으로 움직이는 시스템은 빠르게 쇠퇴하고 있다. 이런 현상은 빅데이터와 자동화된 의사결정을 만들기 위해 데이터를 이용해서 학습하는 머신 러닝의 태동을 불러왔다.

막대한 비용을 들이지 않고 대규모의 데이터를 다뤄야 하는 과제에 대한 해법이 컴퓨터 클러스터에 데이터 스토리지와 컴퓨팅 파워를 분산시켜 방대한 데이터를 좀 더 쉽게 처리하는 작업에 주력하는 구글, 야후, 아마존, 페이스북 같은 회사에서 속속 개발되고 있었다.

이런 기술 중에서 가장 많이 확산된 기술인 아파치 하둡을 통해 정말 쉽고 저렴하게 많은 데이터를 저장(하둡 분산 파일 시스템을 사용)하고, 저장된 데이터를 연산(컴퓨터 클러스터에 할당된 많은 노드에서 병렬로 연산 작업을 실행할 수 있는 프레임워크인 하둡 맵리듀스를 사용)할 수 있게 됐다.

그러나 맵리듀스는 각 잡을 실행하고 중간 데이터와 연산 결과를 디스크에 저장해야 하는 높은 오버헤드를 비롯한 일부 결정적인 단점이 있기 때문에 하둡은 반복이나 낮은 지연 시간을 포함하는 유스케이스에 상대적으로 부적합하다. 아파치 스파크는 분산 컴퓨팅을 위한 새로운 프레임워크이며, 제로 기반에서 설계해서 낮은 지연 시간 태스크를 위해 최적화돼 있고, 중간 데이터와 결과를 메모리에 저장할 수 있기 때문에 하둡 프레임워크의 주요 단점의 일부를 해결했다. 스파크는 애플리케이션을 작성할 수 있는 깔끔하고 기능적이며, 이해하기 쉬운 API를 제공하는 동시에 하둡 생태계와 완벽하게 호환된다.

게다가 스파크는 네이티브 API를 스칼라, 자바, 파이썬으로 제공한다. 스칼라 API와 파이썬 API를 이용하면 실시간과 의사소통할 수 있는 검색에 쓰이는 해당 인터프리터 사용을 비롯한 스파크 애플리케이션을 직접 개발할 때 API를 작성한 각 언어의 모든 장점을 사용할 수 있다. 현재 스파크 번들에 분산 머신 러닝과 데이터 마이닝 모델을 활용할 수 있는 툴킷이 포함돼 있는데, 이 툴킷은 한창 개발 중이며 많은 범용 머신 러닝 태스크를 위한 높은 성능을 발휘하고 확장할 수 있으며, 효과적인 알고리즘을 이미 포함하고 있고 툴킷의 기능 일부를 이 책에서 집중적으로 설명한다.

머신 러닝 기술을 방대한 데이터 집합에 적용하는 작업은 상당한 어려움이 있는데, 특히 대부분 잘 알려진 머신 러닝 알고리즘은 병렬 아키텍처를 고려하지 않고 있다. 많은 경우 머신 러닝 알고리즘을 설계하는 일은 쉽지 않은 작업이다. 머신 러닝 모델의 태생은 일반적으로 반복인데, 스파크는 바로 이런 유스케이스에 강하다. 병렬 컴퓨팅을 위해 많은 프레임워크가 경쟁 중인 가운데 스파크는 속도, 확정성, 인메모리 프로세싱, 그리고 쉽게 프로그래밍할 수 있는 시스템 실패 허용 한계(fault tolerance), 유연하면서 명시적이고 또한 강력한 API 설계를 모두 조합한 몇 안 되는 프레임워크 중 하나다.

이 책은 전반적으로 머신 러닝 기술을 이용해서 실생활에서 사용하는 애플리케이션 개발에 중점을 둘 것이다. 머신 러닝 알고리즘의 이론적인 측면을 일부 간략하게 설명할 수 있지만, 유용한 머신 러닝 시스템을 만들기 위해 이 책은 스파크와 MLlib의 모든 기능을 효과적으로 사용할 수 있는 방법을 설명하는데, 이때 예제와 코드를 사용할 뿐 아니라 머신 러닝과 데이터 분석을 위해 공개적으로 잘 알려져 있고 무료로 사용할 수 있는 패키지를 이용해서 주로 현실적이면서 적용 가능한 방법을 다룬다.

지은이 소개

닉 펜트레스(Nick Pentreath)

금융 시장, 머신 러닝, 소프트웨어 개발 경력이 있다. 골드만삭스 그룹(Goldman Sachs Group, Inc.)에서 일했고, 스타트업 기업인 코그너티브 매치 사(Cognitive Match Limited)의 런던 지사를 상대로 온라인 광고에 필요한 리서치 분야 전문가로 일해 왔으며, 아프리카의 대규모 소셜 네트워크 회사인 믹스잇(Mixit)에서 데이터 사이언스와 분석팀을 이끌었다.

사용자 중심의 추천과 고객 인텔리전스(Customer Intelligence)를 주력으로 하는 빅데이터와 머신 러닝 회사 그래프플로우(Graphflow)의 공동 창립자다. 추천과 고객 인텔리전스의 핵심에 가치를 더하기 위해, 데이터를 통해 학습하는 지적 시스템을 구현할 수 있는 머신 러닝과 최신 기술을 상용 서비스와 접목하려는 일에 상당히 열정적이다. 아파치 스파크 프로젝트 관리 단체의 멤버다.

옮긴이의 말

빅데이터라는 화두는 예전부터 개발자들 사이에서 많은 관심을 끌어 왔다. 빅데이터를 처리할 때 개발자들은 하둡을 많이 떠올렸으나 RDD 데이터 처리, 인메모리 처리, 일괄 처리와 더불어 포괄적 분석을 처리할 때 이제는 스파크를 떠올릴 것이다. 하둡과 비교해서 대략 100배 이상 속도가 빠르다는 점도 스파크의 확산에 도움이 되고 있다.

이 책의 장점은 무엇보다 스파크가 제공하는 라이브러리인 MLlib를 이용해서 적용할 수 있는 모델을 이론적으로 자세히 설명하면서도, 구현에 필요한 내용을 직접 코드로 설명한다는 점이다. 또한 로컬 모드와 클러스터 모드에서 스파크가 목표 애플리케이션에서 어떻게 동작하는지 상세히 서술하고 있다. 따라서 스파크를 처음 다루는 초보 개발자는 코드를 보고 따라 하면서 자신만의 빅데이터 분석 애플리케이션의 첫발을 내딛을 수 있는 반면, 중급 이상의 개발자는 상용 프로젝트를 진행할 때 하나의 레퍼런스로 삼을 수 있을 것이다.

옮긴이 소개

조효성

광운대학교 전자공학과를 졸업하고, 동대학원 임베디드 소프트웨어 공학과에서 안드로이드와 블루투스를 전공했다. 현재 오비고에서 웹 개발자로 활동하고 있는 노드에 관심이 많은 행복한 개발자다. 행복한 HMI WebApp 개발 팀에서 차량용 플랫폼에 올라가는 웹 앱을 개발하면서 많은 경험과 실력을 쌓고 있다. 번역 작업을 통해 책을 읽는 모든 사람에게 꼭 도움이 되기를 바라는 마음을 늘 품고 있다. 에이콘출판사에서 출간한 『노드로 하는 웹 앱 테스트 자동화』(2013), 『익스프레스 프레임워크로 하는 노드 웹 앱 프로그래밍』(2014), 『Storm 실시간 빅데이터 분석 플랫폼』(2014), 『안드로이드 음성 인식 애플리케이션 개발』(2014), 『Spark로 하는 고속 빅데이터 분석과 처리』(2014), 『AngularJS 반응형 웹앱 개발과 성능 최적화』(2015)를 번역했다.

목차

목차
  • 1 스파크의 시작과 구동
  • 로컬 모드로 스파크 설치와 환경 설정
  • 스파크 클러스터
  • 스파크 프로그래밍 모델
    • SparkContext와 SparkConf
    • 스파크 셸
    • 복구할 수 있는 분산 데이터 집합
      • RDD 생성
      • 스파크 오퍼레이션
      • RDD 캐싱
    • 브로드캐스트 변수와 누산기
  • 스칼라를 이용한 스파크 프로그램의 첫 단계
  • 자바로 개발하는 스파크 프로그램의 첫 단계
  • 파이썬으로 스파크 프로그램 작성하는 첫 단계
  • 아마존 EC2에서 스파크 구동
    • EC2 스파크 클러스터 실행
  • 정리

  • 2 머신 러닝 시스템
  • 무비스트림 소개
  • 머신 러닝 시스템을 위한 비즈니스 유스케이스
    • 개인화
    • 타겟 마케팅과 사용자 분류
    • 예측 모델링과 해석학
  • 머신 러닝 모델의 타입
  • 데이터 기반의 머신 러닝 시스템 컴포넌트
    • 데이터 획득과 저장
    • 데이터 클렌싱과 변환
    • 모델 학습과 테스트 루프
    • 모델 적용과 정합
    • 모델 모니터링과 피드백
    • 배치 프로세스와 실시간 프로세스
  • 머신 러닝 시스템의 아키텍처
    • 실습
  • 정리

  • 3 스파크를 이용한 데이터 수집, 프로세싱, 준비
  • 공개적으로 가용한 데이터 집합 접근
    • 무비렌즈 100킬로바이트 데이터 집합
  • 데이터 탐색과 가시화
    • 사용자 데이터 집합 탐색
    • 영화 데이터 집합 탐색
    • 평점 데이터 집합 탐색
  • 데이터 처리와 변환
    • 부적절하거나 소실된 데이터로 채우기
  • 데이터에서 유용한 특징 추출
    • 숫자 특징
    • 카테고리 특징
    • 파생 특징
      • 타임스탬프를 카테고리 특징으로 변환
    • 텍스트 특징
      • 단순 텍스트 특징 추출
    • 특징 정규화
      • 특징 정규화를 위한 MLlib 라이브러리 사용
    • 특징 추출을 위한 패키지 사용
  • 정리

  • 4 스파크를 이용한 추천 엔진 구현
  • 추천 모델의 타입
    • 콘텐트 기반의 필터링
    • 공동 필터링
      • 행렬 인수분해
  • 목표 데이터에서 적절한 특징 추출
    • 무비렌즈 100k 데이터 집합에서 특징 추출
  • 추천 모델 트레이닝
    • 무비렌즈 100k 데이터 집합으로 모델 트레이닝
      • 암시적인 피드백 데이터를 이용한 모델 트레이닝
  • 추천 모델 사용
    • 사용자 추천
      • 무비렌즈 100k 데이터 집합에서 영화 추천 생성
    • 제품 추천
      • 무비렌즈 100k 데이터 집합에서 유사 영화 생성
  • 추천 모델의 성능 평가
    • 평균 제곱 오차
    • K 평균 정확도의 평균
    • MLlib 라이브러리의 내장 평가 메소드 사용
      • RMSE와 MSE
  • 정리

  • 5 스파크를 이용한 분류 모델 구현
  • 분류 모델의 타입
    • 선형 모델
      • 로지스틱 회귀
      • 선형 지원 벡터 머신
    • 나이브 베이즈 모델
    • 의사결정 트리
  • 데이터 집합에서 적절한 특징 추출
    • 캐글/스텀블업온 에버그린 분류 데이터 집합에서 특징 추출
  • 분류 모델 트레이닝
    • 캐글/스텀블업온 지속적인 분류 데이터 집합에 분류 모델을 트레이닝
  • 분류 모델 사용
    • 캐글/스텀블업온 지속 가능한 분류 데이터 집합을 이용한 예측 생성
  • 분류 모델의 성능 평가
    • 정확도와 예측 오차
    • 정확도와 회자
    • ROC 곡선과 AUC
  • 모델 성능을 향상하고 매개변수를 튜닝
    • 특징 표준화
    • 추가적인 특징
    • 정확한 형태의 데이터 사용
    • 모델 매개변수 튜닝
      • 선형 모델
      • 의사결정 트리
      • 나이브 베이즈 모델
    • 교차 검증
  • 정리

  • 6 스파크를 이용한 회귀 모델 구현
  • 회귀 모델의 타입
    • 최소 제곱 회귀
    • 회귀에 대한 의사결정 트리
  • 데이터 집합에서 적절한 특징 추출
    • 자전거 공유 데이터 집합에서 특징 추출
      • 선형 모델에 적용할 특징 벡터 생성
      • 의사결정 트리를 위한 특징 벡터 생성
  • 회귀 모델 트레이닝과 사용
    • 자전거 공유 데이터 집합을 이용한 회귀 모델 트레이닝
  • 회귀 모델의 성능 평가
    • 평균 제곱 에러와 루트 평균 제곱 에러
    • 평균 절댓값 에러
    • 루트 평균 제곱 로그 에러
    • R 제곱 계수 값
    • 자전거 공유 데이터 집합을 이용한 성능 메트릭스 계산
      • 선형 모델
      • 의사결정 트리
  • 모델 성능 향상과 매개변수 튜닝
    • 타겟 변수를 변환
      • 로그 변환한 타겟으로 트레이닝할 때의 영향
    • 모델 매개변수 튜닝
      • 매개변수를 평가하기 위한 데이터 집합 트레이닝과 테스트 생성
      • 선형 모델에 적용하는 매개변수 설정의 영향
      • 의사결정 트리에 매개변수 설정 값을 적용할 때의 영향
  • 정리

  • 7 스파크를 이용한 클러스터 구축 모델 구현
  • 클러스터 모델의 타입
    • K 평균 클러스터
      • 초기화 메소드
      • 변수
    • 혼합 모델
    • 계층적인 클러스터
  • 데이터에서 적절한 특징 추출
    • 무비렌즈 데이터 집합에서 특징 추출
      • 영화 장르 레이블 추출
      • 추천 모델 트레이닝
      • 정규화
  • 클러스터 모델 트레이닝
    • 무비렌즈 데이터 집합을 이용해 구성한 클러스터 모델 트레이닝
  • 클러스터 모델을 이용한 예측
    • 무비렌즈 데이터 집합에 대한 클러스터 예측 해석
      • 영화 클러스터 해석
  • 클러스터화한 모델의 성능 평가
    • 내부 평가 메트릭스
    • 외부 평가 메트릭스
    • 무비렌즈 데이터 집합에 적용한 메트릭스의 성능 계산
  • 클러스터 모델에 적용하는 매개변수 튜닝
    • 교차 검증을 통한 K 값 선택
  • 정리

  • 8 스파크를 이용한 차원 축소
  • 차원 축소의 타입
    • 주요 컴포넌트 분석
    • 단일 값 분해
    • 행렬 요소화를 가진 관계
    • 차원 축소와 같은 클러스터화
  • 분석 데이터의 적절한 특징 추출
    • LWF 데이터 집합의 특징 추출
      • 얼굴 데이터 분석
      • 얼굴 데이터의 가시화
      • 벡터 형태로 된 얼굴 이미지 추출
      • 정규화
  • 차원 축소 모델 트레이닝
    • LFW 데이터 집합에 주요 컴포넌트 분석 기법 적용
      • 아이겐페이스의 가시화
      • 아이겐페이스 해석
  • 차원 축소 모델 적용
    • LWF 데이터 집합에 적용한 주요 컴포넌트 분석을 이용한 데이터 주입
    • 주요 컴포넌트 분석과 단일 값 분해 간 관계
  • 차원 축소 모델 평가
    • LFW 데이터 집합에 단일 값 분해 적용을 위한 k 값 평가
  • 정리

  • 9 스파크를 이용한 고급 텍스트 프로세싱
  • 텍스트 데이터의 중요한 면
  • 데이터 집합에서 올바른 특징 추출
    • 용어 가중치 스킴
    • 특징 해싱
    • 20개 뉴스그룹 데이터 집합에서 TF-IDF 특징 추출
      • 20개 뉴스그룹 데이터 분석
      • 기본적인 토큰화 기능 적용
      • 토큰화 향상
      • 중지 단어 제거
      • 빈도수를 바탕으로 단어 제거
      • 스테밍에 대한 참고
      • TF-IDF 모델 트레이닝
      • TF-IDF 가중치 분석
  • TF-IDF 모델 사용
    • 20개의 뉴스그룹 데이터 집합과 TF-IDF 특징을 이용한 문서 유사성
    • TF-IDF를 이용한 20개 뉴스그룹 데이터 집합의 텍스트 분류자 트레이닝
  • 텍스트 프로세싱의 영향 평가
    • 20개의 뉴스그룹 데이터 집합을 이용해서 원본 특징과 프로세싱된 TF-IDF 특징 비교
  • Word2Vec 모델
    • 20개 뉴스그룹 데이터 집합에 Word2Vec 적용
  • 정리

  • 10 스파크 스트리밍을 이용한 실시간 머신 러닝
  • 온라인 러닝
  • 스트림 프로세싱
    • 스파크 스트리밍에 대한 소개
      • 입력 소스
      • 변환
      • 액션
      • 윈도우 연산자
    • 스파크 스트리밍을 이용한 캐싱과 고장 허용
  • 스파크 스트리밍 애플리케이션 개발
    • 생산자 애플리케이션
    • 기본적인 스트리밍 애플리케이션 개발
    • 스트리밍 분석
    • 스테이트풀 스트리밍
  • 스파크 스트리밍을 이용한 온라인 러닝
    • 스트리밍 회귀
    • 간단한 스트리밍 회귀 프로그램
      • 스트리밍 데이터 생산자 개발
      • 스트리밍 회귀 모델 생성
    • 스트리밍 K 평균
  • 온라인 모델 평가
    • 모델 성능과 스파크 스트리밍 비교
  • 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안