SlideShare a Scribd company logo
1 of 143
Download to read offline
R을 이용한 데이터 분석
November 16, 2015
simon
Audience
● 16 개 회사
● 23 명
강사
● 김문주
● moonikan@gmail.com
목적
R BigData
Data Mining
Materials
● 교재 한권 (340 page)
● 다이어리
● 볼펜
● 본 문서는 교재내용과
수업내용을 토대로 google
slides에서 작성
1 day
1. 빅데이터 개요
2. 데이터 관리와 이해
2 day
3. 데이터 전처리
10. Text Mining
3 day
11. Social Network
Analysis
4. 분류
4 day
6. 결정 트리
5. 확률에 의한 분류
7. 회귀 분석
5 day
8. Clustering
9. Association
Analysis
1. 빅데이터 개요
BigData
조직에서 주어진 비용, 시간 내에 처리 가능한 범위를 넘어서는 데이터
Volume / Velocity
Variety
Variety
BigData Technology (Hadoop Ecosystem)
Hadoop
BigData Analysis
BigData Analysis
Data Mining
데이터 속에 있는
의미 있는 데이터 패턴을 파악하거나
데이터 자동분석한 예측결과로
의사결정에 활용
Machine Learning
Data
Abstraction Generalization
Equations
Diagrams such as trees and graphs
Logical if/else rules
Groupings of data known as clusters
Data Mining Algorithms
Model Algorithms Task
지도 학습 알고리즘 최근접 이웃 분류
나이브 베이즈 분류
결정 트리 분류
선형 회귀 수치 예측
회귀 트리 수치 예측
모델 트리 수치 예측
신경망 다중 용도
서포트 벡터 머신 다중 용도
자율 학습 알고리즘 연관 규칙 패턴 감지
k평균 군집화 군집화
Data Mining Process
Machine
Learning
Man
Learning
Data Mart 및 비정형 데이터 관리
정형 Data : Appliance DB 활용
비정형 Data : Appliance DB 에서 Hadoop 활용
Data Mining 사례
2. 데이터 관리와 이해
분석툴
Figure 6a. Analytics tools used by respondents to the 2015 Rexer Analytics Survey. In
this view, each respondent was free to check multiple tools.
R System Requirements
데이터의 규모
전처리 작업량
R 32bit / 64bit
x86_64 CPU 에서는 최대 128 TB
Windows x64 경우 8 TB
OS 에서 허용하는 1개 프로세스 가용 메모리량 확인
결론은 Linux 64 bit 가 바람직
R Installation
R Data Object & Data Type
Data Object
Vector, Scalar
Matrix
Array
Factor
List
Data Frame
Data Type
Numeric
Integer, Double
Logical
TRUE(T), FALSE(F)
Character
‘a’, ‘abc’
Basic
Collection
R package
package install
install.packages(‘package명’)
package load
library(package명)
R Special Values & Operators
Special Values
NULL - empty value
NA - not available
NaN - not a number
Inf(-Inf) - infinite number
Operators
mathematical
+ - * ^
%*% (matrix multiplication)
%/% (remainder)
relational
> >= < <= == !=
logical ! & |
assignment <- =
list indexing $
sequencing :
R Functions
R Vector
원소라고 불리는 값의 순서 있는 집합
동일 Data Type으로 구성
subject_name <- c(‘John Doe’, ‘Jane Doe’)
temperature <- c(98.1, 98.6, 93.2)
flu_status <- c(FALSE, TRUE)
원소 접근
temperature[2]
temperature[2:3]
temperature[-2]
temperature[c(TRUE, TRUE, FALSE)]
R Factor
수준(level)으로 이루어진 Vector
범주 라벨(Label)을 한 번 저장
내부적으로 값이 아닌 숫자 형태로 변환해서 저장
(예) MALE, FEMALE, MALE → 1, 2, 1
Factor 생성
gender <- factor(c(‘MALE’, ‘FEMALE’, ‘MALE’))
결과
[1] MALE FEMALE MALE
Levels: FEMALE MALE
생성 시 레벨을 지정
blood <- factor(c(‘O’, ‘AB’, ‘A’),
levels = c(‘A’, ‘B’, ‘AB’, ‘O’))
결과
[1] O AB A
Levels: A B AB O
R List
서로 다른 Data Type을 지원하는 Vector
List 생성
subject1 <- list(fullname = subject_name[1],
temperature = temperature[1],
flu_status = flu_status[1],
gender = gender[1],
blood = blood[1]) 속성 접근
subject1[2]
subject1$temperature
subject1[c(‘temperature’, ‘flu_status’)]
subject1[3:5]
R Data Frame
RDB의 Table과 같은 2차원 형태
Data Frame 생성
pt_data <- data.frame( … )
데이터 접근
pt_data$subject_name
pt_data[c(‘temperature’, ‘flu_status’)]
pt_data[2:3]
pt_data[1, 2]
pt_data[c(1, 3), c(2, 4)]
pt_data[, 1]
pt_data[1, ]
pt_data[ , ]
pt_data[c(1, 3), c(‘temperature’, ‘gender’)]
pt_data[-2, c(-1, -3, -5)]
R Matrix
행과 열로 2차원 테이블을 표시
동일 Data Type으로 구성
전형적인 수치 데이터만을 저장하며 수학적 연산에 주로
사용
Matrix 생성
m <- matrix(c(‘a’, ‘b’, ‘c’, ‘d’), nrow = 2)
m <- matrix(c(‘a’, ‘b’, ‘c’, ‘d’), ncol = 2)
데이터 접근
m[1, 1]
m[3, 2]
m[1, ]
m[, 2]
R Data File
R Data
save(m, file = ‘c:/data/mydata.RData’)
save(m, subject1, pt_data, file = ‘c:/data/mydata2.RData’)
CSV
write.csv(pt_data, file = ‘c:/data/pt_data.csv’)
pt_data2 <- read.csv(‘c:/data/pt_data.csv’)
R Data 이해
Data 구조 확인
str(usedcars)
Data 통계정보 확인
summary(usedcars$year)
summary(usedcars[c(‘price’, ‘mileage’)])
퍼짐 측정
diff(range(usedcars$price))
IQR(usedcars$price)
quantile(usedcars$price)
절단점 사용
quantile(usedcars$price, probs = c(0.01, 0.99))
quantile(usedcars$price, seq(from = 0, to = 1, by = 0.20))
R 수치 변수 시각화
boxplot
변수의 범위와 쏠림을 다른 변수와 비교해 표현
boxplot(usedcars$price, main = ‘Boxplot of Used Car Prices’, ylab = ‘Price($)’)
boxplot(usedcars$mileage, main = ‘Boxplot of Used Car Mileage’, ylab = ‘Odometer(mi.)’)
R 수치 변수 시각화
histogram
수치 변수의 퍼짐을 시각적으로 표현
hist(usedcars$price, main = ‘Histogram of Used Car Prices”, xlab = ‘Price($)’)
hist(usedcars$mileage, main = ‘Histogram of Used Car Mileage”, xlab = ‘Odometer(mi.)’)
균등분포, 정규분포
R 분산과 표준편차
분산 (Variance)
var(usedcars$price)
var(usedcars$mileage)
표준편차 (Standard Deviation)
sd(usedcars$price)
sd(usedcars$mileage)
R 범주형 변수
일원 배치표
table(usedcars$year)
table(usedcars$model)
table(usedcars$color)
prop.table()
model_table <- table(usedcars$model)
prop.table(model_table)
R 변수 사이 관계
산포도 : 관계 시각화
plot(x = usedcars$mileage,
y = usedcars$price,
main = ‘Scatterplot of Price vs. Mileage’,
xlab = ‘Used Car Odometer (mi.)’,
ylab = ‘Used Car Price ($)’)
R 독립성 검증
이원 교차표
usedcars$conservative <-
usedcars$color %in% c(‘Black’, ‘Gray’, ‘Silver’, ‘White’)
table(usedcars$conservative)
CrossTable(x = usedcars$model,
y = usedcars$conservative)
R 독립성 검증
카이스퀘어 검정 순서
1) 각 범주에 대한 기대값을 구함
2) 범주별 카이스퀘어 계산
- 관측값과 기대값의 차이를 계산
- (관측값 - 기대값)을 제곱하여
기대값으로 나누면 각 범주의 카이스퀘어 값이 됨
3) 이 값을 합하여 전체의 카이스퀘어 값을 계산
4) 카이스퀘어의 자유도를 계산
(row수 - 1) * (col수 - 1)
5) 이를 유의수준에 해당하는 카이스퀘어 값과 비교하여 결론
귀무가설 / 대립가설
귀무가설 : 변수 사이에 연관성이 없다. (독립적이다)
대립가설 : 변수 사이에 연관성이 있다. (독립적이 아니다)
R 독립성 검증
chisq.test()
xtabs( ~ usedcars$conservative + usedcars$model)
chisq.test(xtabs( ~ usedcars$conservative + usedcars$model))
유의수준 5% 관리인 경우,
p-value 값이 0.05 보다 작아야 대립가설을 지지 함 (연관성이 있음, 독립적이 아님)
3. 데이터 전처리
R apply 함수
apply 함수란 ?
Vector 또는 행렬 Data에 임의의 함수를 적용한 결과를 반환
apply(행렬, 방향, 함수)
방향 : 1(행) / 2(열)
d <- matrix(1:9, ncol = 3)
apply(d, 1, sum)
R apply 함수
lapply(X, 함수)
X는 Vector 또는 List
처리한 결과는 List로 반환 됨
X가 Data Frame일 때도 처리 가능한데,
List 결과를 Data Frame으로 만드는 방법
- unlist() 활용하는 방법
주의 : 문자열과 숫자가 혼합된 경우
unlist()가 문자열을 엉뚱한 값으로 반환
- do.call() 활용하는 방법
R apply 함수
sapply(X, 함수)
X는 Vector, List, Data Frame
처리한 결과는 Matrix, Vector 등으로 반환 됨
tapply(X, 색인, 함수)
그룹별 처리를 위한 함수
색인은 Data가 어느 그룹에 속하는지 표현하기 위한 Factor형
Data
mapply(X, 색인, 함수)
sapply()와 유사하지만 다수의 인자를 함수에 전달
R Data 전처리 함수
with() : Data Frame 또는 List 내 필드를 쉽게 접근하기 위한 함수
within() : Data를 수정할 때 사용
which() : Vector 또는 Array에서 주어진 조건에 만족하는 값의 색인을 검색
which.min() : 주어진 Vector에서 최소값의 색인
which.max() : 주어진 Vector에서 최대값의 색인
R sqldf package
SQL 구문으로 Data를 다룰 수 있게 지원
sqldf(‘select avg(“Sepal.Length”) from iris where Species = “setosa” limit 20’)
MySQL 구문에 가까움
SQL구문은 작은 따옴표(‘’)를 사용
Data이름에 마침표(.) 같은 특수문자가 사용 된 경우 큰 따옴표(“”)로 묶어서 사용
중첩된 쿼리 등 다냔한 내용 처리 가능
SQL 구문 내에서는 대소문자 구별 없음
R plyr package
필수적인 데이터 처리기능 지원
??ply(data, variables, function,,,)
apply function에 기반하여 입력 및 출력변수 처리를 동일한 형식으로 모든 데이터형식을 지원
SQL구문은 작은 따옴표(‘’)를 사용
Data이름에 마침표(.) 같은 특수문자가 사용 된 경우 큰 따옴표(“”)로 묶어서 사용
중첩된 쿼리 등 다냔한 내용 처리 가능
SQL 구문 내에서는 대소문자 구별 없음
apply()
열에 서로 다른 데이터의 경우, 타입 변환이 발생
apply()와 plyr 제공함수와 혼동하지 않도록 주의
중요 옵션
summarize
transform
R 필수 package
원시 Data Data 변환 가설 검증
시각화
모델링
reshape2
plyr
gplot2
lm, glm
R 변수 생성
reshape package
기존 테이블 구조의 데이터를 column-wise 하게 전환
기본 함수
data(), head(), tail(), names(), tolower(), inspect()
melt()
R 변수 생성
formula
‘행변수 ~ 열변수' 형태로 표현
아무 변수도 지정하지 않으려면 . 을 사용
formula 에 나열되지 않은 모든 변수를 표현하려면 … 을 사용
cast()
dcast(), acast()
R 변수 생성
중요 옵션
margins
subset
range
10. Text Mining
Text Mining
다양한 문서형태로 부터 Data를 획득, 분석하는 기법을 이용하여
통찰(insight)을 얻거나 의사결정을 지원
모든 형태의 Text (web, pdf, office, xml, text ,,,)로 부터
‘문자'를 추출하여 이들간의 관계를 이용하거나
clustering, classification, social network analysis에 활용
해당 언어 및 문화, 습관에 대한 깊이 있는 이해가 필요
R 파일 읽기
tm package
Text Mining 기능을 지원하는 package
Corpus
Text 문서를 관리하는 기본 구조
VCorpus, PCorpus
DirSource, VectorSource, DataframeSource
R 문서 조작
Meta data 제거 (xml 경우 각종 Tag)
공백 제거
소문자로 변환
구두점 제거
특수문자 제거
시제 변환
R 문서 Matrix
문서번호와 단어간의 사용여부 또는 빈도수를 이용하여 Matrix를 생성
R 문서 Matrix
자주 사용된 단어 검색
단어와 연관된 단어들 검색
비어있는 데이터 삭제
R Twitter 연결
Twitter 인증 획득 ( http://dev.twitter.com/ )
Twitter 메세지 조회(‘samsung’ 단어) 및 저장
Twitter 메세지에서 긍정단어, 부정단어로 빈도수 확인
R Twitter 메세지 분석
Word Cloud 출력
최소 3회 이상 언급된 단어의
빈도수 만큼 글자크기를 부여하고
가운데 부터 시작하게 Wordcloud를 그림
R Twitter 메세지 분석
거리계산법으로 clustering시켜 연관 단어를 분석
11. Social Network Analysis
Social Network
node(vertex)와 link(edge)로 구성된 Graph
단어간 연관성 분석
1. 단어와 단어간 연관성 Matrix를 생성
단어간 연관성 분석
2. Graph 생성
3. Graph 조절
단어간 연관성 분석
문서간 연관성 분석
1. 문서와 문서간 연관성 Matrix를 생성
2. Graph 생성
문서간 연관성 분석
3. Graph 조절
문서간 연관성 분석
4. Graph 조절
문서간 연관성 분석
5. Graph 분석
문서간 연관성 분석
Matrix 연관성 분석
Matrix 의 행과 열의 교차값으로 관계 Graph 를 계산
Matrix 연관성 분석
1. 단어와 문서간의 연관성 Graph 생성
Matrix 연관성 분석
2. 단어와 문서간의 연관성 분석
Graph 분석
1. URL 정보로 Graph 생성
Graph 분석
2. Graph 조절
Graph 분석
3. closeness 분석
Graph 분석
4. betweenness 분석
4. 분류
Data Mining Algorithms
Model Algorithms Task
지도 학습 알고리즘 최근접 이웃 분류
나이브 베이즈 분류
결정 트리 분류
선형 회귀 수치 예측
회귀 트리 수치 예측
모델 트리 수치 예측
신경망 다중 용도
서포트 벡터 머신 다중 용도
자율 학습 알고리즘 연관 규칙 패턴 감지
k평균 군집화 군집화
최근접 이웃을 사용한 분류
거리를 사용해 두 예제의 유사도를 측정하는 방법
범주를 알지 못하는 예제에 대해
범주가 분류돼 있는 가장 유사한 예제의 범주로 지정
장점 단점
단순, 효율적
Data분산에 대한 추정 필요없음
빠른 훈련 단계
모델을 생성하지 않음
느린 분류 단계
많은 메모리 필요
명목형 속성, 결측 데이터 추가 처리
필요
최근접 이웃을 사용한 분류
재료 단맛 아삭거림 음식 종류
apple 10 9 fruit
bacon 1 4 protein
banana 10 1 fruit
carrot 7 10 vegetable
celery 3 10 vegetable
cheese 1 1 protein
최근접 이웃을 사용한 분류
거리 계산법
최근접 이웃을 사용한 분류
적당한 k 선택
최근접 이웃을 사용한 분류
Data 표준화
최근접 이웃을 사용한 분류
kNN 특징
추상화가 일어나지 않음
추상화와 일반화 과정을 생략
어떤 것도 학습하지 않고, 훈련 데이터를 그대로 저장
인스턴스 기반 학습/ 암기 학습
kNN 분석
1. Data 준비
kNN 분석
2. Data 정규화
kNN 분석
3. 훈련 Data와 테스트 Data 생성
4. 성능 평가
kNN 분석
1. Confusion Matrix
성능 평가
2. 카파 통계
우연으로 예측된 값과 실제 값이 일치할 확률인 Pr(e)로 정확도를 판정
두 사건이 독립적이라고 가정할 때,
두 사건이 동시에 일어날 확률은 각 발생 확률을 곱함
항목 a의 동시에 일어날 확률 = Pr(실제 a) * Pr(예측된 a)
Pr(e) = 각 항목의 동시에 일어날 확률의 총합
k = (Pr(a) - Pr(e)) / (1 - Pr(e))
성능 평가
3. ROC (Receiver Operating Characteristics)
성능 평가
4. 교차 검증
성능 평가
1. z-score normalization
성능 향상
2. k 값 변화
성능 향상
k value False Negative False Positive Percent classfied Incorrectly
1 1 3 4 %
5 2 0 2 %
11 3 0 3 %
15 3 0 3 %
21 2 0 2 %
27 4 0 4 %
6. 결정 트리
Data Mining Algorithms
Model Algorithms Task
지도 학습 알고리즘 최근접 이웃 분류
나이브 베이즈 분류
결정 트리 분류
선형 회귀 수치 예측
회귀 트리 수치 예측
모델 트리 수치 예측
신경망 다중 용도
서포트 벡터 머신 다중 용도
자율 학습 알고리즘 연관 규칙 패턴 감지
k평균 군집화 군집화
결정 트리
Classification : 데이터를 분류하는데 목적
0과 1로 구분하거나 0, 1, 2, 3 등의 구분으로 분류
고객의 속성을 파악하고 고객의 행동을 예측하는데 활용
rpart, rpartOrdinal, randomForest,
party, tree, marginTree, maptree 등
결정 트리
트리 생성 과정
결정 트리
세분화 : 관심 있는 어떤 성질을 기준으로 전체 데이터를 그룹으로 나누는 방법
속성 : 데이터로 표현되는 객체의 정보를 전달하는 중요한 변수
정보 : 무언가에 대한 불확실성을 감소시키는 성질
Target 변수가 있으면, 이 변수에 대한 단서를 제공하는 다른 변수가 존재
모델 : 어떤 목적을 달성하기 위해 실세계를 단순하게 표현한 것
결정 트리
정보를 전달하는 속성의 선택
데이터를 분류할 때 순수하게 세분화하는 변수
No NoNoNoNoYes Yes Yes Yes Yes Yes Yes
결정 트리
엔트로피 : 무질서도
ctree 분석
1. Data 준비
ctree 분석
2. Data 전처리 및 ctree 훈련
ctree 분석
3. ctree 모델 확인
ctree 분석
4. 테스트 Data 검증
rpart 분석
Recursive Partitioning and Regression Trees
Tree의 prediction error를 최소화
1. Data 준비
rpart 분석
2. rpart 생성
ctree 분석
3. rpart 모델 확인
Random Forest 분석
임의 입력값에 따른 forest에 있는 tree에 각각 값을 투입하여
각각의 tree들이 voting 함으로써 분류
1. randomForest 생성
Random Forest 분석
2. 오차율 분석
Random Forest 분석
3. 영향도 분석
Random Forest 분석
3. ROC 분석 (AUC)
ctree vs rpart 비교
1. Data 준비
ctree vs rpart 비교
2. Data 전처리 및 분리
불필요 속성 제거
속성의 Data Type 변경 (Factor, 문자로 변환 등)
단순공백을 NA 로 변경
훈련 / 테스트 Data 분리
ctree vs rpart 비교
3. 교차검증용 Data 생성
ctree vs rpart 비교
4. Feature Plot 분석
ctree vs rpart 비교
5. Mosaic Plot 분석
ctree vs rpart 비교
6. rpart 훈련 및 예측
ctree vs rpart 비교
7. ctree 훈련 및 예측
ctree vs rpart 비교
8. 정확도 평가
ctree vs rpart 비교
8. 비교 분석
5. 확률에 의한 분류
Data Mining Algorithms
Model Algorithms Task
지도 학습 알고리즘 최근접 이웃 분류
나이브 베이즈 분류
결정 트리 분류
선형 회귀 수치 예측
회귀 트리 수치 예측
모델 트리 수치 예측
신경망 다중 용도
서포트 벡터 머신 다중 용도
자율 학습 알고리즘 연관 규칙 패턴 감지
k평균 군집화 군집화
확률을 이용한 분류
확률 원리를 활용하는 나이브 베이즈 (naive bayes) 알고리즘
유사한 증거를 기반으로 한 사건의 유사성을 추정
확률론적 분류
사건의 확률은 사건이 일어난 시도의 수를 총 사건의 수로 관찰된 데이터
50개 메일 중 10개 메일이 스팸이었다면 스팸의 확률은 20%
P(spam) = 0.20
P(normal) = 1 - 0.20 = 0.80
조건부 확률
일반 메일 (80%)
스팸 메일
(20%)
모든 이메일
만남
(5%)
확률론적 분류
조건부 확률
만남이 없는
이메일
만남이 있는
스팸 이메일
스팸 안에
만남
확률론적 분류
베이즈 이론과 조건 확률
P(A|B)는 사건B가 일어날 때 사건A의 확률
“만남"이라는 단어가 이전 스팸 이메일에서 사용됐을 확률을 우도(likelihood)라고 하고,
모든 이메일에 “만남"이 나타날 확률을 주변 우도(marginal likelihood)라고 함
확률론적 분류
우도표
P(스팸 | 만남) = P(만남 | 스팸) * P(스팸) / P(만남)
= (4 / 20) * (20/100) / (5/100)
= 0.8
만남
빈도 Yes No 총합
스팸 4 16 20
일반 1 79 80
총합 5 95 100
만남
빈도 Yes No 총합
스팸 4/20 16/20 20
일반 1/80 79/80 80
총합 5/100 95/100 100
나이브 베이즈 알고리즘
분류를 위해 베이즈 이론을 사용
장점 단점
단순하고 빠르며 효과적
노이즈와 결측제이터가 있어도 잘 수행
훈련에 대해 상대적으로 적은예제로 수행
예측에 대한 추정된 확률을 얻을 수 있음
모든 속성은 독립적이라는 가정에 의존
수치 속성에 대해서만 적용 가능
수치 속성으로 구성된 많은 데이터셋에
부적합
추정된 확률은 예측된 범주보다 덜 신뢰적
7. 회귀 분석
8. Clustering
9. Association Analysis
과정 정리

More Related Content

What's hot

사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디Haesun Park
 
Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)
Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)
Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)건환 손
 
