[ggplot2] grouping 원리
·
Data Science/Visualization
0. 개요 (Overview)`group`은 무엇을 묶고, 어떻게 작동할까요?ggplot2를 사용하다 보면 언젠가는 grouping 때문에 헷갈리는 순간이 한 번쯤은 오게 된다고 생각합니다.group은 ggplot2의 미적 요소(aesthetic) 중 하나로, 어떤 관측치들을 하나의 그래픽 객체(선, 면, 상자 등)로 묶어 표현할지를 결정하는 데 사용됩니다.1. ggplot2의 기본 grouping 규칙ggplot2에서는 `group`을 명시적으로 지정하지 않으면 다음과 같은 규칙을 따릅니다.그래프에 사용된 모든 이산형(discrete) 변수들의 상호작용(interaction)을 기본 group으로 자동 설정합니다. 예를 들어 다음 코드를 살펴보겠습니다.diamonds |> ggplot(aes(x =..
ggplot2에서 geom_rect의 투명도(alpha)가 적용되지 않는 이유와 해결법
·
Data Science/Visualization
데이터 시각화에서는 특정 부분을 강조하기 위해 사각형, 라벨, 선 등을 추가하는 경우가 많습니다. 특히 geom_rect()는 그래프 위에 사각형을 그릴 때 유용하게 사용되는데요.  그런데 alpha 값을 설정해도 투명도가 적용되지 않는 경우가 있습니다. 왜 이런 일이 발생하는지, 어떻게 해결할 수 있을지에 대해 알아보겠습니다.  geom_rect의 alpha(투명도) 값이 적용안됨먼저, 베이스라인 코드는 다음과 같습니다.mpg |> ggplot(aes(x=displ, y=hwy)) + geom_point() + geom_text_repel(data = potential_outliers, aes(label=model)) + geom_point(data = pot..
[R] rlang으로 하는 동적 변수 참조와 환경(Environment)
·
Data Science/Manipulation
다른 블로그에도 관련된 내용이 없거나 적고 스스로 rlang과 관련된 내용 정리가 필요한 것 같아 포스팅을 올리게 되었습니다. mpg라는 데이터프레임에서 "model"이라는 열을 기준으로 그룹화를 한다면 아래와 같이 작성할 수 있습니다.mpg |> group_by(model) 그렇다면 아래 코드와 같이 그룹화 변수를 따로 선언하고, 그 객체를 전달하면 어떨까요?group_vars group_by(group_vars)오류가 발생하네요? 도대체 무슨 차이가 있어서 이런 차이를 만드는 것일까요?group_by 함수는 인자로 받는 값을 변수명이라고 생각하고, 데이터 프레임에서 인자로 받은 값과 받은 열을 찾습니다.그래서 첫번째 코드에서는 mpg에 존재하는 "model"이라는 열을 기준으로 그룹화를 진행하는 것..
[R] 사용자 정의 함수 관련 잡기술
·
Data Science/Manipulation
1. match.call간혹 함수를 짜다보면 입력한 인수를 사용했는지 확인이 필요 할 때가 있습니다.예를 들어, 데이터 프레임에서 특정 열의 Five-Number Summary($\min$, $q_1$, $m$, $q_3$, $\max$)를 해당 데이터 프레임의 이름과 함께 출력하는 함수를 아래와 같이 작성해보았습니다.fivenum_col 결과는 에러가 발생하는데요!왜냐하면, df를 출력하면 iris의 데이터프레임을 출력하기 때문에 문자열 출력 함수와 호환되지 않기 때문입니다.이런 에러를 방지하기 위해서 match.call 함수를 사용하는데 인자와 입력된 글자를 호출하는 함수입니다.fivenum_col 2. 익명함수(anonymous functions)파이썬의 람다 함수처럼 익명 함수를 지원합니다...
[EDA] 상관계수 시각화 (Visualization of Correlation Coefficient) with R
·
Data Science/Manipulation
예전 포스팅(https://moogie.tistory.com/145)에서 여러 종류의 상관계수에 대해 알아봤었는데, 이번에는 상관계수 시각화에 대해 포스팅합니다. [EDA] Correlation (상관계수) - Pearson, Spearman, Kendall, XI안녕하세요! 이번 포스팅에서는 상관계수에 대해 좋은 논문이 있어서 간단하게 소개드립니다. 캐글이나 데이콘에서 데이터 탐색 파트를 살펴보면 Pearson 상관계수나, Spearman 상관계수를 많이 사moogie.tistory.com 1. 히트맵 형식의 시각화기본적으로 데이터로부터 상관계수 시각화를 하려면 각 변수간의 상관계수를 구해야합니다.R에서는 cor함수를 사용하여 상관행렬을 구할 수 있지만 matrix 클래스의 객체이므로 시각화를 위해 적..
[Tidymodels] Bagging Model with IBM Churn data
·
Data Science/Modeling
1. 라이브러리 로드 및 데이터 준비아래와 같이 코드 실행에 필요한 라이브러리를 로드합니다.### 라이브러리 로드library(tidymodels)library(tidyverse)library(tidy.outliers)library(baguette)library(embed)library(earth)library(liver) 이번 모델링에는 하이퍼파라미터가 다수 존재하기 때문에, Train/Test set으로 분리한 후에 Train Data에 K=5인 k-fold CV를 적용하였습니다.### 데이터 로드 및 분리data(churn)churn_data % mutate_if(is.ordered, factor, ordered = FALSE)churn_split % vfold_cv(v = 5)churn_tes..
[Tidy Modeling with R] 16. 차원 축소(Dimensionality Reduction)
·
Data Science/Modeling
안녕하세요. 이번 포스팅에서는 PCA, PLS, ICA, UMAP와 같은 차원 축소 기법을 어떻게 적용하는지 알아보려고 합니다. 사실 기본적인 Tidy Modeling의 개념은 15에서 마무리 된 것으로 보이고요. 나머지 챕터는 모델링에 있어서 필요한 기법들을 깊게 살펴보는 느낌에 가깝더라고요. 17~19 챕터랑 21 챕터는 요약에서 생략할지 고민이 되긴하네요... 16 Dimensionality Reduction | Tidy Modeling with R The tidymodels framework is a collection of R packages for modeling and machine learning using tidyverse principles. This book provides a tho..
[Tidy Modeling with R] 15. Many Models with Workflow sets
·
Data Science/Modeling
책에서 4장부터 14장까지 모델링의 기초를 전부 다루었기에 15장에서는 이전에서 배운 것을 바탕으로 모델링의 과정에 대해 리마인드 겸 전체적으로 설명하는 것 처럼 보입니다. 간단하게 각 챕터마다 배운 것을 요약하면 아래와 같습니다. [4장] 모델링에 사용될 데이터(Ames Housing) EDA [5장] 데이터 풀을 Training data와 Testing data로 나눠야 하는 이유와 rsample 함수 소개 [6장] 패키지마다 모델링 인터페이스가 다른 것을 통일한 parsnip 패키지 설명과 함께 모델 구축, 적합, 예측 함수 소개 [7장] Model Workflow 소개 (workflow, workflow_set) [8장] Recipes 패키지를 이용한 Feature Engineering [9장] ..