머신 러닝 워크북
머신 러닝, 자바와 다양한 도구로 실습하면서 이해한다.
자바와 다양한 도구로 실습해보면서 머신 러닝의 개념과 도구 사용법을 배운다. 머신 러닝의 정의, 머신 러닝을 계획하는 방법부터 시작하여 의사결정트리, 베이지안 네트워크, 인공 신경망, 연관 규칙 학습, 서포트 벡터 머신, 클러스터링이 무엇이고, 어디에 활용되는지 배운다. 각 알고리즘에 어떤 도구를 사용해야 하는지 자바를 포함하여 머신 러닝에서 사용되는 다양한 도구(머하웃, 스프링 XD, 하둡, 스쿱, 피그, 맵리듀스, 스칼라, 스파크, R, Rjava)를 설치하고 사용해본다. 머신 러닝 알고리즘과 도구 전반을 책 한 권으로 살펴보면서 각 기법과 도구의 특징을 배울 수 있다.
«머신 러닝 워크북»은 4~8장까지 공개합니다.
전자책 구입
목차
- 1장. 머신 러닝이란 무엇인가?
- 1.1 머신 러닝의 역사
- 앨런 튜링
- 아서 사무엘
- 톰 미첼
- 요약
- 1.2 머신 러닝 알고리즘의 종류
- 지도 학습
- 비지도 학습
- 1.3 인간의 개입
- 1.4 머신 러닝의 활용
- 소프트웨어
- 주식 매매
- 로보틱스
- 의학과 헬스 케어
- 광고
- 소매업과 전자 상거래
- 게임 분석
- 사물인터넷
- 1.5 머신 러닝을 위한 프로그래밍 언어
- 파이썬
- R
- 매트랩
- 스칼라
- 클로저
- 루비
- 1.6 이 책에서 사용한 소프트웨어
- 자바 버전 확인하기
- 웨카 툴킷
- 머하웃
- 스프링 XD
- 하둡
- 통합개발환경(IDE) 사용하기
- 1.7 데이터 저장소
- UC 어바인 머신 러닝 저장소
- 인포침스
- 캐글
- 1.8 요약
- 2장. 머신 러닝 계획하기
- 2.1 머신 러닝 순환 주기
- 2.2 모든 것은 질문으로 시작된다
- 2.3 데이터가 없어요!
- 지역 사회에서 시작하기
- 경진대회
- 2.4 하나로 모두 해결한다?
- 2.5 프로세스 정의하기
- 계획
- 개발
- 테스팅
- 보고
- 개선
- 프로덕션
- 2.6 데이터 팀 구성하기
- 수학과 통계
- 프로그래밍
- 그래픽 디자인
- 전문 지식
- 2.7 데이터 처리
- 내 컴퓨터 사용하기
- 컴퓨터 클러스터
- 클라우드 기반 서비스
- 2.8 데이터 스토리지
- 물리 디스크
- 클라우드 기반 스토리지
- 2.9 사생활 데이터 보안
- 문화 규범
- 세대적인 기대
- 사용자 데이터의 익명성
- ‘오싹한 선’을 넘지 마라
- 2.10 데이터 품질과 정리
- 입력 여부 확인
- 타입 확인
- 길이 확인
- 범위 확인
- 포맷 확인
- 브리트니 딜레마
- 국가 이름에는 어떤 것들이 있나?
- 날짜와 시간
- 데이터 정리에 관한 마지막 생각
- 2.11 입력 데이터에 대해 생각해보기
- 원시 텍스트
- CSV
- JSON
- YAML
- XML
- 스프레드시트
- 데이터베이스
- 2.12 결과 데이터에 대해 생각해보기
- 2.13 실험을 두려워하지 마라
- 2.14 요약
- 3장. 의사결정트리로 작업하기
- 3.1 의사결정트리의 기본
- 의사결정트리의 사용
- 의사결정트리의 장점
- 의사결정트리의 한계
- 여러 가지 알고리즘
- 의사결정트리는 어떻게 작동하는가?
- 3.2 웨카의 의사결정트리
- 필요 사항
- 훈련용 데이터
- 웨카를 사용하여 의사결정트리 만들기
- 분류에서 자바 코드 만들기
- 분류기 코드 테스트하기
- 미래의 반복적인 작업 생각해보기
- 3.3 요약
- 4장. 베이지안 네트워크
- 4.1 조종사부터 클리피까지
- 4.2 약간의 그래프 이론
- 4.3 약간의 확률 이론
- 동전 던지기
- 조건부 확률
- 복권 당첨
- 4.4 베이즈 이론
- 4.5 베이지안 네트워크는 어떻게 작동하는가?
- 확률 부여하기
- 결과 계산하기
- 4.6 노드의 개수
- 4.7 전문가의 도움
- 4.8 베이지안 네트워크 안내
- 베이지안 네트워크를 위한 자바 API
- 네트워크 계획하기
- 노드 정하기
- 네트워크 코딩하기
- 4.9 요약
- 5장. 인공 신경망
- 5.1 신경망이란 무엇인가?
- 5.2 인공 신경망 활용
- 고빈도 매매
- 신용 대출
- 데이터 센터 관리
- 로봇 공학
- 의료 모니터링
- 5.3 인공 신경망 뜯어보기
- 퍼셉트론
- 활성화 함수
- 다층 퍼셉트론
- 역전파
- 5.4 인공 신경망을 위한 데이터 준비
- 5.5 웨카를 사용한 인공 신경망
- 데이터 세트 만들기
- 웨카로 데이터 읽어 들이기
- 다층 퍼셉트론 조정하기
- 네트워크 훈련시키기
- 네트워크 변경하기
- 테스트 데이터 크기 늘리기
- 5.6 자바에서 신경망 구현하기
- 프로젝트 만들기
- 코드
- CSV를 Arff로 변환하기
- 신경망 실행하기
- 5.7 요약
- 6장. 연관 규칙 학습
- 6.1 연관 규칙 학습은 어느 분야에서 사용되는가?
- 웹 사용 로그 마이닝
- 맥주와 기저귀
- 6.2 연관 규칙 학습은 어떻게 이루어지는가?
- 지지도
- 신뢰도
- 향상도
- 확신도
- 프로세스 정의하기
- 6.3 알고리즘
- Apriori
- FP-Growth
- 6.4 장바구니 마이닝
- 원시 데이터 다운로드
- 이클립스에서 프로젝트 설정하기
- 아이템 데이터 파일 설정하기
- 데이터 설정하기
- 머하웃 실행시키기
- 결과 검사하기
- 모두 합치기
- 추후 개발
- 6.5 요약
- 7장. 서포트 벡터 머신
- 7.1 SVM이란 무엇인가?
- 7.2 SVM은 어디에 사용되는가?
- 7.3 기본 분류 원칙
- 이진 분류와 다중 클래스 분류
- 선형 분류기
- 신뢰성
- 함숫값 최대화와 최소화
- 7.4 SVM으로 분류하는 방법
- 선형 분류 사용하기
- 비선형 분류 사용하기
- 7.5 웨카에서 SVM 사용하기
- LibSVM 설치하기
- 분류 실습
- 자바와 함께 LibSVM 사용하기
- 7.6 요약
- 8장. 클러스터링
- 8.1 클러스터링이란 무엇인가?
- 8.2 클러스터링은 어디에 사용되는가?
- 인터넷
- 비즈니스와 소매업
- 법 집행
- 컴퓨터 작업
- 8.3 클러스터링 모델
- k-means는 어떻게 작동하는가?
- 클러스터 개수 계산하기
- 8.4 웨카를 사용한 k-means 클러스터링
- 데이터 준비하기
- 워크벤치를 이용한 방법
- 명령줄을 사용한 방법
- 코드를 사용한 방법
- 8.5 요약
- 9장. 스프링 XD로 하는 실시간 머신 러닝
- 9.1 데이터 파이어호스 잡기
- 실시간 데이터 사용 시 고려 사항
- 실시간 시스템의 활용 가능성
- 9.2 스프링 XD 사용하기
- 스프링 XD 스트림
- 입력 소스, 싱크, 프로세서
- 9.3 트위터 데이터로부터 배우기
- 개발 계획
- 트위터 API 개발자의 애플리케이션 설정하기
- 9.4 스프링 XD 설정하기
- 스프링 XD 서버 시작하기
- 샘플 데이터 만들기
- 스프링 XD 셸
- 스트림 101
- 9.5 스프링 XD와 트위터
- 트위터 자격 인증 설정하기
- 첫 트위터 스트림 만들기
- 다음에 할 것은?
- 9.6 프로세서 소개
- 어떻게 스트림 내 프로세서 작업이 이루어지는가?
- 나만의 프로세서 만들기
- 9.7 실시간 감성 분석
- 기본적인 분석이 이루어지는 방법
- 감성 프로세서 만들기
- 스프링 XD Taps
- 9.8 요약
- 10장. 배치 처리로 하는 머신 러닝
- 10.1 빅데이터인가?
- 10.2 배치 처리할 데이터의 고려 사항
- 크기와 빈도
- 데이터가 많은가?
- 처리 방법은?
- 10.3 배치 처리의 실전 예제
- 하둡
- 스쿱
- 머하웃
- 클라우드 기반 맵리듀스
- 실습 시 주의사항
- 10.4 하둡 프레임워크 사용하기
- 하둡 아키텍처
- 싱글노드 클러스터 설정하기
- 10.5 맵리듀스 작업 방법
- 10.6 해시태그 마이닝
- 스프링 XD의 하둡 지원
- 이 예제의 목표
- 해시태그란 무엇인가?
- 맵리듀스 클래스 만들기
- 기존 데이터에 ETL 수행하기
- 머하웃으로 제품 추천하기
- 10.7 판매 데이터 마이닝
- 제 커피숍에 오신 걸 환영합니다!
- 작은 규모로 시작하기
- Core 메서드 작성하기
- 하둡과 맵리듀스 사용하기
- 피그를 사용하여 매출 데이터 마이닝하기
- 10.8 배치 작업 일정
- 10.9 요약
- 11장. 아파치 스파크
- 11.1 스파크는 하둡의 대안인가?
- 11.2 자바, 스칼라 또는 파이썬?
- 11.3 스칼라 단기 속성 코스
- 스칼라 설치하기
- 패키지
- 데이터 타입
- 클래스
- 함수 호출하기
- 연산자
- 흐름 제어
- 11.4 스파크 다운로드와 설치
- 11.5 스파크 간단 입문
- 셸 시작하기
- 데이터 소스
- 스파크 테스트
- 스파크 모니터
- 11.6 스파크와 하둡 맵리듀스 비교
- 11.7 스파크로 독립 실행형 프로그램 만들기
- 스칼라에서 스파크 프로그램
- 스칼라 빌드 도구 설치하기
- 스칼라 프로그램 코드
- 자바에서 스파크 프로그램
- 스파크 프로그램 요약
- 11.8 스파크 SQL
- 기본 개념
- RDD에서 SparkSQL 사용하기
- 11.9 스파크 스트리밍
- 기본 개념
- 스칼라로 첫 스트림 만들기
- 자바로 첫 스트림 만들기
- 11.10 MLib: 머신 러닝 라이브러리
- 디펜던시
- 의사결정트리
- 클러스터링
- 11.11 요약
- 12장. R로 하는 머신 러닝
- 12.1 R 설치하기
- OS X
- 윈도
- 리눅스
- 12.2 첫 실행
- 12.3 R-Studio 설치하기
- 12.4 R의 기본
- 변수와 벡터
- 행렬
- 리스트
- 데이터 프레임
- 패키지 설치하기
- 데이터를 로드하기
- 데이터 그리기
- 12.5 간단한 통계
- 12.6 단순 선형회귀
- 데이터 만들기
- 초기 그래프
- 선형 모델 회귀 분석
- 예측하기
- 12.7 기본적인 감성 분석
- 단어 목록을 로드하는 함수
- 감성 지수를 채점하는 함수 작성하기
- 함수 테스트하기
- 12.8 Apriori 연관 규칙
- arules 패키지 설치하기
- 훈련용 데이터
- 거래 데이터 가져오기
- Apriori 알고리즘 실행하기
- 결과 검사하기
- 12.9 자바에서 R로 접근하기
- rJava 패키지 설치하기
- R에서의 첫 자바 코드
- 자바 프로그램에서 R 호출하기
- 이클립스 프로젝트 설정하기
- 자바/R 클래스 만들기
- 예제 실행하기
- R 작업 확장하기
- 12.10 R과 하둡
- RHadoop 프로젝트
- RHadoop에서 간단한 맵리듀스 작업
- R에서 소셜 미디어 연결하기
- 12.11 요약
- 부록 A. 스프링 XD 빨리 시작하기
- A.1 수동으로 설치하기
- A.2 스프링 XD 시작하기
- A.3 스트림 만들기
- A.4 트위터 Application Key 추가하기
- 부록 B. Hadoop 1.x 빨리 시작하기
- B.1 하둡을 다운로드하고 설치하기
- B.2 HDFS 파일 시스템 포맷하기
- B.3 하둡을 시작하고 종료하기
- B.4 기본적인 작업 처리 리스트
- 부록 C. 유용한 유닉스 명령어
- C.1 샘플 데이터 사용하기
- C.2 내용 보여 주기: cat, more, less
- 명령 예
- 예상 출력
- C.3 내용 필터링하기: grep
- 텍스트 검색을 위한 명령 예
- 출력 예
- C.4 데이터 정렬하기: sort
- 기본 정렬을 위한 명령 예
- 출력 예
- C.5 중복되지 않는 것 찾기: uniq
- C.6 파일의 시작 부분 보여주기: head
- C.7 단어 세기: wc
- C.8 위치 찾기: find
- C.9 명령을 합쳐서 출력 방향 바꾸기
- C.10 텍스트 에디터 선택하기
- 콜론 중독자: Vi와 Vim
- Nano
- Emacs
- 부록 D. 추가 읽을거리
- D.1 머신 러닝
- D.2 통계학
- D.3 빅데이터와 데이터 사이언스
- D.4 하둡
- D.5 시각화
- D.6 의사결정
- D.7 데이터
- D.8 블로그
- D.9 유용한 웹사이트
- D.10 이 책에서 사용한 도구