4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)Haesun Park
 
From maching learning to deep learning
From maching learning to deep learningFrom maching learning to deep learning
From maching learning to deep learningYongdae Kim
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련Haesun Park
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learingHaesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류Haesun Park
 
5.model evaluation and improvement
5.model evaluation and improvement5.model evaluation and improvement
5.model evaluation and improvementHaesun Park
 
내가 이해하는 SVM(왜, 어떻게를 중심으로)
내가 이해하는 SVM(왜, 어떻게를 중심으로)내가 이해하는 SVM(왜, 어떻게를 중심으로)
내가 이해하는 SVM(왜, 어떻게를 중심으로)SANG WON PARK
 
2.supervised learning
2.supervised learning2.supervised learning
2.supervised learningHaesun Park
 
차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)beom kyun choi
 
Python+numpy pandas 2편
Python+numpy pandas 2편Python+numpy pandas 2편
Python+numpy pandas 2편Yong Joon Moon
 
R 스터디 네번째
R 스터디 네번째R 스터디 네번째
R 스터디 네번째Jaeseok Park
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리SANG WON PARK
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)Haesun Park
 
R 스터디 첫번째
R 스터디 첫번째R 스터디 첫번째
R 스터디 첫번째Jaeseok Park
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)SANG WON PARK
 
