페이지

2018년 1월 20일 토요일

1. 데이터 시각화 개념 잡기

데이터(Data)와 정보(Information), 지식(Knowledge)의 차이의 이해 와 데이터 시각화 연관성
- 데이터와 정보, 통찰의 차이
- 정보로 부터 지식으로서의 변환, 더 나아가 통찰까지
- 데이터의 수집, 처리, 조직화
- 데이터 시각화의 역사
- 시각화된 데이터가 어떻게 의사 결정에 도움이 되는가?
- 시각화의 구성

1) 데이터, 정보, 지식, 통찰

- 데이터
데이터는 디지털 형태를 가진, 별개으 ㅣ객관적 사실들, 여러 다른 방법으로 조직되고 배열될 수 있는 기본구성 요소로써, 비즈니스 과정에서 만나는 여러 문제 해결의 실마리가 될 수 있는 유용한 정보를 제공해 준다.

데이터는 매우 단순할 수도 크지 않을 수도 있고, 조직화되지 않을 수도 있다. 이런 개별적 데이터들은 그 자체로 의미를 가지지 못할 뿐만 아니라 더 중요한 데이터 간의 구조나 관계가 명시되지 않았기 때문에 의사 결정에 그대로 사용될 수 없다.

- 정보
정보는 비즈니스 문제를 해결하기 위한 목적으로 가공, 처리된 데이터이다. 데이터 간에 관계나 연관성을 부여함으로써 정보가될 수 있는데, 이런 연관성은 데이터에 문맥이나 배경을 부여함으로써 얻어질 수 있다. 데이터의 배경 정보는 데이터에 대한 질문에 답할 수 있게 하기 때문에 유용하다.

- 지식
지식은 인간이 정보를 이해하고조직화할 때 드러나게 되고, 의사 결정을 이끄는 데 사용된다. 지식은 데이터, 정보일 뿐만 아니라 경험을 통해 축적된 기술들도 포함하며 적절한 의사 결정을 내리는 능력, 그것을 실행하는 능력으로 이뤄진다.

지식의 필수적 구성요소인 '데이터의 연결'을 통해 각 정보 조각들 간의 상대적 중요성을 이해할 수 있게 된다. 과거의 결과와 비교함으로써, 패턴을 발견해 냄으로써 더 이상 문제를 처음부터 풀어낼 필요가 없게 된다.
지식은 점점 증가하는 방향으로 변하게 된다. 특히 정보가 재배열되거나 다시 조직화될 때, 혹은 연산 알고리즘이 변경되었을 때 변한다. 지식은 데이터로부터 추출된 과거 정보에의해 계산되는 알고리즘의 결과를 가림키는 화살곽 ㅏㅌ다. 지식 역시 그 결과들과 시각적으로 상화작용하며 얻어진다는 많은 예가 있다. 이렇게 지식은 과거에 기반한 반면에 통찰은 미래로 가는 길을 열어준다.

- 데이터 분석과 통찰
분석은 통찰을 이끌어 낼 수 있는 데이터들 간의관계를 결정짓는 수학적 알고리즘에 달려 있다. 통찰을 이해하기 위한 한 가지 간단한 방법은 유추를 고려하는 것이아. 데이터에 구조가 없거나 비즈니스와 잘 정렬되지 않았을 경우에, 유추는 데이터를 좀 더 구조적 형태로 바꿔주고 더욱 비즈니스 목ㄹ표와 가깝게 정렬되게 함으로써, 더 명확하고 깊이 이해할 수 있게 해준다. 통찰은 혁신적 결과를 가져주는 '유레카'의 순간이다. 한 가지 주의할 것은 분석과 비즈니스 인텔리전스를 혼동해선 안 된다. 분석은 예측 능력을 포함하는 데 반해 비즈니스 인텔리전스는 과거 데이터에 기반한 결과를 제공한다.

분석은 대개 데이터의 넓은 범위에 적용되며, 이런 이류로 내부적으로 혹은 외부적으로 데이터 협업이 매우 빈번하게 일어난다. 어떤 비즈니스 패러다임에서는 대규모의 데이터 셋 모음에서의 협업은 오로지 내부적으로 일어나다고 하지만 대부분의 경우 퍼즐을 갖추거나 각각의 점들을 연결하는 데에 있어 외부적 연결이 도움을 준다.ㅣ 가장 많이 사용되는 외부 데이터 소스 두 가지는 소셜 미ㅣㄷ어와 소비자 기반 데이터이다.

