New

파이썬을 활용한 비지도 학습 [비구조 데이터로부터 숨겨진 패턴과 관계 찾기]

  • 원서명Applied Unsupervised Learning with Python: Discover hidden patterns and relationships in unstructured data with Python (ISBN 9781789952292)
  • 지은이벤자민 존스턴(Benjamin Johnston), 애런 존스(Aaron Jones), 크리스토퍼 크루거(Christopher Kruger)
  • 옮긴이조경빈
  • ISBN : 9791161753652
  • 35,000원
  • 2019년 11월 29일 펴냄
  • 페이퍼백 | 528쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

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

다양한 예제를 통해 파이썬을 사용한 비지도 학습을 자세하고 친절하게 설명한다. 머신 러닝을 잘 모르는 독자라도 이 책을 따라가다 보면 손쉽게 비지도 학습의 개념을 이해하고 자연스럽게 자신만의 데이터로 흥미로운 분석을 시도하게 될 것이다.

이 책에서 다루는 내용

■ 클러스터링의 기본과 중요성 이해
■ 기본 제공 패키지를 사용해 처음부터 k-평균, 계층적 및 DBSCAN 클러스터링 알고리즘 구축
■ 차원 축소 및 적용
■ Scikit-learn으로 Iris 데이터셋에서 PCA 구현 및 분석
■ Keras로 CIFAR-10 데이터셋용 오토인코더 모델 구축
■ 머신 러닝 익스텐션(Mlxtend)을 사용한 Apriori 알고리즘으로 거래 데이터 연구

이 책의 대상 독자

비지도 학습에 관심 있는 개발자, 데이터 과학자와 머신 러닝에 관심 있는 독자를 위한 책이다. 지수나 제곱근, 평균, 중위값 등을 포함한 수학 개념의 기초 지식과 함께 파이썬 프로그래밍 관련 지식이 필요하다.

저자/역자 소개

지은이의 말

라벨링된 데이터가 없을 때 비지도 학습은 유용하고 현실적인 해결책이다.

이 책은 파이썬 라이브러리를 사용해 구조화되지 않은 데이터에 비지도 학습 방법을 적용해서 의미 있는 정보를 추출하는 최선의 방법을 알려준다. 데이터셋에서 유사한 데이터 지점을 찾아 함께 묶는 기본적인 과정으로 시작한다. 일단 k-평균 알고리즘에 익숙해지고 나면 차원 축소가 무엇이고 알고리즘을 어디에 적용하는지 배우게 된다.
과정을 진행하면서 다양한 신경망을 배우고 신경망으로 모델을 향상시키는 방법을 익힐 수 있다. 또한 비지도 학습의 적용 사례를 익히며 트위터에서 인기 있는 주제를 찾는 방법도 배울 수 있다. 마지막으로는 장바구니 분석, 다양한 제품 간의 관계 파악 등 흥미로운 주제도 다룬다. 이 책을 마치고 나면 파이썬을 사용해 자신만의 모델을 자신 있게 만들 수 있는 정도의 기술을 익히게 될 것이다.

데이터 분석을 시도했지만 결과물이 없었던 경험이 있을 것이다. 데이터셋에 익숙하지 않거나 분석을 어디서부터 시작해야 할지 막막했던 적도 있을 것이다. 누가 그 일을 처리해달라고 요청했는지에 따라 좌절을 느끼거나 심지어 당황스러웠을지도 모른다.
개발자 여러분은 혼자가 아니다. 흥미롭게도 데이터 그 자체가 너무 혼란스러워서 이해할 수 없는 경우가 많다. 여러분이 스프레드시트에 있는 모든 숫자의 의미를 이해하려고 노력할 때 대체적으로 비지도 학습 알고리즘이 수행하는 동작과 비슷한 일을 시도하는 때가 많다. 현실에 존재하는 데이터는 어떤 규칙이나 의미를 갖지 않는 경우가 많다. 그리고 개발자는 별다른 준비가 없는 상태에서 데이터 분석을 해야 할 때가 많다. 하지만 너무 조바심 낼 필요는 없다. 이 책에서 다루는 내용을 잘 익힌다면 어떤 데이터라도 당황하지 않고 분석을 시작할 수 있다. 비지도 학습 알고리즘이 어떻게 동작하는지 이해하고 어떤 상황에서 적용할 수 있는지를 좋은 예제와 함께 설명할 예정이다. 데이터에서 클러스터 찾기, 데이터 크기를 줄이는 방법과 비지도 학습의 각 측면을 실제 환경에 적용하는 방법도 다룬다. 이 책의 내용을 잘 이해한다면 비지도 학습으로 해결할 수 있는 문제와 해결할 수 없는 문제를 구분할 수 있게 될 것이다.