2.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-32.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-3Haesun Park
 

What's hot (20)

사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디사이킷런 최신 변경 사항 스터디
사이킷런 최신 변경 사항 스터디
 
Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)
Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)
Python Machine Learning - ML03 Support Vector Machine(서포트 벡터 머신)
 
4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)4.representing data and engineering features(epoch#2)
4.representing data and engineering features(epoch#2)
 
From maching learning to deep learning
From maching learning to deep learningFrom maching learning to deep learning
From maching learning to deep learning
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 2장. 머신러닝 프로젝트 처음부터 끝까지
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 4장. 모델 훈련
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learing
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 3장. 분류
 
5.model evaluation and improvement
5.model evaluation and improvement5.model evaluation and improvement
5.model evaluation and improvement
 
내가 이해하는 SVM(왜, 어떻게를 중심으로)
내가 이해하는 SVM(왜, 어떻게를 중심으로)내가 이해하는 SVM(왜, 어떻게를 중심으로)
내가 이해하는 SVM(왜, 어떻게를 중심으로)
 
2.supervised learning
2.supervised learning2.supervised learning
2.supervised learning
 
차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)
 
Python+numpy pandas 2편
Python+numpy pandas 2편Python+numpy pandas 2편
Python+numpy pandas 2편
 
R 스터디 네번째
R 스터디 네번째R 스터디 네번째
R 스터디 네번째
 
Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리Coursera Machine Learning (by Andrew Ng)_강의정리
Coursera Machine Learning (by Andrew Ng)_강의정리
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)
 