- 데이터의 변환
데이터는 다양한 카테고리가 있는데, 그 중에 과거 성능 데이터, 실험 데이터, 벤치마크 데이터가 있다. 과거 성능 데이터와 실험 데이터는 꽤 명백한 데이터인데 반해, 벤치마크 데이터는 두 개의 다른 항목이나 제품을 기준에 따라 측정, 비교해 얻은 데이터이다. 데이터가 정보로 변환돼 더 처리를 거치게 되면, 문제 해결에 사용된다.

- 데이터, 정보로의 변환
데이터에서 정보로의 변환은 수집, 처리, 조직화 과정을 포함하게 된다.
수집된 데이터는 어떤 처리와 조직화 과정을 필요로 하며, 그 결과 구조, 모델 혹은 패턴을 가지게 될 수도 있고, 그러지 않을 수도 있다. 그러나 최소한 이 과정을 통해 데이터에 관한 질문에 대한 답을 체계적으로 찾을 수 있다.

- 데이터 수집
데이터 수집은 시간이 걸리는 과정이다. 그래서 회사들은 데이터 수집을 자동화하기를 원한다. 그러나 사람이 직접 데이터를 수집하는 일이 아직까지는 일반적이다. 현대의 자동화 과정을 통한 데이터 수집은 센서와 같은 입력 장치들을 사용한다. 데이터 자동으로수집하는 또 다른 방법은 문서나 로그 파일을 스캔함으로써 가능하다. 웹 기반 방법을 통해 데이터베이스에 저장된 데이터를 수집하게 수종으로 처리하는 방식도 정보로 변환될 수 있다. 데이터베이스로 저장되는 웹 기반 방식을 통해 데이터가 수집되도록 처리하는 방식은 비로소 데이터가 정보로 변화하게 한다. 최근 웹 기반의 협업환경은 향상된 통신과 데이터 공유를 통해 혜택을 얻고 있다.

- 데이터 전처리
데이터 클리닝(data cleaning), 데이터 통합(data integration), 데이터 정리(data reduction), 데이터 변환(data transformation)과 같은 몇 가지 데이터 처리 기법이 있다.
데이터 클리닝은 데이터가 일관성을 가지도록 하고노이즈를 제거하기 위해 적용
데이터 통합은 다양한 출처로부터 얻어진 데이터들이 데이터 웨어하우스(data warehouse)와 같은 잘 알려진 일관적 서식을 갖도록 병합하고 결합나다. 데이터 정리는 병합, 종합 그리고 불필요한 특성들을 제거함으로써 데이터 크기를 줄일 수 있다. 데이터 변환은 적은 범위 안으로 데이터를 축소하기 위해 상둉될 수 있고, 이를 통해 데이터의 처리와 시각화에 있어 정확성과 효율성을 향상시킬 수 있다.
이상 검출(anomaly detection)은 수집된 데이터 중 예상되는 형태나 규칙 안에 속하지 않는 이상한 데이터들을 식별하는 것이다.
변칙은 아웃라이어(outliers)나 노이즈(noise)로 알려져 있다. 옐르 들어 신호 데이터에서 이상한 특정한 신호는 노이즈로 여겨지면, 거래 데이터에서는 사기성 거래가 아웃라이어가 된다. 정확한 데이터 수집은 데이터의 무결성(integrity)을 유지하기 위해 필수적이다. 변칙 데이터들의 부작용만큼, 이면적으로아웃라이어들은 매우 중요한데, 예를 덜어 특히 사기성 보험 청구의 경우에 매우 유용하다.



The Pandas Series

The Pandas Series data structure is a one-dimensional, heterogeneous array with labels, We can create a Pandas Series data structure as follows:

- Using a Python dict
- Using a NumPy array
- Using a single scalar value

When creating a Series, we can hand the constructor a list of axis labels, which is commonly referred to as the index. The index is an optional parameter. By default, if we use a NumPy array as the input data, Pandas will index values by auto incrementing the index commencing from 0. If the data handed to the constructor is a Python dict, the sorted dict keys will become the index. In the case of a scalar value as the input data, we are required to supply the index. For each new value in the index, the scalar input value will be reiterated. The Pandas Series and DataFrame interfaces have features and behaviors borrowed from NumPy arrays and Python dictionaries, such as slicing, a lookup function that uses a key, and vectorized operations. Performing a lookup on a DataFrame column returns a Series. We will demonstrate this and other features of Series by going back to the previous section and loading the CSV file again:


2018년 1월 19일 금요일

The Pandas DataFrames

