반응형
머신러닝(Machine Learning, 기계학습)
- 데이터를 기반으로 학습을 시켜서 예측하게 만드는 기법
- 인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘 기술을 개발하는 분야
- 통계학, 데이터 마이닝, 컴퓨터 과학이 어우러진 분야
데이터를 주면 데이터를 학습하여 기계가 스스로 규칙(알고리즘, 모델)을 만들어낸다
데이터를 이용하여 특성과 패턴을 학습하고, 그 결과를 바탕으로 미지의 데이터에 대한 미래결과를 예측
머신러닝의 종류
- 지도학습
: 데이터에 대한 Label(명시적인 답)이 주어진 상태에서 컴퓨터를 학습시키는 방법
패턴 학습
(문제와 정답을 모두 알려주고 학습시키는 방법)
분류 (Classification) | 회귀 (Regression) | |
개념 | 미리 정의된 여러 클래스 레이블 중 하나를 예측하는 것 | 연속적인 실수(숫자)를 예측하는 것 가장 가까운 수식을 찾는 법 |
I/O | 속성값을 입력, 클래스값을 출력으로 하는 모델 | 속성값을 입력, 연속적인 실수값을 출력으로 하는 모델 |
종류 | 이진분류, 다중분류 | 선형회귀, 로지스틱회귀, 리지회귀, 라쏘회귀 |
예시 | 붓꽃의 품종 분류 동물의 종류 분류 |
사람의 교육수준, 주거지를 바탕으로 연간 소득 예측 키와 몸무게를 바탕으로 허리둘레 예측 |
알고리즘 | KNN(K-Nearest Neighbor) SVN(Support Vector Machine) Decision Tree |
Regression Neural Network (인공신경망,ANN) Random Forest |
- 비지도학습
: 데이터에 대한 Label(명시적인 답)이 없는 상태에서 컴퓨터를 학습시키는 방법
예측이 목적이 아니라, 데이터의 숨겨진 특징, 구조, 패턴을 파악하는데 사용
ex) 클러스터링(Clustering), 차원축소(Dimensionality Reductino), 상관관계, feature Engineering
패턴/구조 발견 | Association Rule Analysis Network Analysis |
분류 | K-mean Clustering Fuzzy Clustering |
영상/이미지/신호 분석 | Wavelet / Fast Fourier / Transformation DTW (Dynamic Time Warping) |
차원 축소 | PCA (Principal component analysis) Factor Analysis |
- 강화학습 (Reinforcement Learning)
: 지도학습과 비슷하지만, 완전한 답(Label)을 제공하지 않음
실수와 보상을 통해 학습을 하여, 더 많은 보상을 얻을 수 있는 방향으로 학습
주로 게임이나 로봇을 학습시키는데 사용
머신러닝 과정
1. 문제 정의 (Problem Identification)
- 비지니스 목적 정의
- 현재 솔루션의 구성 파악
- 지도, 비지도, 강화
- 분류, 회귀
2. 데이터 수집 (Data Collect)
- File (csv, xml, json)
- Database
- Web Crawler
- Iot 센서
- survey (설문)
3. 데이터 전처리 (Data Preprocessing)
- 결측치, 이상치 처리
- 특성공학 (Feature Engineering)
: 단위변환, 새로운 속성 추출,범주형→수치형, 수치형→범주형
4. 탐색적 데이터 분석 (EDA)
- 기술통계, 변수간 상관관계
- 시각화 (pandas, matplotlib, seaborn)
- 사용할 특성 선택 (Feature Selection)
5. Model 선택, Hyper Parameter 조정
- 목적에 맞는 모델 선택 ex) KNN, SVM, Linear Regression, Ridge, Lasso, Decision Tree, Random forest, CNN, RNN...
- Hyper Parameter : model의 성능 개선을 위해 사람이 직접 넣는 parameter
6. 학습 (Trainning)
- model.fit (x_train, y_train)
x_train : x_test = 7:3 - model.predict (x_test)
7. 평가 (Evaluation)
- 정확도 (accuracy) = (TP+TN) / (TP+FP+FN+TN)
- 재현율 (recall) = TP / (TP+FN)
- 정밀도 (precision) = TP / (TP+FP)
- f1 score = 2 { (Precision×Recall) / (Precision+Recall) }
(분류모델의 Precision과 Recall 성능을 동시에 고려하기 위한 지표, 조화평균)
실제 | |||
1 (Positive) | 0 (Negative) | ||
예측 | 1 (Positive) | TP (True, Positive) | FP (False, Positive) |
0 (Negative) | FN (False, Negative) | TN (True, Negative) |
TP : 실제 True를 True로 예측 (정답)
FP : 실제 False를 True로 예측 (오답)
FN : 실제 True를 False로 예측 (오답)
TN : 실제 False를 False로 예측 (정답)
- 머신러닝 과정 도식화
- 머신러닝 라이브러리
- 사이킷런 (scikit learn)
: 파이썬에서 쉽게 사용할 수 있는 머신러닝 라이브러리
회귀, 분류, 군집, 차원축소, 특성공학, 전처리, 교차검증 등 머신러닝에 필요한 기능과 학습을 위한 샘플데이터 제공
반응형
'개발기록 > 머신러닝' 카테고리의 다른 글
인공지능 (AI : Artificial Intelligence) (1) | 2024.11.14 |
---|---|
[머신러닝] 지도학습 (Supervised Learning) - 모델 복잡도, KNN 알고리즘 (1) | 2024.10.06 |
댓글