데이터사이언스 기록기📚

[혼공 10기/혼공 머신러닝+딥러닝] 1주차_Ch.2 데이터 다루기 본문

대외활동/혼공10기 - 머신러닝, 딥러닝

[혼공 10기/혼공 머신러닝+딥러닝] 1주차_Ch.2 데이터 다루기

syunze 2023. 7. 7. 15:32

📌 Ch2. 데이터 다루기

🖊️ Ch.2-1) 훈련 세트와 테스트 세트 

✔️지도학습, 비지도학습

- 지도학습 : 정답이 있는 데이터를 학습시키는 것

  • 특징 : 구분하기 위한 정답 도출

- 비지도학습 : 정답이 없는 데이터를 학습시키는 것

  • 특징 : 데이터 파악 및 변형

+) 강화학습 : 알고리즘이 행동한 결과로 얻은 보상으로 학습

 

 

✔️훈련 세트와 테스트 세트

- 머신러닝 알고리즘 성능 평가

 : 훈련 데이터(Train)와 테스트 데이터(Test) 달라야 함 → 이유 : 연습과 실전이 달라야 올바른 능력 평가 가능

   ① 테스트를 위한 다른 데이터 준비

   ② 준비된 데이터 중 일부 떼어 내서 활용

- 훈련 세트, 테스트 세트 구분

  • 훈련 세트(전체 데이터 70~80%)
  • 테스트 세트 (전체 데이터 20~30%)

 

✔️샘플링 편향

- 샘플링 편향(Sampling bias) : Train set, Test set에 정답이 골고루 섞이지 않은 경우

 → Train set, Test set으로 나눌 때, 편향되지 않도록 샘플을 섞어서 생성해야 함

 

✔️실습

1) 데이터 샘플 생성

 

2) train, test 샘플 나누기

 

3) 모델 생성, 훈련, 평가

모델 생성
모델 훈련 및 평가

 → train, test가 샘플링 편향으로 올바르게 나누어 지지 않음!

 → 데이터를 무작위로 섞어 샘플링 편향 없애기

 

4) 데이터 무작위 생성

array 생성
인덱스 무작위로 섞기
확인해보기
훈련, 테스트 세트 나누기
시각화로 무작위 생성 확인

 

5) 새로운 train, test set으로 분류


🖊️ Ch.2-2) 데이터 전처리

✔️실습

1) Data 만들기

  • column_stack() : 전달받은 리스트 연결. 열 형식으로 묶임

예제
fish_data 생성

  • concatenate() : 2개의 데이터를 1차원 형태로 붙이는 것 

fish_target 생성

 

2) train, test 나누기

  • train_test_split() : train,test로 나누어 줌. 기본적으로 25%를 테스트로 사용

그냥 나누기

  • train_test_split(stratify = ) : 클래스 비율에 맞게 데이터 나누어 줌 (데이터 양 적을 때 유용) 

stratify 적용

 

3) (잘못된 방법) 데이터 훈련시키기 

데이터 훈련시키기
(25,150) 분류 오류 판단하기 1
(25,150) 분류 오류 판단하기 2
x범주 1000으로 바꾸어서 거리 확인하기

 

4) 데이터 전처리

  • 표준점수로 샘플간의 거리를 일정한 기준으로 맞추기

train 데이터만 표준점수로 바꾼 것
타겟 데이터도 train 데이터 표준점수로 바꿔서 표현

 

5) 데이터 전처리 후 훈련

728x90
Comments