자바 데이터 사이언스 쿡북 [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) 기능을 주로 다룰 것이다.
목차
목차
- 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 사인 그래프 그리기
- 히스토그램 그리기
- 막대 차트 그리기
- 상자 수염 플롯 그리기
- 산점도 그리기
- 도넛 플롯 그리기
- 영역 그래프 그리기
도서 오류 신고
정오표
정오표
다운로드 파일 업데이트 (2018.03.27)
pom.xml 파일을 추가했습니다.
(7장. 287페이지) mahout
(7장. 304페이지) mlib
(8장. 335페이지) DL4J