R 27

[R] 차원축소(MDS편)

이전 포스팅에서 차원축소의 방법 중 하나인 PCA를 연습했었다. 2021.12.11 - [[R] 연습] - [R] 차원축소 (PCA편) 이번 포스팅에서는 다차원 척도법(MDS: Multi Dimensional Scaling)을 연습하고자 한다. 다차원 척도법은 n개의 개체간의 유사성을 바탕으로 2/3차원의 저차원 공간에 나타낼 수 있도록 하는 방법이다. 예를 들어 한 회사에서 판매 전략을 세우기 위해 시장에서 판매되는 제품들을 조사한 후 유사성을 알아보고자 한다. 데이터를 바탕으로 제품들 사이의 유사성, 비유사성을 2차원 공간상에 시각적으로 표현하여 분석할 수 있을 것이다. MDS에는 두 가지 방식이 있는데, 계량적 MDS(metric MDS), 비계량적 MDS(non-metric MDS)가 있다. 일단..

[R] 연습 2021.12.19

[R] reshape2 패키지 활용하기

지난 포스팅에서는 reshape 패키지의 melt()와 cast()함수를 사용하는 연습을 했었다. 주어진 데이터 셋을 탐색할 때 유용하게 사용할 수 있었다. 이번에는 reshape2 패키지의 함수들을 다루는 연습을 해보도록 하겠다. 내용적으로는 크게 다르지 않다. 사용하는 방법을 한번 더 익히고 또 다른 연습문제를 풀어본다고 생각하면 좋을 것 같다. 이번 포스팅에서도 insurance 데이터를 사용할 것이다. reshape2 패키지를 준비하고, 데이터를 불러온 후 5번째 열을 삭제하였다. library(reshape2) df

[R] 연습 2021.12.18

[R] reshape 패키지 활용하기

지난 포스팅에서 다루었던 내용은 정규화(Normalization)를 하는 방법에 대한 것이었다. 데이터를 본격적으로 분석하기에 앞서서 데이터를 탐색하는 과정은 매우 중요하기 때문에 이번에는 피벗 테이블을 작성할 수 있는 reshape 패키지를 다루는 연습을 할 것이다. 이번 포스팅에서는 insurance 데이터를 사용할 것이다. Q. 주어진 데이터를 피벗 테이블처럼 구성하고 싶다면? A. reshape 패키지의 melt()와 cast() 함수를 사용하자. melt() 함수는 여러 개의 열을 취해서 하나의 열로 쌓는다. 예시를 한번 보자. # 라이브러리 설치 install.packages("reshape") library(reshape) # 성(sex)와 지역(region)을 기준으로 melt() mlt

[R] 연습 2021.12.17

[R] 정규화(Normalization)편

이전 포스팅에서는 차원축소 방법 중 주성분 분석(PCA)에 대한 내용을 다루었다. 주성분 분석을 할 때 값의 스케일(scale)이 다를 경우 왜곡이 발생하기 때문에 정규화 과정을 진행한 후 분석을 해야했다. 따라서 이번에는 정규화(Normalization)를 하는 방법에 대해서 연습할 것이다. 이번 포스팅에서도 Cereals 데이터를 사용할 것이다. Q. 최소-최대 정규화(Min-Max Normalization)를 하고 싶다면? A. 사용자 정의 함수 방법, caret 패키지의 preProcess() 함수를 사용하자. 사실 최소-최대 정규화의 식만 알면 직접 구하는 것도 어렵지 않다. minmax

[R] 연습 2021.12.12

[R] 차원축소 (PCA편)

지금까지는 dplyr 패키지를 이용해서 데이터 프레임을 다루는 연습과 결측값, 이상값의 판별과 처리에 대한 부분을 연습했다. 이제는 데이터 분석에 앞서 또 하나 중요한 과정인 차원축소에 대한 부분을 다뤄보도록 하겠다. 차원축소 방법 중에 가장 기본적인 방법으로 주성분 분석(PCA)가 있다. 주성분 분석은 변수들의 선형 결합을 통해서 최대한 전체 정보를 설명할 수 있는 서로 독립적인 인공 변수로 변환하는 분석 방법이다. 예를 들어 기업의 신용평가를 위한 재무변수가 100개가 넘는데, 이러한 변수를 다 사용하면 오버피팅(overfitting)문제가 발생할 수 있다. 따라서 고차원에서 저차원으로 변환하는 방법이 필요하게 된다. 이론적인 내용에 대해서는 향후 다른 카테고리에 따로 정리할 예정이므로 여기서는 R로..

[R] 연습 2021.12.11

[R] 데이터 정제하기 (이상값편)

