레이블이 data analysis인 게시물을 표시합니다. 모든 게시물 표시
레이블이 data analysis인 게시물을 표시합니다. 모든 게시물 표시

2014년 3월 4일 화요일

[Data Science] Introduction - Data-Analytic Thinking

데이터 분석 (Data Analytic)에 대해서 생각해 본적도 또는 실행해 본적도 없다.(그래서 사실 데이터베이스 진흥원에서 하는 빅데이터 아카데미를 수강하게 되었다.) 하지만 최근에 트랜드(?) 유행에 따르면 빅데이터 분석은 분명 유행은 유행인것 같다. 하지만 유행은 빅데이터라는 자체에 대한 유행일 뿐 그 본질적 의미는 과거에나 지금에나 그리고 앞으로 다가올 미래에는 더더욱 그 중요성이 커질것으로 개인적으론 생각한다.

그래서 이미 과거에도 있고 현재도 있고 또 미래에도 분명히 존재 할 빅데이터 분석에 "빅"자는 빼고 한번 차근차근 정리 해보고자 한다. 때에 따라 무식한 언행과 잘못된 참조가 있을 수 있으니 문제제기는 덧글로 해주면 참고하여 수정 하도록 하겠다. 어느정도 정리가 되면 "빅"자를 붙여 실시간이란 의미와 함께 좀더 확장을 하는 방향으로 공부를 해보고 싶다.

* 누가 뭐라 겠는가 나의 수준에 맞추는것이 좋지 간단하게 시작해 보자. 오늘 아침 상황
 2014년 3월 4일 오늘 아침에 나는  8시 40분에 사무실에 도착

1. 당황
 - 현재 시간 7시 21분 평소보다 좀 늦었다. 이대로 기존 경로로 출근하다가는 지각할 수도 있다는 불안감이 엄습하기 시작했다. 어떻게 하지?

2. 현재 상태는?
- 평소 수단/이동 경로 (도보 - 마을버스 - 지하철 - 도보),
- 시내버스 현재 위치 정보 및 대기시간 (실시간 정류장 정보)
- 일반/급행 지하철 가까운 지하철 도착시간
- 오늘의 요일, 날씨 등 정보

3. 결정.
-  버스대기, 급행 지하철 탑승

4. 미리 생각해 보자
- 마을버스 탑승, 빠른 도보 지하철역이동, 급행열차 탑승, 좀 빠른걸음으로 도보 도착

5. 움직이자
- 마을버스 탑승
- 마을버스 도착이 빨라 빠른도보 하지 않고 일반 도보 지하철 역 이동
- 급행열차 연착으로 대기 시간 길어짐
- 최종 목적지 도착시간 계획보다 늦어져 빠른 도보로 목적지 이동
- 도착 (종료)


위의 내용을 좀더 정제하여 정리 해보자

1. Problem Detection
2. Data Gathering
3. Decision Making
4. Planning
5. Implementation

일상생활에서도 보겠으나 위의 단계에서 가장 중요한 부분은 어떻게 보는가? 여타 단계별 중요도도 있긴 하겠으나 분명한것은 3번 Decision Making (의사결정) 단계야 말로 가장 중요 했다. 물론 상황에 따라서는 2번이 더 중요한 요소가 될수도 있다. 그러나 이미 그런것은 준비되어 있는 상황이라면 다른 이견들이 크게 없을 것으로 본다. 아래의 그림이 이러한 설명을 나에게 가장 좋은 이해를 준 그림인 것 같다.



Ref. Data Science for Business page 5. 

결국 의사결정을 위해서는 결정하기 위한 지식이 필요하다. 그러한 지식을 제공하는 것은 결국 데이터 마이닝을 통해 지식을 추출하고 정확, 타탕한 정보가 기본적으로 제공되어야 한다. (Data Engineering and Processing)  이러한 추출된 지식의 집합이 제대로 활용되기 위해서는 두가지가 준비되어야 하지 않을까 생각이 든다 결국 데이터 사이언스에 대한 원론적인 의미 해석이라기 보다는 추출된 지식의 집합(도메인에 따라 형식이나 사용, 그리고 가치는 분명 다를것이다)이 무엇보다 필요 할것이고 이러한 집합체를 활용한 (데이터를 기반으로 하는) 의사결정 문화가 조직내에 자리 잡혀 있어야 할것으로 생각이 든다.


의사결정을 돕기 위한 2가지 방법
1) DATA --> "Discovery" --> Decisions
 - need of a new decision found

2) Data Analysis --> Decision Quality
 - for massive, repeated decisions


* Managers(with data-analytic) should understand
 - the nature of data
 - the value and structure of knowledge
 - how to collect data and extract knowledge
 - available data processing methods


문득 진정한 데이터 사이언티스트가 되는길이 참 멀고도 험하단 생각이 든다. 그래도 IT 출신이라는 장점도 분명 있을 것이란 생각도 해보면서 긍정적으로..