지은이 소개

벤자민 존스턴(Benjamin Johnston)

세계 최고의 데이터 기반 의료 기업의 선임 데이터 과학자다. 문제 정의부터 솔루션 연구 개발, 최종 배포까지 제품 개발 전 과정에 걸쳐 혁신적인 디지털 솔루션 개발에 참여하고 있다. 현재 이미지 처리와 심층신경망 전문으로 머신 러닝 박사 과정을 이수하고 있다. 의료기기 설계 및 개발 분야에서 10년 이상의 경력이 있으며, 다양한 기술 분야에 종사하고 있다. 오스트레일리아 시드니대학교에서 공학 및 의학 분야의 1급 우등 학사 학위를 보유하고 있다.

애런 존스(Aaron Jones)

통계 컨설턴트이자 미국의 가장 큰 소매상 중 한 곳의 전임 데이터 과학자다. 소매, 미디어, 환경 과학 분야에서 예측 모델과 추론 모델, 수많은 데이터 제품을 만들었다. 시애틀에 살고 있으며 인과관계 모델링, 군집 분석 알고리즘, 자연어 처리, 베이지안 통계 등에 관심이 있다.

크리스토퍼 크루거(Christopher Kruger)

광고 분야에서 선임 데이터 과학자로 일했다. 다양한 업종의 고객을 위해 확장 가능한 클러스터링 솔루션을 설계했다. 최근 코넬대학교에서 컴퓨터 과학 석사 학위를 받았고, 현재 컴퓨터 비전 분야에서 일하고 있다.

옮긴이의 말

제가 따로 이야기를 꺼내지 않더라도 최근 머신 러닝이 얼마나 많은 관심을 받고 있는지는 여러분이 더 잘 아실 거라 생각합니다. 인공지능의 역사는 생각보다 꽤 깁니다. 1940년대 후반에서 1950년대 초반 수학이나 철학, 공학, 경제 등 다양한 영역의 과학자들로부터 인공적인 두뇌의 가능성이 논의되기 시작했는데, 1956년에 이르러서 인공지능이 본격적으로 학문의 분야에 들어오게 됩니다. 하지만 반세기가 넘는 긴 역사에도 불구하고 인공지능은 그리 큰 발전을 만들어내지 못했습니다.
1950년대 중반부터 1970년대 중반까지 인공지능은 다양한 성과를 내면서 황금기를 여는 듯 했으나 이후 여러 복잡한 문제를 해결하는 데 연이어 실패하면서 꽤 오랜 기간 어두운 시기를 지나왔습니다. 그리고 다시 최근에 들어와서 컴퓨팅 파워의 증가와 인공지능 기술의 발전이 4차 산업혁명 시대와 만나면서 전 세계의 관심을 한 몸에 받는 분야가 됐습니다. 특히 우리나라 사람들이 인공지능의 발전을 피부로 크게 느낀 사건은 아마도 알파고와 이세돌의 대결이 아니었나 싶습니다. 저 또한 바둑을 잘 모름에도 그 긴 대국을 흥미롭게 지켜볼 정도였으니 말입니다.
이세돌과 대국했던 알파고는 인간의 기보를 바탕으로 지도 학습을 통해 만들어진 인공지능입니다. 지도 학습은 기본적으로 정답을 알고 있는 방대한 데이터를 기반으로 학습을 하는 방식을 말합니다. 아마존이 보유하고 있는 방대한 고객의 구매 패턴 데이터를 정답 데이터로 삼아 고객이 다음에 구매할 가능성이 높은 제품을 추천해주는 것이 한 예가 될 수 있습니다. 반면 비지도 학습은 정답을 알지 못하는 데이터로부터 패턴과 관계를 찾아내면서 의미를 파악해내는 접근 방법입니다. 인간 세상에서 우리가 얻을 수 있는 데이터는 정답이 없는 데이터인 경우가 더 많기에 비지도 학습은 매우 중요하고 유용한 머신 러닝 기법입니다. 이 책은 파이썬과 다양한 파이썬 라이브러리를 활용해 비지도 학습의 다양한 예시와 사례를 통해 독자가 이해하기 쉬운 방법으로 친절하게 설명하고 있습니다. 머신 러닝에 대한 사전 지식이 전혀 없더라도 이 책의 내용을 이해하는 데 큰 어려움은 없을 것이고 이 책을 시작으로 머신 러닝의 매력에 흠뻑 빠져들 것이라 확신합니다.