지난 포스팅에서는 결측치에 대해서 다루었다. 결측치 편에서 다루었던 내용을 요약하자면, 1) 데이터셋에 결측치가 있는지 확인하기 위해서는, summary(), is.na(), complete.cases() 함수를 사용하자. 2) 좀 더 보기 좋게 칼럼별 결측치의 개수를 알고 싶다면, apply(is.na(), 2, sum)이나 colSums(is.na()) 함수를 사용하자. 3) 결측값이 존재하는 행의 수를 확인하기 위해서는, sum(complete.cases()) 함수를 사용한다. 4) 결측치가 너무 많은 열 혹은 행을 삭제하고 싶다면, 열 직접 삭제를 하거나, 행을 삭제하고 싶다면, !is.na() / complete.cases() / filter() / na.omit() 함수를 사용할 수 있다. 5..

[R] 연습 2021.12.10

[R] dplyr 패키지 활용하기 (4편)

이번 포스팅에서는 dplyr 패키지에서 두 데이터프레임의 열 병합과 행 병합에 대해서 다루도록 하겠다. 이전 1~3편에서 다루었던 내용을 요약하자면, 1) 데이터프레임에서 특정 조건에 맞는 행을 추출하고 싶다면 filter()함수를 사용하자. 2) 데이터프레임에서 특정 열만 추출하고 싶다면 select()함수를 사용하자. 3) 데이터프레임에서 오름차순 정렬은 arrange() 함수를, 내림차순 정렬은 arrange(desc()) 함수를 사용하자. 4) 데이터프레임에서 파생변수 추가는 mutate() 함수를 사용하자. 5) 특정 변수를 기준으로 데이터를 요약하고 싶다면 group_by() 함수와 summarise() 함수를 사용하자. 이번에도 Cereals 데이터를 사용할 것이다. (첨부파일) Q. 두 개..

[R] 연습 2021.11.30

[R] dplyr 패키지 활용하기 (3편)

1편과 2편에서 다루었던 함수들은 총 4개이다. 1) 데이터프레임에서 특정 조건에 맞는 행을 추출하고 싶다면 filter()함수를 사용하자. 2) 데이터프레임에서 특정 열만 추출하고 싶다면 select()함수를 사용하자. 3) 데이터프레임에서 오름차순 정렬은 arrange() 함수를, 내림차순 정렬은 arrange(desc()) 함수를 사용하자. 4) 데이터프레임에서 파생변수 추가는 mutate() 함수를 사용하자. 이번 포스팅에서는 지정된 변수로 그룹화하는 방법과 요약 통계량 출력을 연습해보고 which() 함수도 사용해 볼 것이다. 항상 그렇지만 지난 내용과 직접적으로 언급하지 않은 함수나 과정이 포함될 수도 있다. 오늘은 새로운 Cereal 데이터를 사용해 볼 것이다. (첨부파일) Q. 특정 변수를..

[R] 연습 2021.11.29

[R] 빅데이터 분석기사 예시 문제로 연습하기

이번 포스팅은 빅데이터 분석기사 예시 문제를 활용해서 데이터셋을 자유롭게 다루는 연습을 해보도록 하겠다. - 사용된 라이브러리: dplyr # 굳이 쓸 필요는 없지만, 지난 포스팅에서 dplyr을 사용봤기 때문에 한번 시도했다. - 사용한 데이터셋: BankExample.csv (첨부파일) # 예시 문제는 데이터셋에 맞도록 변형했다. ★ Q1) 데이터셋의 Experience 칼럼을 기준으로 상위 10개의 데이터를 구하고, Experience 칼럼 10개 중 최소값으로 데이터를 대체한 후, Income 칼럼에서 80 이상인 데이터의 Experience 칼럼 평균값을 구하시오. 방법 구상) 일단 상위 10개를 구해야 하니까 dplyr에서 arrange(desc())써서 내림차순 정렬을 할 수 있겠다. 내림차..

[R] 연습 2021.11.28

[R] dplyr 패키지 활용하기 (2편)

지난 포스팅에서 다루었던 내용은 1) 데이터프레임에서 특정 조건에 맞는 행을 추출하고 싶다면 filter()함수를 사용하자. 2) 데이터프레임에서 특정 열만 추출하고 싶다면 select()함수를 사용하자. 이번 포스팅에서는 정렬과 파생 변수를 추가해보는 연습을 할 것이다. 또한 지난 내용을 활용한 코드를 연습할 생각이다. # 참고로 mpg 데이터를 불러오기 위해서는 ggplot2 패키지의 설치가 필요하다. # mpg.df % arrange(displ) 배기량(displ)이 많은 차에서 적은 순으로 정렬하고 싶다면(내림차순), 다음과 같이 작성하자. mpg.df %>% arrange(desc(displ)) ★ 예시문제 1) 제조사(manufacturer)가 "chevrolet"인 자동차 중에서 고속도로 연..

[R] 연습 2021.11.27