R 스터디 첫번째
R 스터디 첫번째R 스터디 첫번째
R 스터디 첫번째
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)
 
R_datamining
R_dataminingR_datamining
R_datamining
 
2.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-32.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-3
 

Similar to R을 이용한 데이터 분석

R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장Juhui Park
 
Machine learning bysogood
Machine learning bysogoodMachine learning bysogood
Machine learning bysogoodS.Good Kim
 
집단지성 프로그래밍 03-군집발견-03
집단지성 프로그래밍 03-군집발견-03집단지성 프로그래밍 03-군집발견-03
집단지성 프로그래밍 03-군집발견-03Kwang Woo NAM
 
Data Mining with R CH1 요약
Data Mining with R CH1 요약Data Mining with R CH1 요약
Data Mining with R CH1 요약Sung Yub Kim
 
AWS CLOUD 2018- Amazon Neptune, 신규 그래프 데이터베이스 서비스 (김상필 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Neptune, 신규 그래프 데이터베이스 서비스 (김상필 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Neptune, 신규 그래프 데이터베이스 서비스 (김상필 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Neptune, 신규 그래프 데이터베이스 서비스 (김상필 솔루션즈 아키텍트)Amazon Web Services Korea
 
R 스터디 두번째
R 스터디 두번째R 스터디 두번째
R 스터디 두번째Jaeseok Park
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304Yong Joon Moon
 
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)JiandSon
 
데이터 분석 프로세스
데이터 분석 프로세스데이터 분석 프로세스
데이터 분석 프로세스Lee Seungeun
 
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptxDonghwan Lee
 
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
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기찬희 이
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R BasicsYoonwhan Lee
 
데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지Gee Yeon Hyun
 
[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우NAVER D2
 

Similar to R을 이용한 데이터 분석 (20)

R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장
 
Machine learning bysogood
Machine learning bysogoodMachine learning bysogood
Machine learning bysogood
 
집단지성 프로그래밍 03-군집발견-03
집단지성 프로그래밍 03-군집발견-03집단지성 프로그래밍 03-군집발견-03
집단지성 프로그래밍 03-군집발견-03
 
Data Mining with R CH1 요약
Data Mining with R CH1 요약Data Mining with R CH1 요약
Data Mining with R CH1 요약
 
AWS CLOUD 2018- Amazon Neptune, 신규 그래프 데이터베이스 서비스 (김상필 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Neptune, 신규 그래프 데이터베이스 서비스 (김상필 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon Neptune, 신규 그래프 데이터베이스 서비스 (김상필 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon Neptune, 신규 그래프 데이터베이스 서비스 (김상필 솔루션즈 아키텍트)
 
R 스터디 두번째
R 스터디 두번째R 스터디 두번째
R 스터디 두번째
 
DSAC M2 #1
DSAC M2 #1DSAC M2 #1
DSAC M2 #1
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
2014.07.26 KSUG와 지앤선이 함께하는 테크니컬 세미나 - 나의 첫번째 자바8 람다식 (정대원)
 
데이터 분석 프로세스
데이터 분석 프로세스데이터 분석 프로세스
데이터 분석 프로세스
 
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
 
R intro
R introR intro
R intro
 
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.
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R Basics
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지
 
분석6기 4조
분석6기 4조분석6기 4조
분석6기 4조
 
[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우[226]대용량 텍스트마이닝 기술 하정우
[226]대용량 텍스트마이닝 기술 하정우
 

R을 이용한 데이터 분석

  • 1. R을 이용한 데이터 분석 November 16, 2015 simon
  • 2. Audience ● 16 개 회사 ● 23 명
  • 4.
  • 6. Materials ● 교재 한권 (340 page) ● 다이어리 ● 볼펜 ● 본 문서는 교재내용과 수업내용을 토대로 google slides에서 작성
  • 7. 1 day 1. 빅데이터 개요 2. 데이터 관리와 이해 2 day 3. 데이터 전처리 10. Text Mining 3 day 11. Social Network Analysis 4. 분류 4 day 6. 결정 트리 5. 확률에 의한 분류 7. 회귀 분석 5 day 8. Clustering 9. Association Analysis
  • 9. BigData 조직에서 주어진 비용, 시간 내에 처리 가능한 범위를 넘어서는 데이터
  • 10.
  • 14.
  • 15. BigData Technology (Hadoop Ecosystem) Hadoop
  • 18. Data Mining 데이터 속에 있는 의미 있는 데이터 패턴을 파악하거나 데이터 자동분석한 예측결과로 의사결정에 활용
  • 19. Machine Learning Data Abstraction Generalization Equations Diagrams such as trees and graphs Logical if/else rules Groupings of data known as clusters
  • 20. Data Mining Algorithms Model Algorithms Task 지도 학습 알고리즘 최근접 이웃 분류 나이브 베이즈 분류 결정 트리 분류 선형 회귀 수치 예측 회귀 트리 수치 예측 모델 트리 수치 예측 신경망 다중 용도 서포트 벡터 머신 다중 용도 자율 학습 알고리즘 연관 규칙 패턴 감지 k평균 군집화 군집화
  • 22. Data Mart 및 비정형 데이터 관리 정형 Data : Appliance DB 활용 비정형 Data : Appliance DB 에서 Hadoop 활용
  • 25. 분석툴 Figure 6a. Analytics tools used by respondents to the 2015 Rexer Analytics Survey. In this view, each respondent was free to check multiple tools.
  • 26.
  • 27. R System Requirements 데이터의 규모 전처리 작업량 R 32bit / 64bit x86_64 CPU 에서는 최대 128 TB Windows x64 경우 8 TB OS 에서 허용하는 1개 프로세스 가용 메모리량 확인 결론은 Linux 64 bit 가 바람직
  • 29. R Data Object & Data Type Data Object Vector, Scalar Matrix Array Factor List Data Frame Data Type Numeric Integer, Double Logical TRUE(T), FALSE(F) Character ‘a’, ‘abc’ Basic Collection
  • 31. R Special Values & Operators Special Values NULL - empty value NA - not available NaN - not a number Inf(-Inf) - infinite number Operators mathematical + - * ^ %*% (matrix multiplication) %/% (remainder) relational > >= < <= == != logical ! & | assignment <- = list indexing $ sequencing :
  • 33. R Vector 원소라고 불리는 값의 순서 있는 집합 동일 Data Type으로 구성 subject_name <- c(‘John Doe’, ‘Jane Doe’) temperature <- c(98.1, 98.6, 93.2) flu_status <- c(FALSE, TRUE) 원소 접근 temperature[2] temperature[2:3] temperature[-2] temperature[c(TRUE, TRUE, FALSE)]
  • 34. R Factor 수준(level)으로 이루어진 Vector 범주 라벨(Label)을 한 번 저장 내부적으로 값이 아닌 숫자 형태로 변환해서 저장 (예) MALE, FEMALE, MALE → 1, 2, 1 Factor 생성 gender <- factor(c(‘MALE’, ‘FEMALE’, ‘MALE’)) 결과 [1] MALE FEMALE MALE Levels: FEMALE MALE 생성 시 레벨을 지정 blood <- factor(c(‘O’, ‘AB’, ‘A’), levels = c(‘A’, ‘B’, ‘AB’, ‘O’)) 결과 [1] O AB A Levels: A B AB O
  • 35. R List 서로 다른 Data Type을 지원하는 Vector List 생성 subject1 <- list(fullname = subject_name[1], temperature = temperature[1], flu_status = flu_status[1], gender = gender[1], blood = blood[1]) 속성 접근 subject1[2] subject1$temperature subject1[c(‘temperature’, ‘flu_status’)] subject1[3:5]
  • 36. R Data Frame RDB의 Table과 같은 2차원 형태 Data Frame 생성 pt_data <- data.frame( … ) 데이터 접근 pt_data$subject_name pt_data[c(‘temperature’, ‘flu_status’)] pt_data[2:3] pt_data[1, 2] pt_data[c(1, 3), c(2, 4)] pt_data[, 1] pt_data[1, ] pt_data[ , ] pt_data[c(1, 3), c(‘temperature’, ‘gender’)] pt_data[-2, c(-1, -3, -5)]
  • 37. R Matrix 행과 열로 2차원 테이블을 표시 동일 Data Type으로 구성 전형적인 수치 데이터만을 저장하며 수학적 연산에 주로 사용 Matrix 생성 m <- matrix(c(‘a’, ‘b’, ‘c’, ‘d’), nrow = 2) m <- matrix(c(‘a’, ‘b’, ‘c’, ‘d’), ncol = 2) 데이터 접근 m[1, 1] m[3, 2] m[1, ] m[, 2]
  • 38. R Data File R Data save(m, file = ‘c:/data/mydata.RData’) save(m, subject1, pt_data, file = ‘c:/data/mydata2.RData’) CSV write.csv(pt_data, file = ‘c:/data/pt_data.csv’) pt_data2 <- read.csv(‘c:/data/pt_data.csv’)
  • 39. R Data 이해 Data 구조 확인 str(usedcars) Data 통계정보 확인 summary(usedcars$year) summary(usedcars[c(‘price’, ‘mileage’)]) 퍼짐 측정 diff(range(usedcars$price)) IQR(usedcars$price) quantile(usedcars$price) 절단점 사용 quantile(usedcars$price, probs = c(0.01, 0.99)) quantile(usedcars$price, seq(from = 0, to = 1, by = 0.20))
  • 40. R 수치 변수 시각화 boxplot 변수의 범위와 쏠림을 다른 변수와 비교해 표현 boxplot(usedcars$price, main = ‘Boxplot of Used Car Prices’, ylab = ‘Price($)’) boxplot(usedcars$mileage, main = ‘Boxplot of Used Car Mileage’, ylab = ‘Odometer(mi.)’)
  • 41. R 수치 변수 시각화 histogram 수치 변수의 퍼짐을 시각적으로 표현 hist(usedcars$price, main = ‘Histogram of Used Car Prices”, xlab = ‘Price($)’) hist(usedcars$mileage, main = ‘Histogram of Used Car Mileage”, xlab = ‘Odometer(mi.)’) 균등분포, 정규분포
  • 42. R 분산과 표준편차 분산 (Variance) var(usedcars$price) var(usedcars$mileage) 표준편차 (Standard Deviation) sd(usedcars$price) sd(usedcars$mileage)
  • 43. R 범주형 변수 일원 배치표 table(usedcars$year) table(usedcars$model) table(usedcars$color) prop.table() model_table <- table(usedcars$model) prop.table(model_table)
  • 44. R 변수 사이 관계 산포도 : 관계 시각화 plot(x = usedcars$mileage, y = usedcars$price, main = ‘Scatterplot of Price vs. Mileage’, xlab = ‘Used Car Odometer (mi.)’, ylab = ‘Used Car Price ($)’)
  • 45. R 독립성 검증 이원 교차표 usedcars$conservative <- usedcars$color %in% c(‘Black’, ‘Gray’, ‘Silver’, ‘White’) table(usedcars$conservative) CrossTable(x = usedcars$model, y = usedcars$conservative)
  • 46. R 독립성 검증 카이스퀘어 검정 순서 1) 각 범주에 대한 기대값을 구함 2) 범주별 카이스퀘어 계산 - 관측값과 기대값의 차이를 계산 - (관측값 - 기대값)을 제곱하여 기대값으로 나누면 각 범주의 카이스퀘어 값이 됨 3) 이 값을 합하여 전체의 카이스퀘어 값을 계산 4) 카이스퀘어의 자유도를 계산 (row수 - 1) * (col수 - 1) 5) 이를 유의수준에 해당하는 카이스퀘어 값과 비교하여 결론 귀무가설 / 대립가설 귀무가설 : 변수 사이에 연관성이 없다. (독립적이다) 대립가설 : 변수 사이에 연관성이 있다. (독립적이 아니다)
  • 47.
  • 48. R 독립성 검증 chisq.test() xtabs( ~ usedcars$conservative + usedcars$model) chisq.test(xtabs( ~ usedcars$conservative + usedcars$model)) 유의수준 5% 관리인 경우, p-value 값이 0.05 보다 작아야 대립가설을 지지 함 (연관성이 있음, 독립적이 아님)
  • 50. R apply 함수 apply 함수란 ? Vector 또는 행렬 Data에 임의의 함수를 적용한 결과를 반환 apply(행렬, 방향, 함수) 방향 : 1(행) / 2(열) d <- matrix(1:9, ncol = 3) apply(d, 1, sum)
  • 51. R apply 함수 lapply(X, 함수) X는 Vector 또는 List 처리한 결과는 List로 반환 됨 X가 Data Frame일 때도 처리 가능한데, List 결과를 Data Frame으로 만드는 방법 - unlist() 활용하는 방법 주의 : 문자열과 숫자가 혼합된 경우 unlist()가 문자열을 엉뚱한 값으로 반환 - do.call() 활용하는 방법
  • 52. R apply 함수 sapply(X, 함수) X는 Vector, List, Data Frame 처리한 결과는 Matrix, Vector 등으로 반환 됨 tapply(X, 색인, 함수) 그룹별 처리를 위한 함수 색인은 Data가 어느 그룹에 속하는지 표현하기 위한 Factor형 Data mapply(X, 색인, 함수) sapply()와 유사하지만 다수의 인자를 함수에 전달
  • 53. R Data 전처리 함수 with() : Data Frame 또는 List 내 필드를 쉽게 접근하기 위한 함수 within() : Data를 수정할 때 사용 which() : Vector 또는 Array에서 주어진 조건에 만족하는 값의 색인을 검색 which.min() : 주어진 Vector에서 최소값의 색인 which.max() : 주어진 Vector에서 최대값의 색인
  • 54. R sqldf package SQL 구문으로 Data를 다룰 수 있게 지원 sqldf(‘select avg(“Sepal.Length”) from iris where Species = “setosa” limit 20’) MySQL 구문에 가까움 SQL구문은 작은 따옴표(‘’)를 사용 Data이름에 마침표(.) 같은 특수문자가 사용 된 경우 큰 따옴표(“”)로 묶어서 사용 중첩된 쿼리 등 다냔한 내용 처리 가능 SQL 구문 내에서는 대소문자 구별 없음
  • 55. R plyr package 필수적인 데이터 처리기능 지원 ??ply(data, variables, function,,,) apply function에 기반하여 입력 및 출력변수 처리를 동일한 형식으로 모든 데이터형식을 지원 SQL구문은 작은 따옴표(‘’)를 사용 Data이름에 마침표(.) 같은 특수문자가 사용 된 경우 큰 따옴표(“”)로 묶어서 사용 중첩된 쿼리 등 다냔한 내용 처리 가능 SQL 구문 내에서는 대소문자 구별 없음 apply() 열에 서로 다른 데이터의 경우, 타입 변환이 발생 apply()와 plyr 제공함수와 혼동하지 않도록 주의 중요 옵션 summarize transform
  • 56. R 필수 package 원시 Data Data 변환 가설 검증 시각화 모델링 reshape2 plyr gplot2 lm, glm
  • 57. R 변수 생성 reshape package 기존 테이블 구조의 데이터를 column-wise 하게 전환 기본 함수 data(), head(), tail(), names(), tolower(), inspect() melt()
  • 58. R 변수 생성 formula ‘행변수 ~ 열변수' 형태로 표현 아무 변수도 지정하지 않으려면 . 을 사용 formula 에 나열되지 않은 모든 변수를 표현하려면 … 을 사용 cast() dcast(), acast()
  • 59. R 변수 생성 중요 옵션 margins subset range
  • 61. Text Mining 다양한 문서형태로 부터 Data를 획득, 분석하는 기법을 이용하여 통찰(insight)을 얻거나 의사결정을 지원 모든 형태의 Text (web, pdf, office, xml, text ,,,)로 부터 ‘문자'를 추출하여 이들간의 관계를 이용하거나 clustering, classification, social network analysis에 활용 해당 언어 및 문화, 습관에 대한 깊이 있는 이해가 필요
  • 62. R 파일 읽기 tm package Text Mining 기능을 지원하는 package Corpus Text 문서를 관리하는 기본 구조 VCorpus, PCorpus DirSource, VectorSource, DataframeSource
  • 63. R 문서 조작 Meta data 제거 (xml 경우 각종 Tag) 공백 제거 소문자로 변환 구두점 제거 특수문자 제거 시제 변환
  • 64. R 문서 Matrix 문서번호와 단어간의 사용여부 또는 빈도수를 이용하여 Matrix를 생성
  • 65. R 문서 Matrix 자주 사용된 단어 검색 단어와 연관된 단어들 검색 비어있는 데이터 삭제
  • 66. R Twitter 연결 Twitter 인증 획득 ( http://dev.twitter.com/ ) Twitter 메세지 조회(‘samsung’ 단어) 및 저장 Twitter 메세지에서 긍정단어, 부정단어로 빈도수 확인
  • 67. R Twitter 메세지 분석 Word Cloud 출력 최소 3회 이상 언급된 단어의 빈도수 만큼 글자크기를 부여하고 가운데 부터 시작하게 Wordcloud를 그림
  • 68. R Twitter 메세지 분석 거리계산법으로 clustering시켜 연관 단어를 분석
  • 69. 11. Social Network Analysis
  • 71. 단어간 연관성 분석 1. 단어와 단어간 연관성 Matrix를 생성
  • 73. 3. Graph 조절 단어간 연관성 분석
  • 74. 문서간 연관성 분석 1. 문서와 문서간 연관성 Matrix를 생성
  • 75. 2. Graph 생성 문서간 연관성 분석
  • 76. 3. Graph 조절 문서간 연관성 분석
  • 77. 4. Graph 조절 문서간 연관성 분석
  • 78. 5. Graph 분석 문서간 연관성 분석
  • 79. Matrix 연관성 분석 Matrix 의 행과 열의 교차값으로 관계 Graph 를 계산
  • 80. Matrix 연관성 분석 1. 단어와 문서간의 연관성 Graph 생성
  • 81. Matrix 연관성 분석 2. 단어와 문서간의 연관성 분석
  • 82. Graph 분석 1. URL 정보로 Graph 생성
  • 87. Data Mining Algorithms Model Algorithms Task 지도 학습 알고리즘 최근접 이웃 분류 나이브 베이즈 분류 결정 트리 분류 선형 회귀 수치 예측 회귀 트리 수치 예측 모델 트리 수치 예측 신경망 다중 용도 서포트 벡터 머신 다중 용도 자율 학습 알고리즘 연관 규칙 패턴 감지 k평균 군집화 군집화
  • 88. 최근접 이웃을 사용한 분류 거리를 사용해 두 예제의 유사도를 측정하는 방법 범주를 알지 못하는 예제에 대해 범주가 분류돼 있는 가장 유사한 예제의 범주로 지정 장점 단점 단순, 효율적 Data분산에 대한 추정 필요없음 빠른 훈련 단계 모델을 생성하지 않음 느린 분류 단계 많은 메모리 필요 명목형 속성, 결측 데이터 추가 처리 필요
  • 89. 최근접 이웃을 사용한 분류 재료 단맛 아삭거림 음식 종류 apple 10 9 fruit bacon 1 4 protein banana 10 1 fruit carrot 7 10 vegetable celery 3 10 vegetable cheese 1 1 protein
  • 90. 최근접 이웃을 사용한 분류 거리 계산법
  • 91. 최근접 이웃을 사용한 분류 적당한 k 선택
  • 92. 최근접 이웃을 사용한 분류 Data 표준화
  • 93. 최근접 이웃을 사용한 분류 kNN 특징 추상화가 일어나지 않음 추상화와 일반화 과정을 생략 어떤 것도 학습하지 않고, 훈련 데이터를 그대로 저장 인스턴스 기반 학습/ 암기 학습
  • 95. kNN 분석 2. Data 정규화
  • 96. kNN 분석 3. 훈련 Data와 테스트 Data 생성
  • 99. 2. 카파 통계 우연으로 예측된 값과 실제 값이 일치할 확률인 Pr(e)로 정확도를 판정 두 사건이 독립적이라고 가정할 때, 두 사건이 동시에 일어날 확률은 각 발생 확률을 곱함 항목 a의 동시에 일어날 확률 = Pr(실제 a) * Pr(예측된 a) Pr(e) = 각 항목의 동시에 일어날 확률의 총합 k = (Pr(a) - Pr(e)) / (1 - Pr(e)) 성능 평가
  • 100. 3. ROC (Receiver Operating Characteristics) 성능 평가
  • 103. 2. k 값 변화 성능 향상 k value False Negative False Positive Percent classfied Incorrectly 1 1 3 4 % 5 2 0 2 % 11 3 0 3 % 15 3 0 3 % 21 2 0 2 % 27 4 0 4 %
  • 105. Data Mining Algorithms Model Algorithms Task 지도 학습 알고리즘 최근접 이웃 분류 나이브 베이즈 분류 결정 트리 분류 선형 회귀 수치 예측 회귀 트리 수치 예측 모델 트리 수치 예측 신경망 다중 용도 서포트 벡터 머신 다중 용도 자율 학습 알고리즘 연관 규칙 패턴 감지 k평균 군집화 군집화
  • 106. 결정 트리 Classification : 데이터를 분류하는데 목적 0과 1로 구분하거나 0, 1, 2, 3 등의 구분으로 분류 고객의 속성을 파악하고 고객의 행동을 예측하는데 활용 rpart, rpartOrdinal, randomForest, party, tree, marginTree, maptree 등
  • 108. 결정 트리 세분화 : 관심 있는 어떤 성질을 기준으로 전체 데이터를 그룹으로 나누는 방법 속성 : 데이터로 표현되는 객체의 정보를 전달하는 중요한 변수 정보 : 무언가에 대한 불확실성을 감소시키는 성질 Target 변수가 있으면, 이 변수에 대한 단서를 제공하는 다른 변수가 존재 모델 : 어떤 목적을 달성하기 위해 실세계를 단순하게 표현한 것
  • 109. 결정 트리 정보를 전달하는 속성의 선택 데이터를 분류할 때 순수하게 세분화하는 변수 No NoNoNoNoYes Yes Yes Yes Yes Yes Yes
  • 112. ctree 분석 2. Data 전처리 및 ctree 훈련
  • 113. ctree 분석 3. ctree 모델 확인
  • 115. rpart 분석 Recursive Partitioning and Regression Trees Tree의 prediction error를 최소화 1. Data 준비
  • 117. ctree 분석 3. rpart 모델 확인
  • 118. Random Forest 분석 임의 입력값에 따른 forest에 있는 tree에 각각 값을 투입하여 각각의 tree들이 voting 함으로써 분류 1. randomForest 생성
  • 119. Random Forest 분석 2. 오차율 분석
  • 120. Random Forest 분석 3. 영향도 분석
  • 121. Random Forest 분석 3. ROC 분석 (AUC)
  • 122. ctree vs rpart 비교 1. Data 준비
  • 123. ctree vs rpart 비교 2. Data 전처리 및 분리 불필요 속성 제거 속성의 Data Type 변경 (Factor, 문자로 변환 등) 단순공백을 NA 로 변경 훈련 / 테스트 Data 분리
  • 124. ctree vs rpart 비교 3. 교차검증용 Data 생성
  • 125. ctree vs rpart 비교 4. Feature Plot 분석
  • 126. ctree vs rpart 비교 5. Mosaic Plot 분석
  • 127. ctree vs rpart 비교 6. rpart 훈련 및 예측
  • 128. ctree vs rpart 비교 7. ctree 훈련 및 예측
  • 129. ctree vs rpart 비교 8. 정확도 평가
  • 130. ctree vs rpart 비교 8. 비교 분석
  • 132. Data Mining Algorithms Model Algorithms Task 지도 학습 알고리즘 최근접 이웃 분류 나이브 베이즈 분류 결정 트리 분류 선형 회귀 수치 예측 회귀 트리 수치 예측 모델 트리 수치 예측 신경망 다중 용도 서포트 벡터 머신 다중 용도 자율 학습 알고리즘 연관 규칙 패턴 감지 k평균 군집화 군집화
  • 133. 확률을 이용한 분류 확률 원리를 활용하는 나이브 베이즈 (naive bayes) 알고리즘 유사한 증거를 기반으로 한 사건의 유사성을 추정
  • 134.
  • 135. 확률론적 분류 사건의 확률은 사건이 일어난 시도의 수를 총 사건의 수로 관찰된 데이터 50개 메일 중 10개 메일이 스팸이었다면 스팸의 확률은 20% P(spam) = 0.20 P(normal) = 1 - 0.20 = 0.80 조건부 확률 일반 메일 (80%) 스팸 메일 (20%) 모든 이메일 만남 (5%)
  • 136. 확률론적 분류 조건부 확률 만남이 없는 이메일 만남이 있는 스팸 이메일 스팸 안에 만남
  • 137. 확률론적 분류 베이즈 이론과 조건 확률 P(A|B)는 사건B가 일어날 때 사건A의 확률 “만남"이라는 단어가 이전 스팸 이메일에서 사용됐을 확률을 우도(likelihood)라고 하고, 모든 이메일에 “만남"이 나타날 확률을 주변 우도(marginal likelihood)라고 함
  • 138. 확률론적 분류 우도표 P(스팸 | 만남) = P(만남 | 스팸) * P(스팸) / P(만남) = (4 / 20) * (20/100) / (5/100) = 0.8 만남 빈도 Yes No 총합 스팸 4 16 20 일반 1 79 80 총합 5 95 100 만남 빈도 Yes No 총합 스팸 4/20 16/20 20 일반 1/80 79/80 80 총합 5/100 95/100 100
  • 139. 나이브 베이즈 알고리즘 분류를 위해 베이즈 이론을 사용 장점 단점 단순하고 빠르며 효과적 노이즈와 결측제이터가 있어도 잘 수행 훈련에 대해 상대적으로 적은예제로 수행 예측에 대한 추정된 확률을 얻을 수 있음 모든 속성은 독립적이라는 가정에 의존 수치 속성에 대해서만 적용 가능 수치 속성으로 구성된 많은 데이터셋에 부적합 추정된 확률은 예측된 범주보다 덜 신뢰적