★ 이 책에서 다루는 내용 ★
■ 수십 가지 알고리즘과 구현 사례를 의사코드와 함께 대규모 데이터 마이닝 프로젝트의 실제 사례에서 곧장 활용 가능한 예제와 함께 설명한다.
■ 관계형 데이터베이스는 물론, 공간/멀티미디어/시계열/텍스트 데이터 마이닝과 웹 마이닝을 비롯해 다양한 분야의 적용 사례와 고급 기법을 설명한다.
■ 데이터 마이닝과 지식 발견 분야의 원리와 기술을 실제의 관점에서 종합적으로 살펴본다.
★ 이 책의 대상 독자 ★
■ 업계 전문가
이 책은 데이터 마이닝 분야의 광범위한 주제를 포괄하기 위해 작성했다. 따라서 데이터 마이닝에 관한 한 훌륭한 핸드북이 되어 줄 것이다. 각자의 분야에서 필요한 데이터 마이닝의 핵심 아이디어를 배우고 싶은 애플리케이션 프로그래머와 정보 서비스 관리자에게도 유용할 것이다. 마찬가지로 사업상 데이터 마이닝 솔루션을 도입하려는 은행, 보험, 의약, 유통업과 관련 업계에서 활용하기에 좋다. 게다가 이 책은 데이터 마이닝 분야에 대한 전반을 모두 포괄하기 때문에 최신 데이터 마이닝의 고급 기법을 읽고 데이터 마이닝의 적용 분야를 넓히고자 하는 연구자에게도 큰 도움이 될 수 있다.
■ 학생
이 책이 학생 여러분에게 아직 새로우며 빠른 성장세에 있는 데이터마이닝이라는 학문에 대한 관심의 기폭제가 되기를 바란다. 교과서를 목적으로 만든 책이기는 하지만, 앞으로 연관 분야를 깊이 있게 연구하거나 데이터 마이닝 업무를 맡았을 때 레퍼런스나 핸드북으로도 쓸 수 있도록 구성하려 노력했다.
학생이 이 책을 읽기 위한 필수 사전지식
▶ 통계와 데이터베이스 시스템, 기계 학습에 대한 기초 개념과 용어를 어느 정도 알고 있어야 한다. 물론, 기초 배경에 대한 설명도 충분히 담아낼 수 있도록 작성했으니, 이 분야에 도무지 적응하지 못한다거나 기억력이 떨어지지 않는 이상, 이 책의 설명을 따라오는 데엔 큰 무리가 없을 것이다.
▶약간의 프로그래밍 기술이 있어야 한다. 특히 수도코드(pseudo code)를 읽을 수 있어야 하며, 다차원 배열과 같은 단순한 데이터 구조를 이해하고 있어야 한다.
■ 강사
이 책은 데이터 마이닝 학계를 넓고 또 깊게 살펴볼 수 있도록 쓰였다. 학부 고학년에서 대학원 1년차까지 데이터 마이닝의 개론부터 고급 학부 수업에 이르기까지 다양한 수업에 활용할 수 있을 것이다.
★ 이 책의 구성 ★
1장은 다방면에 걸친 데이터 마이닝이란 분야를 소개합니다. 데이터 마이닝이 필요하게 된 계기인 인 정보 기술의 발전 과정을 논의하고, 데이터 마이닝이 왜 중요한지 설명합니다. 관계형, 트랜잭션 형, 데이터웨어하우스의 데이터 및 시계열, 시퀀스, 데이터 스트림, 시공간 데이터, 멀티미디어 데이터, 텍스트, 그래프, 사회 네트워크에서 웹 데이터에 이르기까지 복합적인 데이터 형식을 살펴 볼 것입니다. 그리고 마이닝의 대상 지식 종류에 따른 데이터 마이닝의 일반적인 클래스 분류 기법을 간략히 살펴보고, 마지막으로 데이터 마이닝에 남겨진 주요 쟁점에 대해 논의합니다.
2장은 일반적인 데이터의 특성을 소개합니다. 먼저 데이터 오브젝트와 속성 유형을 설명하고, 데이터 파악에 기본적인 통계 기법과 측정법을 소개합니다. 다양한 데이터 형식에 대한 데이터 시각화 기법을 간략히 살펴보고, 추가로 수량 데이터의 시각화와 텍스트, 태그, 그래프, 다차원 데이터의 시각화 기법을 알아 보겠습니다. 또 다양한 유형의 데이터에서 유사성을 측정하는 방법에 대해 소개하겠습니다.
3장은 데이터 전처리 기법을 소개합니다. 우선 데이터 품질의 개념을 설명한 다음, 데이터의 정제, 통합, 축약과 변환, 불연속화에 대해 논의합니다.
4장과 5장은 데이터웨어하우스와 OLAP(On-Line Analytical Processing), 데이터 큐브 기법을 상세하게 설명합니다. 4장은 기본이 되는 개념, 모델링, 구조 디자인과 일반적인 데이터웨어 하우스와 OLAP의 구현을 설명하고, 데이터웨어하우스와 여타 데이터 일반화 방법 간의 관계를 알아 보겠습니다. 5장은 데이터 큐브 기술을 좀 더 깊이 설명하면서, 별 모양 큐브에서 고차원 OLAP 기법 등 데이터 큐브 연산 방법을 자세하게 알아보겠습니다. 그리고 데이터 큐브와 OLAP 기술의 여러 측면을 상세하게 살펴보면서 큐브의 샘플링, 랭크 매기기, 예측 큐브와 복합 분석 쿼리를 위한 다특성 큐브와 발견 주도 큐브 탐색을 설명합니다.
6장과 7장은 대규모 데이터 세트에서 빈도 패턴, 연관 규칙, 상관 관계를 분석하는 방법을 설명합니다. 6장에서는 장바구니 분석과 같은 기본 개념을 소개합니다. 장바구니 분석에는 자주 등장하는 아이템 세트를 정리하는 다양한 마이닝 기법이 등장합니다. 기본적인 연역 알고리즘과 효율성 향상을 위한 변형 방법부터, 종형 데이터 형식의 빈도 패턴 마이닝, 닫힌 최빈 아이템 세트의 마이닝까지 다양한 방법을 소개합니다. 그리고 마지막으로 패턴 확인 방법과 상관 패턴 분석 방법을 설명합니다. 7장은 고급 패턴 마이닝 방법을 설명합니다. 다수준 다차원 공간의 패턴 마이닝, 빈도가 낮은 패턴과 부정 패턴의 마이닝, 대규모 패턴의 마이닝과 고차원 데이터의 패턴 마이닝, 조건 패턴 마이닝과 압축/추정 패턴의 마이닝을 알아 보겠습니다. 그리고 빈도 패턴의 감성적 특성을 비롯한 패턴 탐색 방법을 소개합니다.
8장과 9장은 클래스 분류 기법을 설명합니다. 클래스 분류 방법론의 중요성과 다양성 때문에 내용을 두 장으로 나누어 보아야 하겠습니다. 8장은 클래스 분류의 기본 개념과 방법론을 알아 보겠습니다. 우선 베이지안, 규칙 기반 분류 등의 방법을 알아보고, 이어지는 내용으로 앙상블 방법론과 불균형 데이터의 처리 등, 모델의 확인과 선택 방법, 그리고 클래스 분류 정확성을 향상시키는 방법을 논의합니다. 9장은 클래스 분류의 고급 기법을 담았습니다. 베이지안 신뢰 네트워크, 신경망 네트워크 복습 기법, 서포트 벡터 머신, 빈도 패턴 분류, k최인접 이웃 클래스 분류자, 사례 기반 증명, 유전 알고리즘, 러프 세트 이론, 퍼지 세트 기법 등을 살펴보겠습니다. 다중 클래스 분류와 준지도 분류, 동적 학습과 변환 학습을 추가로 설명합니다.
10장, 11장은 클러스터 분석으로 구성했습니다. 10장은 클러스터링의 기초 개념과 방법을 소개합니다. 여기에는 기초적인 클러스터 분석 방법, 파티션 분할, 구조적 클러스터링 방법, 밀도 기반 클러스터링, 그리드 기반 클러스터 방법이 포함되어 있습니다. 그리고 클러스터링의 확인 방법에 대해서도 설명합니다. 11장은 고급 클러스터링 분석에 대한 논의로, 확률 모델 클러스터링, 고차원 데이터의 클러스터링, 그래프/네트워크 데이터의 클러스터링과 조건 클러스터링 기법을 설명합니다.
12장은 아웃라이어 탐색을 설명합니다. 아웃라이어의 기본 개념 아웃라이어 분석 방법을 소개하고, 학습 방법을 지도하는 수준(지도/준지도/비지도 방법)과 접근 관점(통계 기법, 인접성/클러스터링/클래스 분류 기반 방법 등) 다양한 아웃라이어 탐색 방법을 설명합니다. 또 맥락 아웃라이어와 군집 아웃라이어의 마이닝 방법, 그리고 고차원 데이터의 아웃라이어 탐색에 대해 논의합니다.
마지막 13장은 데이터 마이닝의 트렌드, 적용 분야와 선도적인 연구를 살펴봅니다. 시퀀스 데이터(시계열, 심볼 시퀀스, 생물학 시퀀스) 마이닝, 그래프/네트워크 마이닝, 지리 공간 마이닝, 멀티미디어/텍스트/웹 데이터 마이닝 등 복잡한 데이터 형식의 데이터 마이닝을 간단히 살펴보겠습니다. 이처럼 복잡한 형식 데이터의 상세한 데이터 마이닝 기법은 좀 더 상세한 내용을 다루기로 한 다음 책(현재 집필중인)의 몫으로 넘기려 합니다. 이어지는 내용으로 통계 데이터 마이닝, 데이터 마이닝의 이론적 기반, 시각/청각 데이터 마이닝과 데이터 마이닝 애플리케이션 (프로그램) 등 여타 데이터 마이닝 방법론을 다룹니다. 회계/재정 데이터 분석, 유통/통신 업계의 데이터 마이닝, 과학과 공학 관점에서의 데이터 마이닝과 네트워크 침입 감지/예방에 대해, 그리고 데이터 마이닝과 추천 시스템의 관계에 대해서 설명하겠습니다. 오늘날 데이터 마이닝은 우리 일상 생활의 전 범위에 걸쳐 있기 때문에, 유비퀴터스 데이터 마이닝과 보이지 않는 데이터 마이닝이란 개념, 그리고 사생활과 보안 문제, 데이터 마이닝이 사회에 미치는 영향 등 데이터 마이닝과 사회의 관계에 대해 논의해 보겠습니다.
마지막으로 현재 데이터 마이닝의 경향을 살펴보는 것으로 책을 마무리합니다.
★ 저자 서문 ★
우리의 삶에서 전산화는 다방면의 데이터 생산과 수집 능력을 꾸준히 향상시켜 왔습니다.
일상 생활의 모든 곳에 어마어마한 양의 데이터가 흘러 다닙니다. 데이터의 저장과 처리량의 폭발적인 증가로 다량의 데이터를 유용한 정보와 지식으로 변환하는 데 도움을 줄 수 있는 새로운 기술과 자동화 도구가 시급합니다. 때문에 컴퓨터 과학에서는 데이터 마이닝이라는, 유망하고도 찬란한 선도 학문이 창시되었고, 다양한 적용 기술이 개발됐습니다. 데이터 마이닝, 혹은 KDD(Knowledge Discovery from Data, 데이터로 지식 발견하기)라 불리는 이 분야는 대규모 데이터베이스, 데이터웨어하우스나 웹 등의 대규모 정보 저장소와 데이터 스트림을 저장하고 다루는 자동 도구로 패턴을 통해 지식을 끌어낼 수 있는 편리한 기술입니다.
이 책은 지식 발견과 데이터 마이닝의 관점에서 개념과 기법을 설명합니다. 데이터 마이닝은 단 하나로 떨어지지 않는 영역이기에 통계, 기계 학습, 패턴 인식, 데이터베이스 기술, 정보 추출, 네트워크 과학, 지식 시스템, 인공 지능, 고성능 컴퓨팅, 데이터 시각화를 포함한 여러 분야의 노력을 끌어와야 합니다. 우리들은 가용성과 유용성, 효율성, 규모에 관한 주제에 역점을 두고 대규모 데이터 세트에 숨어있는 패턴을 발견하는 기법을 설명하는 데 주력했습니다. 그 결과, 비록 독자들의 종합적인 이해를 돕기 위해 통계학, 기계 학습, 데이터베이스 시스템이나 여타 비슷한 기술의 배경 지식과 데이터 마이닝에서의 역할을 설명하기는 하지만 그 중 어느 한 분야에 국한되지 않습니다. 그보다는 데이터 마이닝에 대한 종합적인 안내서입니다. 컴퓨터 과학 (전산과학)의 학생, 애플리케이션 개발자, 사업체의 전문가와 위 여러 분야의 연구자에게 유용한 책이 될 것입니다.
데이터 마이닝은 1980년대 후반에 폭발적으로 성장하기 시작해서 1990년대에 크게 진일보하고, 새로운 밀레니엄을 맞아 전성기를 이어가고 있습니다. 이 책은 데이터 마이닝에 대한 전반적인 그림을 그려 제시하며, 흥미로운 데이터 마이닝 기법과 시스템을 소개하고 적용 분야와 연구의 향방에 대해 논의할 것입니다. 데이터 마이닝이라는 학제에 잘 정비한 학문적 틀을 정립할 필요가 이 책을 쓰게 된 가장 중요한 동기입니다. 태생적으로 여러 학제에서 다양한 개념을 빌려와 빠르게 발전하는 분야인 만큼, 지난한 일입니다. 우리는 이 책이 각자 다른 배경과 경험을 가진 사람들로 하여금 데이터 마이닝에 대한 자신의 관점을 서로 교환하고 논의하는 계기가 되어, 역동적이고 재미있는 데이터 마이닝이라는 분야의 발전과 형성에 기여할 수 있기를 바랍니다.
★ 역자 서문 ★
빅데이터 열기와 함께 예측, 분석 방법에 대한 관심이 계속해서 높아지고 있습니다. 10년 전만해도 국내에 데이터 마이닝이라는 분야가 관련 분야의 사람이 아니라면 낯선 용어였습니다. 하지만 이제는 매일 데이터 마이닝, 빅데이터, 데이터과학이라는 용어의 홍수 속에서 살아가고 있습니다. 매스컴에서도 꾸준히 빅데이터가 거론되고 있으며 이제는 일반 TV프로에서도 의미 있는 정보를 제공할 때 빅데이터 분석 방법에 근거한 결과라고 거론할 정도입니다.
이에 맞춰 최근에는 데이터 분석을 위한 다양한 과정이 개설되고 있으며 여러 가지 다양한 도서들이 봇물처럼 쏟아져 나오고 있기도 합니다. 다만 매번 아쉬운 점이라고 한다면 데이터 분석에 대한 다양한 기술을 소개하는 책들은 많지만 이에 대한 근본적인 원리를 상세하게 소개하는 책은 상대적으로 적었던 것으로 보입니다. 이러한 시점에서 데이터 분석에 사용되는 여러 가지 기법에 대해서 그 근본 원리를 알기를 희망하는 분들에게 이 책은 길잡이 역할을 하리라 생각합니다.
2015년에 금융업에서는 핀테크가 화두가 되고 있으며 제조업에서는 Industry 4.0이라는 명목하에 스마트 팩토리가 이슈화되고 있습니다. 이와 같은 화두의 밑바탕에는 데이터 분석 기술이 자리잡고 있으리라 생각합니다. 특히 이 분야에 관심이 있는 사람이라면 여러 가지 데이터 분석 기술을 포함하는 데이터 마이닝이라는 광범위한 데이터 분석 이론에 대해 기본적인 지식을 알고 있어야 좀 더 현실적인 그림을 그려볼 수 있을 것입니다. 이 책은 이러한 분들을 대상으로 다양한 예를 들어가며 좀 더 많은 이론을 쉽게 설명하고자 노력한 흔적이 보이는 책입니다. 특히나 데이터 마이닝과 관련된 여러 가지 다양한 테마(분류, 예측, 군집화 등)를 예를 들어 설명합니다.
현장에서 데이터 분석을 하다가 항상 느끼고 있는 점이지만 분석 업무라는 것은 혼자서 시작하여 끝내는 작업이 아닙니다. 우선 분석대상이 되는 해당 영역에 대한 이해를 충분히 해야 합니다. 그 다음에는 풀어야 할 문제에 대해 다양한 데이터 분석 기술을 적용하여 결과를 도출해내고 의미를 찾아내어 실제 의사결정에 반영될 수 있도록 설득력 있게 설명해야 합니다. 따라서 분석가가 사용한 방법에 대한 올바른 지식이 없다면 분석 결과에 대한 설득력 있는 주장을 하기 어렵다고 할 수 있습니다. 이를 위해서 분석가는 분석 대상에 대한 이해는 물론 분석에 사용한 이론에 대해서 잘 이해하고 있어야 합니다. 또한 본인이 이해한 내용을 잘 구성하여 상대방이 이해하기 쉽게 설명하는 능력까지 갖춘다면 더 이상 바랄 것이 없는 데이터 분석가라고 할 수 있을 것입니다. 그만큼 올바른 데이터 분석가가 되기 위해서는 본인 스스로도 많은 노력이 필요합니다.
이 책을 번역하면서 최대한 여러 문헌을 참고하고 해당 용어와 표현에 대해 표준용어를 사용하여 표현하려고 노력했었습니다. 혹시라도 잘못된 번역이나 표기가 있다면 독자 여러분의 넓은 아량으로 읽어주시길 바랍니다.