SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Apr 2015
권재명
데이터분석의 길 3:
“R 워크플로우 (스토리텔링)”
● 스토리텔링 (storytelling)
o 데이터로부터 흥미있거나 유익한 결론을 이끌어내기.
o 결과물: 슬라이드.
● 예측모형개발 (predictive modeling)
o 데이터로부터 미래를 예측하기.
o 결과물: 알고리즘.
많은 경우는 이 둘의 혼합이다.
이번에는 R 자료분석을 통해 스토리텔링을 하는 예를 살펴보자.
분석의 목적: 스토리텔링과 예측모형
이미 훌륭한 자료/책들이 수두룩!
● 구글 "how to do ... in r" 혹은 "r ..."
● R-project 홈페이지에 링크된 자료들.
o FAQ, R 관련 책소개 (현재 150권!), 공식 매뉴얼 (특히 Introduction to R), 비공식 매뉴얼/튜
토리얼 모음 등등.
o 주제별 R 패키지 모음.
● (한글) http://www.openstatistics.net/ 에 링크된 여러 자료.
● (한글) R을 이용한 데이터 분석실무 (2014) by 서민구
o 기초부터 중-고급까지 친절하게 쓰여진 글.
● Advanced R (2015) by Hadley Wickham: 특히 R 어휘력 (vocabulary) 복습
o 초고수의 내공을 느낄 수 있는 글.
단, R 언어 자체는 다루지 않는다
1. 문제 정의: 어떤 문제를 해결할 것인가?
2. 데이터 정의: 어떤 자료를 이용할 것인가?
3. 데이터 준비: 텍스트 화일(csv 포맷)이나 데이터베이스 테이블
a. 다른 프로그램들 (Python, MySQL client, Unix tools, ...)이 수고한다.
4. R로 데이터 읽어들이기: read.csv() 함수, RMySQL 패키지, ...
5. R 데이터 청소와 가공
6. R 데이터 분석과 시각화: EDA (Exploratory Data Analysis)
7. R 통계 모델링
8. 5-7을 문제를 해결할 때까지 반복
9. 결론내기: 스토리 텔링 (슬라이드) 혹은 예측모형 (알고리즘)
데이터분석 워크플로우
R을 사용하는 단계
지나치게 유명한* 피셔의 붓꽃 자료 (Fisher's iris dataset)를 분석해보자.
- 분석목적: 스토리텔링 / 예측모형개발
- R 사용모드: 대화형 분석 / 배치 (batch)
- 데이터 분석 워크플로우 시작단계:
1. 문제 정의: 붓꽃 자료의 변수 분포를 살펴보고 변량의 관계를 연구하고.... 사실 잘 모른다. 자료를
보기 전까지는. 유식한 표현으로 "Open-ended"라고 한다.
2. 데이터 정의: 이미 정의되어 있다.
3. 데이터 준비: 이미 준비되어 있다.
* 그렇다. 통계에 종사하는 많은 이들은 이 자료를 하도 많이 봐서 지겨울 수 있다.
이제 R 세션을 시작해 보자
1. R 프로젝트 시작
1. 일단 ~/projects 디렉토리를 만들자.* (앞으
로 두고두고 쓸 디렉토리이다.)
2. RStudio를 실행.
3. RStudio에서 옆의 그림처럼 새로운 프로젝
트를 생성한다.
그러면 `~/projects/data-tao` 디렉토리가 만들
어지고 그 안에 data-tao.Rproj라는 화일이 생긴
다.
* 터미널에서 mkdir ~/projects 를 실행하거나 파인더 사용.
2. R Script 화일 열기
메뉴에서 “File > New File > R Script” 를 실행하자. (물론
Cmd+Shift+N 숏컷 키가 더 간지난빠르다.)
Cmd+S 로 바로 저장하자. 이름은 session-01.R
앞으로 명령 실행은 다음처럼 하기로 하자*
1. 화일 에디터에 명령을 입력
2. Cmd+Enter (현재 라인 실행; 결과는 콘솔에)**
여러줄을 선택(Shift+커서키)한 후 실행도 가능하다.
* 콘솔에 바로 명령을 입력하여 실행하는 것은 아주, 아주, 간단한 작업 외에는
좋은 방식이 아니다. 기본적으로 R Script 화일에서 편집하여 콘솔로 보내는
버릇을 들이자.
** 이외의 다른 단축키는 이 페이지에...
1. 화일 에디터에서
입력/편집후 실행
(Cmd+Enter) 하면
...
3. 차트는 여기로
가는... 그런 겁니
다.
2. 콘솔에서 실행
되는게 보이고...
3. R 기본기 복습: 도움말. 자동완성. 패키지.
150 관측치 (observations)
5 변수 (variables)
● Sepal.Length : 꽃받침 길이 (연속변수)
● Sepal.Width : 꽃받침 넓이 (연속변수)
● Petal.Length : 꽃잎 길이 (연속변수)
● Petal.Width : 꽃잎 넓이 (연속변수)
● Species : 종 (범주변수 Factor)
필수함수: str(); head()
4. 자료구조 살펴보기
5. 분포 살펴보기: 단변량
스토리: "꽃받침 길이는 4-8cm, 폭은 2-4cm 정도. 꽃잎 길
이는 1-7cm, 폭은 0-2.5cm. 꽃잎 길이와 폭 모두 bimodal
(two-peaks) 모양"
필수함수: summary(); plot(); hist();
R 퀴즈 (풀어보세요):
1. old_par=par(...)를 사용한 이유는?
2. with(...)가 하는 일은? 왜 attach(iris) 를 사용
하지 않았을까?
3. 히스토그램의 빈(bin) 갯수를 늘리는 방법은? y-축을
빈도(Frequency)가 아니라 확률로 그리기 위해서는?
각 차트 타이틀을 한글로 바꾸는 방법은? (힌트:
?hist)
5. 분포 살펴보기: 단변량
summary() 를 통한 수치 통계량은 "스토리
텔링"을 위한 분석에는 큰 도움이 되지 않는
경우가 많다.
도리어 자료에 결측치(missing value; NAs)
가 있는지 손쉽게 확인하는데 더 도움이 된
다.
R 퀴즈:
1. 오른쪽 코드를 실행시켜보고 결과를
summary(iris)와 비교해보자. 무엇
이 달라졌는가?
2. 이 "시뮬레이션"에서 set.seed(1)를 실
행한 이유는?
5. 분포 살펴보기-다변량
스토리: "모든 변량들간의 산점도(scatterplot matrix)에
서는 두 군집(cluster)이 두드러진다. 꽃잎 길이와 폭은
상관관계가 높다."
필수함수: pairs(); plot()
R 퀴즈:
1. 앞의 히스토그램과 이 산점도 매트릭스를 한장에
담아내는 방법은? (힌트: ?pairs 그리고
example(pairs) )
2. [고급] 왜 plot(iris) 와 pairs(iris)는 같은
결과를 낼까? (힌트: "R method dispatch"를 구글
검색해 보자. 그리고 ??plot.data.frame 그리
고 class(iris).)
산점도 매트릭스에 품종을 색깔로 나타내주는 방법중 하
나이다.
R 퀴즈:
1. red, green3, blue 는 각각 어떤 품종일까? (힌트:
unclass(iris$Species) 혹은
levels(iris$Species) )
2. 품종 이름을 레전드(legend)로 그려주는 방법은? (
힌트: ?legend)
3. iris[,1:4] 와 iris[1:4] 사이의 차이가 있는가?
(힌트: ?"[" 혹은 ?"[.data.frame" )
5. 분포 살펴보기-다변량
5. 분포 살펴보기-다변량
스토리: "setosa 품종은 꽃잎의 크기가 무척 작지만 꽃받침
의 폭은 가장 넓다. virginica는 꽃잎의 크기가 가장 큰편이
고 꽃받침은 좁고 길다. versicolor는 virginica와 유사하지
만 꽃잎이 조금 작다. "
R 퀴즈:
1. 마찬가지의 그림을 좀 더 쉽게 그릴 수있는 방법은?
(힌트: lattice 패키지의 splom 함수.
library(lattice) 그리고 example(splom))
6. R 세션 끝내기
스크립트를 저장하고 RStudio를 종료하면 된다.
워크스페이스를 저장하겠냐는 질문에는 "Yes"라고 대답하면 현재 세션에서 생성
한 변수들이 디스크에 저장된다. (현 디렉토리에 .RData 화일이 생성된다)
이 분석을 나중에 계속하고 싶으면 data-tao.Rproj 화일을 바로 실행하면 된다. 아
니면 RStudio에서 "Open Project..."로 열어주던지.
R 퀴즈:
1. 이와 같은 패턴을 사용하면 setwd() 를 사용할 필요가 없게 된다.
2. Google's R Style Guide를 읽어보자.
앞에서 보여준 차트들과 예시된 스토리들을 정리하면 이번 분석의 최종 결과물인
스토리텔링 슬라이드(보고서)가 완성된다.
숙제: 붓꽃자료를 R로 분석하여서 5-10 슬라이드 분량으로 스토리텔링 슬라이드
를 만들어 보세요.
차트, 슬라이드의 구성의 베스트 프랙티스 (best practice)에 대해서는 다음편에
서 다룰 예정이다.
7. 결론내기: 스토리텔링 슬라이드
품종을 모르는 새로운 붓꽃을 발견했
다. 꽃잎과 꽃받침의 크기를 관측한 결
과 다음과 같았다. 이 붓꽃의 품종은
과연 무엇일까?
R퀴즈: 앞의 산점도 매트릭스에 이 관
측치를 표시할 수 있을까?
이것은 스토리탤링이 아니라 예측*의
문제이다. R에는 통계/머신러닝을 위
한 수많은 함수들이 있고, 조금만 구글
하면 다양한 모형들을 돌릴 수 있다.
하지만 제대로 돌리기 위해서는 ESL
(Elements of Statistical Learning)같
은 책을 읽는 것이 도움이 된다.
* 이 문제는 품종의 갯수가 세개이므로 "multi-class
classification"으로 "two-class classification"보다 약간 더
복잡하다.
부록: 모델링/예측모형개발

Weitere ähnliche Inhalte

Was ist angesagt?

분석 현장에서 요구되는 데이터과학자의 역량과 자질
분석 현장에서 요구되는 데이터과학자의 역량과 자질분석 현장에서 요구되는 데이터과학자의 역량과 자질
분석 현장에서 요구되는 데이터과학자의 역량과 자질Sun Young Kim
 
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic용진 조
 
6.algorithm chains and piplines
6.algorithm chains and piplines6.algorithm chains and piplines
6.algorithm chains and piplinesHaesun Park
 
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) 파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) Yunho Maeng
 
PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준sungjun han
 
[D2 CAMPUS] Tech meet-up `data science` 발표자료
[D2 CAMPUS] Tech meet-up `data science` 발표자료[D2 CAMPUS] Tech meet-up `data science` 발표자료
[D2 CAMPUS] Tech meet-up `data science` 발표자료NAVER D2
 
데이터 분석 프로세스
데이터 분석 프로세스데이터 분석 프로세스
데이터 분석 프로세스Lee Seungeun
 
창발 세미나 - 머신러닝과 소프트웨어 개발
창발 세미나 - 머신러닝과 소프트웨어 개발창발 세미나 - 머신러닝과 소프트웨어 개발
창발 세미나 - 머신러닝과 소프트웨어 개발Sang-Min Park
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님NAVER D2
 

Was ist angesagt? (9)

분석 현장에서 요구되는 데이터과학자의 역량과 자질
분석 현장에서 요구되는 데이터과학자의 역량과 자질분석 현장에서 요구되는 데이터과학자의 역량과 자질
분석 현장에서 요구되는 데이터과학자의 역량과 자질
 
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
캐빈머피 머신러닝 Kevin Murphy Machine Learning Statistic
 
6.algorithm chains and piplines
6.algorithm chains and piplines6.algorithm chains and piplines
6.algorithm chains and piplines
 
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) 파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI )
 
PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준PYCON 2017 발표자료 한성준
PYCON 2017 발표자료 한성준
 
[D2 CAMPUS] Tech meet-up `data science` 발표자료
[D2 CAMPUS] Tech meet-up `data science` 발표자료[D2 CAMPUS] Tech meet-up `data science` 발표자료
[D2 CAMPUS] Tech meet-up `data science` 발표자료
 
데이터 분석 프로세스
데이터 분석 프로세스데이터 분석 프로세스
데이터 분석 프로세스
 
창발 세미나 - 머신러닝과 소프트웨어 개발
창발 세미나 - 머신러닝과 소프트웨어 개발창발 세미나 - 머신러닝과 소프트웨어 개발
창발 세미나 - 머신러닝과 소프트웨어 개발
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님
 

Ähnlich wie 데이터분석의 길 3 “r 워크플로우 (스토리텔링)”

RUCK 2017 권재명 효율적 데이터 과학과 데이터 조직을 위한 7가지 요인
RUCK 2017 권재명 효율적 데이터 과학과 데이터 조직을 위한 7가지 요인RUCK 2017 권재명 효율적 데이터 과학과 데이터 조직을 위한 7가지 요인
RUCK 2017 권재명 효율적 데이터 과학과 데이터 조직을 위한 7가지 요인r-kor
 
