목차
- 머신러닝이란?
- 머신러닝 특징
- 구성요소
- 데이터셋
- 특성(Feacture)
- 레이블(Label)
- 모델
- 학습
- 머신러닝의 학습 과정
- 데이터 수집
- 데이터 전처리
- 특징 선택
- 모델 선택
- 모델 훈련
- 모델 평가
- 모델 배포
- 학습 방법
- 지도 학습(Supervised Learning)
- 비지도 학습(Unsupervised Learning)
- 앙상블 학습(Ensemble Learning)
- 데이터셋 불러오기
- CSV 불러오기
- 엑셀 불러오기
- 기본 정보 확인
- 데이터 전처리(Data cleaning)
- 정의
- 장점
- 주요 기법
- 결측치 처리(Handling Missing Data)
- 이상치 처리(Handing Outliers)
- 데이터 정규화(Normalization)
- 데이터 표준화(Standardization)
- 특성 공학(Feacture Engineering)
- 데이터 인코딩(Data Encoding)
- 데이터 분할(Data Splitting)
1. 머신러닝이란?
1.1. 정의
- 컴퓨터가 명시적으로 프로그래밍이 되지 않아도 데이터를 통해 학습하고, 예측할 수 있도록 하는 기능
- 대량의 데이터를 알고리즘에 입력하여 학습 과정을 통해 모델을 생성하고 예측을 수행
1.2. 특징
- 데이터를 통해 패턴과 규칙을 스스로 학습함
- 예측 모델을 통해 새로운 데이터에 대한 결과를 도출함
- 프로그램이 아닌 모델이 중심임
1.3. 구성요소
1.3.1. 데이터셋
- 정의 : 머신러닝은 데이터셋을 통해서 학습하며, 일반적으로 데이터셋은 입/출력 데이터로 구성됨
- 입력 데이터 : 모델이 학습할 수 있는 정보
- 출력 데이터(레이블) : 모델이 예측해야 하는 목푯 값
1.3.2. 특징(Feacture)
- 정의 : 데이터에서 모델이 학습할 수 있는 개별 속성
- 예 : 주택 가격 예측 - 주택의 크기, 위치, 방의 개수 등이 특징이 됨
1.3.3. 레이블(Label)
- 정의
- 예측하고자 하는 목표 변수
- 지도학습 모델에서는 레이블이 있는 데이터셋을 이용하여 모델을 학습 시킴
1.3.4. 모델
- 정의
- 데이터의 특징으로부터 레이블(정답)을 예측할 수 있는 지식을 학습할 수 있는 프로그램 또는 함수
- 입력 데이터와 출력 데이터간의 관계를 학습하여 새로운 데이터에 대한 예측 수행
1.3.5. 학습
- 정의
- 모델이 데이터를 통해서 패턴을 인식하고, 이를 기반으로 예측을 수행할 수 있도록 함수 내의 가중치를 조정하는 과정
2. 머신러닝의 학습 과정
2.1. 데이터 수집
- 정의
- 모델을 학습시키기 위한 필요 데이터를 수집하는 단계
2.2. 데이터 전처리
- 정의
- 결측값 처리, 이상치 제거, 정규화 등등을 하는 단계
2.3. 특징 선택
- 정의
- 중요 특징(feacture)을 선택하고 불필요한 피쳐를 제거하여 학습 효율을 높이는 단계
2.4. 모델 선택
- 정의
- 문제에 적합한 머신러닝 알고리즘을 선택하는 단계
2.5. 모델 훈련
- 정의
- 트레이닝 데이터셋을 사용해서 모델을 학습시키는 단계
2.6. 모델 평가
- 정의
- 테스트 데이터셋을 사용하여 모델 성능을 평가하는 단계
2.7. 모델 배포
- 정의
- 학습된 모델을 실제 환경에 배포하여 예측을 수행하는 단계
3. 학습 방법
3.1. 지도 학습(Supervised Learning)
- 정의
- 레이블이 있는 데이터셋을 이용하여 모델을 학습시키는 방법
- 회귀(Regression) : 연속적인 값을 예측하는 문제
- 예) 주택 가격 예측, 주식 가격 예측
- 분류(Classification) : 이산적인 값을 예측하는 문제
- 예) 이메일 스팸 필터링, 이미지 분류
- 회귀(Regression) : 연속적인 값을 예측하는 문제
- 레이블이 있는 데이터셋을 이용하여 모델을 학습시키는 방법
3.2. 비지도 학습(Unsupervised Learning)
- 정의
- 레이블이 없는 데이터셋을 이용하여 모델을 학습시키는 방법
- 군집화(Clustering) : 데이터를 유사한 그룹으로 묶는 문제
- 예) 고객 세분화, 이미지 세그멘테이션
- 차원 축소(Dimensionality Reduction) : 고차원 데이터를 저차원으로 변환
- 예) PCA, t-SNE
- 군집화(Clustering) : 데이터를 유사한 그룹으로 묶는 문제
- 레이블이 없는 데이터셋을 이용하여 모델을 학습시키는 방법
3.3. 앙상블 학습(Ensemble Learning)
- 정의
- 여러개의 머신러닝 모델을 결합하여 더 나은 성능을 얻는 방법
- 배깅(Bagging) : 여러 모델을 독립적으로 학습시키고, 예측을 평균내거나 다수결 투표로 최종 예측
- 예) 랜덤 포레스트
- 부스팅(Boosting) : 여러 모델을 순차적으로 학습시키고, 이전 모델의 오차를 보완하여 최종 예측
- 예) 그랜디언트 부스팅, XGboost
- 스태킹(Stacking) : 여러 모델을 학습시키고 예측 결과를 새로운 데이터로 사용하여 메타 모델을 학습
- 배깅(Bagging) : 여러 모델을 독립적으로 학습시키고, 예측을 평균내거나 다수결 투표로 최종 예측
- 여러개의 머신러닝 모델을 결합하여 더 나은 성능을 얻는 방법
4. 데이터셋 불러오기
4.1. CSV 불러오기
Pandas의 read_csv 함수를 사용하여 CSV 파일을 불러올 수 있다
import pandas as pd
# CSV 파일 불러오기
df = pd.read_csv('data.csv')
# 데이터 프레임의 첫 5행 출력
print(df.head())
4.2. 엑셀 불러오기
Pandas의 read_excel 함수를 사용하여 엑셀 파일을 불러올 수 있다
import pandas as pd
# 엑셀 파일 불러오기
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 데이터 프레임의 첫 5행 출력
print(df.head())
4.3. 기본 정보 확인
함수 | 설명 |
print(df.shape) | 데이터 프레임의 크기 (행, 열) 확인 |
print(df.columns) | 데이터 프레임의 컬럼명 확인 |
print(df.dtypes) | 데이터 프레임의 데이터 타입 확인 |
print(df.describe()) | 데이터 프레임의 요약 통계량 확인 |
print(df.info()) | 데이터 프레임의 정보 확인(null 값, 데이터 타입 등) |
5. 데이터 전처리(Data cleaning)
5.1. 정의
- 데이터 분석 및 머신러닝 모델링을 위해 데이터를 준비하는 과정
- 데이터의 품질을 높이고, 분석 결과의 신뢰성을 확보하기 위한 필수 과정
5.2. 장점
- 데이터 품질 향상
- 결측치, 이상치, 중복 데이터를 처리하여 데이터의 품질을 높임
- 모델 성능 향상
- 적절한 스케일링, 정규화를 통해 모델의 학습 속도와 성능을 개선할 수 있음
- 데이터 일관성 확보
- 서로 다른 출처에서 수집된 데이터를 일관된 형식으로 변환함
- 특성 공학
- 유용한 특성을 생성하거나 변환하여 모델의 예측 능력을 향상함
5.3. 주요 기법
5.3.1. 결측치 처리(Handling Missing Data)
- 누락된 값을 처리함
- 삭제 : 결측치가 있는 행이나 열을 삭제
- 데이터 손실이 발생할 수 있음
- 대체 : 평균, 중앙값, 최빈값 등으로 결측치를 대체
- 예측 : 다른 특성을 사용하여 결측치를 예측하고 채움
5.3.2. 이상치 처리(Handing Outliers)
- 비정상적으로 크거나 작은 값을 처리함
- 제거 : 이상치를 데이터셋에서 제거
- 변환 : 이상치를 다른 값으로 변환
- 예) 상한선이나 하한선으로 대체
- IQR 방법 : IQR(InterQuartile Range)을 사용하여 이상치를 탐지하고 처리함
5.3.3. 데이터 정규화(Normalization)
- 일정한 범위로 스케일링하는 과정. [0,1] 단위로 변환함
- Min-Max 정규화 : 최솟값을 0, 최댓값을 1로 변환
5.3.4. 데이터 표준화(Standardization)
- 평균 0, 분산 1로 변환하는 과정
- Z-점수 표준화
5.3.5. 특성 공학(Feacture Engineering)
- 새로운 유용한 특성을 생성하는 과정
- 특성 생성 : 기준 데이터를 기반으로 새로운 특성을 생성함
- 예) 날짜 데이터를 사용하여 요일 특성 생성
- 특성 선택 : 모델 성능에 중요한 특성을 선택하고, 중요하지 않은 특성을 제거함
5.3.6. 데이터 인코딩(Data Encoding)
- 비정형 데이터를 모델이 이해할 수 있는 형태로 변환
- 레이블 인코딩 : 범주형 데이터를 숫자로 변환
- 원_핫 인코딩 : 범주형 데이터를 이진 벡터로 변환
5.3.7. 데이터 분할(Data Splitting)
- 데이터를 학습용(train), 검증용(validation), 테스트용(test)으로 분할함
- 이를 통해 모델의 일반화 성능을 평가할 수 있음
- 학습 데이터(Training Data) : 모델 학습에 사용되는 데이터
- 검증 데이터(Validation Data) : 모델 튜닝 및 성능 검증에 사용되는 데이터
- 테스트 데이터(Test Data) : 최종 모델 평가에 사용되는 데이터
'공부 > 머신러닝 공부' 카테고리의 다른 글
[머신러닝] 데이터 전처리 (0) | 2024.12.23 |
---|