21
개개개개 개개개개 개개 개개개

개발자가 이해하는 분석

  • Upload
    -

  • View
    702

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 개발자가 이해하는 분석

개발자가이해하는분석에이군

Page 2: 개발자가 이해하는 분석

분석분석하는데 ? 도대체분석이뭐야 ?

Page 3: 개발자가 이해하는 분석

사실 저도 개발자여서

잘몰라요 ..

Page 4: 개발자가 이해하는 분석

그래도 개발자끼리 서로 도와야 겠죠 ? 제가 아는 분석 업무를

개발자 입장에서 공유해볼께요

Page 5: 개발자가 이해하는 분석

개발자도분석업무를매일합니다 .

SELECT

count(*) FROM

users

WHERE

age >= 20

우리 서비스에 20

대 이상은 몇명이나될까 ?

Page 6: 개발자가 이해하는 분석

내가 원하는건 정말 분석업무라고 ,

멋져 보이는 머신러닝 ,

알고리즘 그런거라고 !!

Page 7: 개발자가 이해하는 분석

그럼분석업무의프로세스부터 데이터 수집 가설 설정 및

데이터 가공 분석 알고리즘

or 통계 모델 적용

( 분석 모델적용 )

적용 결과 확인 및 성능 평가만족해 ?

서비스 적용or 결과 보고

(리포팅 )

NO

YES

Page 8: 개발자가 이해하는 분석

데이터수집은 ?

- 휴먼 데이터 사람이 수동으로 수집 (excel 많이 사용 , excel 이 상당히 좋은 도구라고 함 ...)

- 머신 데이터 서버 로그 , 통신 기기 등 에서 자동으로 수집하는 시스템을 구축 ps) database 에 데이터를 저장 하는 것도 데이터 수집의 한가지 방법 입니다 .

Page 9: 개발자가 이해하는 분석

가설설정및데이터가공- 분석하려는 목적에 맞는 가설 설정- 분석 모델 및 알고리즘 선별- 필요하다면 수집된 데이터를 파악하기 위한 분석 진행

(ex 알고리즘 선별을 위한 분석 , Principal Component Analysis )

- 선별한 알고리즘 , 분석 모델 맞게 수집한 데이터를 가공 또는 수치화 함 PS) 대부분의 알고리즘은 분석하려는 데이터의 속성에 대한 수치값이나 threshold 를

요구 한다 .

Page 10: 개발자가 이해하는 분석

분석알고리즘및모델적용- 사전에 수집하여 분석 모델에 맞게 가공한 데이터를 선별한 알고리즘이나

분석모델에 적용

Page 11: 개발자가 이해하는 분석

분석모델성능평가- 분석 모델에서 나온 결과와 검증 데이터를 비교 하여 성능 측정 (ex t-test)

- 만족하지 못하는 결과가 나타날 경우 분석 모델 파라미터의 값을 수정하거나 준비된 데이터를 다시 검토 하여 반복 진행

Page 12: 개발자가 이해하는 분석

간략하게 이야기 했으니 자신감을 가지고 더 이야기 해볼까요 ?

Page 13: 개발자가 이해하는 분석

wonderful R studio

위에서 이야기한 분석에 필요한

모든 것을 쉽게 할수 있어요

Page 14: 개발자가 이해하는 분석

wonderful R studio

데이터 수집

database

file (csv, text..)

WEBPAGE

ETC

Page 15: 개발자가 이해하는 분석

wonderful R studio

데이터 가공 및핸들링 , 알고리즘 제공 - vector, factor 등 다양한

데이터 타입- 다양한 통계 연산 제공- 다양한 시각화 제공- 다양한 데이터 연산 기능

제공- 대부분 구현되어 있는

분석 알고리즘

Page 16: 개발자가 이해하는 분석

개발자는 스스로 구현 하려는 습성이

있지만 R studio 를 사용해 보는 것도

분석에 대한 재미를 느끼게 하는 기회가

될거 예요

Page 17: 개발자가 이해하는 분석

Why python?

그냥 아래의 것들만 구글링하면 왜 분석에 python 을 사용하는게 편한지 알게 될거예요 (ps : 요즘은 scala 도 많이 사용하는 편입니다 .)

- numpy

- pandas

- scipy

- matplolib

Page 18: 개발자가 이해하는 분석

analytics for service

일반적으로 개발자에게 분석이란 ? 기존의 데이터를 분석하여 새로운 패턴을 찾아내는 것 뿐만이 아니라 서비스에 적용하여 지속적으로 서비스를 이용하는 고객에게 해당

기능을 제공하는 시스템을 구축하려는게 목적 (ex 추천 시스템 )

로그데이터 자동 수집 시스템 (flume,

fluentd, ...)

데이터 분석 시스템 DB

추천에필요한데이터생성

Service View

Page 19: 개발자가 이해하는 분석

머신러닝이란 ?

- 과거의 데이터를 분석하여 새로운 패턴의 데이터를 찾아내는 것 뿐만 아니라 지속적으로 학습 하여 미래 데이터까지 예측 할수 있도록 컴퓨터가 학습할 수 있는 알고리즘과 기술을 개발하는 분야

- 분석 시스템을 통하여 서비스에 지속적으로 적용해야 하는 개발자의 니즈와 궁합이 맞음

Page 20: 개발자가 이해하는 분석

이것을이야기하고싶었어요 ...

대부분의 개발자들은 분석이라고 하면 분석 알고리즘이나 구현에 많이

비중을 생각 하겠지만 실제로 분석 작업은 분석

알고리즘을 선별 하거나 해당 알고리즘을 적용하기

위해서 필요한 데이터를 만드는 작업에 시간을 더

투자하고 비중을 많이 두어야 하는거 같아요 ...

Page 21: 개발자가 이해하는 분석

못다한이야기는아래로 ^^ http://blog.naver.com/pdc222