개발자 끄적끄적

데이터 마이닝 정의 및 목적 본문

데이터 마이닝

데이터 마이닝 정의 및 목적

햏치 2023. 3. 8. 23:44
<데이터 마이닝>
 
정의
- 의미 있는 패턴이나 법칙을 찾기 위해 다량의 데이터를 탐구하거나 분석하는 과정
- 대량의 데이터로부터 그 안에 숨어있는(implicit) 새롭고(previously unkown), 가치있고(non-trivial), 의사결정에 유용한(potentially useful)정보를 찾는 작업
 
목적
- Business
  - 소비자를 더 잘 이해함으로써 판매량과 이윤 그리고 회사의 가치와 경쟁력을 높이는 것
 - 새로운 서비스 창출
 
데이터마이닝
- 데이터로부터 비즈니스에 관련 있는 중요한 정보/함의를 유도하는 과정
- 다량의 데이터를 분석하기 위한 일련의 강력한 알고리즘/모델들
 
 
배경
- 다량의 데이터를 생성(Internal, Mobile, IoT(Internet of Things 사물인터넷), POS, GPS ...)
  - Volume(양), Velocity(속도), Variety(다양성), Veracity()
- 다량의 데이터를 저장
  - GFS(Google File System), HDFS(Hadoop distributed file system), 아마존 S3, NoSQL
  *HDFS : 하둡 프레임워크를 위해 자바 언어로 작성된 분산 확장 파일 시스템
- 저렴한 연산력
- 강력한 빅데이터 분석 기법 및 시스템 개발
  - 빅데이터로부터 가치 창출 핵심 기술
 
 
<빅데이터 처리 과정>
1. 데이터 소스
- 내부 데이터
- 외부 데이터
- 미디어
 
2. 수집
- 수동
- 자동(로그 수집기, 크롤링, 센싱)
 
3. 저장
- 정형데이터
- 비정형 데이터
- 데이터 등급
- 장치, 분산 저장장치
 
4. 처리
- 일괄 처리(Gluster, Hadoop)
- 실시간, 배치(NoSQL, 관계형 DB)
- 분산 병렬 처리(Hadoop 등)
 
5. 분석
- 전처리(숫자가 아니라 '문서'로 되있는 경우 -> 난이도가 올라감)
- 분석, 방법(Machine Learning 기법)
 
6. 표현
 
 
<데이터 마이닝 솔루션>
- DBMS에 포함
  - SQL Server, Oracle DataMining, Teradata Warehouse Miner
- 데이터 마이닝 주요 소프트웨어 업체
  - SAS Enterprise Miner
  - Apache Hbase
  - Apache MXNet
  - Microsoft ML.Net
- EXEL 연동(큰 데이터는 다루지 못한다)
  - XLMiner
  - IDA(종합 개발도구 - 파이참, 스파이더, visual studio)
- 기타
  - R Data
  - Python
  - JAVA Data Mining Package(JDMP)
  - Google Tensorflow(무료, 어려움)
  - PyTorch(Facebook)
  - Caffe2(Facebook)
 
 
 
<적용>
- 통신(SKT)
  - 고객 성향 변동 관리 : 이탈원인 파악
  - 통신사가 제일 많은 데이터를 갖고 있다(단말기에 결제하는 정보가 포함)
 
- 금융(Charles Swab, Capital One, Bank of America)
  - 사기 and 마케팅
 
- 보험(State Farm)
  - 상품판매 및 마케팅, 고객관리, 보험 사기
 
- 소매(현대, Walmart, Costco)
  - 매장 내 상품들과 고객 구매 패턴 분석(상품배치, 기저귀와 맥주)
 
- 정부(미국 FBI, CIA, 재무부, 돈 세탁)
  - 이상 거래 탐지(돈의 흐름이 정상적이지 않을 때), 수입 누락(신고서를 통해 탈세 할 확률을 조사)
 
- 항공(United Air, 대한항공)
  - 수요 예측
 
- 의료 분야(왓슨(AI의사), 길병원)
  - 종양의 악성/양성 판단, Bioinformatics(DNA 분석), Smart healthcare
  *생물체로부터 얻어진 대량의 데이터로부터 유용한 지식을 얻어내기 위한
     이론 물리/전산/통계/수학적인 도구를 이용하여 생명현상을 연구하는 분야를
     생정보학(bioinformatics) 혹은 생명정보학, 생물정보학으로 쓰이고 있으며
     전산 생물학(Computational biology)라는 용어 또한 흔히 같은 뜻으로 쓰이고 있다
  *Smart healthcare : 램수면 후 알람, 수면의 질 판단
 
- 제조업
  - 불량품 자동검색장치(센서 데이터를 이용한 불량률 감소)
 
- 검색 엔진
  - 텍스트 마이닝을 이용한 문서 검색(문서 분류, 감성 분석)
  *문서가 갖고 있는 정보의 가장 작은 단위 : Token(토근)
  *ex.어떤 리뷰를 갖고와서 이 내용이 Positive or Nagative인지 훈련 및 판단
 
- 지능형 (대화)시스템(chatGPT, Generative Pre-trained Transformer)
  - LaMDA(Language Model gor Dialogue Application, BERT+GPT)
   - Google
  - BERT(Bidirectional Encoder Representations from Transformers)
    - 언어인식, 대화를 위해 말을 생성(높은 미래 전망)
 
  *인공 신경망(ANN, Artificial Neural Network)
  - 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜
    문제 해결 능력을 가지는 모델 전반
   
  *순환 신경망(RNN, Recurrent Neural Network)
  - 일련의 Serial data를 통해 입력과 출력을
       시퀀스 단위로 처리하는 시퀀스(Sequence)모델
 
  *LSTM(Long Short Term Memory)
  - 기존의 RNN이 출력과 먼 위치에 있는 정보를 기억할 수 없다는 단점을 보안하여
      장/단기 기억을 가능하게 설계한 신경망의 구조이다. 주로 시계열 처리나 자연어 처리에 사용된다
 
  *Attention 매커니즘
  - 입력 문장이 긴 상황에서는 번영 품질이 떨어지는 현상이 나타났고, 이런 현상을 보정하기 위해 중요한 단어에 집중하여
     Decoder에 바로 전달하는 Attention 기법이 등장
  - 기존 방식보다 훨씬 더 많은 데이터를 Decoder에 전달
 
  *Transformer
  - 단어를 순차적으로 입력 받아서 이를 계산하기 때문에 병렬처리가 어려운 단점이 있었다. 하지만 이 순차적으로 입력받는 것이,
      각 input의 위치 정보를 반영할 수 있게 해주었다. 즉, Transformer는 순차적으로 Data를 넣는 것이 아니라 Sequence를 한 번에 넣음으로써
      병렬처리가 가능하면서도 Attention 등의 구조를 통해 어떤 부분이 중요한지를 전달하여 위치정보를 반영할 수 있게 되었다