Top

자바 데이터 사이언스 쿡북 [Weka, MLlib, DL4j로 즐기는 머신 러닝 & 딥러닝]

  • 원서명Java Data Science Cookbook: Explore the power of MLlib, DL4j, Weka, and more (ISBN 9781787122536)
  • 지은이루시디 샴스(Rushdi Shams)
  • 옮긴이김우현
  • ISBN : 9791161751177
  • 30,000원
  • 2018년 02월 14일 펴냄
  • 페이퍼백 | 428쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

실무에 적합한 데이터 분석 모델을 구축할 때, 자바(Java)가 도움이 될 수 있다. MLlib, Weka, DL4j 등과 같은 강력한 라이브러리를 사용하면 필요한 모든 데이터 과학 작업을 효율적으로 수행할 수 있다. 이 책은 다양한 데이터 과학 관련 문제를 해결하기 위한 방법을 제공한다. 먼저, 데이터를 수집하고 정리하고 인덱스를 생성해 검색하는 데 도움이 되는 방법부터 시작한다. 그리고 데이터에서 정보를 분석 및 학습하는 다양한 기술을 배우게 된다. 또한 대용량 데이터를 처리하고, 머신 러닝과 딥러닝을 적용하고, 데이터를 시각화하는 방법을 배울 수 있다.

이 책에서 다루는 내용

■ 데이터 정제 및 전처리 방법
■ 정보 추출과 데이터 변환에 필요한 최신 머신 러닝 기법
■ 대용량의 데이터 저장 및 검색 방법
■ 텍스트 형식인 빅데이터에서의 정보 추출 기술
■ 빅데이터와 딥러닝에 필요한 기본 기술 향상
■ 데이터 시각화 기술을 통해 얻는 가치 있는 인사이트
■ 단계적 학습을 통해 업계 표준적인 실제 데이터 프로덕션 환경에 대한 실력 향상

이 책의 대상 독자

자바로 데이터 과학과 관련된 실제 문제를 해결하고자 하는 모든 독자를 대상으로 한다. 매우 포괄적인 내용을 다루고 있기 때문에 데이터 과학 분야의 프로젝트 문제를 자바로 해결하고 싶은 실무자들에게도 매우 유용할 것이다.

이 책의 구성

1장, '데이터 수집과 정제'에서는 데이터를 읽고 쓰는 다양한 방법과 함께 데이터에서 노이즈를 제거해 정제하는 법을 다룬다. 또한 PDF, ASCII, CSV, TSV, XML, JSON과 같은 다양한 파일 형식에서 데이터를 읽는 법도 배운다. 웹 데이터를 추출하는 방법도 소개할 것이다.
2장, '데이터 인덱싱과 검색 빠른'에서는 검색을 위해 데이터를 인덱싱하는 방법을 아파치 루씬(Apache Lucene)을 사용해 학습한다. 여기서 설명하는 기술은 현대 검색 기술의 기초가 될 것이다.
3장, '데이터의 통계적 분석'에서는 데이터에서 통계 정보를 수집하고 분석하기 위해 아파치 Math API를 사용한다. 또한 분석 결과를 벤치마크와 비교하는 표준 도구인 통계적 유의성 검정과 같은 개념도 다룰 것이다.
4장, '데이터로부터 학습하기-1부'에서는 웨카(Weka) 머신 러닝 워크벤치를 이용해 분류(classification), 군집화(clustering), 피쳐 선택(feature selection) 등을 연습해본다.
5장, '데이터로부터 학습하기-2부'에서는 자바 머신 러닝(Java-ML)이라는 또 다른 라이브러리를 사용해 데이터 가져오기 및 내보내기, 분류, 피쳐 선택 작업을 해본다. 스탠포드 분류기(Stanford Classifier)와 Massive Online Analysis(MOA)를 이용한 기초적인 분류도 다룬다.
6장, '텍스트 데이터에서 정보 추출하기'에서는 텍스트 데이터로부터 정보를 추출하기 위해 응용되는 데이터 과학 도구들을 학습한다. 여기서는 코어 자바뿐만 아니라 정보 추출 및 검색 작업에 머신 러닝을 적용하는 OpenNLP, 스탠포드 CoreNLP, 맬릿(Mallet), 웨카 등의 유명한 라이브러리도 다룬다.
7장, '빅데이터 다루기'에서는 아파치 머하웃(Apache Mahout)과 스파크(Spark) MLib 같은 머신 러닝을 위한 빅데이터 플랫폼을 살펴본다.
8장, '데이터를 깊이 있게 학습하기'에서는 자바를 위한 딥러닝 라이브러리인 DL4j를 사용해 딥러닝 기초를 학습할 것이다. word2vec 알고리즘, 딥 빌리프 네트워크(deep belief networks), 오토 인코더(autoencoder) 등도 함께 다룬다.
9장, '데이터 시각화'에서는 데이터를 기반으로 정보를 시각적으로 표현하는 GRAL 패키지를 학습한다. 수많은 기능 중에 핵심적이고 기본적인 플롯(plot) 기능을 주로 다룰 것이다.

