250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 뉴런 신경망
- 더미 기법
- MSEE
- 지도학습
- 알고리즘 기술
- 데이터 전 처리
- 수치 맵핑 기법
- 수치형 자료
- 지니 불순도
- 이상치 처리
- ICDL 파이썬
- 명목형
- 불순도
- 평가용 데이터
- 결측값 처리
- 지도학습 분류
- 학습용데이터
- 머신러닝 과정
- 데이터 분리
- 분류 머신러닝 모델
- 퍼셉트론
- 가중치 업데이트
- LinearRegression 모델
- 회귀 알고리즘 평가
- 다중선형 회귀
- 딥러닝 역사
- 스케이링
- 웹 크롤링
- 항공지연
- 경사하강법
Archives
- Today
- Total
끄적이는 기록일지
[머신러닝] 02.데이터 전처리_(2) 범주형 자료 본문
728x90
지난 시간 범주형 자료가 무엇인지에 대해 알아보았습니다. 이제 범주형 자료를 머신러닝이 사용할 수 있는 자료로 전 처리 해주는 과정을 배워보겠습니다.
1. 범주형 자료
아래 예시는 타이타닉 생존자 데이터 변수와 설명입니다.
- 범주형 데이터: 몇 개의 범주로 나누어진 자료(명목형, 순서형 자료)
* 명목형 자료: 순서 의미X(ex 혈액형)
순서형 자료: 순서 의미O(ex 성적)
2) 범주형 자료 변환 방식
① 명목형 자료: 수치 맵핑 방식, 더미(Dummy)기법
- 수치 맵핑 변환
: 일반적으로 범주를 0, 1로 맵핑
(-1, 1), (0, 100)등 다양한 케이스 존재하지만 모델에 따라 성능 달라질 수 있음
3개 이상인 경우, 수치 크기 간격을 같게 하여 수치 맵핑 ex 0,1,2,3...
- 더미 기법
: 각 범주를 0 or 1로 변환
② 순서형 자료: 수치 맵핑 방식
- 수치 맵핑 변환
: 수치에 맵핑하여 변환하지만, 수치 간 크기 차이는 커스텀 가능
크기 차이가 머신러닝 결과에 영향 끼칠 수 있음(범위 차이가 많이 나는 경우)
2. 실습
1. 성별(‘Sex’) 변수에서 male 데이터는 0, female 데이터는 1로 변환하여 titanic 데이터프레임에 저장해 봅시다.
#02. 데이터 전 처리_범주형_명목형_수치 맵핑
import pandas as pd
# 데이터를 읽어옵니다.
titanic = pd.read_csv('titanic.csv')
print('변환 전: \n',titanic['Sex'].head())
"""
1. male -> 0, female -> 1로 변환
(pandas의 DataFrame에서 replace를 사용)
>> DataFrame.replace({A:B, C:D,...})
"""
titanic = titanic.replace({'male':0, 'female':1})
# 변환한 성별 데이터를 출력합니다.
print('\n변환 후: \n',titanic['Sex'].head())
>>> 변환 전:
0 male
1 female
2 female
3 female
4 male
Name: Sex, dtype: object
변환 후:
0 0
1 1
2 1
3 1
4 0
Name: Sex, dtype: int64
2. Embarked의 S, Q, C데이터를 더미를 사용하여 변환하고 dummies에 저장해 봅시다.
#02. 데이터 전 처리_범주형_명목형_더미기법
import pandas as pd
# 데이터를 읽어옵니다.
titanic = pd.read_csv('titanic.csv')
print('변환 전: \n',titanic['Embarked'].head())
"""
1. get_dummies를 사용하여 변환
>> pd.get_dummies(DataFrame[[변수명]])
"""
dummies = pd.get_dummies(titanic[['Embarked']])
# 변환한 Embarked 데이터를 출력합니다.
print('\n변환 후: \n',dummies.head())
>>> 변환 전:
0 S
1 C
2 S
3 S
4 S
Name: Embarked, dtype: object
변환 후:
Embarked_C Embarked_Q Embarked_S
0 0 0 1
1 1 0 0
2 0 0 1
3 0 0 1
4 0 0 1
728x90
'AI실무' 카테고리의 다른 글
[머신러닝] 02.데이터 전처리_(4) 데이터 정제 및 분리 (1) | 2021.09.15 |
---|---|
[머신러닝] 02.데이터 전처리_(3) 수치형 자료 (0) | 2021.09.14 |
[머신러닝] 02.데이터 전처리_(1) 머신러닝 이해 (0) | 2021.09.13 |
[머신러닝] 1.자료형태_(3) 수치형 자료 (0) | 2021.09.12 |
[머신러닝] 1.자료형태_(2) 범주형 자료 (0) | 2021.09.12 |
Comments