Top

자바 데이터 분석 [자바로 배우는 데이터 분석과 빅데이터 처리, 데이터 시각화 방법]

  • 원서명Java Data Analysis: Data mining, big data analysis, NoSQL, and data visualization (ISBN 9781787285651)
  • 지은이존 R. 허바드(John R. Hubbard)
  • 옮긴이김명훈
  • ISBN : 9791161753355
  • 35,000원
  • 2019년 08월 28일 펴냄
  • 페이퍼백 | 480쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

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

요약

자바를 사용해 다양한 데이터 분석 기법을 구현하는 방법을 알려주는 책이다. 자바를 사용한 기본적인 데이터 처리 방법과 데이터 시각화 방법, 다양한 통계치를 도출하는 프로그램 구현 방법이 예제로 쉽게 구현돼 있다. 또한 관계형 데이터베이스와 NoSQL 데이터베이스를 활용한 데이터 분석 방법 등 데이터베이스 기반의 분석 프로그래밍 방식도 다루고 있다. 일반적으로 데이터 분석 문제에서 많이 접근하는 회귀 분석, 분류 분석, 군집 분석 등을 아파치 커먼즈(Apache Commons)나 웨카(Weka) 같은 오픈소스를 활용해 구현하는 방법도 소개한다. 그 외에 추천 알고리즘, 빅데이터 분석 등의 이슈도 함께 다룬다.

이 책에서 다루는 내용

■ 텍스트를 포함한 다양한 크기의 데이터 셋을 분석하는 자바 프로그램 개발
■ 회귀, 분류, 클러스터링 같은 중요한 머신 러닝 알고리즘 구현
■ 데이터 분석과 시각화를 위한 오픈소스 자바 라이브러리와 API를 적용한 인터페이스 개발
■ 관계형 데이터베이스와 NoSQL 데이터베이스를 활용한 시계열 데이터 분석
■ 자바 도구를 사용한 다양한 형식의 데이터 시각화
■ 멀티미디어 데이터 분석 알고리즘과 자바를 사용한 알고리즘 구현

이 책의 대상 독자

이 책은 데이터 분석에 대한 이해를 높이고 해당 분야에서 알고리즘을 구현하는 자바 소프트웨어 개발 능력을 갖춘 학생과 실무자를 대상으로 한다.

이 책의 구성

1장, ‘데이터 분석 개론’에서는 사회 문제를 해결하는 데 있어 데이터 분석의 역사적 발전 과정과 중요성을 설명한다.
2장, ‘데이터 처리’에서는 데이터가 저장되는 다양한 형태를 소개하고, 데이터 셋의 관리 방법과 정렬, 병합, 해싱 같은 기본 처리 기술을 알아본다.
3장, ‘데이터 시각화’에서는 그래프와 표, 시계열 분석, 이동 평균, 정규 및 지수분포 관련 자바 애플리케이션을 다룬다.
4장, ‘통계’에서는 무작위성, 다변량 분포, 이항 분포, 조건부 확률, 독립, 통계 분할표, 베이즈 정리, 공분산과 상관관계, 중심 극한 정리, 신뢰구간 및 가설 검정 등 기본적인 확률 및 통계 이론을 배운다.
5장, ‘관계형 데이터베이스’에서는 외래키와 SQL, 쿼리, JDBC, 배치 작업, 데이터베이스의 뷰, 서브 쿼리, 인덱싱 등 관계형 데이터베이스 접근과 개발에 대해 다룬다. 자바와 JDBC를 사용해 관계형 데이터베이스에 적재된 데이터를 분석하는 방법을 배워보자.
6장, ‘회귀 분석’에서는 선형 회귀, 다항식 회귀, 다중 선형 회귀 분석을 포함한 예측 분석의 중요한 부분을 언급한다. 아파치 커먼즈 매쓰 라이브러리를 사용해 자바에서 회귀 분석을 구현하는 방법을 배워보자.
7장, ‘분류 분석’에서는 결정 트리, 엔트로피, ID3 알고리즘, ARFF 파일, 베이지안 분류기, 서포트 벡터 머신 알고리즘, 로지스틱 회귀, K-최근접 이웃 알고리즘, 퍼지 분류 알고리즘에 대해 다룬다. 웨카 라이브러리를 사용해 자바에서 이러한 알고리즘을 구현하는 방법을 알아보자.
8장, ‘클러스터 분석’에서는 계층적 클러스터링, K-평균 클러스터링, K-중간점 클러스터링, 유사성 전파 클러스터링을 알아본다. 역시나 웨카 라이브러리를 사용해 자바로 구현해보자.
9장, 추천 시스템에서는 유틸리티 행렬, 유사도 측정, 코사인 유사도, 아마존의 아이템 기반 추천 시스템, 대용량 희소 행렬 및 넷플릭스의 경연 역사를 다룬다.
10장, ‘NoSQL 데이터베이스’에서는 몽고DB 데이터베이스 시스템을 중심으로 지형 공간 데이터베이스를 포함한 자바 개발 방법을 알아본다.
11장, ‘빅데이터 분석’에서는 구글의 페이지랭크 알고리즘과 맵리듀스 프레임워크를 알아볼 것이다. 특히 단어 수 세기(WordCount) 예제와 행렬 곱 예제를 통해 자바로 위 알고리즘과 프레임워크를 구현하는 방법을 알아본다.
부록, ‘자바 도구’에서는 이 책에서 사용하는 모든 소프트웨어, 즉 이클립스, M ySQL, 몽고DB의 설치 방법을 정리했다.

