"분류:데이터 전처리"의 두 판 사이의 차이
(같은 사용자의 중간 판 4개는 보이지 않습니다) | |||
2번째 줄: | 2번째 줄: | ||
결측치를 제거하거나 새로운 값을 부여하거나, 범주형 변수를 어떻게 처리할지에 대한 지식을 모아둔 분류. | 결측치를 제거하거나 새로운 값을 부여하거나, 범주형 변수를 어떻게 처리할지에 대한 지식을 모아둔 분류. | ||
− | + | = 전처리 = | |
데이터마다 스케일의 크기가 다르다. 어떤 것은 1~5 사이인데, 어떤 것은 100~1000 사이이기도 하고.. 요소마다 스케일이 다르기도 한데, 크기가 큰 항목에 더 크게 영향을 받기 때문에 이들에 대한 전처리가 필요하다. | 데이터마다 스케일의 크기가 다르다. 어떤 것은 1~5 사이인데, 어떤 것은 100~1000 사이이기도 하고.. 요소마다 스케일이 다르기도 한데, 크기가 큰 항목에 더 크게 영향을 받기 때문에 이들에 대한 전처리가 필요하다. | ||
− | + | 1. 텍스트 데이터의 경우. | |
− | |||
− | == 데이터 분류 | + | 컴퓨터가 이해할 수 있는 평태로 변환. |
+ | 단어를 인덱싱하여 벡터화 해 수치화. | ||
+ | 2. 정규화 | ||
+ | |||
+ | 데이터 크기 자체에 영향을 받지 않게끔. | ||
+ | |||
+ | == 정규화 방법 == | ||
+ | |||
+ | === 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" | ||
+ | !데이터 | ||
+ | !의도 | ||
+ | |- | ||
+ | |훈련데이터 | ||
+ | |가중치(매개변수)를 학습하는 데 쓰이는 데이터. | ||
+ | |- | ||
+ | |검증데이터 | ||
+ | |모델 평가에 사용. | ||
+ | 테스트 데이터와의 차이는 무엇일까? => 하이퍼파라미터를 조절하는 데 사용. 검증세트에 맞게끔 모델을 튜닝하다 보면 오히려 여기에 과적합 되어 테스트에 맞지 않게 될 수도 있다.(이를 정보누설이라 한다.) | ||
+ | |||
+ | 때문에 테스트 데이터는 최종적으로 한 번만 사용하게끔 개발계획을 잡는 것이 이상적. | ||
+ | |- | ||
+ | |시험데이터 | ||
+ | |완전히 다른 데이터셋으로 최종적으로 테스트.(모델은 간접적으로라도 테스트세트에 대한 어떠한 정보도 얻어선 안된다.) | ||
+ | |} | ||
− | + | == 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개입니다.