반응형

SW/R 52

R : K-fold Cross Validation ( 개념 및 예제 )

K-fold Cross Validation 오직 하나의 분류 실험만으로 충분할까요? Test 데이터셋을 다르게 만들면 accuracy가 달라질 것입니다. 따라서 Test 데이터셋이 어떻게 구성되었는가에 따라 accuracy가 원래 성능보다 높거나 낮게 나올 수도 있습니다. 그렇다면 어떻게 해야 분류 모델 또는 분류 알고리즘의 성능을 보다 정확히 알 수 있을까요? 데이터셋의 K-fold partition을 생성합니다. 각각의 k의 실험에서 훈련을 위해 k-1 부분을 테스팅용으로 남기는 방식으로 진행합니다. 보통 k는 10으로 많이 사용합니다. 델(or 알고리즘)의 정확도는 각 fold의 정확도들의 평균으로 계산합니다. 평균을 구하는 식 3-fold cross validation모든 클래스에서 균등한 비율(..

SW/R 2019.03.22

R : KNN classification (개념 및 예제)

KNN 아이디어- 새로운 포인트( * )에 가장 가까운 K를 찾는다.- 새로운 포인트( * )는 주요 클래스(A)에 속하는 것으로 결정한다.A 클래수 이웃한 수 > B 클래스 이웃한 수 알고리즘(Algorithm)- 주어진 지점과 각 지점 사이의 거리를 계산합니다.- 거리별 가장 가까운 K 지점을 선택합니다.- K 포인트로부터 주요 클래스를 선택합니다. (클래스는 새로운 점을 위한 것입니다) 어떻게 두 요소 사이의 거리를 계산할까요? 유클리드 ditance 공식을 이용합니다. K 를 얼마로 하는 것이 좋을까요?- 크게 할 때와 작게 할 때 각각 장단점이 있습니다.- 보통은 데이터 수가 N 이라고 할 때 K < sqrt(N) 을 권장합니다.- k의 값에 따라 분류는 매우 달라질 수 있습니다. 아래 그림을 ..

SW/R 2019.03.15

R : k-means clustering- 군집화 ( 개념 및 예제 )

군집화 거리 계산군집화에 대한 거리를 계산하는 공식은 아래와 같습니다. R에서 내장된 공식을 통해 k-means clustering 실습을 진행해보도록 하겠습니다. R function: kmeans kmeans(x, centers, iter.max = 10, nstart = 1, algorithm = c("Hartigan-Wong", "Lloyd", "Forgy","MacQueen")) kmeans에 대한 매개 변수는 다음과 같습니다.- x : 수치형 데이터 matrix- centers : 몇 개의 그룹으로 나눌 것인가- iter.max : 그룹 중심점을 찾기 위한 최대 반복 횟수- nstart : 초기에 그룹 중심점을 임의로 잡을 때 몇 개의 점을 이용할것인가- algorithm : 사용할 알고리즘 k..

SW/R 2019.03.14

R : 군집화-Clustering, 분류-Classification (개념 및 예제)

군집화(Clustering)대상 데이터를 일부 카테고리(클래스)로 그룹화하는 것을 뜻합니다. 같은 그룹의 데이터는 비슷한 특징을 가지고 있습니다. 따라서 그룹이 1에 얼마나 "근접"하고 있는가를 근거로 군집을 가리킵니다. 보통 비지도 학습(Unsupervised learning)에서 활용됩니다. 분류(Classification)새로운 데이터를 알려진 범주 중 하나로 분류하는 것을 뜻합니다. 카테고리에는 "라벨"을 보유합니다. 현실에서는 예측 문제에서 적용하고 있습니다. 주로 지도 학습(Supervised learning)에서 활용합니다. 분류분석 절차1. 라벨(클래스) 정보가 있는 대상 데이터셋을 준비한다.2. 대상 데이터셋을 트레이닝 데이터 및 테스트 데이터로 나눈다. - 테스트 데이터의 라벨은 모른다..

SW/R 2019.03.13

R : 로지스틱 회귀 ( 개념 및 예제 )

로지스틱 회귀일반적인 회귀 문제에서는 종속변수가 수치데이터(양적 자료)입니다. 즉, 예측 해야 할 종속 변수가 수치데이터가 아닌 범주형 데이터 (Yes or No) 일 때를 로지스틱 회귀라고 한다. 또, 범주나 그룹을 예측하는 문제를 ‘분류(classification)’ 문제 라고 합니다. 실습 : iris 품종 예측먼저 iris 품종을 예측하기 위해 회귀식을 구하겠습니다. head(iris)# Sepal.Length Sepal.Width Petal.Length Petal.Width Species# 1 5.1 3.5 1.4 0.2 setosa# 2 4.9 3.0 1.4 0.2 setosa# 3 4.7 3.2 1.3 0.2 setosa# 4 4.6 3.1 1.5 0.2 setosa# 5 5.0 3.6 1...

SW/R 2019.03.12

R : 중선형 회귀 분석 (개념 및 예제)

중선형 회귀영어로 Multiple linear regression입니다. 독립 변수가 2개 이상일 때 중선형 회귀라 합니다. 따라서 중선형 회귀식의 형태는 선형 회귀식과 유사합니다. 실습 : 연봉 예측 모델특정 직군의 연봉을 3가지 변수(교육년수, 여성비율, 평판)를 가지고 예측해보겠습니다. 사용하는 데이터는 car 패키지의 Prestige입니다. library(car)# 필요한 패키지를 로딩중입니다: carData head(Prestige)# education income women prestige census type# gov.administrators 13.11 12351 11.16 68.8 1113 prof# general.managers 12.26 25879 4.02 69.1 1130 prof#..

SW/R 2019.03.11

R : 데이터 마이닝과 단순 선형 회귀 (개념 및 예제)

데이터 마이닝지금까지는 주로 전통적인 통계 분석 도구를 이용하여 데이터를 분석하는 방법을 배웠습니다. 데이티 마이닝 도구를 학습하면 데이터로 부터 다양한 정보를 얻을 수 있습니다. 데이터 마이닝은 데이터 안에서 의미 있는 패턴, 추세 등을 발견해나가는 과정을 의미합니다. 앞으로 회귀분석, 분류, 군집화 등에 대해 알아보겠습니다. 단순 선형 회귀종속 변수(y) 와 독립변수(x) 사이의 선형 관계를 파악하고 이를 예측에 활용하는 방법을 뜻합니다. (x)와 (y) 사이의 관계식을 모델(model) 이라 한다. 보통 회귀 모델, 예측 모델이라 합니다. 단순 선형 회귀식은 다음과 같은 형태를 나타냅니다. y = Wx + b 즉, 상수인 W와 b 를 찾는 것이 모델을 만드는 과정이다. 현실세계에서는 두 변수가 선형..

SW/R 2019.03.10

R : ggmap-특정 지역 지도 보기 (개념 및 예제)

개요구글맵 API 기능을 이용하여 구글지도상에 정보를 표시할 수 있습니다. 실습 전에 필요한 패키지가 있습니다. ggmap과 ggplot을 설치해주세요. ggmap은 구글맵과 연동을 위해 필요합니다. ggplot2은 구글맵 위에 그래프를 출력하기 위해 설치합니다. 아래 그림을 참고해주세요. ggmap 오류 해결법최근 google map 시용 환경의 변화에 따라 현재 설치된 ggmap 패키지로는 구글 지도 서비스 이용이 안됩니다. 주소를 좌표로 바꾸는 함수, 지도를 가져오는 함수가 작동하지 않습니다. 이제부터는 반드시 구글 API 키를 이용하도록 강제하기 때문입니다. 해결책은 현재 ggmap과 관련된 패키지를 삭제하고 최신버전을 새로 설치합니다. 그 이후 API 키를 발급받아 사용해야 합니다. 아래 명령어..

SW/R 2019.03.07 (16)

R : 이상치-데이터 전처리 ( 개념 및 예제 )

이상치(outlier)정상 범위 밖에 있는 값을 뜻합니다. 잘못 입력한 값일 수도 있지만 실제 값일 수도 있습니다. 이런 이상치들은 전체 데이터 분포의 특성에 영향을 미칩니다. 품질 관리에 있어서 불량을 찾을 때 제일 먼저 찾아 보는 것이기도 합니다. 또 금융 사기 거래를 탐지할 떄 사용되기도 합니다. 이상치를 제외하고 분석을 할지, 포함해서 분석을 할지 판단해야 합니다. 이상치 판단 방법논리적으로 있을 수 없는 값이 있는 지 찾아봅니다. 성별에서 좋아하는 색깔을 1~5로 표시하기로 했는데 7인 경우에는 잘못된 값입니다. 또, 상식을 벗어난 값이 있는 지 찾아봅니다. 나이가 100살이 넘는 경우우는 힘들겠죠? 또 이상치를 판단할 때 boxplot을 활용해봅니다. 이상치 탐색을 해보겠습니다. 아래 예제코드..

SW/R 2019.03.06

R : 데이터 병합-merge (개념 및 예제)

병합(merge)여러 데이터가 있는 경우, 하나로 합쳐서 데이터를 처리해야할 때가 있습니다. 그런 경우 merge를 활용해 진행해야합니다. 병합하는 경우에 대해서 알아보겠습니다. 공통 컬럼을 매개로 하여 2개의 2차원 배열을 하나로 병합합니다. 공통된 컬럼의 값이 없는 경우 생략합니다. 아래 예제를 참고하세요. x y # name korean # 1 a 75 # 2 b 60 # 3 d 90 merge(x,y, all.x=T) # name math korean # 1 a 90 75 # 2 b 80 60 # 3 c 40 NA merge(x,y, all.y=T) # name math korean # 1 a 90 75 # 2 b 80 60 # 3 d NA 90 merge(x,y, all=T) # name mat..

SW/R 2019.03.05

R : 데이터 전처리, 결측값-missing value ( 개념 및 예제 )

데이터 전처리 개요분석을 위한 데이터셋을 확보했다 하더라도 바로 분석을 할 수 없는 경우가 많습니다. 그 이유는 바로 결측값, 이상치, 오입력 등이 있습니다. 따라서 데이터 분석에 적합하도록 데이터셋을 정제해야 합니다. 바로 이것을 전처리(data preprocessing)라고 합니다. 실제 데이터를 분석하는 시간보다 전처리에 더 많은 시간이 소요되는 경우가 많습니다. 효율적으로 데이터를 전처리 할 수 있는 능력이 중요합니다. 결측값(missing value)결측값은 입력이 누락된 값을 의미합니다. 보통 NA로 출력됩니다. 결측값이 포함되면 산술 연산에 문제가 생깁니다. 대부분의 산술 연산 함수는 결측값을 제외할 수 있는 옵션을 제공합니다. 아래 예제를 참고하세요. x

SW/R 2019.03.04

R : 구글 트렌드 ( 개념 및 사용법 )

구글 트렌드 우리나라 네이버에 데이터랩이 있다고 하면 전 세계적인 어떤 검색 엔진으로는 구글이 타의 추종을 불허합니다. 그래서 이 구글에서 네이버 데이터랩의 것들을 똑같이 제공을 합니다. 네이버에서는 국내 사이트에 국한되다 보니까 국내에 있는 사람들의 관심도나 이런 것들을 볼 수 있습니다. 반면에 구글트랜드로 가면 전 세계인들의 관심도, 나라별로 비교가 가능합니다. 또 구글 트렌드를 이용하는 방법은 네이버 데이터랩과 비슷합니다. 우리가 관심 있는 주제어를 주면 그 주제어가 검색된 빈도가 지역별로도 나타납니다. 활용법 시간대별로도 표시가 되어서 전 세계적인 관심도의 흐름을 알 수 있습니다. 구글 트렌드 한국어로 된 사이트가 있습니다. 여기에서 살펴볼 것은 K팝입니다. 대한민국이 아니고 전 세계를 가지고 볼..

SW/R 2019.03.03

R : 분리(split), 선택(subset)-전처리 (개념 및 예제)

분리(split) & ,선택(subset) 분리(split)데이터셋을 주어진 기준에 따라 여러개로 분리합니다. 열 종류별로 기준을 잡고 분리하는 예제입니다. sp 5.1) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 6 5.4 3.9 1.7 0.4 setosa # 11 5.4 3.7 1.5 0.2 setosa # 15 5.8 4.0 1.2 0.2 setosa # 16 5.7 4.4 1.5 0.4 setosa # 17 5.4 3.9 1.3 0.4 setosa # 19 5.7 3.8 1.7 0.3 setosa # 21 5.4 3.4 1.7 0.2 setosa subset(iris, Sepal.Length > 5.1 & Sepal.Width >..