저자/역자 소개

지은이의 말

이 책은 자바 프로그래밍 언어에서 구현 방법을 보여주며 데이터 과학의 가장 중요한 알고리즘을 이해하는 데 도움을 준다.
이 책에서 다루는 알고리즘과 데이터 관리 기술은 종종 데이터 과학, 데이터 분석, 예측 분석, 인공지능, 비즈니스 인텔리전스, 지식 탐색, 머신 러닝, 데이터 마이닝 및 빅데이터 같은 일반적인 필드로 분류된다. 비교적 새롭고, 놀랍도록 강력하고 흥미진진한 내용을 많이 포함했다. 예를 들어 ID3 분류 알고리즘, K-평균과 K-중간점, 클러스터링 알고리즘, 아마존의 추천 시스템 및 구글의 페이지랭크 알고리즘은 웹상에서 전자 기기를 사용하는 거의 모든 사람에게 영향을 주는 개념이다.
굳이 자바 프로그래밍 언어를 선택한 이유는, 자바가 가장 널리 쓰이고 있는 언어이기 때문이다. 자바는 어디에서나 사용할 수 있고, 무료이며, 객체지향 언어이고, 강력한 통합 개발 환경 같은 뛰어난 지원 체계를 갖추고 있다. 또한, 문서화 도구도 사용하기 쉽고 효율적이며, 모든 구현체를 기본적으로 지원하는 다양한 서드파티 오픈소스 라이브러리도 있어 데이터 분석가가 효과적으로 사용할 수 있다. 11장, ‘빅데이터 분석’에서 학습할 몽고 DB 같은 시스템이 자바로 작성된 것은 우연이 아니다.

지은이 소개

존 R. 허바드(John R. Hubbard)

40년 동안 펜실베이니아와 버지니아의 대학교에서 컴퓨터 기반의 데이터 분석을 해 왔다. 펜실베이니아 주립 대학교에서 컴퓨터 과학 석사 학위를 취득하고 미시간 대학교에서 수학 박사학위를 취득했다. 현재는 리치몬드 대학교의 수학, 컴퓨터 과학 명예교수로 데이터 구조와 데이터베이스 시스템, 수치 해석과 빅데이터를 가르치고 있다.
컴퓨터 관련 6권의 책을 비롯해 다양한 책과 연구 논문을 편찬했다. 그 중 일부는 독일어, 프랑스어, 중국어 등 5개 언어로 번역됐다. 또한 아마추어 팀파니 연주가이기도 하다.

옮긴이의 말

다양한 솔루션과 시스템을 구성 및 개발하는 프로젝트를 진행하며 절실히 깨달은 사실이 하나 있다. 바로 많은 데이터를 보유하고, 보유한 데이터를 적절히 사용할 줄 아는 기업이 결국 좋은 시스템과 솔루션을 보유하게 된다는 것이다.
데이터를 잘 활용해 글로벌 기업이 된 가장 대표적인 예가 구글이라고 생각한다. 구글은 전 세계의 웹 데이터를 모아 자신의 데이터로 만들었으며, 그저 데이터를 모으는 데 그치지 않고 다양한 기술과 비즈니스를 개발하는 데 활용했다.
기술이 발전할수록 데이터의 중요성은 나날이 증가하고 있고, 데이터의 양도 중요성에 비례해 증가하고 있다. 데이터를 분석해 가치 있는 뭔가를 발견하는 것이 점점 더 중요해지는 이유다.
일반적으로 데이터 분석 시 R이나 파이썬 같은 언어를 많이 사용한다. 자바는 어느 언어보다 거대하고 다양한 오픈소스 생태계를 갖고 있고, 다양한 플랫폼에서 하나의 소스로 동작한다는 이점을 갖고 있다. 이러한 자바의 강점을 기반으로 데이터 분석 영역에서도 자바가 훌륭한 도구로 사용될 수 있음을 이 책을 통해 알 수 있다.
자바가 데이터 분석에 활용하기에는 부족하다는 인식이 바뀌어 좀 더 많은 곳에서 자바로 데이터 분석을 수행하는 모습을 볼 수 있기를 바란다.

옮긴이 소개

김명훈

대학 시절 산업공학을 전공했으나 프로그래밍이 좋아 프로그래머의 길로 뛰어든 후천적 프로그래머다. 삼성SDS에서 소프트웨어 아키텍트로 근무 중이며 사내벤처인 차자줌에서 개발 리더로 근무하고 있다. 개발 리더지만 기술 영업에 더 많은 시간을 보내고 있어 직무 변경을 해야 할지 고민하고 있다.

목차