A Pandas DataFrame is a labeled two-dimensional data structure and is similar in spirit to a worksheet in Google Sheets or Microsoft Excel, or a relational database table. The columns in Pandas DataFrame can be of different types. A similar concept, by the way, was invented originally in the R programming language.A DataFrame can be created in the following ways:

- Using another DataFrame.
- Using a NumPy array or a composite of arrays that has a tow-dimensional shape.
- Likewise, we can create a DataFrame out of another Pandas data structure called Series.
- A DataFrame can also be produced from a file, such as a file, such as a CSV file.
- From a dictionary of one-dimensional structures, such as one-dimensional NumPy arrays, list, dicts, or Pandas Series.


NumPy arrays

After going through the installation of NumPy, it's time to have a look at NumPy arrays. NumPy arrays are more efficient than Python lists when it comes to numerical operations. NumPy array are, in fact, specialized objects with extensive optimizations. NumPy code requires less explicit loops than equivalent Python code. This is based on vectorization.

If we go back to high school mathematics, then we should remember the concepts of scalars and vectors.  The number 2, for instance, is a scalar. When we add 2 to 2, we are performing scalar addition. We can form a vector out of a group of scalars. In Python programming terms, we will then have a one-operation on two arrays. This concept can, of course, be extended to higher dimensions Performing an operation on two

2018년 1월 17일 수요일

3. 확률 및 확률분포

가. 확률의 정의
확률이란 '특정사건이 일어날 가능성의 척도'라고 정의할 수 있다. 통계적 실험을 실시할 때 나타날 수 있는 모든 결과들의 집합을 표본공간(sample space, Ω)이라 하고, 사건(event)이란 표본공간의 부분집합을 말한다. 사건 중에서 오직 한 개의 원소로만 이루어진 사건을 근원사건이라 한다.

나. 조건부 확률과 독립사건
사건 A가 일어났다는 가정하의 사건 B의 확률은 조건부 확률(conditional probability)

다. 확률변수와 확률분포
특정 사건에 대해 실수값을 갖는 변수를 정의하면, 특정사건이 일어날 확률은 그 변수가 특정값을 가질 확률로 표현할 수 있다. 이와 같이 특정값이 나타날 가능성의 확률적으로 주어지는 변수를 확률변수(random variable)라고 한다. 수학적으로 표현하면, 확률변수는 정의역(domain)이 표본 공간이고 치역(range)이 실수 값인 함수다. 확률변수에는 이산형 확률변수(discrete random variable)와 연속형 확률변수(continuous random variable)가 있다.

- 이산형 확률변수: 사건의 확률이 그 사건들이 속한 점들의 확률의 합으로 표현할 수 있는 확률변수를 말한다. 따라서 이산형 확률변수는 확률이 0 보다 큰 값을 갖는 점들로 확률을 표현할 수 있다, 즉 이와 같이 각 이산점에 있어서 확률의 크기를 표현하는 함수를 확률질량함수(probability mass function)라고 한다.

- 연속형 확률변수: 사건의 확률이 그 사건 위에서 어떤 0보다 큰 값을 갖는 함수의 면적으로 표현될 수 있는 확률변수를 말한다. 이 때, 이 함수 f(x)를 확률밀도함수(probability density function)라고 한다. 사건의 확률이 확률밀도함수의 면적으로 표현되므로 한 점에서의 확률은 0이되고, 0보다 큰값을 갖는 사건은 구간에서의 확률값이 된다.

- 결합확률분포(joint probability distribution): 두 확률변수 X, Y의 결합확률분포는 이산형인 경우에 다음과 같의 정의한다.

연속형인 경우에는 f(x,y) 라고 정의하며, 각각 결합확률질량함수(joint probability mass function)와 결합확률밀도함수(joint probability density function)라고 한다.

통계 분석에서 자료를 수집하고 그 수집된 자료로부터 어떤 정보를 얻고자 하는 경우에는 항상 수집된 자료가 특정한 확률분포를 따른다고 가정한다. 그 분포는 이산형 확률분포와 연속형 확률변수로 구분할 수 있다. 먼저 이산형 확률변수에는 베르누이 확률분포(Bernoulli distribution), 이항분포(binomial distibution), 기하분포(geometric distribution), 다항분포(multinomial distribution), 포아송분포(Poisson distibution) 등이 있다.

라. 확률변수의 기댓값과 분산
확률변수X의 기대값은 다음과 같이 정의된다.



2018년 1월 16일 화요일

2. 통계 분석