저자/역자 소개

지은이의 말

요즘 데이터 과학은 매우 인기가 많은 전문 분야며 데이터 처리, 정보 검색, 머신 러닝, 자연어 처리, 빅데이터, 심층 신경망(deep neural networks), 데이터 시각화와 같이 인공 지능의 넓은 범위를 다루고 있다. 이 책은 현대적이고 스마트한 기술을 이해할 수 있도록 쉽게 따라 할 수 있는 70개 이상의 레시피를 제시한다.
양질의 데이터 과학자에 대한 높은 요구를 고려해, 코어(core) 자바뿐만 아니라 자바로 작성된 고전적인 라이브러리와 함께 최신 데이터 과학용 라이브러리를 사용해 레시피를 작성했다. 우선 데이터 수집과 정제 프로세스부터 시작해 확보된 데이터에 인덱스를 설정하고 검색하는 방법을 알아본다. 그리고 기술 통계(descriptive statistics)와 추론 통계(inferential statistics)를 모두 다루면서 이를 데이터에 적용해볼 것이다. 그 후, 두 장에 걸쳐 스마트 시스템 구축의 기반이 되는 머신 러닝을 다룬다. 현대적인 정보 처리와 자연어 처리 기법도 다룰 것이다. 떠오르는 분야인 빅데이터의 몇 가지 측면을 함께 다루며, 심층 신경망을 이용한 딥러닝의 기초도 다룬다. 마지막으로 시각적 도구 또는 그래프를 사용해 데이터를 표현하고 데이터로부터 정보를 얻는 방법도 학습할 것이다.
이 책은 데이터 과학에 관심을 가진 모두를 대상으로 하며, 데이터를 더 잘 이해하기 위해 자바를 이용해 데이터 과학을 응용해보는 것을 목적으로 한다.

지은이 소개

루시디 샴스(Rushdi Shams)

캐나다 웨스턴대학교에서 머신 러닝으로 자연어 처리(NLP) 분야의 박사 학위를 받았다. 머신 러닝과 NLP 전문가로 일하기 전에는 학부와 대학원에서 강의했다. 컴퓨터 기술을 학습할 수 있는 유튜브 채널 를 운영하고 있다.

옮긴이의 말

데이터 과학자들이 일상적으로 하는 업무들을 자바를 통해 수행할 수 있도록 가이드하는 책이다. 다양한 작업을 단계별로 따라가면서 배울 수 있도록 구성돼 있다. 먼저, 데이터를 분석하기 전에 가장 많은 시간이 소요되는 데이터 수집과 전처리를 학습한다. 다음으로 아파치 루씬을 사용하여 데이터를 인덱싱하고 검색하는 방법을 다루며, 통계적인 관점에서 데이터를 분석할 수 있는 여러 가지 자바 도구를 소개하고 있다. 그리고 요즘 크게 주목받는 머신 러닝과 딥러닝의 다양한 기법을 학습한다. 또한 비정형 분석의 핵심이라고 할 수 있는 텍스트 분석도 빼놓지 않고 다루고 있다. 자바를 아파치 스파크와 연동하여 빅데이터를 처리하는 방법도 배울 수 있다. 마지막으로 분석한 데이터를 다양한 플롯을 통해 시각화하는 방법도 소개한다. 이 책은 자바로 할 수 있는 데이터 과학의 수많은 과정을 폭넓게 그리고 친절하게 설명하고 있다. 데이터 과학에 관심 있는 자바 사용자가 입문서로 활용하기 좋은 책이다.

옮긴이 소개

김우현

대학생 시절 선배와 함께 창업한 후, 20년 가까이 소프트웨어 개발자로 살아오다가 데이터 분석 분야에서 인생 후반기를 위한 새로운 길을 만들어 가고 있다. 국민대학교 경영대학원에서 빅데이터 MBA 과정을 졸업하고, 현재 숙명여자대학교 나노/바이오 전산화학 연구센터에서 머신 러닝 연구원으로 일하고 있다. 옮긴 책으로는 『R 데이터 구조와 알고리즘』(에이콘, 2017)이 있다.

목차

