
<데이터 가공>
데이터 정제
- 데이터에서 불필요한 요소를 제거하고, 사용하기 편하게 정리
데이터 가공
- 데이터 정제보다 더 광범위하고, 구체적인 목적 아래 이루어짐
- 거의 모든 분야에서 적절한 가공이 필요함
- 데이터를 보다 효과적으로 분석하기 위해 데이터를 만지고 변형하는 작업
- 기본적으로 데이터 프레임을 중심으로 R이 제공하는 다양한 연산자와 함수를 이용해 이루어지는 작업
데이터 가공, 무엇을 하려고?
- 통계 분석 : 데이터에 담긴 의미 끄집어내기
- 시각화 : 효과적인 관찰을 위해
- 모델링 : 인과관계를 추정하기 위해
<베이스 R을 이용한 데이터 가공>
gapminder
- 세계 각국의 기대 수명, 1인당 국내총생산, 인구 데이터 등을 집계해 놓음
- country : 국가명, 범주형
- continent : 국가가 속한 대륙, 범주형
- year : 관측연도, int
- lifeExp : 기대 수명, num
- pop : 인구, int
- gdpPercap : 1인당 국내총생산, num
샘플과 속성의 추출
- [ 행 , 열 ]로 원하는 행과 열을 따로 추출할 수 있음
- 여러 행이나 열을 지정할 때는 벡터로 묶어 주기 !
- 정교하게 추출하려면, 조건식 여러 개를 논리 연산자(&, |)로 결합하면 됨
행/열 단위의 연산
- apply 함수를 이용하여 행/열 단위의 빠른 연산
조건에 맞는 데이터의 위치 찾기
=> 인덱스를 추출함
=> 데이터가 array(배열) 형태이면 값을 반환하므로 arr.ind=TRUE를 해야 인덱스를 반환함 !
which()
which.max()
which.min()
<dplyr 라이브러리를 이용한 데이터 가공>
- 베이스 R 기반 : 인덱스 기반의 데이터 접근에 기초함
- dplyr 라이브러리 : filter 혹은 select 같은 함수를 이용해 데이터 가공을 구현 => 보다 직관적으로 이해할 수 있게 됨
- 탐색적 데이터 분석 가정에서 시각화와 데이터 가공을 매우 긴밀하게 연결되어 있으므로, 시각화를 위한 효율적인 가공 기법도 필요
=> dplyr는 데이터 프레임 가공에 활용하기 좋다 !
샘플과 속성 추출
- select() : 특정 속성(열)을 추출할 때 사용
- filter() : 특정 샘플(행)을 추출할 때 사용
행/열 단위의 연산
- group_by() : 데이터 프레임에 포함된 범주형 속성을 활용해, 전체 데이터를 그룹으로 분류할 수 있음
- summarize() : 각 그룹별 통계 지표를 한 번에 산출
%>% 연산자를 이용한 연속 처리
- %>% : 파이프, 명령어의 작업을 연결함
<데이터 가공의 실제>
데이터 정렬과 검색
- arrange() : 정렬, 데이터의 속성값도 함께 확인할 수 있음
Date형 데이터의 활용
- 일정 기간 동안 기록된 데이터는 보통 연도-월-일 형태의 Date형 속성이 포함되어 있음
- Date에서 month를 추출하려면, lubridate 라이브러리 설치 후, month 함수 사용
모델링을 위한 가공
- UCI 리퍼지토리 : 기계 학습 알고리즘의 실험적 분석을 위해 마련된 데이터 셋
데이터 셋 분할하기
- 모델을 학습하는 데 필요한 학습 데이터와, 구해진 모델이 적절한지 검증하기 위한 테스트 데이터는, 주어진 데이터 셋을 일정한 비율로 분할하여 얻게 됨
- sample_frac(데이터, 비율) : 일정 비율로 샘플을 뽑을 수 있음
데이터 구조 변경
- names() : 속성(열) 이름
- gather(데이터, key="긴 형태로 나열하게 될 변수명", value="key 변수에 대한 값 변수명", -고려하지 않는 변수) : 데이터 프레임을 세로로 긴 형태로 변형시켜 줌
- merge() : 하나의 데이터 프레임으로 병합
데이터 가공의 의의
- 관심 있는 데이터 영역을 추출하는 작업
- 데이터를 직관적이고 쉽게 분석하기 위한 여러 작업
- 그 어떤 분석 기법보다도 오래된 데이터 과학의 기본 기술
- 크고 복잡한 데이터 덩어리를 지속적으로 가공하고 의미를 파악
- 데이터 변형 => 데이터를 바라보는 관찰자의 생각과 관점을 바꾸는 것
- 데이터의 의미가 잘 드러나도록 불필요한 부분 잘라내기
- 신뢰성과 일관성을 부여하기 위해 끊임없이 사고해야 하는 작업
- 데이터에 대한 이해 & 데이터 가공 => 같이 진행되는 것 !!!
'STUDY✏️ > 데이터과학' 카테고리의 다른 글
[R로 배우는 데이터 과학] 6장 데이터 시각화 :: 시험 대비 요약정리 (0) | 2024.03.24 |
---|---|
[R로 배우는 데이터 과학] 4장 데이터 취득과 정제 :: 시험 대비 요약정리 (2) | 2024.03.23 |
[R로 배우는 데이터 과학] 3장 R의 데이터형과 연산 :: 시험 대비 요약정리 (2) | 2024.03.23 |
[R로 배우는 데이터 과학] 2장 데이터 과학으로 풍덩 :: 시험 대비 요약정리 (2) | 2024.03.22 |
[R로 배우는 데이터 과학] 1장 데이터 과학 알아보기 :: 시험 대비 요약정리 (0) | 2024.03.22 |