Programming & Machine Learning
-
파이썬 기초 문법 - 1 (수, 텍스트, 자료구조)Programming & Machine Learning/Python X 머신러닝 2017. 7. 25. 17:23
1. 파이썬 기본 문법파이썬에서 기초가 되는, 파이썬의 독특한 문법들을 대강 코드로 정리해봤다. 제어문이나 반복문은 파이썬에서만 사용되는 특징적인 부분을 나중에 정리해야겠다. 1.1 수 다루기### 2,16,10 진법 관련 # Ob xxxxx -> 2진법 # Oc xxxxx -> 16진법 # Ox xxxxx -> 10진법 # >>> bin(8) # '0b1000' # >>> hex(10) # '0xa' # >>> oct(10) # '0o12' ### math module import math # 여러 수를 표현 가능 math.pi math.e math.abs() # 절대값 round() # 반올림 math.trunc() # 버림1.2 텍스트 다루기a = "hello world!" b = "헬로 월드!" ..
-
R을 이용한 간단한 데이터 시각화Programming & Machine Learning/R X 머신러닝 2017. 7. 21. 16:33
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..
-
회귀와 분포에 관한 문제Programming & Machine Learning/Mathematics & Statistics 2017. 7. 19. 02:04
일반적인 회귀분석이나 분산분석은 종속변수, 즉 Y값이 정규분포이다. 하지만 실전에서는 항상 대상의 분포가 정규분포를 따르지는 않는다. 뿐만 아니라 종속변수 자체가 연속형이 아니라 범주형일 수도 있다. 이러한 모든 경우를 포함하는 모형을 일반화 선형 모형(Generalized Linear Model)이라고 한다. 만약 종속변수가 이항분포를 따르는 범주형 데이터라고 한다면 로지스틱 회귀 기법을 이용하는 것이 일반적이다. 하지만 이는 언제든지 변할 수 있고, 유동적이어야 한다. 목표로 하는 데이터의 형태에 따라 분석기법이 달라질 수 있기 때문이다, 요지는, 종속변수가 어떠한 분포의 형태를 띠는지에 따라 알고리즘이 변해야 한다는 것이다. 관찰하고자 하는 대상의 형태를 자세히 보지 않고서 알고리즘을 결정하는 것은..
-
R을 이용한 머신러닝 - 6 (랜덤 포레스트 개념과 적용)Programming & Machine Learning/R X 머신러닝 2017. 7. 18. 02:03
랜덤 포레스트 1. 개념랜덤포레스트는 의사결정트리를 앙상블 기법으로 학습시킨 모델로, 오버피팅을 방지하기 위해 고안된 방법이다. 랜덤포레스트 역시 분류와 회귀분석 모두에 사용될 수 있다. 앙상블 학습 기법이란 쉽게 말해, 하나의 예측에 여러가지 알고리즘을 투표를 거쳐 사용하는 것이다. 즉, 랜덤포레스트에서 사용하는 앙상블은 여러 개의 서로 다른 의사결정트리를 만들고, 투표를 통해 결과를 얻어내는 것이다. 하지만 의사결정트리 개념에서 정리한 것 처럼 의사결정 트리를 생성하게 된다면, 트리들이 모두 똑같거나 비슷한 트리로 생성될 것이다. 배심원 10명을 앉혀놨는데 모두 쌍둥이인 꼴이다(..) 이때 배심원의 출신을 랜덤하게 선정하는 방법이 바로 배깅(bagging == bootstrap aggregating)..
-
통계 수치분석 방법 분류Programming & Machine Learning/Mathematics & Statistics 2017. 7. 17. 01:28
기초적인 통계 수치분석에 대한 방법 분류. 기초적인 통계분석에 있어서 적합성과 독립성을 검정하는 방법에 대해 R 프로그래밍과 연결하여 몇 차례 공부하고 포스팅 했었다. 이에 대한 내용을 다시 한 번 자세하게 살펴보던 중, 활용에는 큰 문제점이 없었지만 내용이 구조적으로 정리되지 않고 모호하다는 느낌이 머리속에 맴돌았다. 두 모집단간의 차이를 검정하는 방법, 두 모집단을 대표하는 것이 연속형 데이터인지 범주형 데이터인지에 대해서도 방법이 달라지는지,집단이 여러개일 때 차이를 검정하는 방법,그 때 데이터가 연속형인지 범주형인지에 따라 적용하는 방법,집단이 여러개인데 각 집단마다의 변수도 여러개인 경우, 이러한 내용들이 정리가 되지 않은 채, 예제와 모호한 개념들만 머리에 맴돌았다.내친김에 이 부분을 다시 정..
-
R을 이용한 머신러닝 - 5 (의사결정 트리)Programming & Machine Learning/R X 머신러닝 2017. 7. 14. 01:24
R을 이용한 의사결정 트리 1.1 개념의사결정 트리는 분류 문제이기도 하고, 예측 문제이기도 한데, 주로 사용되는 분야는 지도 분류 학습이다. 분기의 기준이 범주형이냐, 연속형이냐에 따라 결과가 분류나 회귀 모두가 가능하다. terminal node의 값이 범주형이라면 분류, 연속형이라면 예측이라는 것이다. 어찌되었든 의사결정 트리의 메인 아이디어는 데이터를 스무고개처럼 분석하여 최종적 판단에 이르는 패턴을 찾아내는 것이다. 다음의 그림은 의사결정트리를 나타내는 대표적인 예시인 타이타닉호 생존 결정 트리이다. 결정트리에서 중요한 내용으로는 다음과 같은 크게 3가지가 있다. 1. 노드 분기 방법 2. 모델 학습 과정 3. 가지치기 1.2 노드 분기 방법의사결정트리는 한 분기때마다 변수 영역을 두개로 구분하..
-
R을 이용한 머신러닝 - 4 (로지스틱 회귀모델을 이용한 분류 문제)Programming & Machine Learning/R X 머신러닝 2017. 7. 14. 01:19
R에서의 로지스틱 회귀모델을 이용한 분류1. 분류 알고리즘1.1 회귀분석에서의 분류의 기법- y값은 범주형 데이터(그룹 변수)여야 분류가 가능한 수식이 완성됨. 1.2-1 로지스틱 회귀로지스틱 회귀는 독립변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는 통계적 기법이다. 따라서 로지스틱 회귀의 y값은 0~1 사이의 확률이 되는데, 이때의 확률은 이진 그룹에 속할 확률이다. 또한 로지스틱 회귀는 선형 회귀 분석과 다르게, 종속변수가 범주형 데이터이다. - 만약 일반적인 수식 y = b + ax라는 식이 있다고 할 때, 이 식은 y가 0~1로 나오지 않을 수 있음. - 따라서 f(x)의 결과가 0~1 확률로 나올수 있도록 함수를 구성해주는 것이 로지스틱 함수의 아이디어이다. - y에 log를 취해서..
-
R을 이용한 머신러닝 - 3 (분류와 클러스터링 : K-NN, K-means)Programming & Machine Learning/R X 머신러닝 2017. 7. 13. 09:05
분류 & 클러스터링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..
-
R을 이용한 통계분석 -5 (실제 데이터를 이용한 시계열 분석)Programming & Machine Learning/R X 머신러닝 2017. 7. 11. 23:08
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..
-
맥에서 R studio를 사용할때의 간단한 에러해결법Programming & Machine Learning/R X 머신러닝 2017. 7. 11. 00:52
맥에서 R 스튜디오를 사용하여 이것저것 패키지를 설치하거나, 혹은 한글로 된 데이터 파일을 처리할 때 빈번하게 오류가 발생한다. 예전에는, R을 데이터 분석 용도보다는 크롤러 제작용이나 학교 과제용으로 활용했었기 때문에,항상 그때그때 발생하는 오류를 stack overflow의 힘을 빌려 어거지로 해결했었다. 이번에 R을 체계적으로 다시 공부하면서 이러한 부분들에 대한 진지한 trouble shooting을 진행했는데, 생각보다 문제의 원인은 간단하다.stack overflow나 기타 R 커뮤니티 사이트에 UTF-8 인코딩 문제나, Java SDK를 사용하는 패키지를 실행할 때 마다 발생하는 에러들에 대한 수많은 글들의 근본적인 해결책은 동일했다. R에서 발생하는 대부분의 문제가, 아래의 크고 간단한(?..