목차
  • 1장. 데이터 수집과 정제
    • 서론
    • 자바를 사용해 하위 디렉터리의 모든 파일명 가져오기
    • Apache Commons IO를 사용해 하위 디렉터리의 모든 파일명 가져오기
    • 자바8을 사용해 텍스트 파일 내용 한 번에 읽기
    • Apache Commons IO를 사용해 텍스트 파일 내용 한 번에 읽기
    • Apache Tika로 PDF에서 텍스트 추출
    • 정규 표현식으로 ASCII 텍스트 파일 정제
    • Univocity를 사용해 CSV 파일 파싱
    • Univocity를 사용해 TSV 파일 파싱
    • JDOM으로 XML 파일 파싱
    • JSONsimple을 사용해 JSON 파일 쓰기
    • JSONsimple을 사용해 JSON 파일 읽기
    • JSoup을 사용해 URL로부터 웹 데이터 추출
    • 셀레늄 웹드라이버를 사용해 웹사이트에서 웹 데이터 추출
    • MySQL 데이터베이스에서 테이블 데이터 읽기

  • 2장. 데이터 인덱싱과 검색
    • 서론
    • 아파치 루씬으로 데이터 인덱싱
    • 아파치 루씬으로 인덱싱된 데이터 검색

  • 3장. 데이터의 통계적 분석
    • 서론
    • 기술 통계량 생성
    • 요약 통계량 생성
    • 여러 개의 분포로부터 요약 통계량 생성하기
    • 빈도 분포 계산
    • 문자열에서 단어 빈도 계산
    • 자바8을 사용해 문자열의 단어 빈도 계산
    • 단순 회귀
    • 최소 자승 회귀
    • 일반화 최소 자승 회귀
    • 두 데이터셋의 공분산 계산
    • 두 데이터셋의 피어슨 상관계수 계산
    • 쌍체 표본 t-테스트
    • 카이 제곱 테스트
    • 일원 분산 분석
    • 콜모고로프-스미르노프 테스트

  • 4장. 데이터로부터 학습하기 - 1부
    • 서론
    • ARFF 파일 생성 및 저장
    • 머신 러닝 모델의 교차 검증
    • 테스트 데이터 분류
    • 필터링된 속성으로 테스트 데이터 분류
    • 선형 회귀 모델
    • 로지스틱 회귀 모델
    • KMeans 알고리즘으로 데이터 군집화
    • 클래스를 가진 데이터 군집화
    • 데이터로부터 연관 규칙 학습
    • 저수준 방법, 필터링 방법, 메타 분류기를 이용한 피쳐/속성 선택

  • 5장. 데이터로부터 학습하기 - 2부
    • 서론
    • Java-ML 라이브러리를 사용해 데이터에 대한 머신 러닝 수행
    • 스탠포드 분류기를 이용한 데이터 분류
    • MOA를 이용한 데이터 분류
    • 뮬란을 이용한 데이터 분류

  • 6장. 텍스트 데이터에서 정보 추출하기
    • 서론
    • 자바를 이용한 토큰 추출
    • 자바를 이용한 문장 추출
    • OpenNLP를 이용한 토큰과 문장 추출
    • 스탠포드 CoreNLP를 이용한 단어의 기본형과 품사 추출, 개체명 인식
    • 자바를 사용해 코사인 유사도 기준으로 텍스트 유사도 측정
    • 맬릿을 이용해 텍스트 문서에서 토픽 추출
    • 맬릿을 이용한 텍스트 문서 분류
    • 웨카를 이용한 텍스트 문서 분류

  • 7장. 빅데이터 다루기
    • 서론
    • 아파치 머하웃을 이용한 온라인 로지스틱 회귀 모델 학습
    • 아파치 머하웃을 이용한 온라인 로지스틱 회귀 모델 적용
    • 아파치 스파크를 이용한 단순 텍스트 마이닝 문제 해결
    • MLib으로 KMeans 군집화 수행
    • MLib으로 선형 회귀 모델 생성
    • MLib에서 랜덤 포레스트 모델로 데이터 포인트 분류

  • 8장. 데이터를 깊이 있게 학습하기(딥러닝)
    • 서론
    • DL4j를 이용한 word2vec 신경망 구현
    • DL4j를 이용한 DBN 신경망 구현
    • DL4j를 이용한 오토인코더 구현

  • 9장. 데이터 시각화
    • 서론
    • 2D 사인 그래프 그리기
    • 히스토그램 그리기
    • 막대 차트 그리기
    • 상자 수염 플롯 그리기
    • 산점도 그리기
    • 도넛 플롯 그리기
    • 영역 그래프 그리기

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

다운로드 파일 업데이트 (2018.03.27) pom.xml 파일을 추가했습니다.
(7장. 287페이지) mahout
(7장. 304페이지) mlib
(8장. 335페이지) DL4J