목차
  • 1장. 데이터 분석 개론
    • 데이터 분석의 기원
    • 과학적 방법
    • 보험학
    • 증기로 계산
    • 멋진 예시
    • 허먼 홀러리스
    • 에니악
    • 비지칼크
    • 데이터, 정보, 지식
    • 왜 자바인가?
    • 자바 통합 개발 환경
    • 요약

  • 2장. 데이터 처리
    • 데이터 유형
    • 변수
    • 데이터 요소와 데이터 셋
    • 데이터 요소와 데이터 셋
      • 널 값
    • 관계형 데이터베이스 테이블
      • 키 필드
      • 키-값 쌍
    • 해시 테이블
    • 파일 형식
      • 마이크로소프트 엑셀 데이터
      • XML과 JSON 데이터
    • 테스트 데이터 셋 생성
      • 메타데이터
      • 데이터 클리닝
      • 데이터 스케일링
      • 데이터 필터링
      • 정렬
      • 병합
      • 해싱
    • 요약

  • 3장. 데이터 시각화
    • 테이블과 그래프
      • 산점도
      • 선그래프
      • 막대그래프
      • 히스토그램
    • 시계열 데이터
    • 자바 구현체
    • 이동 평균
    • 데이터 순위
    • 도수 분포
    • 정규 분포
      • 사고 실험
    • 지수 분포
    • 자바 예제
    • 요약

  • 4장. 통계
    • 기술 통계
    • 임의 추출
    • 확률 변수
    • 확률 분포
    • 누적 분포
    • 이항 분포
    • 다변량 분포
    • 조건부 확률
    • 확률적 이벤트의 독립
    • 분할표
    • 베이즈 정리
    • 상관계수와 공분산
    • 표준 정규 분포
    • 중심 극한 정리
    • 신뢰 구간
    • 가설 검정
    • 요약

  • 5장. 관계형 데이터베이스
    • 관계 데이터 모델
    • 관계형 데이터베이스
    • 외래키
    • 관계형 데이터베이스 디자인
      • 데이터베이스 생성
      • SQL 명령문
      • 데이터베이스에 데이터 입력
      • 데이터베이스 쿼리
      • SQL 데이터 유형
      • JDBC
      • JDBC의 PreparedStatement 사용하기
      • 배치 처리
      • 데이터베이스 뷰
      • 서브쿼리
      • 테이블 인덱스
    • 요약

  • 6장. 회귀 분석
    • 선형 회귀
      • 엑셀에서의 선형 회귀
      • 회귀 상관계수 계산
      • 분산 분석
      • 선형 회귀 자바 구현
      • 앤스콤 쿼텟
    • 다항식 회귀
      • 다중선형회귀분석
      • 아파치 커먼즈 구현
      • 곡선 적합
    • 요약

  • 7장. 분류 분석
    • 의사 결정 트리
      • 의사결정 트리와 엔트로피와의 관계
      • ID3 알고리즘
    • 웨카 플랫폼
      • ARFF 파일 유형
      • 웨카를 사용한 자바 구현
    • 베이지안 분류기
      • 웨카를 사용한 자바 구현
      • 서포트 벡터 머신 알고리즘
    • 로지스틱 회귀
      • K-최근접 이웃 알고리즘
      • 퍼지 분류 알고리즘
    • 요약

  • 8장. 클러스터 분석
    • 거리 측정
    • 차원의 저주
    • 계층적 클러스터링
      • 웨카 구현
      • K-평균 클러스터링
      • K-중간점 클러스터링
      • 유사성 전파 클러스터링
    • 요약

  • 9장. 추천 시스템
    • 유틸리티 행렬
    • 유사도 측정
    • 코사인 유사도
    • 간단한 추천 시스템
    • 아마존 아이템 기반 협업 필터링
    • 사용자 등급 구현
    • 거대 희소 행렬
    • 임의 접근 파일 사용
    • 넷플릭스 경진대회
    • 요약

  • 10장. NoSQL 데이터베이스
    • 맵 데이터 구조
    • SQL과 NoSQL
    • 몽고 데이터베이스 시스템
    • 도서관 데이터베이스
    • 몽고DB를 사용한 자바 개발
    • 지리 정보 데이터베이스를 위한 몽고DB 확장
    • 몽고DB에서의 인덱스
    • 왜 NoSQL인가? 왜 몽고DB인가?
    • 타 NoSQL 데이터베이스 시스템
    • 요약

  • 11장. 빅데이터 분석
    • 확장, 데이터 스트라이핑, 샤딩
    • 구글 페이지랭크 알고리즘
    • 구글 맵 리듀스 프레임워크
    • 맵 리듀스 애플리케이션 예제
    • 워드카운트 예제
    • 확장성
    • 맵 리듀스를 사용한 행렬 곱
    • 몽고DB에서의 맵 리듀스
    • 아파치 하둡
    • 하둡 맵 리듀스
    • 요약

  • 부록. 자바 도구
    • 명령창
    • 자바
    • 이클립스
    • MySQL
    • MySQL 워크벤치
    • 이클립스에서 MySQL 데이터베이스 접근
    • 몽고DB

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.97 : 두 번째 문단 첫 행]
그림 3-20의 히스토그램은
->
그림 3-21의 히스토그램은