180702_오전 프로그래밍 기초수업

수업의 목표

• 데이터 익히기 데이터분석 환경 데이터 획득 : 다양한 데이터를 읽어와서 내가 사용할 수 있게 하는 방법 , API , 크롤링

데이터 다루기 (파이썬활용) : tidydata로 다듬기, 정규표현식등으로 표현하기

탐색적 분석 : 데이터 시각화 이론 ( 어떤 데이터를 어떻게 시각화 해야하는가? )

• 프로그래밍 개념 익히기 프로그래밍 기초 : 파이썬 문법

소프트웨어 공학 : 컴퓨터한테 일을 시키는 사람들끼리 어떻게 하면 협업을 잘 할 것인가?

실무에 쓰는 도구들 소개

결국 데이터분석을 통해 하고싶은 것은 의사결정하고, 실행하고, 평가하기 이 전체 과정에서 데이터분석기술과 과정이 필요하다.

데이터 기반 의사 결정 사례들

데이터 -> 의사 결정 -> 실행 -> 평가'의 절차를 거친 사례

존 스노우의 콜레라 지도

https://upload.wikimedia.org/wikipedia/commons/2/27/Snow-cholera-map-1.jpg 상황 : 1854년 런던, 콜레라 창궐(치사율 높음) 다수파의 학설(인체 접촉 감염/공기 중 감염)에는 수인성 감염 논의(오염된 식수관)가 아예 없음

빅토리아 여왕의 주치의였던 John Snow가 런던의 콜레라 사망자 지도를 만들어서 펌프와 사망자의 관계를 분석함.--> 중앙펌프가 범인이다!

하지만...John snow가 데이터에 의한 의사결정한 것 (펌프가 원인이다)이 올바른 결론일까? 우선은 자신의 의견을 비판적으로 바라보는 것이 중요하다.

​Q1. 펌프와 멀리 떨어졌는데 사람들이 죽은곳은 왜그럴까?

멀지만, Broad street에서 물을 길러 먹음

일자리가 Broad street에 있어 매일 출퇴근함.

​Q2) 펌프만이 요인으로 작용했을까? 올바른 의사결정일까?

사람이 많음> 사망자도 많음

영유아나 노인의 비율

인구 밀집지역

Q3) 맥주 집, work house에서는 왜 사망자가 적게 발생했을까?

work house에서는 물 공급량이 부족해서 외부 식수원을 사용함.

맥주 집에서는 물을 거의 마시지 않음.

  • 이 이야기를 통해 배울점은?

동일한 정보라도 어떻게 표현하느냐에 따라 많은 걸 드러내고 감출 수 있다.

사실 이미 역병이 줄어들고 있었음. 여러 그래프로 상반된 표현을 할 수 있음 동일한 정보라도 시각적으로 어떻게 표현하느냐 에 따라서 의미가 왜곡될 수 있음.

만약 컴퓨터를 활용하면? Interaction 을 넣어서 ‘능동적 읽기[active reading]’가 가능해짐 ex)탐색적분석

다양한 기준에 의한 집계/탐색 (위 예시는 voronoi partitioning을 사용)

데이터가 바뀌어도 반복 작업하지 않을 수 있다. (컴퓨터 쓰니까!)

사람이 컴퓨터 앞에 앉아서 뭔가 반복하고 있다는 것은 잘못하고 있는 것이다. 프로그래밍을 짜서 컴퓨터가 반복하게 할 수 있다.

Voronoi diagram: 펌프를 기준으로, 구획에 남는 구간이 하나도 없게, 각 펌프 사이에 등간격으로 구획을 나눔

로즈 다이어그램

http://www.historyofinformation.com/expanded.php?id=3815

백의의 천사 나이팅게일이 고안한 다이어그램이다.

전쟁하는 도중..영국군이 참전했는데 다친 병사들에 대한 처우가 좋지 않다는 사실이 알려지면서 대중들이 들고 일어남.

특징:면적이 사망자의 수.막대그래프를 안 씀.면적을 사용함 (인간은 면적비교를 잘 못함)

blue: 감염에 의한 사망자 / red: 상처에 의한 사망자 / black: 기타

1월, 2월이 사망자가 원래 많음

영역에 데이터를 매핑하는 순간 데이터의 크고 작음이 크게 표시 나지 않을 수 있음.

  • 데이터시각화에는 항상 목적이 있어야 한다. 나이팅게일이 주장하고자 하는 바는 무엇일까? ** = 파란색 영역이 줄어든 것을 보면 감염에 의한 사망자가 줄었다(공기환기,수질관리 등) = 자신의 의견을 관철시키기 위해서!! 그런데 과연 이게 맞는 방법일까? 면적으로 하면 1월 이 워낙 많은데 면적으로 시각화해서 눌러버림..

