무냐의 개발일지
[Python] 머신러닝 절차 본문
* 머신러닝
- 수학, 통계학, 프로그래밍 등의 지식이 필요하기 때문에 초기 학습이 어렵고 복잡합니다. 그러나 최근에는 머신러닝을 사용하기 쉽게 만들어주는 간단한 라이브러리와 도구들이 많이 개발되어 있기 때문에 상대적으로 쉽게 접근할 수 있습니다.
* 딥러닝
- AI 를 구현하기 위한 머신러닝 중 하나가 딥러닝
- 딥러닝은 성능이 너무 뛰어나서, 따로 떼어 얘기한다. 머신러닝은 보통 딥러닝을 제외한 나머지 개념이다.
- 지도학습 : 데이터가 어떻게 생긴건지 라벨링하는 거 → 그에 따라 새로운 데이터를 분류, 회귀 분석 → 이진 분류/ 다중 분류 | 연속된 숫자 값 예측 (가격, 수요 예측)
- 비지도학습 : 군집화 & 차원축소 → 라벨링은 아니지만 비슷한 데이터끼리 묶어놓는다 (차원축소 : 많은 컬럼을 축약하는 것)
- 강화학습 : 알파고처럼, 환경 속 보상을 통해 학습
- 과소적합(Underfitting) : 모델이 데이터를 충분히 학습하지 못하여, 복잡한 패턴을 파악하지 못하는 상태를 의미
- 과대적합(Overfitting) : 모델이 학습 데이터에 지나치게 맞추어져 일반화 성능이 떨어지는 상태를 의미합니다.
| 머신러닝 절차
- 문제정의 : 무엇을 예측해야 하는가? 회귀/분류? 평가방식은? ( (분류: 예측의 정확도로 모델을 판별하기도 한다) ex) 마감인지/ 아닌지 : 분류, 집값 예측 : 회귀
- EDA : 데이터 크기 확인, 결측치, 분류(예측하려는 target(label)의 비율), 컬럼 type, 수치형데이터, 범주형데이터
- 데이터전처리 : 결측치 (컬럼 삭제, 최빈값으로 채우기, 행을 삭제), 이상치 (1.5*IQR, Z-score 등), feature 선택 및 스케일링, 인코딩 수행
- 수치형데이터(표준화, 정규화) : 스케일링 ex) MinMaxScaler, RobustScaler
- 범주형데이터(숫자로 변경) : 인코딩 ex).레이블 인코딩 ( 1,2,3,…), 원핫 인코딩 (값별 컬럼을 만들어 1,0 으로만 나누는 것)
- 모델선택 및 학습 :
- Train/ Validation 나누기 (학습용/ 검증용 데이터를 나눈다 - 7:3 , 8:2 정도로 나눈다)
- train으로 모델을 훈련
5. 교차검증 : K-Fold, Stratified Kfold 등의 기법을 사용
- validation으로 모델 성능을 확인
- test 데이터로 최종 예측을 완료한다
- 모델 선택 : 분류문제, 회귀문제별 다른 모델을 쓴다
1. 데이터 로딩:
- 먼저, 주어진 데이터를 로드합니다. 보통 train와 test는 별도의 파일로 제공됩니다.
2. 훈련 데이터와 테스트 데이터 분리:
- 일반적으로, 데이터의 약 70-80%를 훈련에 사용하고, 나머지 20-30%를 테스트에 사용합니다.
- 이 과정에서 데이터를 무작위로 섞는 것이 중요합니다. 데이터가 무작위로 섞이면 모델이 특정 패턴에 치우치는 것을 방지.
3. 독립 변수(X)와 종속 변수(y) 구분: (train, validation세트에서 모두 X,y를 구분하여 모델을 훈련, 평가한다)
- 훈련 데이터와 테스트 데이터 모두 독립 변수(X)와 종속 변수(y)로 나뉩니다. 독립 변수는 모델에 입력되는 변수이며, 종속 변수는 모델이 예측하려는 값입니다.
4. training data로 모델 훈련:
- 훈련 데이터(X_train, y_train)를 사용하여 모델을 훈련합니다.
- 모델은 독립 변수(X_train)와 종속 변수(y_train) 사이의 관계를 학습합니다
4-1. 모델 평가:
- 테스트 데이터(X_test)를 사용하여 모델의 성능을 평가합니다. 모델이 예측한 값과 실제 값 사이의 차이를 계산하여 모델의 성능을 평가합니다.
5. 훈련 데이터를 다시 훈련(train)과 검증(validation)으로 분리:
- 훈련 데이터를 또 다시 훈련(train)과 검증(validation) 세트로 분리합니다.
- 훈련(train) 세트는 모델을 훈련시키는 데 사용되고, 검증(validation) 세트는 모델을 조정하고 성능을 평가하는 데 사용됩니다.
6. Test Data
진짜 최종 확인용 데이터
- 교차 검증은 데이터를 여러 번 반복해서 나누고 모델을 훈련하고 검증하는 과정입니다.
- 일반적인 교차 검증 기법으로는 K-Fold Cross Validation이 있습니다. 데이터를 K개의 폴드(fold)로 나누고 각 반복에서 하나의 폴드를 검증 세트로 사용하고 나머지 폴드를 훈련 세트로 사용합니다.
'데싸 추가 독학' 카테고리의 다른 글
[Python] Heatmap으로 그래프 그리기 (0) | 2024.02.13 |
---|---|
[Python] Scaling (MinMaxScaler, StandardScaler), PCA(차원축소) (0) | 2024.02.11 |
[파이썬] 열/ 행 숫자제한 없이 다 보는 방법 (Pandas)/ corr 상삼각,하삼각행렬 표시 (0) | 2024.02.08 |
회귀 모델의 종류!! (0) | 2024.02.01 |
[캐글스터디] #2 House Price (Scatterplot, Boxplot) (0) | 2024.01.26 |