continuous 데이터란 수익, 거리, 시간 등 연속적인 데이터를 의미합니다. 하나의 feature가 continuos데이터라면 우리는 seaborn의 kdeplot()이나 distplot()등 을 이용하여 값의 분포를 시각화 할 수 있습니다. 하지만 이 feature와 다른 feature등 사이의 관계를 분석하기는 쉽지 않습니다. 이때 이 continuous feature를 영역별 band로 묶어 순서가 있는 이산적인 데이터로 변형하면, 다른 feature과의 관계를 더 수월하게 분석 할 수 있습니다.
titanic data의 'Age'데이터를 예로 들어 보겠습니다. 'Age'는 정수데이터지만 88가지 값을 가지므로 각 나이 값마다 다른 feature들의 통계를 분석하는 것은 어렵습니다. 그래서 이 'Age' 데이터를 5개의 묶음으로 나누면 각 그룹별 다른 feature들의 통계를 분석하기 쉬워집니다.
DataFrame의 loc문법을 이용하여 Age값을 5개의 묶음으로 묶어보겠습니다.
이제 5개의 묶음으로 묶여진 Age faeture를 다른 feature들과 비교해 보겠습니다.
# 데이터프레임.groupby([기준 컬럼]).연산메서드()
ex) data.groupby(['Age']).counts()
groupby는 입력 받은 기준컬럼의 value들로 그룹화한 groupby 객체를 반환합니다. 예시에서는 data라는 DataFrame이 'Age'라는 기준컬럼의 values, 5개(0,1,2,3,4)로 그룹이 묶입니다. 이 groupby객체에 특정 연산 메서드를 실행시키면, 해당 그룹 속의 원소들을 연산하여 데이터 프레임 형태로 연산 결과를 반환한다. 새롭게 만들어지는 데이터 프레임은 5개의 그룹을 행으로, 나머지 features를 열로 가지며 각 칸에는 그룹, feature별 연산결과가 들어있습니다.
cf) sum()연산을 수행할 수 없는 feature들('Name', 'Sex'...)은 제외하고 출력합니다.
'머신러닝' 카테고리의 다른 글
# startswith()함수 (0) | 2020.02.17 |
---|---|
# 파이썬 apply(), lambda() 이해하기 (0) | 2020.02.16 |
# cross-validation (0) | 2020.02.16 |
# accuracy_score (0) | 2020.02.16 |
# LogisticRegression (0) | 2020.02.16 |