본문 바로가기

Programming & Machine Learning/R X 머신러닝13

R을 이용한 간단한 데이터 시각화 ggplot, googleVis, ggmap을 이용한 간단한 시각화1. 지하철 유동인구 지도표시1.1 ggmap, ggplot2, leaflet 활용지하철 역, 일자, 하루 총 이용객, 시간대별 이용객 feature를 가진 subway.csv라는 파일에서, 구글 맵을 이용하여 지하철 유동인구를 지하철 역별로 시각화 해보는 연습. 먼저 두가지 방법으로 데이터를 전처리 하였다. 첫 번째로 2012년 5월 8일의 지하철 역 별 유동인구를 시각화했고, 두 번째로 2013년 총 유동인구가 가장 많은 지하철 역을 10순위까지 시각화 하였다. subway = read.csv("subway.csv", header = T, fileEncoding="utf-8") subway_lonlat = read.csv("subway.. 2017. 7. 21.
R을 이용한 머신러닝 - 6 (랜덤 포레스트 개념과 적용) 랜덤 포레스트 1. 개념랜덤포레스트는 의사결정트리를 앙상블 기법으로 학습시킨 모델로, 오버피팅을 방지하기 위해 고안된 방법이다. 랜덤포레스트 역시 분류와 회귀분석 모두에 사용될 수 있다. 앙상블 학습 기법이란 쉽게 말해, 하나의 예측에 여러가지 알고리즘을 투표를 거쳐 사용하는 것이다. 즉, 랜덤포레스트에서 사용하는 앙상블은 여러 개의 서로 다른 의사결정트리를 만들고, 투표를 통해 결과를 얻어내는 것이다. 하지만 의사결정트리 개념에서 정리한 것 처럼 의사결정 트리를 생성하게 된다면, 트리들이 모두 똑같거나 비슷한 트리로 생성될 것이다. 배심원 10명을 앉혀놨는데 모두 쌍둥이인 꼴이다(..) 이때 배심원의 출신을 랜덤하게 선정하는 방법이 바로 배깅(bagging == bootstrap aggregating).. 2017. 7. 18.
R을 이용한 머신러닝 - 5 (의사결정 트리) R을 이용한 의사결정 트리 1.1 개념의사결정 트리는 분류 문제이기도 하고, 예측 문제이기도 한데, 주로 사용되는 분야는 지도 분류 학습이다. 분기의 기준이 범주형이냐, 연속형이냐에 따라 결과가 분류나 회귀 모두가 가능하다. terminal node의 값이 범주형이라면 분류, 연속형이라면 예측이라는 것이다. 어찌되었든 의사결정 트리의 메인 아이디어는 데이터를 스무고개처럼 분석하여 최종적 판단에 이르는 패턴을 찾아내는 것이다. 다음의 그림은 의사결정트리를 나타내는 대표적인 예시인 타이타닉호 생존 결정 트리이다. 결정트리에서 중요한 내용으로는 다음과 같은 크게 3가지가 있다. 1. 노드 분기 방법 2. 모델 학습 과정 3. 가지치기 1.2 노드 분기 방법의사결정트리는 한 분기때마다 변수 영역을 두개로 구분하.. 2017. 7. 14.
R을 이용한 머신러닝 - 4 (로지스틱 회귀모델을 이용한 분류 문제) R에서의 로지스틱 회귀모델을 이용한 분류1. 분류 알고리즘1.1 회귀분석에서의 분류의 기법- y값은 범주형 데이터(그룹 변수)여야 분류가 가능한 수식이 완성됨. 1.2-1 로지스틱 회귀로지스틱 회귀는 독립변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는 통계적 기법이다. 따라서 로지스틱 회귀의 y값은 0~1 사이의 확률이 되는데, 이때의 확률은 이진 그룹에 속할 확률이다. 또한 로지스틱 회귀는 선형 회귀 분석과 다르게, 종속변수가 범주형 데이터이다. - 만약 일반적인 수식 y = b + ax라는 식이 있다고 할 때, 이 식은 y가 0~1로 나오지 않을 수 있음. - 따라서 f(x)의 결과가 0~1 확률로 나올수 있도록 함수를 구성해주는 것이 로지스틱 함수의 아이디어이다. - y에 log를 취해서.. 2017. 7. 14.
R을 이용한 머신러닝 - 3 (분류와 클러스터링 : K-NN, K-means) 분류 & 클러스터링1. 분류 알고리즘1.1 K-NN- 최근접 이웃을 찾아가는 분류 알고리즘. - K는 최근접 이웃의 갯수를 말하는 것. - 지도학습의 일종으로 레이블이 있는 데이터를 사용함. - 예를 들어 K가 1이면, iterate 할 때, 그 데이터와 가장 가까운 Class를 자신의 Class로 하게 됨.\ - 2이면, 자신과 가장 가까운 2개의 데이터의 클래스를 참조하여 자신의 클래스를 결정 - 이웃을 찾을때는 여러가지 거리 측정 방법 중에 주로 유클리디안 거리를 사용함. - feature들이 numerical할 때, 데이터를 표준화시켜주는 것이 좋음. wbcd = read.csv("wisc_bc_data.csv", header = T, stringsAsFactors = F, sep = ",") s.. 2017. 7. 13.
R을 이용한 통계분석 -5 (실제 데이터를 이용한 시계열 분석) R을 이용한 통계분석 -5 (실제 데이터를 이용한 시계열 분석)1. 데이터 전처리 실제 데이터 적용1.1 NS Analysis(농수산 데이터 분석(?))실제 공공데이터를 이용하여 데이터 전처리과정을 거친 후 시각화까지 실행해보았음.다음 링크의 과정을 연습해 본 것으로, 누구나 접속이 가능.https://kbig.kr/edu_manual/html/prod_update/basic/product_chapter_2.htmlSys.setlocale("LC_ALL", "ko_KR.UTF-8") # 한글 인코딩 가능하게 해줌 library(plyr); library(ggplot2); library(stringr); library(zoo); library(corrplot); library(gridExtra); libr.. 2017. 7. 11.
맥에서 R studio를 사용할때의 간단한 에러해결법 맥에서 R 스튜디오를 사용하여 이것저것 패키지를 설치하거나, 혹은 한글로 된 데이터 파일을 처리할 때 빈번하게 오류가 발생한다. 예전에는, R을 데이터 분석 용도보다는 크롤러 제작용이나 학교 과제용으로 활용했었기 때문에,항상 그때그때 발생하는 오류를 stack overflow의 힘을 빌려 어거지로 해결했었다. 이번에 R을 체계적으로 다시 공부하면서 이러한 부분들에 대한 진지한 trouble shooting을 진행했는데, 생각보다 문제의 원인은 간단하다.stack overflow나 기타 R 커뮤니티 사이트에 UTF-8 인코딩 문제나, Java SDK를 사용하는 패키지를 실행할 때 마다 발생하는 에러들에 대한 수많은 글들의 근본적인 해결책은 동일했다. R에서 발생하는 대부분의 문제가, 아래의 크고 간단한(?.. 2017. 7. 11.
R을 이용한 머신러닝 - 2 (비선형 회귀분석) 2. 비선형 회귀2.1 SVM를 이용한 비선형 회귀SVM : 고차원의 입력에 대해, 변환함수를 통해 가중치를 찾게 됨이론을 통해 배우는 회귀분석은 대부분 선형적인 모형을 가정하고 있다. 하지만 실제의 데이터는 대부분 선형성을 만족하지 못한다. 따라서 실제적으로 데이터 분석에서 처리해야 하는 데이터는 비선형적인 모델이라고 할 수 있다. 선형 모형은 독립변수에 따라 종속변수가 일정한 변화, 즉 선형성을 보이지만 비선형 모형은 일정한 변화를 보이지 않는다. 수학적인 의미로는, df가 계속 변한다고 할 수 있다. 사인함수나 지수함수처럼 선형적인 모양을 하지 않는 독립변수를 포함하는 모형을 일반적으로 비선형 모형이라 한다. R에서의 SVM 회귀 분석 코드### 비선형 회귀 x = sample(0:2*pi, 100.. 2017. 7. 11.
R을 이용한 머신러닝 - 1 (선형 회귀분석) R을 이용한 머신러닝 -1 (회귀분석 기초)1. 선형 회귀1.1 단순 선형 회귀- 회귀분석은 독립변수와 종속변수간의 관계를 모델링하는 기법을 말한다. - 그 중에서 선형회귀는 변수간의 관계가 선형적 형태로 나타나는 경우이다. - 회귀를 통해 나타난 직선에서부터 멀어진, 측정치의 Y값의 차이를 오차라고 한다. - 선형회귀는 Y = a1X1 + a2X2 + ... + b 의 수식으로 나타낼 수 있다. (단순 선형 회귀는 변수가 1개) - 표본이 등분산일 경우 측정치, 오차가 직선 근처에 모여있어 예측이 상대적으로 좋지만, 이분산일 경우 측정치가 물결을 치게 되므로 선형적 예측이 좋지 않다. - 그래서 선형 회귀에서는 등분산을 가정한다. - 독립 변수간에는 독립을 가정한다 -> 다중 공선성 고려 X - 회귀계.. 2017. 7. 11.
R을 이용한 통계분석 - 4 (집단간 차이검정과 분산분석) 집단간 차이검정을 R 코드로 실행해 볼 것이다. 집단간 차이검정 역시 가설검정을 의미하는데, 가설 검정에서 귀무가설의 진위여부를 판별하기 위해 검정 통계량을 사용한다. 일반적인 가설검정의 단계는 다음과 같다. 1. 대립가설을 설정. 2. 유의수준을 설정. 3. 적당한 검정 통계량을 선정. 4. 유의수준에 대한 기각역을 정함. 5. 표본으로부터 검정 통계량을 관찰함. 6. 관찰값이 기각역에 있는지를 판단하여 기각과 채택을 결정함. 1. R에서의 t-test 집단간의 평균 차이 여부를 검증하는 방법인 t-test를 R코드로 진행해보았다. t-검정은 주로 두 집단을 비교할 때 사용한다. # 평균 180, 표준편차 10인 100개의 표본추출 data1 = rnorm(100, mean=180, sd=10) t.t.. 2017. 7. 7.