본문 바로가기

반응형

Computer/Pandas

(14)
Onehot 인코딩의 역변환 (inverse transform) 범주형 데이터 (categorical data)를 수치화하는 방법은 대표적으로 1) 0부터 범주 개수까지 범위의 숫자를 할당하는 nominal 인코딩 (Label encoding), 2) 각 범주마다 1의 값을 가지는 dummy variable을 생성하는 onehot 인코딩 방법이 있습니다. (물론 다른 방법들도 있습니다.) 특히, one-hot 인코딩은 Pandas의 get_dummies 함수를 이용해서 쉽게 수행할 수 있었는데요, 이 함수를 사용할 경우 inverse_transform 함수가 정의되어 있는 scikit-learn 함수와는 달리 변환 이후에 원래 데이터 양식으로 역변환 함수를 따로 만들어줘야 합니다. 다음과 같은 데이터프레임이 있다고 가정했을 때 get_dummies 함수를 이용하면 p..
Pandas Multiple Columns Label Encoding Pandas 데이터프레임 형태의 데이터를 머신러닝 알고리즘에 적용하기 위해서는 범주형으로 존재하는 칼럼을 어떻게든 수치화시켜주어야 합니다. Scikit-learn이나 pandas 패키지의 함수를 가지고 쉽게 수행할 수 있으며 대표적인 방법으로는 1) 범주의 개수만큼 열을 새롭게 생성하여 해당하는 범주의 열에 대해서 1, 나머지 열에 대해서는 0을 할당하는 one-hot 인코딩과 (pandas.get_dummies) 2) 0부터 범주 개수 -1 만큼의 수를 각 범주에 할당하는 Label 인코딩이 있습니다. 보통 one-hot 인코딩을 주로 사용하나 추후 Pytorch 같은 딥러닝 프레임워크를 이용할 때에는 정의된 크로스엔트로피 로스의 타겟이 라벨 인코딩 형태로 되어있기 때문에 Label 인코딩을 수행해야하..
Pandas DataFrame 합치기 - merge, concat merge Pandas의 merge 함수는 두 개의 데이터프레임 (DataFrame)을 합치는 함수입니다. 먼저 다음과 같은 두 개의 데이터프레임을 생성하겠습니다. df1 = pd.DataFrame({'key': list('bbacaab'), 'data1': range(7)}) df2 = pd.DataFrame({'key': list('aabde'), 'data2': range(13,18)}) 두 개의 데이터프레임은 'key' 라는 공통적인 열을 가지고 있습니다. Pandas의 merge 함수를 실행하면 자동으로 이름이 같은 공통된 열을 찾습니다. 디폴트로 실행할 경우 how='inner' 방식으로 동작하는데 이 방식은 두 데이터프레임의 공통된 열이 같은 값을 가지는 것에 대한 열에 대해서만 합치게 됩니..
Pandas 에서 데이터 이상치 찾기 - Z-score, Modified Z-score, IQR 이상치 (anomaly)란 주어진 데이터 분포 중심에서 멀리 떨어진 데이터를 말합니다. 말 그대로 정상 데이터가 아니라 비정상 데이터인 것이죠. 주어진 데이터에서 이상치를 찾는 가장 간단한 방법은 Z-score 입니다. Z-score Z-score 는 평균과 표준오차가 정의되어 있을 떄 해당 데이터가 얼마나 벗어나 있는지 측정하는 지표로 $Z-score = \frac{x_i-\mu}{\sigma}$ 와 같이 정의됩니다. 평균에서 얼마나 떨어져 있는지 계산하고 표준 오차로 나눠줌으로써 평균에서 어느 방향으로 얼마나 떨어져 있는지 계산합니다. Z-score의 절대값이 클수록 이상치라고 생각할 수 있습니다. Example 기본적인 라이브러리를 iport 하고 1950년부터 열린 월드컵 최다 득점자 정보를 가진..
Pandas - datetime64 타입 Pandas에서는 datetime64 라는 일자와 시간을 표기하는 타입을 지원합니다. 문자열로 되어있는 일자 (연월일)나 시간 (시분초)를 to_datetime이라는 함수로 datetime64 타입으로 변환할 수 있습니다. datetime64 먼저 예제를 하나 생성해 보겠습니다. df = pd.DataFrame({'Birth':['2019-01-01 09:10:00', '2019-01-08 09:20:30', '2019-02-01 10:20:00', '2019-02-02 11:40:50', '2019-02-28 15:10:20', '2019-04-10 19:20:50', '2019-06-30 21:20:50', '2019-07-20 23:30:59']}) df.dtypes를 통해 Birth column은..
Pandas - get_dummies 함수 범주형 (categorical) 데이터가 존재할 경우 이를 수치화하는 대표적인 방법은 One-hot Encoding 입니다. One-hot encoding은 범주의 개수만큼 dummy variable을 만들어 0 또는 1을 각 범주마다 할당해서 새로운 특성으로 바꾸는 방법입니다. 밑의 그림에서는 3개의 범주 (red, blue, green)에 대해 3개의 dummy variable을 할당한 뒤 red/blue/green 마다 각각 0 또는 1을 개별적으로 할당하는 것을 볼 수 있습니다. Pandas에서는 get_dummies 라는 one-hot encoding 을 실행하는 함수를 지원합니다. get_dummies get_dummies 함수의 대표적인 파라미터를 알아보면, Parameters Descrip..

반응형