"분류:데이터 전처리"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
2번째 줄: 2번째 줄:
 
결측치를 제거하거나 새로운 값을 부여하거나, 범주형 변수를 어떻게 처리할지에 대한 지식을 모아둔 분류.
 
결측치를 제거하거나 새로운 값을 부여하거나, 범주형 변수를 어떻게 처리할지에 대한 지식을 모아둔 분류.
  
== 전처리 ==
+
= 전처리 =
 
데이터마다 스케일의 크기가 다르다. 어떤 것은 1~5 사이인데, 어떤 것은 100~1000 사이이기도 하고.. 요소마다 스케일이 다르기도 한데, 크기가 큰 항목에 더 크게 영향을 받기 때문에 이들에 대한 전처리가 필요하다.
 
데이터마다 스케일의 크기가 다르다. 어떤 것은 1~5 사이인데, 어떤 것은 100~1000 사이이기도 하고.. 요소마다 스케일이 다르기도 한데, 크기가 큰 항목에 더 크게 영향을 받기 때문에 이들에 대한 전처리가 필요하다.
  
 
1. 텍스트 데이터의 경우.
 
1. 텍스트 데이터의 경우.
 +
 
컴퓨터가 이해할 수 있는 평태로 변환.
 
컴퓨터가 이해할 수 있는 평태로 변환.
 
  단어를 인덱싱하여 벡터화 해 수치화.
 
  단어를 인덱싱하여 벡터화 해 수치화.
 
2. 정규화
 
2. 정규화
 +
 
데이터 크기 자체에 영향을 받지 않게끔.
 
데이터 크기 자체에 영향을 받지 않게끔.
평균을 0으로, 표준편차를 1로 만드는 정규화를 수행한다.
 
3. 데이터를 0-1 사이로 정규화한다.
 
  
=== 표준화 ===
+
== 정규화 방법 ==
일반적으로 표준화를 거친다. 평균이 0이고, 분산이 1인 상태로 만들어 다루는 것이 일반적이다. 이는 사이킷런에서 기본적으로 제공하는 기능이다.
+
 
 +
=== Min-Max Normalization(최소-최대 정규화) ===
 +
<math>x' = {x-min \over max-min}</math> 모델의 가장 작은 값을 0으로, 가장 큰 값을 1로 맞춘다.
 +
 
 +
이상치에 취약하다는 약점이 있다.(값이 1개라도 이상하게 크게 튀면 나머지 모두가 영향을 받아버린다.)
 +
 
 +
=== '''Z-Score Normalization(Z-점수 정규화), 표준화''' ===
 +
위 정규화의 약점을 해결하기 위해 나온 전략. 표준화라고도 한다. 평균이 0이고, 분산이 1인 상태로 만들어 다루는 .(사이킷런에서 기본적으로 제공하는 기능이다.)
 +
 
 +
<math>z = {x-mean \over \sigma}</math> 평균과 표준편차를 이용해 데이터가 정규분포(가우시안분포)에 해당하게 바꾸어주는 과정이다.
  
== 모델 평가를 위한 데이터 분류 ==
+
= 모델 평가를 위한 데이터 분류 =
 
데이터는 일반적으로 다음의 3개로 분류한다.
 
데이터는 일반적으로 다음의 3개로 분류한다.
 
{| class="wikitable"
 
{| class="wikitable"
34번째 줄: 43번째 줄:
 
|완전히 다른 데이터셋으로 최종적으로 테스트.(모델은 간접적으로라도 테스트세트에 대한 어떠한 정보도 얻어선 안된다.)
 
|완전히 다른 데이터셋으로 최종적으로 테스트.(모델은 간접적으로라도 테스트세트에 대한 어떠한 정보도 얻어선 안된다.)
 
|}
 
|}
 +
 +
== dataframe을 배열로 ==
 +
일반적으로 데이터 관리에서 데이터프레임을 사용하지만, 인공지능에선 넘파이 배열을 사용한다.<syntaxhighlight lang="python">
 +
import numpy as np
 +
 +
x_train = np.asarray(x_train).astype('float32')
 +
# 시간형은 어떻게 바꾸지?
 +
</syntaxhighlight>
 
[[분류:인공지능 이론]]
 
[[분류:인공지능 이론]]

2022년 1월 21일 (금) 14:42 기준 최신판

1 개요[편집 | 원본 편집]

결측치를 제거하거나 새로운 값을 부여하거나, 범주형 변수를 어떻게 처리할지에 대한 지식을 모아둔 분류.

2 전처리[편집 | 원본 편집]

데이터마다 스케일의 크기가 다르다. 어떤 것은 1~5 사이인데, 어떤 것은 100~1000 사이이기도 하고.. 요소마다 스케일이 다르기도 한데, 크기가 큰 항목에 더 크게 영향을 받기 때문에 이들에 대한 전처리가 필요하다.

1. 텍스트 데이터의 경우.

컴퓨터가 이해할 수 있는 평태로 변환.

단어를 인덱싱하여 벡터화 해 수치화.

2. 정규화

데이터 크기 자체에 영향을 받지 않게끔.

2.1 정규화 방법[편집 | 원본 편집]

2.1.1 Min-Max Normalization(최소-최대 정규화)[편집 | 원본 편집]

모델의 가장 작은 값을 0으로, 가장 큰 값을 1로 맞춘다.

이상치에 취약하다는 약점이 있다.(값이 1개라도 이상하게 크게 튀면 나머지 모두가 영향을 받아버린다.)

2.1.2 Z-Score Normalization(Z-점수 정규화), 표준화[편집 | 원본 편집]

위 정규화의 약점을 해결하기 위해 나온 전략. 표준화라고도 한다. 평균이 0이고, 분산이 1인 상태로 만들어 다루는 것.(사이킷런에서 기본적으로 제공하는 기능이다.)

평균과 표준편차를 이용해 데이터가 정규분포(가우시안분포)에 해당하게 바꾸어주는 과정이다.

3 모델 평가를 위한 데이터 분류[편집 | 원본 편집]

데이터는 일반적으로 다음의 3개로 분류한다.

데이터 의도
훈련데이터 가중치(매개변수)를 학습하는 데 쓰이는 데이터.
검증데이터 모델 평가에 사용.

테스트 데이터와의 차이는 무엇일까? => 하이퍼파라미터를 조절하는 데 사용. 검증세트에 맞게끔 모델을 튜닝하다 보면 오히려 여기에 과적합 되어 테스트에 맞지 않게 될 수도 있다.(이를 정보누설이라 한다.)

때문에 테스트 데이터는 최종적으로 한 번만 사용하게끔 개발계획을 잡는 것이 이상적.

시험데이터 완전히 다른 데이터셋으로 최종적으로 테스트.(모델은 간접적으로라도 테스트세트에 대한 어떠한 정보도 얻어선 안된다.)

3.1 dataframe을 배열로[편집 | 원본 편집]

일반적으로 데이터 관리에서 데이터프레임을 사용하지만, 인공지능에선 넘파이 배열을 사용한다.

import numpy as np

x_train = np.asarray(x_train).astype('float32')
# 시간형은 어떻게 바꾸지?

하위 분류

다음은 이 분류에 속하는 하위 분류 4개 가운데 4개입니다.

"데이터 전처리" 분류에 속하는 문서

다음은 이 분류에 속하는 문서 8개 가운데 8개입니다.