* Bibliography
 - Data Science for Business (O'REILLY)
 - 기업의 현안과 데이터 사이언스 해법 (카이스트 서비스공학과 윤완철)

2014년 2월 25일 화요일

[Statistics with R] Data Manipulation

* 데이터 처리를 위한 기본 정보

1. 기본 데이터 타입 ( Basic Type )

logical
논리 값, T or True, F or False
numeric
수치 값, duble, numeric, real (double-precision)
integer
정수 값
character
문자 값, 인용부호로 표기된 것
complex
복소수 값
raw
Bytes

R의 typeof(), mode(), storage.mode() 함수를 사용하여 기본데이터 타입을 체크/확인 할 수 있음

typeof
mode
storage.mode
logical
logical
logical
inetger
numeric
inetger
double
numeric
double
complex
complex
complex
character
character
character


2. 특수한 값

NA : 결측치 (Missing Value)
NaN : 부정(Not a Number), 어떤 값을 0으로 나눈 것
Inf, -Inf : 무한대 (infinite), 양의 무한대, 음의 무한대
NULL : 정의되지 않은 값

쓰다보면 정해진 상수를 사용하는 경우가 있음

pi : 원주율
LETTERS : "A"부터 "Z" 까지의 26개 대문자 알파벳 백터
letters : "a"부터 "z" 까지의 26개 소문자 알파벳 백터
month.abb : "Jan" 부터 "Dec" 까지의 12개월을 나타내는 약어 벡터
month.name : "January" 부터 "December" 까지의 12개월을 나타내는 이름 벡터



3. 데이터 객체

Vector(벡터) - 동일한 기본 데이터 타입으로 구성된 순서가 있는 데이터 구조이며 수학적인 의미의 벡터 이상의 기능이 있어서 문자 값이나 논리 값을 원소로 가질 수 있다.



Matrix(행렬) - 동일한 데이터 모드로 구성된 사각형 구조의 값들이 집합으로 수학에서 행렬을 표현할 수 있다.





Arrary(배열) - 동일한 데이터 모드로 구성된 배열 구조의 값들의 집합으로 행렬은 2차원 배열이라 할 수 있다.



List(리스트) - 데이터 모드가 다른 데이터들을 표현할 수 있는데 Component라고 불리는 각기 다른 데이터 객체로 구성된 데이터 구조체 이다.



Factor - 통계학에서 Categorical Data(범주형 데이터)인 명목척도와 서열척도를 표현하는 데이터 객체로 벡터의 특수한 형태라고 할 수 있다.


Data Frame(데이터프레임) - 일반적인 data set (데이터셋)을 표현하며, 데이터베이스 시스템의 테이블과 유사한 구조이다. 한개 이상의 변수로 구성되며, 각각의 변수의 모드는 같거나 다를 수 있다.



4. Data Import and Export ( Included R Data Save )

외부에 있는 데이터를 읽어 오게 되는 경우가 대부분 일 것이다. 간단하게 테스트 하는 형태로는 엑셀 파일이나 CSV, TEXT 파일 등일수 있으나 RDB로 부터 직접 읽어 드리는 방법도 존재 한다. 이번 포스팅에서는 간단한 형태의 파일을 읽어 오고 내보내는 기능을 보고 향후 포스팅에서 Oracle Database 를 직접 연결하여 가져오는 방법을 공유하도록 한다.




 R Studio - Windows 64Bit 환경 에서 테스트 하였음. 작업을 하다 보면 첨부 이미지와 같이 변수 데이터 들이 저장되어 있음을 볼 수 있다.

# R Studio Image Save
save.image("~/rSample/R_Book/Example_20140225.RData")

# R Studio Image Load
load("~/rSample/R_Book/Example_20140225.RData")


## Oracle Data Import
# Packages Install
install.packages("RODBC")
install.packages("sqldf")
install.packages("tcltk")

# Library Load
library(RODBC)
library(sqldf)
library(tcltk)


#Channel Setting
#channel <- odbcConnect("TNS 설정이름", uid="DB접속아이디", pwd="접속패스워드", believeNRows=FALSE)

channel <- odbcConnect("REAL", uid="USER_ID", pwd="PASSWD", believeNRows=FALSE)

#Data Load
tSales  <- sqlQuery(channel, "select sdate, sales_amt from dual")

str(tSales)
summary(tSales)



## 이 글은 " R을 이용한 통계학의 이해(자유아카데미) " 내용 중 일부를 발췌하였고 개인이 직접 추가한 자료를 포함 하고 있음을 알린다.

## 구매 자유아카데미 출판사 사이트  이곳을 클릭하여 연결

언제 부터 였던가 생각해보니 아르바이트 겸 외부 컨설팅을 의뢰 받고 맥북 프로를 처음 써봤을 때 부터 였던 것 같다. 지금은 거의 대부분의 작업을 맥으로 작업을 하다 보니 윈도우에서만 실행되는 일부 프로그램들 때문과 회사 내부 ERP프로그램이 윈도우 ...