본문 바로가기

[ML&DL]

[ML&DL] 데이터 다루기

1. 훈련 세트와 테스트 세트

 

비지도학습: 타깃 데이터가 없음, 입력 데이터에서 어떤 특징을 찾는데 활용

 

훈련세트: 모델을 훈련할 때 사용하는 데이터, 세트가 클 수록 좋고 테스트세트를 제외한 모든 데이터를 사용

 

테스트세트: 전체 데이터에서 20~30%를 사용하는 경우가 많고, 전체 데이터가 크다면 1%도 상관없음

 

지도 학습에서는 데이터와 정답을 입력과 타깃이라고 하고 이둘을 합쳐 훈련 데이터라고 부름

 

from sklearn.neighbors import KNeighborsClassifier # 클래스 임포트

 

kn = KNeighborsClassifier() # kn객체 생성

 

kn.fit(train_input, train_target) # 모델 훈련

 

kn.score(test_input, test_target) # 테스트 세트로 평가

 

넘파이

import numpy as np 

 

seed(): 난수를 생성하기 위한 정수 초깃값을 저장

 

arange(): 기본간격은 1, 일정한 간격의 정수 또는 실수 배열을 만듬

 

shuffle(): np.random.shuffle() 처럼 사용 - 주어진 배열을 랜덤하게 섞음

 

np.random.seed(42) # 일정한 결과를 얻기위해 랜덤시드를 42로 지정
index = np.arange(49) # 0~48까지 일차원 배열 생성
np.random.shuffle(index) # 무작위로 섞는 shuffle() 함수

 

2. 데이터 전처리

 

데이터 전처리: 머신러닝 모델에 훈련 데이터를 주입하기 전에 가공하는 단계

 

np.column_stack(([1,2,3], [4,5,6])) # 전달받은 리스트를 일렬로 세운 다음 연결시켜준다..

                                                        # 리스트를 튜플형태로 묶어주어야함

 

표준점수: 훈련세트의 스케일을 바꾸는 대표적인 방법, 표준점수 = 특성의 평균을 빼고 표준편차로 나눠준다

 

브로드캐스팅: 크기가 다른 넘파이 배열에서 자동으로 사칙 연산을 모든 행이나 열로 확장해주는 기능

 

train_test_split(): 훈련 데이터를 훈련 세트와 테스트세트로 나누는 함수

 

teset_size 매개변수에서 비율을 지정할수 있고 기본값은 25%

 

shhuffle 매개변수로 훈련 세트와 테스트 세트로 나누기 전에 무작위로 섞을지 결정

 

kneighbors(): k-최근접 이웃 객체의 메서드, n_neighbors 매개변수로 개수 지정 가능

 

from sklearn.neighbors import KNeighborsClassifier # k-최근접 이웃(거리를 계산) - 현재 내 위치에서 다수가 근접하는 값을 찾음 

kn = KNeighborsClassifier()
kn.fit(train_input, train_target) # 훈련 데이터로 모델 훈련
kn.score(test_input, test_target) # 테스트 데이터로 모델 평가

 

 

 

 

 

'[ML&DL]' 카테고리의 다른 글

[ML&DL] 비지도학습  (0) 2023.03.10
[ML&DL] 트리 알고리즘  (0) 2023.03.09
[ML&DL] 다양한 분류 알고리즘  (0) 2023.03.08
[ML&DL] 회귀 알고리즘과 모델 규제  (0) 2023.03.07
[ML&DL] 입문  (0) 2023.03.06