머신러닝 03. 탐색적 데이터분석: 기술통계분석(EDA)과 데이터 전처리2


    목차

    1.
    2.
    3.
    4.
    5.
    6.
    7.
    8.



008


—————코딩——————————————————————————————————

1. 파생변수


  • 요약변수: 상품 구매 다양성 같은 변수. 어떤 물건을 많이 사는지 분석해서 만든 변수
  • 파생변수: 없는 변수인데 가공해서 만든 변수

(1) 새 컬럼 만들기: $ / dplyr::mutate()


데이터셋 옆에 $놓고 새 컬럼 붙이기


data(diamonds)

diamonds$ppc <- diamonds$price / diamonds$carat			# 파생변수 추가!
diamonds


dplyr::mutate() 함수 이용하기


diamonds <- mutate(diamonds, ppc2 = price/carat)		# 파생변수 추가!
diamonds


diamonds %<>% mutate(ppc3 = price/carat)			# 양방향 파이프연산자로 파생변수 추가!
diamonds


  • %<>% : 양방향/할당 파이프 연산자
  • 파이프 타고 게속 오른쪽으로 작업을 하고 나서 마지막 작업 한 후
  • 제일 왼쪽 데이터셋을 업데이트 한다.
  • %>%는 단방향 파이프 연산자: 제일 왼쪽에 준 데이터셋 쓰고 파이프 타고 오른쪽으로 계속 연결된다.


(2) 연속변수의 구간별로 범주 지정한 새 컬럼 생성: $ / cut()


data("diamonds")
dd <- select(diamonds, carat, cut)		# carat: 연속 변수, cut: 범주형 변수
dd


summary(dd$carat)


dd$cr.grd[dd$carat <= 1.0] <- "low"			# cr.grd 라는 새 컬럼을 만듦		# 데이터는 carat <= 1.0인 값들에 대해 low라는 항목으로 채움
dd$cr.grd[dd$carat > 1.0 & dd$carat <=3.0] <- "middle"
dd$cr.grd[dd$carat > 3.0] <- "high"
dd 			# 추가된 파생변수 확인


  • 위에서 $ 계속 쓰는게 귀찮으면 base {cut} 함수 이용해서 변수 리코딩할 수 있다.
  • break: 컷팅 기준 (Inf: +무한대/-Inf: -무한대)
  • right = TRUE: <=. 오른쪽을 구간에 포함시킴
  • right = FALSE: <. 오른쪽을 구간에 포함 안 시킴
  • include.lowest = FALSE: 낮은 쪽의 구간을 포함 안 시킴 1< 이고 3< 이런 식


data("diamonds")


dd$cr.grd2 <- cut(dd$carat, breaks = c(-Inf, 1, 3, Inf), 		# 1보다 작은 경우 / 1~3 사이 / 3보다 큰 경우
				  include.lowest = FALSE, 						# x / 1<x / 3<x 으로 나눔 (낮은쪽의 구간을 포함 안 시킴)
				  right = TRUE, 								# x<=1 / 1<x<=3 / 3<x 으로 나눔
				  labels = c("low", "middle", "high"))
				  
dd 		# 변경 내용 확인
comments powered by Disqus