옮긴이 소개

조경빈

중학교 때 처음으로 8비트 컴퓨터를 만지기 시작하면서부터 게임 개발에 흥미를 느끼기 시작했다. 인프라웨어에서 온라인게임과 인터넷 브라우저 엔진 개발에 참여했고 현재 셀바스M에서 게임 PD로 모바일 게임을 만들고 있다. SKT T스토어 공모전 게임 부문에 입상을 했으며, 개인 자격으로 개발한 앱이 미국 내 애플 앱스토어 카테고리 1위에 오르는 등 다양한 실험을 즐기며 살고 있다. 지금까지 에이콘출판사에서 총 9권의 번역서를 출간했다.

목차

목차
  • 1장. 클러스터링 소개
    • 소개
    • 비지도 학습과 지도 학습의 차이
    • 클러스터링
      • 클러스터 식별
      • 2차원 데이터
      • 연습 1: 데이터에서 클러스터 인식
    • k-평균 클러스터링 소개
      • 수학이 필요 없는 k-평균 연습
      • k-평균 클러스터링 심화 연습
      • 대안 거리 메트릭-맨해튼 거리
      • 더 깊은 차원
      • 연습 2: 파이썬으로 유클리드 거리 계산
      • 연습 3: 거리 개념으로 클러스터 구성
      • 연습 4: 직접 k-평균 구현
      • 연습 5: 최적화를 통한 k-평균 구현
      • 클러스터링 성능: 실루엣 점수
      • 연습 6: 실루엣 점수 계산
      • 활동 1: k-평균 클러스터링 구현
    • 요약

  • 2장. 계층적 클러스터링
    • 소개
      • 클러스터링 다시 살펴보기
      • k-평균 다시 살펴보기
    • 계층 구조
    • 계층적 클러스터링 소개
      • 계층적 클러스터링 수행 단계
      • 계층적 클러스터링 연습 예제
      • 연습 7: 계층 구성
    • 연결
      • 활동 2: 연결 기준 적용
    • 응집 vs 분산 클러스터링
      • 연습 8: scikit-learn을 사용한 응집 클러스터링 구현
      • 활동 3: 계층적 클러스터링과 k-평균 비교
    • k-평균 vs 계층적 클러스터링
    • 요약

  • 3장. 이웃 접근과 DBSCAN
    • 소개
      • 이웃으로서의 클러스터
    • DBSCAN 소개
      • DBSCAN 심화 학습
      • DBSCAN 알고리즘 연습
      • 연습 9: 이웃 반경 크기의 영향 평가
      • DBSCAN 속성 - 이웃 반경
      • 활동 4: DBSCAN 처음부터 구현
      • DBSCAN 속성-최소 지점 수
      • 연습 10: 최소 지점 수의 영향 평가
      • 활동 5: DBSCAN과 k-평균 그리고 계층적 클러스터링 비교
    • DBSCAN 대 k-평균과 계층적 클러스터링
    • 요약

  • 4장. 차원 축소와 PCA
    • 소개
      • 차원 축소란 무엇인가?
      • 차원 축소 적용
      • 차원의 저주
    • 차원 축소 기법 개요
      • 차원 축소와 비지도 학습
    • PCA
      • 평균
      • 표준편차
      • 공분산
      • 공분산 행렬
      • 연습 11: 통계의 기본 개념 이해
      • 고윳값 및 고유 벡터
      • 연습 12: 고윳값 및 고유 벡터 계산
      • PCA 처리 절차
      • 연습 13: PCA 수동 실행
      • 연습 14: Scikit-Learn PCA
      • 활동 6: 수동 PCA와 scikit-learn 비교
      • 압축된 데이터셋 복원
      • 연습 15: 수동 PCA로 분산 감소 시각화
      • 연습 16: 분산 감소 시각화
      • 연습 17: Matplotlib에서 3D 도표 그리기
      • 활동 7: 확장된 아이리스 데이터셋을 사용한 PCA
    • 요약

  • 5장. 오토인코더
    • 소개
    • 인공 신경망 기초
      • 뉴런
      • Sigmoid 함수
      • 정류 선형 단위
      • 연습 18: 인공 신경망의 뉴런 모델링
      • 활동 8: ReLU 활성화 함수를 사용한 뉴런 모델링
      • 신경망: 구조 정의
      • 연습 19: Keras 모델 정의
      • 신경망: 학습
      • 연습 20: Keras 신경망 훈련
      • 활동 9: MNIST 신경망
    • 오토인코더
      • 연습 21: 간단한 오토인코더
      • 활동 10: 간단한 MNIST 오토인코더
      • 연습 22: 다중 계층 오토인코더
      • 컨볼루셔널 신경망
      • 연습 23: 컨볼루셔널 오토인코더
      • 활동 11: MNIST 컨볼루셔널 오토인코더
    • 요약

  • 6장. t-분포 확률적 이웃 임베딩
    • 소개
    • 확률적 이웃 임베딩
    • t-분포 확률적 이웃 임베딩
      • 연습 24: t-SNE MNIST
      • 활동 12: 와인 t-SNE
    • t-SNE 도표 해석
      • 퍼플렉서티
      • 연습 25: t-SNE MNIST와 퍼플렉서티
      • 활동 13: t-SNE 와인과 퍼플렉서티
      • 이터레이션
      • 연습 26: t-SNE MNIST와 반복
      • 활동 14: t-SNE 와인과 이터레이션
      • 시각화에 대한 최종 의견
    • 요약

  • 7장. 토픽 모델링
    • 소개
      • 토픽 모델
      • 연습 27: 환경 설정
      • 토픽 모델 개요
      • 비즈니스 활용
      • 연습 28: 데이터 로딩
    • 텍스트 데이터 정리
      • 데이터 정리 기법
      • 연습 29: 단계별 데이터 정리
      • 연습 30: 데이터 정리 마무리
      • 활동 15: 트위터 데이터 로딩 및 정리
    • 잠재 디리클레 할당
      • 변분 추론
      • 백오브워즈
      • 연습 31: 카운트 벡터라이저를 사용한 백오브워즈 모델 생성
      • 퍼플렉서티
      • 연습 32: 주제의 수 선택
      • 연습 33: 잠재 디리클레 할당 실행
      • 연습 34: LDA 시각화
      • 연습 35: 4개 주제 시도
      • 활동 16: 잠재 디리클레 할당과 건강 트윗
      • 백오브워즈 추가 사항
      • 연습 36: TF-IDF를 사용한 백오브워즈 생성
    • 음수 미포함 행렬 분해
      • 프로베니우스 놈
      • 증배 갱신
      • 연습 37: 음수 미포함 행렬 분해
      • 연습 38: NMF 시각화
      • 활동 17: 음수 미포함 행렬 분해
    • 요약

  • 8장. 장바구니 분석
    • 소개
    • 장바구니 분석
      • 활용 사례
      • 중요한 확률 지표
      • 연습 39: 샘플 거래 데이터 생성
      • 지지도
      • 신뢰도
      • 향상도와 레버리지
      • 확신
      • 연습 40: 지표 계산
    • 거래 데이터의 특징
      • 연습 41: 데이터 불러오기
      • 데이터 정리 및 형식화
      • 연습 42: 데이터 정리 및 포매팅
      • 데이터 인코딩
      • 연습 43: 데이터 인코딩
      • 활동 18: 전체 온라인 소매 데이터의 로딩과 준비
    • Apriori 알고리즘
      • 계산 수정
      • 연습 44: Apriori 알고리즘 실행
      • 활동 19: 전체 온라인 소매 데이터셋에 Apriori 적용
    • 연관 규칙
      • 연습 45: 연관 규칙 도출
      • 활동 20: 전체 온라인 소매 데이터셋의 연관 규칙 찾기
    • 요약

  • 9장. 핫스팟 분석
    • 소개
      • 공간 통계
      • 확률 밀도 함수
      • 산업에 핫스팟 분석 사용
    • 커널 밀도 추정
      • 대역폭 값
      • 연습 46: 대역폭 값의 효과
      • 최적의 대역폭 선택
      • 연습 47: 그리드 검색을 사용한 최적 대역폭 선택
      • 커널 함수
      • 연습 48: 커널 함수의 효과
      • 커널 밀도 추정 도출
      • 연습 49: 커널 밀도 추정의 도출 시뮬레이션
      • 활동 21: 1차원에서의 밀도 추정
    • 핫스팟 분석
      • 연습 50: Seaborn으로 데이터 로드 및 모델링
      • 연습 51: 베이스맵 작업
      • 활동 22: 런던에서의 범죄 분석
    • 요약

  • 부록

도서 오류 신고

도서 오류 신고

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

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

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