이미 소장하고 있다면 판매해 보세요.
I부 데이터 마이닝의 소개
1장 데이터 마이닝의 개요 ___1.1 데이터 마이닝과 기계 학습 ______구조적 패턴 서술 ______기계 학습 ______데이터 마이닝 ___1.2 간단한 예제: 기상 예제와 기타 예제 ______기상 문제 ______콘택트렌즈: 이상적인 문제 ______붓꽃: 고전적인 수치 데이터 집합 ______CPU 성능: 수치적 예측 방법에 대한 소개 ______노조 협상: 더욱 현실적인 예제 ______콩 분류: 성공적인 기계 학습의 전형을 보여주는 예제 ___1.3 실무 적용 ______웹 마이닝 ______판단을 수반하는 결정 ______이미지 스크리닝 ______전력 부하 예측 ______진단 ______마케팅과 판매 영업 ______기타 적용 사례 ___1.4 기계 학습과 통계학 ___1.5 검색 일반화 ___1.6 데이터 마이닝과 윤리 ______재식별 작업 ______개인 정보의 이용 ______더 광범위한 문제점 ___1.7 참고 문헌 2장 입력 데이터: 개념, 인스턴스 속성 ___2.1 개념이란? ___2.2 예제란? ______다른 종류의 예제 타입 ___2.3 속성이란? ___2.4 입력 데이터 준비 ______데이터 수집 ______ARFF 포맷 ______희소 데이터 ______속성 타입 ______누락된 속성 값 ______부정확한 속성 값 ______자신의 데이터를 알라 ___2.5 참고 문헌 3장 출력 데이터: 지식 표현 ___3.1 테이블 ___3.2 선형 모델 ___3.3 트리 ___3.4 규칙 ______분류 규칙 ______연관 규칙 ______예외를 갖는 규칙 ______더욱 자세하게 표현되는 규칙 ___3.5 인스턴스 기반의 표현 ___3.6 클러스터 ___3.7 참고 문헌 4장 알고리즘: 기본 마이닝 알고리즘 ___4.1 기본 규칙 추론 ______누락된 속성 값과 수치 속성 ______논의 사항 ___4.2 통계 모델링 ______누락된 속성 값과 수치 속성 ______단순 베이지안 이론을 통한 문서 분류 ______논의 사항 ___4.3 분할 정복 기법: 의사 결정 트리 구축 ______정보 계산 ______다양하게 전개되는 속성 ______논의 사항 ___4.4 알고리즘: 규칙 구성 ______규칙과 트리 ______단순 포괄 알고리즘 ______규칙과 의사 결정 리스트 ___4.5 연관 규칙 마이닝 ______아이템 집합 ______연관 규칙 ______효율적인 규칙 생성 ______논의 사항 ___4.6 선형 모델 ______수치 예측: 선형 회귀 ______선형 분류: 로지스틱 회귀 ______퍼셉트론을 사용한 선형 분류 ______필터링을 통한 선형 분류 ___4.7 인스턴스 기반 학습 ______거리 함수 ______효율적인 최근접 이웃 검색 ______논의 사항 ___4.8 군집화 ______반복적인 거리 기반 군집화 알고리즘 ______더욱 빠른 거리 계산 ______논의 사항 ___4.9 다중 인스턴스 학습 ______입력 값 축적 ______출력 데이터 축적 ______논의 사항 ___4.10 참고 문헌 ___4.11 웨카를 이용한 구현 5장 신뢰성: 학습 내용 평가 ___5.1 훈련과 검증 ___5.2 예측 성능 ___5.3 교차 검증 ___5.4 다른 추정자 ______단일 잔류 교차 검증 ______부트스트랩 ___5.5 데이터 마이닝 스킴 비교 ___5.6 확률 예측 ______이차 손실 함수 ______정보 손실 함수 ______논의 사항 ___5.7 비용 고려 ______비용에 민감한 분류 알고리즘 ______비용에 민감한 학습 알고리즘 ______향상도 차트 ______ROC 곡선 ______재현-정확도 곡선 ______논의 사항 ______비용 곡선 ___5.8 수치 예측 결과 평가 ___5.9 최소 묘사 길이 원칙 ___5.10 군집화 작업에 MDL 원칙 적용 ___5.11 참고 문헌 II부 고급 데이터 마이닝 알고리즘 6장 구현: 실질적인 기계 학습 스킴 ___6.1 의사 결정 트리 ______수치 속성 ______누락된 속성 값 ______가지치기 ______오차율 추정 ______의사 결정 트리 유도의 복잡성 ______트리부터 규칙까지 ______C4.5: 선택과 옵션 ______비용-복잡도 가지치기 ______논의 사항 ___6.2 분류 규칙 ______검증 선택 기준 ______누락된 속성 값과 수치 타입의 속성 값 ______좋은 규칙 생성 ______전반적인 최적화 기법 사용 ______부분 의사 결정 트리로부터 규칙을 얻는 방법 ______예외를 갖는 규칙 ______논의 사항 ___6.3 연관 규칙 ______FP-트리 구축 ______큰 아이템 집합 검색 ______논의 사항 ___6.4 확장된 선형 모델 ______최대 마진 초월 평면 ______비선형 클래스 경계 ______Support Vector 회귀 ______커널 능형 회귀 ______커널 퍼셉트론 ______다중 퍼셉트론 ______역전파 알고리즘 ______방사 기저 함수 네트워크 ______확률적 기울기 하강 ______논의 사항 ___6.5 인스턴스 기반 학습 ______모범 예제의 수 줄이기 ______잡음 있는 모범 예제 가지치기 ______속성에 가중치 부여 ______모범 예제의 일반화 ______일반화된 모범 예제들의 거리 함수 ______일반 거리 함수 ______논의 사항 ___6.6 지역적 선형 모델을 통한 수치 예측 ______모델 트리 ______트리 구축 ______트리 가지치기 ______명목 속성 ______누락된 속성 값 ______모델 트리를 유도하는 의사코드 ______모델 트리로부터 유도된 규칙 ______국부 가중 선형 회귀 기법 ______논의 사항 ___6.7 베이지언 네트워크 ______예측 유도 ______베이지안 네트워크 학습 ______특화된 알고리즘 ______빠른 학습을 위한 데이터 구조 ______논의 사항 ___6.8 군집화 ______군집 수 선택 ______계층적 군집화 ______계층적 군집의 예제 ______점진적 군집화 ______확률 기반 군집화 ______EM 알고리즘 ______확장된 혼합 모델 ______베이지안 군집화 ______논의 사항 ___6.9 반 감독 학습 ______분류를 위한 군집화 ______합동 훈련 ______EM과 합동 훈련 알고리즘 ______논의 사항 ___6.10 다중 인스턴스 학습 ______단일 인스턴스 학습 변환 ______학습 알고리즘 개선 ______정교한 다중 인스턴스 기법 ______논의 사항 ___6.11 웨카 구현 7장 데이터 변환 ___7.1 속성 선택 ______스킴과 독립적인 선택 ______속성 공간 검색 ______스킴에 특화된 선택 ___7.2 수치 속성 이산화 ______감독되지 않은 이산화 기법 ______엔트로피 기반 이산화 기법 ______기타 이산화 기법 ______엔트로피 기반 이산화 기법과 오류 기반 이산화 기법의 비교 ______이산화 속성을 수치 속성으로 변환 ___7.3 투영화 ______주성분 분석(PCA) 알고리즘 ______랜덤 투영 알고리즘 ______편 최소 제곱 회귀 알고리즘 ______텍스트를 속성 벡터로 변환 ______시계열 ___7.4 표본 추출 ______저장식 표본 추출 ___7.5 정화 알고리즘 ______의사 결정 트리 구조 개선 ______견고한 회귀법 ______비정상 검출 ______단일 클래스 학습 ___7.6 다중 클래스를 이진 클래스로 변환 ______간단한 알고리즘 ______오류 정정 출력 코드 ______중첩 이분법 앙상블 알고리즘 ___7.7 클래스 확률 교정 ___7.8 참고 문헌 ___7.9 웨카 구현 8장 앙상블 학습 알고리즘 ___8.1 다중 모델 조합 ___8.2 배깅 ______바이어스-분산 분해 ______비용과 연관된 배깅 ___8.3 무작위 추출 ______무작위 추출과 배깅 ______로테이션 포레스트 앙상블 학습 기법 ___8.4 부스팅 알고리즘 ______아다부스트 ______부스팅의 검증력 ___8.5 가산 회귀 분석 ______수치 예측 ______가산 로지스틱 회귀 분석 ___8.6 해석 가능한 앙상블 ______옵션 트리 ______로지스틱 모델 트리 ___8.7 스태킹 ___8.8 참고 문헌 ___8.9 웨카 구현 9장 계속되는 발전: 현재와 미래 적용 범위 ___9.1 데이터 마이닝의 적용 ___9.2 대용량 데이터 집합을 기반으로 한 학습 알고리즘 ___9.3 데이터 스트림 학습 ___9.4 전문 분야 지식의 통합 ___9.5 텍스트 마이닝 ___9.6 웹 마이닝 ___9.7 적대적인 상황 ___9.8 유비쿼터스 데이터 마이닝 ___9.9 참고 문헌 III부 웨카 데이터 마이닝 워크벤치 10장 웨카 입문 ___10.1 웨카에 내장된 기능 ___10.2 웨카의 사용법 ___10.3 웨카의 기타 용도 ___10.4 웨카의 다운로드 11장 익스플로러 인터페이스 ___11.1 웨카의 시작 ______데이터 준비 ______익스플로러로 데이터 로딩 ______의사 결정 트리 구성 ______출력 결과 검토 ______다시 해보기 ______모델을 통한 작업 ______오류가 난 경우 ___11.2 익스플로러 탐험 ______파일 로딩과 필터링 ______학습 스킴 훈련과 검증 ______직접 만들어보기: 사용자 분류기 ______메타 학습기 사용 ______군집화와 연관 규칙 ______속성 선택 ______시각화 ___11.3 필터링 알고리즘 ______비감독 속성 필터 ______비감독 인스턴스 필터 ______감독 필터 ___11.4 학습 알고리즘 ______베이지언 분류기 ______트리 ______규칙 ______함수 ______신경망 네트워크 ______Lazy 분류기 ______다중 인스턴스 분류기 ______기타 분류기 ___11.5 메타 학습 알고리즘 ______배깅과 랜덤화 ______부스팅 ______분류기 조합 ______비용 민감 학습 ______최적화 성능 ______다양한 작업을 처리하기 위한 분류기 목표 재설정 ___11.6 군집 알고리즘 ___11.7 연관 규칙 학습기 ___11.8 속성 선택 ______속성 종속 집합 평가기 ______단일 속성 평가기 ______검색 기법 12장 지식 플로우 인터페이스 ___12.1 시작하기 ___12.2 컴포넌트 ___12.3 컴포넌트 설정과 연동 ___12.4 점증적 학습 13장 Experimenter ___13.1 시작하기 ______실험 수행 ______결과 분석 ___13.2 간단 모드 설정 ___13.3 고급 모드 설정 ___13.4 Analyze 패널 ___13.5 다중 머신을 대상으로 하는 분산 처리 기능 14장 커맨드라인 인터페이스 ___14.1 시작하기 ___14.2 웨카의 구조 ______클래스, 인스턴스, 패키지 ______weka.core 패키지 ______waka.classifiers 패키지 ______기타 패키지 ______Javadoc 인덱스 ___14.3 커맨드라인 옵션 ______일반 옵션 ______특수 옵션 15장 내장된 기계 학습 기능 ___15.1 단순 데이터 마이닝 응용 사례 ______MessaeClassifer() ______updateData() ______classifyMessage() 16장 새로운 학습 스킴 개발 ___16.1 예제 분류기 ______buildClassfier() ______makeTree() ______computeInfoGain() ______classifyInstance() ______toSource() ______main() ___16.2 분류기를 구현할 때 지켜야 할 규약 ______메모리 허용 용량 17장 웨카 익스플로러를 위한 튜토리얼 예제 ___17.1 익스플로러 인터페이스 시작 ______데이터 로딩 ______데이터 집합 편집기 ______필터 적용 ______Visualize 패널 ______Classify 패널 ______출력 결과 분석 ______검증 기법 설정 ______분류 오차 시각화 ___17.2 최근접 이웃 학습과 의사 결정 트리 ______유리 데이터 집합 ______속성 선택 ______클래스 잡음과 최근접 이웃 학습 ______훈련 데이터의 양 조절 ______반복적 결정 트리 구성 ___17.3 분류 경계 ______1R 시각화 ______최근접 이웃 학습 시각화 ______단순 베이지언 분류 시각화 ______결정 트리와 규칙 집합 시각화 ______데이터 섞기 ___17.4 전처리와 매개변수 튜닝 ______이산화 ______이산화에 대한 추가 사항 ______자동 속성 선택 ______자동 속성 선택에 관한 추가 사항 ______자동 매개변수 튜닝 ___17.5 문서 분류 ______문자열 속성을 갖는 데이터 ______실제 문서의 분류 ______StringToWordVector 필터 연구 ___17.6 연관 규칙의 마이닝 ______연관 규칙 마이닝 ______실제 데이터 마이닝 ______장바구니 분석 참고 문헌 |
저자의 말
컴퓨팅 기능과 사람 간의 소통이 결합되면서 이제는 정보가 재생산되는 사회가 됐다. 하지만 이런 정보의 대부분은 가공되지 않은 형태의 데이터다. 이런 데이터를 기록된 ‘사실(fact)’로 분류하고, ‘정보(information)’는 패턴이나 데이터를 기반으로 한 예측치의 집합이라 정의할 수 있다. 데이터베이스(잠재적으론 중요하지만 표면상으로는 그 중요성이나 사실이 발견되지 않거나 조작되지 않은 정보)에 잠들어 있는 엄청난 양의 정보들이 있다. 우리가 해결할 과제는 이와 같은 데이터의 잠재성을 밝혀내는 일이다. 데이터 마이닝이란 암묵적이고 과거에 알려지지 않았으며 ‘데이터’로부터 잠재적으로 유용한 의미를 가진 ‘정보’를 추출하는 것이다. 핵심 개념은 데이터베이스의 데이터 선별 작업을 자동으로 수행하며 데이터의 정규 패턴을 찾는 프로그램을 만드는 것이다. 자주 등장하는 패턴을 발견하면 다음 데이터를 정확히 예측하기 위해 일반화한다. 물론 이 부분에 문제점도 있다. 별 의미 없이 그저 그런 패턴들이 자주 나타날 수도 있다. 아니면 특정 데이터 군집으로부터 발견한 오염된 패턴이 사실과 다른 예측을 유도하는 잘못된 결과를 이끌 수도 있다. 데이터 자체가 불완전(imperfect)할 수도 있다. 일부분은 생략되거나 왜곡될 수도 있다. 발견한 정보는 무엇이든 정확하지 않다. 모든 규칙에는 예외가 있기 마련이며, 어떤 규칙이든 모든 경우의 수를 고려할 수는 없다. 알고리즘은 불완전한 데이터로도 정확하진 않지만 유용한 정규 패턴을 추출할 수 있게 충분히 탄탄해야 한다. 기계 학습은 데이터 마이닝의 기술적 기반을 제공한다. 데이터베이스에 있는 원본 데이터에서 ‘정보’를 추출하는 데 이 기술을 사용한다(여기서 정보는 사람이 이해할 수 있는 형태로 표현되며 다양한 목적에 맞춰 사용할 수 있다). 추출 과정은 추상적이다(데이터를 가져와서 그로부터 구조를 추론하는 것). 이 책은 실제 데이터 마이닝을 수행할 때 데이터에서 구조적 패턴을 찾고 서술하는 데 사용되는 기계 학습 기법과 도구들에 대해 다룬다. 이제 막 새로 생긴 기술이 대개 그렇듯이 데이터 마이닝 사용법도 매우 과장된 기술적 포장에 휩싸여있다(때론 언론이 나서기도 한다). 과장된 보도 자료들은 데이터가 넘치는 바다에서 기계 학습 알고리즘을 풀어놓음으로써 밝혀질 수 있는 비밀들을 드러낸다. 하지만 기계 학습에는 보도 자료와 달리 아무런 마법도 없고, 숨겨진 신비한 힘이나 연금술도 없다. 대신 간단명료하고 실질적인 정보 추측 기술만이 있을 뿐이다. 이 책은 이런 기술들을 설명하면서 어떻게 동작하는지 설명한다. 예제를 통해 구조적으로 설명하고 지식을 습득해나가며 기계 학습을 해석한다. 발견한 서술문(description)은 예측, 설명, 이해에 사용할 수 있다. 어떤 데이터 마이닝은 정보 예측에 적용하는 데 초점을 둔다. 이럴 경우에는 새로운 예제들이 어떤 클래스에 속하는지 추측해 과거의 상태를 말해주는 데이터로부터 미래의 새로운 상황에 대해 어떤 상태가 될지 예견한다. 하지만 우리는 하나같이(어쩌면 그 이상으로) ‘학습(learning)’을 통해 예제들을 분류하는 데 사용될 수 있는 구조의 실제 서술문이 어떠한 결과물을 만드는지에 관심이 있다. 발견한 서술문의 종류에는 ‘예측(prediction)’뿐만 아니라 ‘설명(explanation)’과 ‘이해(understanding)’를 위해 사용할 수 있다. 경험으로 비춰보자면 사용자로부터 얻어진 통찰(insight)이 갖는 대부분의 관심은 대다수의 데이터 마이닝 기술을 적용한 실질적인 사례에 있다. 사실 통찰은 고전적인 통계 모델링보다 우월한 기계 학습의 핵심 사항 중 하나다. 이 책은 광범위한 기계 학습 방식들을 설명한다. 일부 방식들은 교육자적 입장에서 동기 부여를 받을 만한 내용이다. 기본 개념이 어떻게 동작하는지 명확하게 설명하기 위한 간단한 스킴을 제공한다. 나머지 부분은 오늘날 사용되는 실제 시스템 등 실질적인 사용법을 위주로 다룬다. 대개의 시스템들은 현대적이며, 개발된 지 몇 년 되지 않은 것들이다. 이 책에서는 이런 기본 개념들을 설명하기 위해 종합적인 소프트웨어 리소스를 만들어왔다. 일명 정보 분석용 와이카토 환경(Waikato Environment for Knowledge Analysis) 혹은 줄여서 웨카(Weka)라고 불리는 소프트웨어 리소스는 www.cs.waikato.ac.nz/ml/weka에서 자바 코드 형태로 찾아볼 수 있다. 이 리소스는 산업에서 쓸 수 있는 수준으로 완전하며, 이 책에서 다루는 모든 기술들을 다룬다. 그 중에는 책의 내용을 이해하기 쉽게 하기 위한 코드와 기계 학습 이론을 효과적으로 구현한 것들도 있고, 관련 메커니즘을 쉽게 이해할 수 있게 가장 간단한 기법들을 명확하게 구현했다. 또한 실질적인 데이터 마이닝이나 관련 연구를 위해 쓸 수 있는 다양한 인기 학습 스킴들을 효과적이면서도 완전히 동작하게 예술적으로 구현한 워크벤치를 제공한다. 마지막으로, 자바 클래스 라이브러리 형태의 프레임워크를 제공해 내장된 기계 학습을 사용하는 애플리케이션을 지원하고, 심지어 새로운 학습 스킴을 구현할 때 사용 가능하다. 이 책의 목적은 데이터 마이닝에 사용하는 기계 학습의 기법과 관련 소프트웨어 도구들을 소개하는 것이다. 이 책을 읽고 나면 독자는 이런 기계 학습 기법들이 어떤 것인지 이해할 수 있으며, 각 기법이 갖고 있는 실용성과 장점을 알 수 있다. 이 책에서는 데이터 마이닝의 사례 연구를 제공하는 등 실용적인 접근 방식과 기계 학습에 대해 이론적으로 접근하는 방식을 모두 포괄한다(이 책에 대해 짤막한 설명은 1장 마지막 부분에 소개된 ‘참고 문헌’절에 있다). 내용이 상당히 광범위하다. 기계 학습 기법을 실질적으로 적용하려면 동작 원리의 완전한 이해가 필수다. 주먹구구식으로 적용해선 좋은 결과를 기대할 수 없다. 다양한 문제들은 각각 해당 기법을 적용해야 하지만, 주어진 상황에서 어떤 기법을 적용해야 할지는 사실 명확하지 않다. 반드시 어떤 결과들이 나올 수 있는지 범위를 예측해둬야 한다. 다른 책과는 달리 이 책은 특정 상용 소프트웨어나 접근 방식을 홍보하는 성격의 내용을 담지 않았기 때문에 광범위한 기법들을 모두 다룬다. 이 책에 담긴 방대한 예제들은 원리를 설명하기 위해 존재하는 데이터 집합들을 사용하며, 내부적으로 어떤 일들이 일어나는지 추론할 수 있을 정도의 적당한 규모다. 실제 데이터 집합은 너무 커서 내부적인 동작을 알 수도 없다(회사 기밀이라 사용하기도 힘들다). 우리가 사용하는 데이터 집합은 실제 대규모의 실질적 문제를 설명하기 위해 선택한 것이지만, 데이터 마이닝이 어떻게 동작하고 마이닝 방식마다 어떻게 다른지, 그리고 각 방식이 적용될 수 있는 범위는 어떠한지 이해하는 데 충분하다. 이 책은 기초적인 지식을 습득하고자 하는 독자를 위한 기본 개념부터 좀 더 자세한 내용뿐만 아니라, 이 책에서 다루는 기법들에 대한 완전한 설명을 얻고자 하는 독자를 위한 내용까지 단계별로 구성됐다. 우리는 기계 학습을 공부하려는 독자들이 해당 알고리즘이 어떻게 동작하는지 개념을 알고 싶어 한다고 가정한다. 종종 데이터 모델이 그 모델을 다루는 데이터 분석가에게만 유용하며, 이런 사람들은 해당 마이닝 기술의 강점과 한계점을 평가하기 위해 어떻게 모델이 만들어지는지 알고 싶어 하는 경우를 봤다. 하지만 모든 사용자가 꼭 마이닝 알고리즘을 매우 상세한 수준까지 알아야 할 필요는 없다. 옮긴이의 말 데이터 마이닝과 기계 학습에 대해 알게 된 지 벌써 2년 정도 된 것 같다. 처음 연관 규칙을 시작으로 패턴 인식에 대해 공부할 때만 해도 이렇게 훌륭한 책을 번역하게 될 줄은 상상조차 못했다. 전공의 한계로 인해 모든 것을 독학의 노력으로 깨달음을 얻어야 했던 그때, 이 책은 나에게 기계 학습의 의미에 대한 많은 정보를 알려줬다. 『DATA MINING: Practical Machine Learning Tools and Techniques』라는 이 책의 원서는 기계 학습 기법을 공부하는 사람이라면 전공이 무엇이든 종사하고 있는 분야가 무엇이든 간에 대부분 널리 알고 있으리라 생각한다. 즉, 기계 학습 분야의 바이블이라 할 수 있다. 이 책을 이미 알고 관련 분야를 공부하고 있는 사람이라면 패턴 인식 개론 수준의 지식은 갖췄을 것이라 생각한다. 알고리즘의 발전뿐만 아니라 데이터 마이닝의 적용 분야도 빅데이터의 물결에 힘입어 빠르게 발전 중이다. 요즘 이슈가 되고 있는 기계 학습 알고리즘과 영상 처리 알고리즘이 접목돼, 방대한 양의 이미지가 담겨 있는 데이터 하우스에서 안면 이미지의 식별 알고리즘을 통해 특정 인물의 얼굴을 인식하는 일도 그 적용 사례 중 하나라 볼 수 있다. 뿐만 아니라 현재는 주로 웹 마이닝이 활발하게 발달 중이지만 차후 스마트카의 발달로 인해 사물 간 통신(M2M) 기술이 널리 보급되면 자동차 산업이나 로봇 산업에도 데이터 마이닝과 기계 학습 알고리즘이 큰 영향을 미칠 것으로 보인다. 사람은 살아가면서 어디서든 그 흔적을 남기게 돼 있으며, 오늘날처럼 최첨단의 IT 기기들이 널리 보급된 시대에서는 그러한 흔적이 온전한 데이터의 형태로 남을 가능성이 더욱 높다. 전 세계를 대상으로 데이터 검색과 관리를 하고 있는 구글 역시 데이터 마이닝 기술자들을 모집하는 데 투자를 아끼지 않는 것을 보면 앞으로 데이터 마이닝 기술의 전망은 아주 밝다고 할 수 있다. IT 업계는 상황이 매우 급변하고 있으며, 안드로이드나 애플의 iOS의 대결은 이제 어느덧 과거 공룡들의 싸움처럼 느껴지기도 한다. 언제가 될지 모르지만, 앞으로는 빅데이터를 위주로 데이터를 최적으로 처리하는 플랫폼들 간의 대결도 있지 않을까 한다. 아무쪼록 이 번역서의 출간이 대한민국의 데이터 마이닝 기술 발전에 조금이나마 이바지할 수 있기를 바란다. ---본문 중에서 |
기계 학습에 관한 완벽한 설명과 기계 학습 도구를 실질적인 데이터 마이닝 사례에 적용할 수 있는 노하우를 배울 수 있는 책이다. 또한 데이터 마이닝과 기계 학습 분야에서 가장 찬사를 받는 대망의 개정판으로서, 입력 데이터를 준비하는 방법과 처리 결과를 분석하고 평가하는 방법, 성공적인 데이터 마이닝을 위해 필요한 알고리즘적인 기법 등 독자가 알고 싶은 모든 것을 알려준다. 기계 학습에 관한 매우 광범위한 내용들을 난이도와 개념별로 명확하게 구분하여 설명하며, 데이터 마이닝의 기본 개념, 기본적인 알고리즘, 그리고 기계 학습에 관련된 고급 개념을 다룬다. 또한 저자가 공동 개발한 기계 학습 툴로 수많은 데이터 마이닝 툴 중에서도 단연 으뜸으로 널리 사용되는 오픈소스 툴인 웨카(WEKA)에 대한 상세한 기능 설명과 실질적인 사용법을 알려준다.
이 책의 특징 ■ 기계 학습 기법에 사용되는 입력 데이터와 출력 결과를 변환해 성능 개선을 이끄는 구체적인 팁과 기법들을 제공한다. ■ 웨카 소프트웨어 툴킷을 다운로드해 실습할 수 있다. 이 툴킷은 데이터 마이닝 작업을 위한 기계 학습 알고리즘을 모아놓은 집합체로, 인터페이스가 더욱 인터랙티브하게 개선됐다. ■ 이 툴킷은 데이터 전처리, 분류, 회귀, 군집화, 연관 규칙, 시각화 등의 알고리즘을 다룬다. 이 책의 대상 독자 이 책은 데이터 마이닝을 현실적으로 다루는 데 필요한 개념과 원리에 관심 있는 일반 기술자를 대상으로 한다. 또한 데이터 마이닝이라는 새로운 기술을 알아야 하는 정보 과학 전공 관련 전문가들과 기계 학습이 포괄하는 기술적인 내용을 상세하게 얻고자 하는 이들도 대상 독자다. 정보 시스템 관련 종사자, 프로그래머, 컨설턴트, 개발자, 정보 과학 매니저, 전문 분야 기고가, 특허 심사원, 그리고 호기심 많은 사람들뿐만 아니라 학생, 교수 등 데이터 마이닝의 어떻게 동작하며, 어떻게 사용하는지, 무엇을 수행하는지, 기계 학습의 주요 기법은 무엇인지에 대해 다양한 그림으로 설명하는 읽기 간편한 책을 찾는 독자들에게도 흥미로운 책이 될 것이다. 실질적으로 이 책은 ‘어떻게?’라는 의문을 갖기를 좋아하는 사람들의 성향에 맞춰져 있으며, 알고리즘과 코드, 구현 내용들을 담고 있다. 이와 같은 모든 실질적인 데이터 마이닝 자료들을 이 책에서 설명한 기술들과 직접적으로 이용할 수 있다. 학술적이거나 뭔가 있어 보이는 것보다는, 부차적인 설명 없이 곧바로 기계 학습의 실질적인 내용을 알고 싶은 독자도 대상에 포함된다. 박스로 둘러 따로 설명한 몇 개 절을 제외하면 이 책에서는 특별한 이론적 내용이나 수학적 내용을 최대한 배제했다. 박스로 감싼 내용들은 수학적이나 이론적으로 좀 더 상세히 알고 싶은 독자를 위해 수록한 것이며, 그냥 넘어가도 무관하다. 이 책의 구성 1부는 데이터 마이닝에 대한 소개 부분에 해당한다. 독자는 세 개의 장에 걸쳐 데이터 마이닝의 기본적인 개념과 가장 중요한 내용을 공부한다. 1장은 예제들을 통해 기계 학습이 무엇인지, 어디에 사용되는지 설명하며, 실질적인 적용 사례를 다룬다. 2, 3장은 서로 다른 종류의 입출력이나 ‘지식 정보 표현(knowledge representation)’을 다룬다. 4장은 이해를 돕기 위해 난이도를 낮춰 간단한 예제를 만들어 기본적인 기계 학습 이론을 설명한다. 다양한 알고리즘에 관련된 원리들을 복잡할 정도로 상세히 소개하거나 어지럽게 구현하는 일은 하지 않았다. 특정 데이터 마이닝 문제에 기계 학습 기술을 적용하는 과정을 진행하기 위해 반드시 독자가 얼마나 내용을 잘 알고 있는지 파악할 수 있어야 한다. 5장은 순서와 상관없이 읽을 수 있으며, 기계 학습을 통해 얻은 결과를 평가할 수 있는 방법을 알려주고, 중간 중간 성능 평가와 관련된 복잡한 문제들도 다룬다. 2부 좀 더 세련된 데이터 마이닝 기술을 다룬다. 가장 하위의, 그리고 가장 상세한 수준에서 6장은 실질적으로 기계 학습 알고리즘이 제대로 동작하기 위해 필요한 복잡한 내용들을 포함해 여러 가지 내용들을 구현하는 핵심 사항들을 빠짐없이 상세하게 소개한다(물론 몇몇 알고리즘을 뒷받침하는 방대한 수학적 수식 전개나 메커니즘은 생략했다). 수많은 독자가 이런 상세 정보를 무시할지라도 동작이 철저히 검증된 기계 학습 스킴(scheme)의 자바 코드는 이 정도 수준을 기반으로 구현했다. 7장은 기계 학습의 입출력을 제작하는 일과 관련된 실질적인 주제를 다룬다(예를 들어 속성을 선택하고 분류하는 작업 등을 설명한다). 8장에서는 서로 다른 기계 학습 기술을 사용해 얻은 출력 값을 조합하는 ‘앙상블 학습(ensemble learning)’ 기술을 다룬다. 9장은 데이터 마이닝의 미래를 전망하는 내용을 다룬다. 이 책은 실질적인 기계 학습에서 사용되는 대부분의 이론들을 서술한다. 하지만 강화 학습법(reinforcement learning)이나 유전 알고리즘(genetic algorithm)적 접근법은 실제 데이터 마이닝에 적용되는 일이 거의 없기도 하거니와 이런 기법은 최적화 기법이나 관계 학습 이론(relative learning)과 귀납적 논리 프로그래밍(ILP, inductive logic programming)에 가깝기 때문에 다루지 않는다(대체로 실제 데이터 마이닝에 잘 적용되지 않는다). 3부는 웨카(WEKA) 데이터 마이닝 툴에 대해 설명하며, 이 툴은 1, 2부에서 설명한 거의 모든 개념을 구현할 수 있게 도와준다. 1, 2부와는 별도로 웨카를 어떻게 사용하는지 실질적으로 알아보는 3부를 따로 구성해 책의 구성을 명확하게 했다. 1, 2부의 각 장 마지막 부분은 3부의 웨카 알고리즘과 연관된 지시 사항들이므로 무시하고 넘어가도 무방하며, 학습하면서 하나씩 짚거나 혹은 독자가 원하는 것이 독자의 데이터를 분석하는 데 필요한 지식이지 관련 알고리즘이 어떻게 동작하는지 상세한 내용을 알 필요가 없다면 곧바로 3부로 넘어가도 좋다. |