일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- CrossValidation
- R 연습문제
- 생존그래프
- R select
- R mutate
- 생존분석
- ggplot2
- 데이터 핸들링
- Bias-Variance Tradeoff
- R
- R dplyr
- R ggplot2
- 카플란마이어
- R filter
- 확률실험
- 교차타당성
- 이산형 확률분포
- 콕스비례모형
- dplyr
- ISLR
- geom_errorbar
- R 결측치
- 강화학습 #추천서적 #강화학습인액션
- 미국 선거데이터
- 의사결정나무
- 데이터핸들링
- 주식데이터시각화
- ggplot()
- ggsurvplot
- R문법
- Today
- Total
Must Learning With Statistics
지도학습과 비지도학습 본문
지도학습과 비지도학습
이번 포스팅은 통계적 학습방법(Statistical Learning)에 대해 다루어보도록 하겠습니다. 통계적 학습은 크게 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning)으로 분류가 됩니다. 여기서 좀 더 추가해보자면 강화학습(Reinforcement Learning)이라 불리는 알고리즘은 지도학습과 비지도학습과는 다른 방식인 Agent Learning의 구조를 가집니다.
지도학습(Supervised Learning)
지도학습이란 특정한 결과값을 예측(prediction) 및 추정(estimation)을 하기위해 통계적인 모형을 구성하는 것을 의미합니다. 예를 들어, ‘마케팅 비용 투자대비 효과 예측 문제’, ‘여러 요인들을 고려한 주가의 예측’ 등 예측해야 되는 값이 정해져 있는 상황을 의미합니다. 대표적인 예로 회귀분석을 들 수 있습니다.
데이터를 통해 지도학습이 어떤 것인지 살펴보도록하겠습니다. AMES데이터는 미국 Iowa주에 위치한 AMES City의 House 데이터를 의미합니다. 가장 관심이 많은 집값(SalePrice)을 포함하여 집이 위치한 지역의 특성(MS.Zoning), 건설년도(Year.Built) 등의 변수가 있습니다.
library(ggplot2)
library(dplyr)
library(reshape)
library(factoextra)
library(FactoMineR)
AMES = read.csv("D:\\Dropbox\\DATA SET(Dropbox)\\Ames_City.csv",stringsAsFactors = FALSE)
MS.Zoning | Overall.Qual | Year.Built | Year.Remod.Add | Exter.Qual |
---|---|---|---|---|
RL | 6 | 1960 | 1960 | 3 |
RH | 5 | 1961 | 1961 | 3 |
RL | 6 | 1958 | 1958 | 3 |
RL | 7 | 1968 | 1968 | 4 |
RL | 5 | 1997 | 1998 | 3 |
RL | 6 | 1998 | 1998 | 3 |
Exter.Cond | Garage.Qual | Garage.Cond | Sale.Type | Sale.Condition | SalePrice |
---|---|---|---|---|---|
3 | 3 | 3 | WD | Normal | 215000 |
3 | 3 | 3 | WD | Normal | 105000 |
3 | 3 | 3 | WD | Normal | 172000 |
3 | 3 | 3 | WD | Normal | 244000 |
3 | 3 | 3 | WD | Normal | 189900 |
3 | 3 | 3 | WD | Normal | 195500 |
여기서 우리는 주어진 변수들을 활용하여 SalePrice를 예측하는 모형을 만들고자 합니다. 이 경우 지도학습에 해당되는 방법론들을 활용하여야 합니다. 모델링에서 가장 중요한 것은 예측하고자 하는 반응변수(Response Variable)가 어떤 데이터 특성을 지니고 있는지 확인을 하는 것입니다. SalePrice는 구간으로 정해지는 수치형(numeric)값들이기 때문에 기본적으로 연속형 확률분포를 가지는 변수로 생각하고 분석을 진행하면 됩니다.
\[ SalePrice = f(Overall.Qual) + \epsilon \]
ggplot(AMES) +
geom_jitter(aes(x = Overall.Qual, y = SalePrice,col = Overall.Qual),
alpha = 0.4) +
geom_smooth(aes(x = Overall.Qual, y = SalePrice),method = 'lm',
se = FALSE, col = 'red',size = 1.2) +
geom_smooth(aes(x = Overall.Qual, y = SalePrice),
se = FALSE, col = 'black',size = 1.2) +
guides(col = FALSE) +
scale_color_gradientn(colours = c("#9999FF","#3399FF")) +
theme_bw() +
theme(text = element_text(size = 15,face = "bold"))
위 그래프와 같이 예측자(Predictor)가 주어졌을 때 분석하고자하는 변수를 예측 및 추정하기 위한 모형을 세우는 것이 지도학습의 역할입니다. 회귀선이 선형모형과 곡선모형 2개가 있는데, 우리는 아직 두 회귀선 중 어떤 선이 더 데이터에 적합한 선인지는 모릅니다. 여기서 적합한 \(f(\cdot)\)을 찾는 것이 지도학습에서의 주목적입니다.
비지도학습(Unsupervised Learning)
비지도학습이란 지도학습과는 다르게 데이터 내에서 관계와 구조를 분석하는 통계적 학습방법입니다. 대표적으로 군집분석이 있습니다. 그런 관계로 비지도학습은 예측이 목적이 아닌 관계와 유사성을 파악하는 것에 목적이 있습니다.
AMES_Numeric = AMES %>%
select_if(is.numeric)
Scaled = as.data.frame(scale(AMES_Numeric))
Principal_Component = PCA(Scaled,graph = FALSE)
fviz_pca_biplot(Principal_Component, repel = FALSE)
위 그래프의 경우는 주성분 분석(PCA)과 k-means 군집분석을 진행한 그래프입니다. 예측보다는 데이터 내에 존재하는 변수들 간의 관계 및 관측값들의 유사성(similarity) 패턴 분석을 목적으로 합니다.
지도학습과 비지도학습의 차이점
지도학습과 비지도학습의 가장 큰 차이점 중 하나는 분석 결과의 정확도, 성능을 알려주는 공식적인 지표의 유무입니다. 지도학습의 경우에는 예측이 목적이기에 예측하고자한 실제 데이터 값(True Value)와 우리가 모형으로부터 예측한 값(Predicted Value)간의 차이를 보면 모형의 성능을 알 수가 있지만, 비지도학습은 방법이 존재하지가 않습니다.
일반적으로 지도학습은 결과를 내고자 할 때 활용을 합니다. 반면, 비지도학습은 데이터에 대한 사전 정보가 부족할 때, 데이터를 전처리하는 과정에서 많이 사용합니다.
- 참고문헌 : Introduction to Statistical Learning with R
'데이터마이닝' 카테고리의 다른 글
의사결정나무 1 [CART] (0) | 2020.04.23 |
---|---|
데이터 마이닝이란 (0) | 2020.03.17 |
Cross Validation 및 Bias Variance Trade off 시뮬레이션 (0) | 2020.03.17 |
선형, 비선형 회귀모형 적합방법과 Bias-variance Trade off 관계 (0) | 2020.03.16 |