목차
👀, 🤷♀️ , 📜
이 아이콘들을 누르시면 코드, 개념 부가 설명을 보실 수 있습니다:)
INTRO
‘머신러닝’하면 뭔가 거리감이 느껴질 수 있다.
워딩 자체가 미래 로봇같은 느낄을 주기 때문이다.
하지만 첫 번째 머신러닝 애플리케이션인 스팸 필터 spam filter 와 같이 머신러닝은 의외로 우리의 주변에 있다.
머신러닝
머신러닝은 데이터에서부터 학습하도록 컴퓨터를 프로그래밍하는 과학 또는 예술이다.
즉, 머신러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습능력을 갖추게 하는 연구 분야다.
[자주 쓰는 용어]
- 훈련 세트(training set): 시스템이 학습하는데 사용하는 샘플
- 훈련 사례(training instance): 각 훈련 데이터(=샘플)
- 훈련 데이터(training data): 각 사례를 통한 경험
- 정확도(accuracy): 성능측정
[머신러닝 사용 이유]
이를 알아보기 위해 전통적인 프로그램 기법과 머신러닝 기법의 차이를 알아보자
이해를 돕기 위해 ‘스팸 필터’를 하는 경우를 생각해보자
(전통적인 프로그래밍 기법)
1) 먼저 스팸에 어떤 단어들이 주로 나타나는지 살펴봅니다. 그러면 ‘4U ‘, 신용카드’, ‘무료’. ‘굉장한’ 같은 단어나 구절이 제목에 많이 나타나는 경향이 있다는 것을 알 수 있습니다.
2) 발견한 각 패턴을 감지하는 알고리즘을 작성하여 프로그램이 이런 패턴을 발견했을 때 그 메일을 스팸으로 분류하게합니다.
3) 프로그램을 테스트하고 론칭할 만큼 충분한 성능이 나올때까지 1) 단계와 2) 단계를 반복합니다.
➡ 문제가 어렵기 때문에 규칙이 점점 길고 복잡해지므로 유지 보수하기 매우 힘들어집니다
즉,
- 전통적인 프로그래밍: 규칙이 명확하고 직관적인 경우 단순히 프로그래밍만 하는 편이 훨씬 나은 경우가 많음
- 1) 분류를 위한 규칙세트 정의
- 2) 이러한 규칙을 컴퓨터에 프로그래밍
- 3) 예시가 주어지면 프로그램이 규칙을 통한 분류 수행
- 머신러닝: 규칙이 미묘하고 복잡하며 식별하기 어려운 경우
- 분류기 구축(근본적인 전환)
- 1) 분류방법에 대한 답과 예시를 모델에 제공
- 2) 모델이 추축을 수행하고 인간이 모델에 옳고 그름을 알려줌
- 3) 모델이 올바르게 분류하는 법* 을 스스로 학습
- 4) 데이터 마이닝 가능: 머신러닝 기술을 적용해서 대용량의 데이터를 분석하면 겉으로는 보이지 않던 패턴을 발견하는 것.
[머신러닝을 적용시키기 좋은 분야]
• 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제 : 하나의 머신러닝 모델이 코드를 간단하게 만들고 전통적인 방법보다 더 잘 수행되도록 할 수 있음
• 전통적인 방식으로는 해결 방법이 없는 복잡한 문제 : 가장 뛰어난 머신러닝 기법으로 해결 방법을 찾을 수 있음
• 유동적인 환경 : 머신러닝 시스템은 새로운 데이터에 적응할 수 있음.
• 복잡한 문제와 대량의 데이터에서 통찰 얻기 가능
머신러닝의 범주
머신러닝 시스템을 ‘학습하는 동안의 감독 형태나 정보량’ 에 따라 분류 가능.
[머신러닝의 4가지 범주]
- 지도 학습
- 비지도 학습
- 준지도 학습
- 강화 학습
지도학습 supervised learning
알고리즘에 주입하는 훈련 데이터에 레이블 label 이라는 원하는 답이 포함된다.
즉 문제와 정답을 알려주고 공부시키는 방법이다.
그러므로 예측과 분류가 중요하다
위와 같이 문제(사진)과 정답(이 사진이 무엇인지)를 보여준다.
[분류classfication] 전형적인 지도 학습 작업
위의 예시와 같이 하얀고양이와 노란 고양이 사진으로 훈련하여 새로운 샘플을 어떻게 분류할지 학습해야한다.
[특성]
=예측 변수
더 알아보기
고양이의 귀 모양, 색, 무늬위치 등을 사용하여 노란고양이인지 하양고양이인지와 같은 타깃 수치를 예측하는 것이다.
시스템을 훈련하려면 예측 변수와 레이블(노란 고양이, 하얀고양이)가 포함된 고양이 데이터가 많이 필요하다
[ex]
- k-nearest neighbors
- 로지스틱 회귀 logistic regression
- 서포트 벡터 머신 support vector machine (SVM)
- 결정 트리 decision tree, 랜덤 포레스트 random forest
- 신경망 neural networks
비지도학습 unsupervised learning
말 그대로 훈련 데이터에 레이블이 없음
시스템이 아무런 도움없이 학습해야 함
즉 지도학습은 노란 고양이다, 하얀 고양이다라는 레이블이 있는데 이는 아무런 정답값 없이 그냥 무작정 고양이 사진만 준다.
[ex]
- 군집
- k-평균 k-means
- DBSCAN
- 계층 군집 분석hierarchical cluster analysis (HCA)
- 이상치 탐지outl er detect on, 특이치 탐지novelty detection
- 원-클래스one class SVM
- 아이솔레이션 포레스트isolation forest
- 시각화visualiza on & 차원 축소 dimensional ty reduction
- 주성분 분석 principal component analysis ( PCA )
- 커널 kernel PCA
- 지역적 선형 임베딩 locally-linear embedding (LLE)
- t-SNE (t-distributed stochastic neighbor embedding)
- 연관 규칙 학습 association rule learning
- 어프라이어리 Apriori
- 이클렛 Eclat