통계 분석(statistical analysis)이란 특정한 집단이나 불확실한 현상을 대상으로 자료를 수집해 대상집단에 대한 정보를 구하고, 적절한 통계 분석 방법을 이용해 의사결정을 하는 과정을 말한다. 이러한 의사결졍을 통계학에서는 통계적 추론(statistical inference)이라고 한다. 대상 집단에 대한 정보란 자료를 요약.정리한 결과로 숫자 또는 그림으로 정리된 각종 통계를 의미한다. 또한 통계적추론이란 수집된 자료를 이용해 대상 집단(모집단)에 대해 의사결정을 하는 것이다. '대상 집단의 특성값(모수)이 무엇일까?'를 추측하는 추정(estimation)과 대상 집단에 대해 특정한 가설을 설정한 후에 그 가설의 채택여부를 결정하는 가설검정(hypothesis test)이 있다. 그 외에도 미래의 의 북확실성을 해결해 효율적인 의사결정을 하기 위해 수행하는 예측(forecasting)이 있다.

통계적 추론 이외에도 수집된 자료를 정리.요약하기 위해 사용되는 기초적인 통계를 기술통계( descriptive statistic)라고 한다. 기술 통계는 평균, 표준편차, 중위수, 최빈값, %와 같이 숫자로 표현하는 방식과 막대그래프, 원그래프, 꺽은선그래프 같이 그림으로 표현하는 방식이 있다. 신문이나 잡지에서 흔히 볼 수 있는 표, 그래프, 차트를 만드는 것은 모두 기술통계에 속한다. 기술통계는 그 자체로도 여러 용도에 쓰일 수 있지만, 대개는 보다 자세한 통계적 분석을 위한 사전단계의 역할을 하게 마련이다.

1. 통계 분석 개요

가. 통계학의 정의
우리는 일상생활에서각종 통계를 접하며 살고 있다. 일상적으로 접하는 통계는 매일 발표되는 일기예보와 물가.실업률.GNP 등과 같은 경제통계, 각 정당에 대한 지지도 조사나 가족법 개정에 대한 의식조사와 같은 사회조사 분석통계, 새로운 희귀병 치표제의 임상실험 결과와 같은 실험결과 분석통계 등 다양한 형태를 갖고 있다. 통계학을 한마디로 정의하기는 어렵지만 통계학은 자료로부터 유용한 정보를 이끌어 내는 학문이라는 데 대부분의 통계학자들이 동의할 것이다. 유용한 정보를 이끌어 내는 작업에는 자료의 수집과 정리, 그리고 이를 해석하는 방법 등을 모두 포함한다.

나. 모집단과 표본
자료로부터 유용한 정보를 이끌어 낼 때 해당 정보에 대한 대상이 있다. 정당에 대한 지지도에 관해 논의한다면 구체적으로 대한민국 전체 국민들의 지지도, 유권자들의 지지도, 또는 서울에 거주하는 유권자의 지지도를 일컫는 것인지를 확실하게 하는 것은 매우 중요하다. 이 때 유용한 정보의 대상이 되는 것을 모집단이라고 한다. 즉 모집단은 우리가 알고자 하는 전체를 의미한다. 모집단을 구성하는 개체를 추출단위 혹은 원소라고 한다.
모집단에 대해 조사하는 방법에는 총조사(census)와 표본조서로 나눈다. 충조사는 모집단의 개체 모두를 조사하는 방법으로 많은 비용과 시간이 소요되므로 '인구주택총조사'등 특별한 경우를 제외하고는 실시되지 않는다. 따라서 일부분만 조사하여 모집단에 대해 추론하는 것이 보통인데, 이런한 조사를 표본조사라고 하고 이 때 조사하는 모집단의 일부분을 표본(sample)이라 한다. 모집단에 대해 알고자 하는 값을 모수(parameter)라고 하고, 모수를 추론하기 위해 구하는 표본의 값들을 통계량(statistic)이라 한다.
모집단은 유한 모집단과 무한 모집단으로 나뉜다. 유한 모집단은 유한 개의 개체로 이루어진 모집단이고, 무한 모집단은 무한 개의 개체로 이루어진 모집단으로 보통 개념적으로 상정된 모집단을 지칭한다.

다. 표본추출의 방법
총조사가 아닌 표본조사를 바탕으로 분석한 결과를 사용하거나 이해할 때는 모집단의 정의, 표본의 크기, 조사방법(면접조사, 우편조사, 전화조사, 이메일 조사 등), 조사기간, 표본추출 방법을 명확하게 밝히거나 확인해야 한다. 이러한 사항들에 따라 분석 결과의 해석은 큰 차이가 발생할 수 있다. 이중에서도 표본조사에서 가장 주용한 것은 모집단을 대표할 수 있는 표본 추출이다. 표본을 추출하는 방법에는 여러 가지가 있지만 가장 대표적인 방법으로는 단순랜덤추출법(simple random sampling), 계통추출법(systematic sampling), 집락추출법(stratifiied sampling)등이 있다. 실무에서는 이 방법들을 혼합해 사용하고 있다.