SW/R 2019.02.27

R : ggplot (개념 및 예제)

ggplotR은 기본 그래프 도구들을 제공합니다. 따라서 그 도구들을 활용해 시각화가 가능합니다. 하지만 고급화된 시가고하를 위해 ggplot을 활용합니다. 그래서 이 패키지를 활용하기 위해서는 ggplot2를 설치해야합니다. 패키지 설치 방법은 이전에 포스팅한 내용을 참고해주세요. 기본 문법ggplot(data=ds, aes(x=x1,y=x2))+geom_xx()+ .. 먼저 그래프를 그릴 대상을 dataset으로 입력합니다. 그 후 x축과 y축 데이터를 입력합니다. 마지막으로 그래프의 형태를 지정하는 것이 기본 문법입니다. 단일 그래프를 활용할 때 주로 사용합니다. ggplot()+geom_xx(data=xx, aes(x=x1,y=x2))+ .. 위 문법은 여러 그래프를 하나로 겹쳐 그릴 때 편리하게..

SW/R 2019.02.26

R : 모자이크 플롯-mosaic plot (개념 및 예제)

모자이크 플롯 (mosaic plot)모자이크 플롯(mosaic plot)은 무엇일까요? 2원 3원 교차표의 시각화입니다. 따라서 전체 정사각 도형을 교차표의 행 빈도에 비례하는 직사각 도형으로 나누어 줍니다. 그 다음에, 다시 각도형을 행 내 열의 빈도에 해당하는 직사각 도형으로 나누어 줍니다. 아래 그림을 참조해서 이해해보세요. 위 그림을 해석해 볼까요? 먼저 세로의 긴 직사각형의 넓이는 남성과 여성의 비율을 나타냅니다. 빨간색과 회색의 직사각형의 넓이는 합격자와 불합격자의 비율을 나타냅니다. 따라서 전체적으로 남성의 합격률이 여성보다 높다는 것을 알 수 있습니다. 이처럼 모자이크 플롯은 여러가지의 정보를 직사각형으로 나누어 표현할 수 있습니다. 위 데이터 표현방식을 사용하려면 설치해야하는 패키지는 ..

SW/R 2019.02.25
반응형