728x90
- 지도학습(Supervised Learning)
- 데이터에 대한 Label(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법
- 스팸 메일 분류, 집 가격 예측(회귀)
- 분류(Classification)
- 미리 정의된 여러 클래스 레이블 중 하나를 예측하는 것(y가 범주형 데이터로 구성)
- 클래스 레이블은 이산적이고 순서가 없음
- 속성 값을 입력, 클래스 값을 출력으로 하는 모델
- 이진분류, 다중분류
- 붓꽃(iris)의 세 품종 중 하나로 분류, 암 분류, 광고성 이메일 감지(이진 분류), 손글씨 인식(다중 분류) 등
- 회귀(Regression)
- 연속적인 숫자를 예측하는 것
- 속성 값을 입력, 연속적인 실수 값을 출력으로 하는 모델(y가 수치 데이터로 구성)
- 예측 값의 미묘한 차이가 크게 중요하지 않음
- 입력값 x와 결과값 y가 주어지면 각 데이터와 직선 사이 거리가 최소가 되는 직선 → 평균 제곱 거리 사용
- 어떤 사람의 교육 수준, 나이, 주거지를 바탕으로 연간 소득 예측
- 비지도학습(Unsupervised Learning)
- 데이터에 대한 Label(명시적인 답)이 없는 상태에서 컴퓨터를 학습시키는 방법
- 데이터의 숨겨진 특징, 구조, 패턴을 파악하는데 사용
- 군집화(Clustering)
- 사전정보 없이 쌓여있는 그룹 정보를 의미 있는 서브그룹 또는 클러스터로 조직하는 탐색적 데이터 분석 기법
- 분석과정에서 만든 각 클러스터는 어느 정도 유사성을 공유, 다른 데이터(클러스터)와 구분되는 그룹 형성
- 군집은 정보를 조직화하고 데이터에서 의미 있는 관계를 유도
- 차원 축소(Dimensionality Reduction)
- 고차원의 데이터를 저차원으로 축소하는 기법
- 고차원의 데이터 → 계산 성능과 저장 공간의 한계 →그렇다고 해서 무작정 이상치라 판단되는 데이터 일부를 제거하면 이후 특정 알고리즘의 예측 성능을 감소시키는 불상사 발생
- 이러한 문제점 해결위해 대부분의 정보를 유지하면서 더 작은 차원의 부분 공간으로 데이터를 압축
- 이미지 감색 처리, 소비자 그룹 발견을 통한 마케팅, 손 글씨 숫자 인식
- 지도학습/비지도학습 모델 종류
지도학습 | 비지도학습 | |
이산 데이터 | [분류] KNN, 결정트리, 로지스틱 회귀, Naive-Bayes, SVC, 신경망, 퍼셉트론, Random Forests, GBM, Xgboost |
[연관 규칙 학습] Apiori, FP-Growth [HMM] |
연속 데이터 | [회귀] 선형 회귀, 다항 회귀, 라쏘 회귀, 릿지 회귀, 일래스틱넷, 회귀 트리(앙상블), SVR |
[군집과 차원축소] SVD, PCA, ICA, NMF, K-means, DBSCAN, t-SNE |
- 강화 학습(Reinforcement Learning)
- 지도학습과 비슷하지만 완전한 답(Label)을 제공하지 않음
- 기계는 더 많은 보상을 얻을 수 있는 방향으로 행동을 학습
- 강화학습의 피드백은 정답 레이블이나 수치가 아님
- → 보상 함수를 통해 에이전트가 취한 행동이 얼마나 좋은 행동인지 혹은 좋지 못한 행동인지 측정한 값
- 주로 게임이나 로봇을 학습시키는데 많이 사용
- 사람과 달리 학습과정을 밤낮없이 진행 가능, 단기간에 놀라운 성장
- 머신러닝 활용분야
- 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
- 전통적인 방식으로는 전혀 해결 방법이 없는 복잡한 문제
- 새로운 데이터에 적응해야하는 유동적인 환경
- 대량의 데이터에서 통찰을 얻어야 하는 문제
- 머신러닝 학습 과정
- Problem Identification(문제정의)
- 비즈니스 목적 정의(모델을 어떻게 사용해 이익을 얻을까?)
- 요구사항 분석
- 현재 솔루션의 구성 파악
- 지도 vs 비지도 vs 강화
- 분류 vs 회귀
- Data Collect(데이터 수집)
- File(CSV, XML, JSON)
- Database
- Web Crawler(뉴스, SNS, 블로그)
- IoT 센서를 통한 수집
- Survey
- Data Preprocessing(데이터 전처리)
- 결측치 처리(삭제 또는 대체 - 중간값, 평균, 예측값 등)
- 이상치(outlier) 처리(삭제 또는 대체 - 중간값, 평균, 예측값, 범주화 등)
- Cleaning(오류 수정)
- Feature Engineering(특성 공학)
- Scaling(단위 변환)
- Transform(새로운 속성 추출)
- Encoding(범주형 → 수치형)
- Binning(수치형 → 범주형)
- Normalization(정규분포화)
- 범주형 데이터 통합
- EDA(탐색적 데이터분석)
- 기술통계, 변수 간 상관관계
- 시각화(pandas, matplotlib, seaborn)
- Feature Selection(사용할 특성 선택)
- 단변수 시각화 : Histogram(빈도수), Boxplot(평균, 중간값 등)
- 이변수 시각화 : Scatter plot(수치, 상관관계), 누적막대그래프(범주, 독립성 분석), 범주별 Histogram
- 다변수 시각화 : Violin plot, 3차원 그래프 등
- Model 선택, Hyper Parameter 조정
- 목적에 맞는 적절한 모델 선택
- Hyper Parameter : 모델의 성능을 개선하기 위해 사람이 직접 넣는 파라미터
- Model Training(학습)
- model.fit(X_train, y_train) : train데이터와 test데이터를 7:3 정도로 나눔
- model.predict(X_test)accuracy(정확도) : (TP+TN) / (TP+FP+FN+TN)
- Evalution(평가)
- recall(재현율) : TP / (TP+FN)
- precision(정밀도) : TP / (TP+FP)
- f1 score
728x90
'AI > Machine Learning' 카테고리의 다른 글
[ML] 경사하강법- 미분 (0) | 2021.05.10 |
---|---|
[ML] 붓꽃의 품종 분류(지도학습 / 분류) (0) | 2021.04.29 |
[ML] KNN - bmi model (0) | 2021.04.29 |
[ML] 일반화, 과대적합, 과소적합 (0) | 2021.04.29 |
[ML] KNN 알고리즘 - AND, XOR 연산 (0) | 2021.04.29 |
댓글