- 단순랜덤추출법: N개의 원소로 구성된 모집단에서 n개(n<= N)의 표본을 추출할 때 각 원소에 1, 2, 3, ....N까지의 번호를 부여한다. 여기서 n 개의 번호를 임의로 선택해 그 번호에 해당하는 원소를 표본으로 추출한다.

-계통추출법:모집단의 모든 원소들에게 1, 2, 3, .....N의 일련번호를 부여하고 이를 순서대로 나영한 후에 K개(K=N/n)씩 n개의 구간으로 나눈다. 첫 구간(1, 2, 3,..,K)에서 하나를 임의로선택한 후에 K개씩 뛰어서 표본을 추출한다.

- 집락추출법: 모집단이 몇 개의 집락(cluster)이 결합된 형태로 구성돼 있고, 각 집단에서 원소들에게 일련번호를 부여할 수 있는 경우에 이용된다. 일부 집락을 랜덤으로 선택된 각 집락에서 표본을 임의로 선택한다.

- 층화추출법: 상당이 이질적인 원소들로 구성된 모집단에서 각 계층을 고루 대표할 수있도록 표본을 추출하는 방법이다. 이질적인 모집단의 원소들을 서로 유사한 것끼리 몇 개의 층(stratum)으로 나눈 후, 각 층에서 표본을 랜덤하게 추출한다.

표본조사 이외에 자료를 수집하는 방법으로 실험이 있다. 표본조사가 대상 집단의 일부를 추출해 어떤 현상을 관측 또는 조사해 자료를 수집하는 방법인데 비해, 실험이란 특정 목적 하에서 실험 대상에게 처리를 가한 후에 그 결과를 관측해 자료를 수집하는 방법이다. 새로운 강의방법이 기존의 강의방법에 비해 쇼과적인지를 확인하기 위해 임의의 2개 학급을 선정해 새로운 강의방법과 기존 강의방법으로 일정기간 강의한 후 시험을 보고 성적을 조사한다.새로운 암 치료제의 효과를 분석하기 위해 암환자 20명을 임의적으로 10명씩 두 집단으로 나누고, 한 집단에는 새로운 암 치료제를 투여하고 다른 집단에는 아무 효과가 없는 가짜약을 투여한 후에 치료효과를 분석하는 등의 방식으로 실험이 실시되고 있다.

라. 자료의 종류
표본조사나 실험을 실시하는 과정에서 추출된 원소들이나 실험 단위로붜 주어진 목적에 적합하도록 관측해 자료를 얻는 것을 측정(measurement)이라고 한다. 측정방법은 크게 명목철도(nominal scale), 순서척도(ordinal scale), 구간척도(interval scale), 비율척도(ration scale)로 구분할 수 있다. 명목척도와 순서척도로 측정된 자료를 질적 자료(qualitative data)라고 하고, 구간척도와 비율척도를 측정된 자료를 양적자료(quantitative data)라고 정의한다.

- 명목철도: 측정 대상이 어느 집단에 속하는지 분퓨할 때 사용되는 척도로, 성별(남, 여) 구분, 출생지(서울특별시, 부산광역시, 경기도 등) 구분 등이 명목척도에 해당된다.

- 순서척도: 측정 대상의 특성이 가지는 서열관계를 관측하는 척도로, 선택사항이 일정한 순서로 돼 있다. 특정 서비스의 선호도를 (아주 좋아한다, 좋아한다, 그저 그렇다, 싫어한다, 아주 싫어한다)로 구분해 묻는 경우에 관측된 자료가 순서척도에 해당된다.

- 구간척도: 측정 대상이 갖고 있는 속성의 양을 측정하는 것으로 측정결과가 숫자로 표현되나 해당 속성이 전혀 없는 상태인 절대적인 원점이 없다. 따라서 두 관측값 사이의 비율은 별 의미가 없게 되는 척도로 온도, 지수 등이 구간척도에 해당된다.

- 비율척도: 절대적 기준인 0값이 존재하고 모든 사칙연산이 가능하며 제일 많은 정보를 가지고 있는 척도이다. 무게, 나이, 연간소득, 제품가격 등 숙자로 관측 되는 일반적인 자료의 특성이 비율척도에 해당 된다.