스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료라한사 아
 
성능 좋은 SQL 작성법
성능 좋은 SQL 작성법성능 좋은 SQL 작성법
성능 좋은 SQL 작성법Devgear
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
이산치수학 Project7
이산치수학 Project7이산치수학 Project7
이산치수학 Project7KoChungWook
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개Jaewook Byun
 
Python(basic)
Python(basic)Python(basic)
Python(basic)POSTECH
 
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.Adonis Han
 
자료구조2보고서
자료구조2보고서자료구조2보고서
자료구조2보고서KimChangHoen
 
자료구조 Project2
자료구조 Project2자료구조 Project2
자료구조 Project2KoChungWook
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의Kwangyoun Jung
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01seonhyung
 
[Week5] Getting started with R
[Week5] Getting started with R[Week5] Getting started with R
[Week5] Getting started with Rneuroassociates
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
자료구조 Project4
자료구조 Project4자료구조 Project4
자료구조 Project4KoChungWook
 

Ähnlich wie 데이터분석의 길 3 “r 워크플로우 (스토리텔링)” (20)

RUCK 2017 권재명 효율적 데이터 과학과 데이터 조직을 위한 7가지 요인
RUCK 2017 권재명 효율적 데이터 과학과 데이터 조직을 위한 7가지 요인RUCK 2017 권재명 효율적 데이터 과학과 데이터 조직을 위한 7가지 요인
RUCK 2017 권재명 효율적 데이터 과학과 데이터 조직을 위한 7가지 요인
 
스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료스프링 데이터 레디스 엘라스틱 발표자료
스프링 데이터 레디스 엘라스틱 발표자료
 
성능 좋은 SQL 작성법
성능 좋은 SQL 작성법성능 좋은 SQL 작성법
성능 좋은 SQL 작성법
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
R 소개
R 소개R 소개
R 소개
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
이산치수학 Project7
이산치수학 Project7이산치수학 Project7
이산치수학 Project7
 