데이터 과학이란 ? 프로그래밍의 역할은?

Hadley Wickham이 에서 정의한 "전형적인 데이터 과학 프로젝트"란

“ 데이터과학의 전형적인 흐름은 이럴 것이다. “

Import -> Tidy -> (Transform -> Visualize -> Model) -> Communicate

  1. 데이터를 가져온다(import)
  2. 데이터를 정리한다(tidy) <- 모든 업무량의 80%소요

​ normal form = tidy(타이디) data 로 만든다면 분석하는데 문제가 없다.

  1. 데이터를 이해한다(understand) = 데이터를 목적에 맞게 변환하고, 시각화 하고, 모델링 해보는 과정

    EDA : exploration, confirmation 이 동반해야 함 Model : 내가 가지고 있는 데이터로부터 추측할 수 있게 만들어 줌

    a. 데이터를 이리저리 변환한다(transform)

    ​ ex) 데이터를 잘 드러내기 위해 linear scale -> log scale로 변환을 줄 수 있음

    b. 원하는 데이터만 추려내거나 (특정 기간, 지역의 데이터만 뽑아내기), 기존 데이터에서 새로운 데이터를 만들어 내거나 (년-월-일 데이터에서 "요일" 뽑아내기), 평균, 분산 등 새로운 통계량을 얻어낼 수 있다.

    c. 데이터를 여러가지 시각적 방법으로 표현하고 살펴본다. (visualize) d. 모델 만들기(model). 내가 가지고 있는 데이터로부터 좀 더 일반적인 규칙을 찾아내기

    ​ ( a, b = EDA과정 , c = confirm과정 )

  2. 얻어낸 이해, 내용을 다른 사람에게 알린다 (communicate)

    • 통계량 = 통계학 = statistics 문헌 읽을 때 잘 구분해서 봐야한다.

​ 그러나 사실은 위와 같은 방법은 ‘이상적’이기도 하다. 난제가 많다.

데이터 과학 프로젝트의 난제

  • 데이터를 구하기 어렵기 때문에 import단계부터 어렵다.
  • 데이터가 잘못 수집되기도 하다.
  • 회사 내 데이터 분석팀이 겪는 문제. “Import”에서 “Communicate” 사이에 시간이 흐른다. 시간이 흐르면 세상이 변한다. 세상이 변하면 사람들의 관심사가 변한다.
    • 어떻게든 Understand 부분을 빠르게 줄여야 할 것이다. (애자일방법론)
    • 데이터를 분석하는 사람이 프로그래밍을 해서 실행가능한 s/w형태로 나와야 하고 현업 시스템에 쉽게 붙일 수 있다면 매우 좋을 것이다!
  • 데이터를 너무 소중하게 여기는 문제. “ 민감한 정보라서 제공할 수 없습니다. ”
  • 직관을 너무 소중하게 여기는 문제. “이 분야는 직관과 경험이 중요한데, 감히 숫자 쪼가리 들고와서 뭐가 어째?”
  • “소통”단계가 줄고 자동화를 하는 경우도 존재.
    • 데이터분석 결과에 의해서 상품이 자동으로 배치되게끔 하는 경우도 있다.
  • 애자일 방법론의 지향점 : 서로 다른 직군 끼리 많이 침범하고 소통하고 이해하는 것, 내가 하는 일을 다른 사람이 조금 대체할 수 있고 남이 하는 일도 내가 조금 대체할 수 있는 것.

프로그래밍 기초 수업에서 배울 내용들 (지도)

  • 데이터분석 환경
  • 데이터 획득 : 다양한 데이터를 읽어와서 내가 사용할 수 있게 하는 방법 , API , 크롤링
  • 데이터 다루기 (파이썬활용) : tidydata로 다듬기, 정규표현식등으로 표현하기
  • 프로그래밍 기초 : 파이썬 문법
  • 소프트웨어 공학 : 컴퓨터한테 일을 시키는 사람들끼리 어떻게 하면 협업을 잘 할 것인가?
  • 협업하기
  • 탐색적 분석 : 데이터 시각화 이론 ( 어떤 데이터를 어떻게 시각화 해야하는가? )
  • 실무에 쓰는 도구들 소개

results matching ""

    No results matching ""