▶ 머신러닝
▷ 범위 : 인공지능 > 머신러닝 > 딥러닝
▷ Rule-based expert system
(규칙 기반 전문가 시스템)
'if' 와 'else' 로 하드코딩된 명령을 사용하는 시스템
--> 모든 경우의 수를 계산할 수 없음, 많은 상황에 대한 규칙들을 모두 만들어 낼 수 없다
--> 머신러닝으로 해결!
▷ 머신러닝
데이터 기반으로 학습을 시켜서 예측하게 만드는 기법
인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야
통계학, 데이터마이닝, 컴퓨터 과학이 어우러진 분야
▷ 딥러닝
컴퓨터를 사람처럼 학습하게하는 분야
▶ 머신러닝
Data --> Model(알고리즘)
학습을 통해 기계가 스스로 규칙을 만들어낸다
데이터를 이용하여 특성과 패턴을 학습(규칙을 만듬)하고,
그 결과를 바탕으로 미지의 데이터에 대한
미래결과(값, 분포)를 예측하는 것
▷ 종류
지도 학습, 비지도 학습, 강화 학습
▶ 지도 학습(Supervised Learning)
데이터에 대한 Label(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법
분류(Classification)와 회귀(Regression)로 나뉘어진다
ex) 스팸 메일 분류, 집 가격 예측
ex) 성적 -> 점수로하면 회귀 모델, 등급으로하면 분류 모델
▷ 분류 (Classification)
미리 정의된 여러 클래스 레이블 중 하나를 예측하는 것
속성 값을 입력, 클래스 값을 출력으로 하는 모델
속성 -> 문제, 클래스 -> 정답
이진분류, 다중 분류 등이 있다
ex) 붓꽃(iris)의 세 품종 중 하나로 분류, 암 분류 등
▷ 회귀 (Regression)
연속적인 숫자를 예측하는 것
속성 값을 입력, 연속적인 실수 값을 출력으로 하는 모델
예측 값의 미묘한 차이가 크게 중요하지 않다
ex) 어떤 사람의 교육수준, 나이, 주거지를 바탕으로 연간 소득 예측
▶ 비지도 학습(Unsupervised Learning)
데이터에 대한 Label(명시적인 답)이 없는 상태에서 컴퓨터를 학습시키는 방법
데이터의 숨겨진 특징, 구조, 패턴을 파악하는데 사용
데이터를 비슷한 특성끼리 묶는 클러스터링(Clustering)과 차원축소(Dimensionality Reduction)등이 있다.
ex) 카테고리가 없는(label이 없는) 뉴스 기사의 카테고리 분류
▶ 강화학습(Reinforcement Learning)
지도학습과 비슷하지만 완전한 답(Label)을 제공하지 않는 특징이 있다
기계는 더 많은 보상을 얻을 수 있는 방향으로 행동을 학습
주로 게임이나 로봇을 학습시키는데 많이 사용
▶ 머신러닝 과정 ! ★★★★★
1. Problem Identification (문제정의)
2. Data Collect (데이터 수집)
3. Data Preprocessing (데이터 전처리)
4. EDA (탐색적 데이터 분석) ex) 시각화
5. Model 선택, Hyper Parameter 조정
6. Training (학습)
7. Evaluation (평가)
무조건적인 것은 아니고, 순서는 바뀔수 있는듯?!
▷ 1. Problem Identification (문제정의)
- 비즈니스 목적 정의, 모델을 어떻게 사용해 이익을 얻을까?
- 현재 솔루션의 구성파악
- 지도 vs 비지도 vs 강화
- 분류 vs 회귀
▷ 2. Data Collect (데이터 수집)
- File (CSV, XML, JSON) -> Best !
- Database
- Web Crawler (뉴스, SNS, 블로그)
- IoT 센서를 통한 수집
- Survey
▷ 3. Data Preprocessing (데이터 전처리) --> 프로젝트 80% 시간이 수집+전처리에 쓰임
- 결측치(null), 이상치(이상한 값, 오타) 처리
- Feature Engineering (특성공학) :
Scaling (단위 변환),
Transform (새로운 속성 추출),
Encoding (범주형 -> 수치형),
Binning (수치형 -> 범주형)
▷ 4. EDA (탐색적 데이터 분석) -> 데이터에 숨은 특징 분석, 주로 시각화
- 기술통계, 변수간 상관관계
- 시각화 : pandas, matplotlib, seaborn
- Feature Selection (사용할 특성 선택)
▷ 5. Model 선택, Hyper Parameter 조정
- 목적에 맞는 적절한 모델 선택
- KNN, SVM, Linear Regression, Ridge, Lasso, Decision Tree, Random forest, CNN, RNN .....
- Hyper Parameter :
model의 성능을 개선하기 위해 사람이 직접 넣는 parameter -> 사용자가 조절할 수 있는 parameter
▷ 6. Training (학습)
- model..fit(X_train, y_train) :
train데이터와 test데이터를 7:3 정도로 나눔 --> 시험을 보기 위한 데이터를 따로 나눔
X (Feature, 독립변수) (문제) |
y (Label, 종속변수) (답) |
|
Train Data (학습) | X_train (7) | y_train (7) |
Test Data (시험) | X_test (3) | y_test (3) |
- model.predict (X_test)
학습시킨 모델에 X_test(문제)를 적용해 정답 예측!
▷ 7. Evaluation (평가)
- accuracy (정확도) --> TP+TN / (TP+FP+FN+TN)
- recall (재현율) --> 실제 중에서 얼마나 맞췄는지
- precision (정밀도)
- f1 score
'Machine Learning' 카테고리의 다른 글
[LinearRegression] 선형 회귀 기초 (0) | 2021.09.14 |
---|---|
[LinearRegression] 서울시 구별 CCTV현황 분석과 특성공학 (0) | 2021.09.14 |
[Kaggle] 전자 상거래 물품 배송 예측(분류) (0) | 2021.09.10 |
[MachineLearning] 머신러닝과 기초통계학 (0) | 2021.08.31 |