데이터 분석 1 - 소개
데이터 분석 1 - 소개데이터 분석 1 - 소개
데이터 분석 1 - 소개
 
Python(basic)
Python(basic)Python(basic)
Python(basic)
 
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
 
자료구조2보고서
자료구조2보고서자료구조2보고서
자료구조2보고서
 
2012 Ds 01
2012 Ds 012012 Ds 01
2012 Ds 01
 
파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝
 
엑셀왕국
엑셀왕국엑셀왕국
엑셀왕국
 
자료구조 Project2
자료구조 Project2자료구조 Project2
자료구조 Project2
 
문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의문과생 대상 파이썬을 활용한 데이터 분석 강의
문과생 대상 파이썬을 활용한 데이터 분석 강의
 
2012 Ds B1 01
2012 Ds B1 012012 Ds B1 01
2012 Ds B1 01
 
[Week5] Getting started with R
[Week5] Getting started with R[Week5] Getting started with R
[Week5] Getting started with R
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
자료구조 Project4
자료구조 Project4자료구조 Project4
자료구조 Project4
 

데이터분석의 길 3 “r 워크플로우 (스토리텔링)”

  • 1. Apr 2015 권재명 데이터분석의 길 3: “R 워크플로우 (스토리텔링)”
  • 2. ● 스토리텔링 (storytelling) o 데이터로부터 흥미있거나 유익한 결론을 이끌어내기. o 결과물: 슬라이드. ● 예측모형개발 (predictive modeling) o 데이터로부터 미래를 예측하기. o 결과물: 알고리즘. 많은 경우는 이 둘의 혼합이다. 이번에는 R 자료분석을 통해 스토리텔링을 하는 예를 살펴보자. 분석의 목적: 스토리텔링과 예측모형
  • 3. 이미 훌륭한 자료/책들이 수두룩! ● 구글 "how to do ... in r" 혹은 "r ..." ● R-project 홈페이지에 링크된 자료들. o FAQ, R 관련 책소개 (현재 150권!), 공식 매뉴얼 (특히 Introduction to R), 비공식 매뉴얼/튜 토리얼 모음 등등. o 주제별 R 패키지 모음. ● (한글) http://www.openstatistics.net/ 에 링크된 여러 자료. ● (한글) R을 이용한 데이터 분석실무 (2014) by 서민구 o 기초부터 중-고급까지 친절하게 쓰여진 글. ● Advanced R (2015) by Hadley Wickham: 특히 R 어휘력 (vocabulary) 복습 o 초고수의 내공을 느낄 수 있는 글. 단, R 언어 자체는 다루지 않는다
  • 4. 1. 문제 정의: 어떤 문제를 해결할 것인가? 2. 데이터 정의: 어떤 자료를 이용할 것인가? 3. 데이터 준비: 텍스트 화일(csv 포맷)이나 데이터베이스 테이블 a. 다른 프로그램들 (Python, MySQL client, Unix tools, ...)이 수고한다. 4. R로 데이터 읽어들이기: read.csv() 함수, RMySQL 패키지, ... 5. R 데이터 청소와 가공 6. R 데이터 분석과 시각화: EDA (Exploratory Data Analysis) 7. R 통계 모델링 8. 5-7을 문제를 해결할 때까지 반복 9. 결론내기: 스토리 텔링 (슬라이드) 혹은 예측모형 (알고리즘) 데이터분석 워크플로우 R을 사용하는 단계
  • 5. 지나치게 유명한* 피셔의 붓꽃 자료 (Fisher's iris dataset)를 분석해보자. - 분석목적: 스토리텔링 / 예측모형개발 - R 사용모드: 대화형 분석 / 배치 (batch) - 데이터 분석 워크플로우 시작단계: 1. 문제 정의: 붓꽃 자료의 변수 분포를 살펴보고 변량의 관계를 연구하고.... 사실 잘 모른다. 자료를 보기 전까지는. 유식한 표현으로 "Open-ended"라고 한다. 2. 데이터 정의: 이미 정의되어 있다. 3. 데이터 준비: 이미 준비되어 있다. * 그렇다. 통계에 종사하는 많은 이들은 이 자료를 하도 많이 봐서 지겨울 수 있다. 이제 R 세션을 시작해 보자
  • 6. 1. R 프로젝트 시작 1. 일단 ~/projects 디렉토리를 만들자.* (앞으 로 두고두고 쓸 디렉토리이다.) 2. RStudio를 실행. 3. RStudio에서 옆의 그림처럼 새로운 프로젝 트를 생성한다. 그러면 `~/projects/data-tao` 디렉토리가 만들 어지고 그 안에 data-tao.Rproj라는 화일이 생긴 다. * 터미널에서 mkdir ~/projects 를 실행하거나 파인더 사용.
  • 7. 2. R Script 화일 열기 메뉴에서 “File > New File > R Script” 를 실행하자. (물론 Cmd+Shift+N 숏컷 키가 더 간지난빠르다.) Cmd+S 로 바로 저장하자. 이름은 session-01.R 앞으로 명령 실행은 다음처럼 하기로 하자* 1. 화일 에디터에 명령을 입력 2. Cmd+Enter (현재 라인 실행; 결과는 콘솔에)** 여러줄을 선택(Shift+커서키)한 후 실행도 가능하다. * 콘솔에 바로 명령을 입력하여 실행하는 것은 아주, 아주, 간단한 작업 외에는 좋은 방식이 아니다. 기본적으로 R Script 화일에서 편집하여 콘솔로 보내는 버릇을 들이자. ** 이외의 다른 단축키는 이 페이지에...
  • 8. 1. 화일 에디터에서 입력/편집후 실행 (Cmd+Enter) 하면 ... 3. 차트는 여기로 가는... 그런 겁니 다. 2. 콘솔에서 실행 되는게 보이고...
  • 9. 3. R 기본기 복습: 도움말. 자동완성. 패키지.
  • 10. 150 관측치 (observations) 5 변수 (variables) ● Sepal.Length : 꽃받침 길이 (연속변수) ● Sepal.Width : 꽃받침 넓이 (연속변수) ● Petal.Length : 꽃잎 길이 (연속변수) ● Petal.Width : 꽃잎 넓이 (연속변수) ● Species : 종 (범주변수 Factor) 필수함수: str(); head() 4. 자료구조 살펴보기
  • 11. 5. 분포 살펴보기: 단변량 스토리: "꽃받침 길이는 4-8cm, 폭은 2-4cm 정도. 꽃잎 길 이는 1-7cm, 폭은 0-2.5cm. 꽃잎 길이와 폭 모두 bimodal (two-peaks) 모양" 필수함수: summary(); plot(); hist(); R 퀴즈 (풀어보세요): 1. old_par=par(...)를 사용한 이유는? 2. with(...)가 하는 일은? 왜 attach(iris) 를 사용 하지 않았을까? 3. 히스토그램의 빈(bin) 갯수를 늘리는 방법은? y-축을 빈도(Frequency)가 아니라 확률로 그리기 위해서는? 각 차트 타이틀을 한글로 바꾸는 방법은? (힌트: ?hist)
  • 12. 5. 분포 살펴보기: 단변량 summary() 를 통한 수치 통계량은 "스토리 텔링"을 위한 분석에는 큰 도움이 되지 않는 경우가 많다. 도리어 자료에 결측치(missing value; NAs) 가 있는지 손쉽게 확인하는데 더 도움이 된 다. R 퀴즈: 1. 오른쪽 코드를 실행시켜보고 결과를 summary(iris)와 비교해보자. 무엇 이 달라졌는가? 2. 이 "시뮬레이션"에서 set.seed(1)를 실 행한 이유는?
  • 13. 5. 분포 살펴보기-다변량 스토리: "모든 변량들간의 산점도(scatterplot matrix)에 서는 두 군집(cluster)이 두드러진다. 꽃잎 길이와 폭은 상관관계가 높다." 필수함수: pairs(); plot() R 퀴즈: 1. 앞의 히스토그램과 이 산점도 매트릭스를 한장에 담아내는 방법은? (힌트: ?pairs 그리고 example(pairs) ) 2. [고급] 왜 plot(iris) 와 pairs(iris)는 같은 결과를 낼까? (힌트: "R method dispatch"를 구글 검색해 보자. 그리고 ??plot.data.frame 그리 고 class(iris).)
  • 14. 산점도 매트릭스에 품종을 색깔로 나타내주는 방법중 하 나이다. R 퀴즈: 1. red, green3, blue 는 각각 어떤 품종일까? (힌트: unclass(iris$Species) 혹은 levels(iris$Species) ) 2. 품종 이름을 레전드(legend)로 그려주는 방법은? ( 힌트: ?legend) 3. iris[,1:4] 와 iris[1:4] 사이의 차이가 있는가? (힌트: ?"[" 혹은 ?"[.data.frame" ) 5. 분포 살펴보기-다변량
  • 15. 5. 분포 살펴보기-다변량 스토리: "setosa 품종은 꽃잎의 크기가 무척 작지만 꽃받침 의 폭은 가장 넓다. virginica는 꽃잎의 크기가 가장 큰편이 고 꽃받침은 좁고 길다. versicolor는 virginica와 유사하지 만 꽃잎이 조금 작다. " R 퀴즈: 1. 마찬가지의 그림을 좀 더 쉽게 그릴 수있는 방법은? (힌트: lattice 패키지의 splom 함수. library(lattice) 그리고 example(splom))
  • 16. 6. R 세션 끝내기 스크립트를 저장하고 RStudio를 종료하면 된다. 워크스페이스를 저장하겠냐는 질문에는 "Yes"라고 대답하면 현재 세션에서 생성 한 변수들이 디스크에 저장된다. (현 디렉토리에 .RData 화일이 생성된다) 이 분석을 나중에 계속하고 싶으면 data-tao.Rproj 화일을 바로 실행하면 된다. 아 니면 RStudio에서 "Open Project..."로 열어주던지. R 퀴즈: 1. 이와 같은 패턴을 사용하면 setwd() 를 사용할 필요가 없게 된다. 2. Google's R Style Guide를 읽어보자.
  • 17. 앞에서 보여준 차트들과 예시된 스토리들을 정리하면 이번 분석의 최종 결과물인 스토리텔링 슬라이드(보고서)가 완성된다. 숙제: 붓꽃자료를 R로 분석하여서 5-10 슬라이드 분량으로 스토리텔링 슬라이드 를 만들어 보세요. 차트, 슬라이드의 구성의 베스트 프랙티스 (best practice)에 대해서는 다음편에 서 다룰 예정이다. 7. 결론내기: 스토리텔링 슬라이드
  • 18. 품종을 모르는 새로운 붓꽃을 발견했 다. 꽃잎과 꽃받침의 크기를 관측한 결 과 다음과 같았다. 이 붓꽃의 품종은 과연 무엇일까? R퀴즈: 앞의 산점도 매트릭스에 이 관 측치를 표시할 수 있을까? 이것은 스토리탤링이 아니라 예측*의 문제이다. R에는 통계/머신러닝을 위 한 수많은 함수들이 있고, 조금만 구글 하면 다양한 모형들을 돌릴 수 있다. 하지만 제대로 돌리기 위해서는 ESL (Elements of Statistical Learning)같 은 책을 읽는 것이 도움이 된다. * 이 문제는 품종의 갯수가 세개이므로 "multi-class classification"으로 "two-class classification"보다 약간 더 복잡하다. 부록: 모델링/예측모형개발