* 행사 정보 :2016년 10월 14일 MARU180 에서 진행된 '데이터야 놀자' 1day 컨퍼런스 발표 자료
* 발표자 : Dylan Ko (고영혁) Data Scientist / Data Architect at Treasure Data
* 발표 내용
- 데이터사이언티스트 고영혁 소개
- Treasure Data (트레저데이터) 소개
- 데이터로 돈 버는 글로벌 사례 #1
>> MUJI : 전통적 리테일에서 데이터 기반 O2O
- 데이터로 돈 버는 글로벌 사례 #2
>> WISH : 개인화&자동화를 통한 쇼핑 최적화
- 데이터로 돈 버는 글로벌 사례 #3
>> Oisix : 머신러닝으로 이탈고객 예측&방지
- 데이터로 돈 버는 글로벌 사례 #4
>> 워너브로스 : 프로세스 자동화로 시간과 돈 절약
- 데이터로 돈 버는 글로벌 사례 #5
>> Dentsu 등의 애드테크(Adtech) 회사들
- 데이터로 돈을 벌고자 할 때 반드시 체크해야 하는 것
이윤희 : 다짜고짜 배워보는 인과추론
발표영상 https://youtu.be/fShRiqe1Cf0
---
PAP가 준비한 팝콘 시즌1에서 프로덕트와 함께 성장하는 데이터 실무자들의 이야기를 담았습니다.
---
PAP(Product Analytics Playground)는 프로덕트 데이터 분석에 대해 편안하게 이야기할 수 있는 커뮤니티입니다.
우리는 데이터 드리븐 프로덕트 문화를 더 많은 분들이 각자의 자리에서 이끌어갈 수 있도록 하는 것을 목표로 합니다.
다양한 직군의 사람들이 모여 프로덕트를 만들듯 PAP 역시 다양한 멤버로 구성되어 있으며, 여러분들의 참여로 만들어집니다.
---
공식 페이지 : https://playinpap.oopy.io
페이스북 그룹 : https://www.facebook.com/groups/talkinpap
팀블로그 : https://playinpap.github.io
허현 : 닭이 먼저 달걀이 먼저? 그래인저 인과검정
발표영상 https://youtu.be/Yb3UU66XoIM
---
PAP가 준비한 팝콘 시즌1에서 프로덕트와 함께 성장하는 데이터 실무자들의 이야기를 담았습니다.
---
PAP(Product Analytics Playground)는 프로덕트 데이터 분석에 대해 편안하게 이야기할 수 있는 커뮤니티입니다.
우리는 데이터 드리븐 프로덕트 문화를 더 많은 분들이 각자의 자리에서 이끌어갈 수 있도록 하는 것을 목표로 합니다.
다양한 직군의 사람들이 모여 프로덕트를 만들듯 PAP 역시 다양한 멤버로 구성되어 있으며, 여러분들의 참여로 만들어집니다.
---
공식 페이지 : https://playinpap.oopy.io
페이스북 그룹 : https://www.facebook.com/groups/talkinpap
팀블로그 : https://playinpap.github.io
* 행사 정보 :2016년 10월 14일 MARU180 에서 진행된 '데이터야 놀자' 1day 컨퍼런스 발표 자료
* 발표자 : Dylan Ko (고영혁) Data Scientist / Data Architect at Treasure Data
* 발표 내용
- 데이터사이언티스트 고영혁 소개
- Treasure Data (트레저데이터) 소개
- 데이터로 돈 버는 글로벌 사례 #1
>> MUJI : 전통적 리테일에서 데이터 기반 O2O
- 데이터로 돈 버는 글로벌 사례 #2
>> WISH : 개인화&자동화를 통한 쇼핑 최적화
- 데이터로 돈 버는 글로벌 사례 #3
>> Oisix : 머신러닝으로 이탈고객 예측&방지
- 데이터로 돈 버는 글로벌 사례 #4
>> 워너브로스 : 프로세스 자동화로 시간과 돈 절약
- 데이터로 돈 버는 글로벌 사례 #5
>> Dentsu 등의 애드테크(Adtech) 회사들
- 데이터로 돈을 벌고자 할 때 반드시 체크해야 하는 것
이윤희 : 다짜고짜 배워보는 인과추론
발표영상 https://youtu.be/fShRiqe1Cf0
---
PAP가 준비한 팝콘 시즌1에서 프로덕트와 함께 성장하는 데이터 실무자들의 이야기를 담았습니다.
---
PAP(Product Analytics Playground)는 프로덕트 데이터 분석에 대해 편안하게 이야기할 수 있는 커뮤니티입니다.
우리는 데이터 드리븐 프로덕트 문화를 더 많은 분들이 각자의 자리에서 이끌어갈 수 있도록 하는 것을 목표로 합니다.
다양한 직군의 사람들이 모여 프로덕트를 만들듯 PAP 역시 다양한 멤버로 구성되어 있으며, 여러분들의 참여로 만들어집니다.
---
공식 페이지 : https://playinpap.oopy.io
페이스북 그룹 : https://www.facebook.com/groups/talkinpap
팀블로그 : https://playinpap.github.io
허현 : 닭이 먼저 달걀이 먼저? 그래인저 인과검정
발표영상 https://youtu.be/Yb3UU66XoIM
---
PAP가 준비한 팝콘 시즌1에서 프로덕트와 함께 성장하는 데이터 실무자들의 이야기를 담았습니다.
---
PAP(Product Analytics Playground)는 프로덕트 데이터 분석에 대해 편안하게 이야기할 수 있는 커뮤니티입니다.
우리는 데이터 드리븐 프로덕트 문화를 더 많은 분들이 각자의 자리에서 이끌어갈 수 있도록 하는 것을 목표로 합니다.
다양한 직군의 사람들이 모여 프로덕트를 만들듯 PAP 역시 다양한 멤버로 구성되어 있으며, 여러분들의 참여로 만들어집니다.
---
공식 페이지 : https://playinpap.oopy.io
페이스북 그룹 : https://www.facebook.com/groups/talkinpap
팀블로그 : https://playinpap.github.io
Causal Inference : Primer (2019-06-01 잔디콘)Minho Lee
- 2019-06-01 잔디컨퍼런스(잔디콘, @구글캠퍼스) 에서 발표한 자료입니다
- 데이터를 통해 인과관계를 추론하는 방법에 대해서 알아봅니다
- Potential Outcomes, Causal Graphical Models 에 대해 간단히 살펴봅니다
- 슬라이드 내에 오타가 있습니다 ㅠㅠ
- 22p, 28p : Perkson's 가 아니라 Berkson's Paradox 입니다
Causal Inference KR 커뮤니티에서 진행한 발표입니다.
프로덕트 개발 조직의 데이터 분석가로 일하며 진행했던 인과추론 분석을 회고하는 내용입니다.
자료 조회가 안되실 경우 https://drive.google.com/file/d/1GAuAqggoxbX50EEwdzTaV4z4G0j8pLRf/view?usp=sharing 를 확인해주세요.
1. 인과추론에 빠져드는 이유
2. A/B 테스트의 현실, 왜 안된다고 할까?
3. 실험이 예상치 못한 지표를 침해했다
4. 기능을 늘리는 게 MAU 성장에 도움이 될까?
NagoyaStat #1 で用いた発表資料になります。主な内容は統計モデリングの考え方と、ポアソン分布に従うデータに対して最尤推定法を適用する方法です。
This slide is used at NagoyaStat #1 on August 6, 2016. Main contents are way of thinking of statistical modeling and applying Maximum Likelihood Estimation to data following poisson distribution.
[보아즈 7th 빅데이터 컨퍼런스]
인터넷상의 무분별한 악성 댓글로 인한 문제와 피해 사례가 꾸준히 제기된다. 이에 따라 많은 사람들이 악성 댓글 관리 기술의 성능 향상에 주목하고 있다. '매의 눈' 시스템은 text를 벡터로 만든 모델로, 악성 댓글 여부를 자동으로 판단해준다. 이 시스템을 통해 더욱 깨긋한 인터넷 댓글 환경이 만들어지길 바란다.
8기 김수연, 김유경, 김현중, 박정우, 최하은
** 국내 최초 대학생 빅데이터 연합동아리 BOAZ **
블로그: http://blog.naver.com/boazbigdata
페이스북: https://www.facebook.com/BOAZbigdata
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
(오리지널 구글 프리젠테이션은 http://goo.gl/uiX2UH 에)
- 권재명 (Jaimyoung Kwon)
1. 실리콘 벨리 데이터 기업들
2. 온라인 광고 사업
3. 데이터 사이언티스트, 데이터 엔지니어, 머신러닝 사이언티스트
4. 실리콘 벨리 데이터 사이언티스트의 하루
5. 데이터 사이언스 툴채인
6. 데이터 사이언스 베스트 프랙티스
7. 데이터 사이언스 필수 통계 개념
8. 사내 데이터 사이언스 도입
■ 일시 및 장소
2023년 6월 22일 목요일 19:00 ~
■ 아젠다
트위터의 추천 시스템 파헤치기
2023년 4월 5일 오픈소스로 공개된 트위터의 추천 시스템에 대해서 살펴봅니다.
트위터의 개인화/랭킹 후보군을 만들어내는 추천 알고리즘부터, 이를 지탱하는 파이프라인까지 모두 소개합니다.
■ 발표자
카카오스타일 데이터사이언티스트 이명휘
Causal Inference : Primer (2019-06-01 잔디콘)Minho Lee
- 2019-06-01 잔디컨퍼런스(잔디콘, @구글캠퍼스) 에서 발표한 자료입니다
- 데이터를 통해 인과관계를 추론하는 방법에 대해서 알아봅니다
- Potential Outcomes, Causal Graphical Models 에 대해 간단히 살펴봅니다
- 슬라이드 내에 오타가 있습니다 ㅠㅠ
- 22p, 28p : Perkson's 가 아니라 Berkson's Paradox 입니다
Causal Inference KR 커뮤니티에서 진행한 발표입니다.
프로덕트 개발 조직의 데이터 분석가로 일하며 진행했던 인과추론 분석을 회고하는 내용입니다.
자료 조회가 안되실 경우 https://drive.google.com/file/d/1GAuAqggoxbX50EEwdzTaV4z4G0j8pLRf/view?usp=sharing 를 확인해주세요.
1. 인과추론에 빠져드는 이유
2. A/B 테스트의 현실, 왜 안된다고 할까?
3. 실험이 예상치 못한 지표를 침해했다
4. 기능을 늘리는 게 MAU 성장에 도움이 될까?
NagoyaStat #1 で用いた発表資料になります。主な内容は統計モデリングの考え方と、ポアソン分布に従うデータに対して最尤推定法を適用する方法です。
This slide is used at NagoyaStat #1 on August 6, 2016. Main contents are way of thinking of statistical modeling and applying Maximum Likelihood Estimation to data following poisson distribution.
[보아즈 7th 빅데이터 컨퍼런스]
인터넷상의 무분별한 악성 댓글로 인한 문제와 피해 사례가 꾸준히 제기된다. 이에 따라 많은 사람들이 악성 댓글 관리 기술의 성능 향상에 주목하고 있다. '매의 눈' 시스템은 text를 벡터로 만든 모델로, 악성 댓글 여부를 자동으로 판단해준다. 이 시스템을 통해 더욱 깨긋한 인터넷 댓글 환경이 만들어지길 바란다.
8기 김수연, 김유경, 김현중, 박정우, 최하은
** 국내 최초 대학생 빅데이터 연합동아리 BOAZ **
블로그: http://blog.naver.com/boazbigdata
페이스북: https://www.facebook.com/BOAZbigdata
xgboost를 이해하기 위해서 찾아보다가 내가 궁금한 내용을 따로 정리하였으나, 역시 구체적인 수식은 아직 모르겠다.
요즘 Kaggle에서 유명한 Xgboost가 뭘까?
Ensemble중 하나인 Boosting기법?
Ensemble 유형인 Bagging과 Boosting 차이는?
왜 Ensemble이 low bias, high variance 모델인가?
Bias 와 Variance 관계는?
Boosting 기법은 어떤게 있나?
Xgboost에서 사용하는 CART 알고리즘은?
(오리지널 구글 프리젠테이션은 http://goo.gl/uiX2UH 에)
- 권재명 (Jaimyoung Kwon)
1. 실리콘 벨리 데이터 기업들
2. 온라인 광고 사업
3. 데이터 사이언티스트, 데이터 엔지니어, 머신러닝 사이언티스트
4. 실리콘 벨리 데이터 사이언티스트의 하루
5. 데이터 사이언스 툴채인
6. 데이터 사이언스 베스트 프랙티스
7. 데이터 사이언스 필수 통계 개념
8. 사내 데이터 사이언스 도입
■ 일시 및 장소
2023년 6월 22일 목요일 19:00 ~
■ 아젠다
트위터의 추천 시스템 파헤치기
2023년 4월 5일 오픈소스로 공개된 트위터의 추천 시스템에 대해서 살펴봅니다.
트위터의 개인화/랭킹 후보군을 만들어내는 추천 알고리즘부터, 이를 지탱하는 파이프라인까지 모두 소개합니다.
■ 발표자
카카오스타일 데이터사이언티스트 이명휘
파이썬(Python) 으로 나만의 딥러닝 API 만들기 강좌 (Feat. AutoAI ) Yunho Maeng
#Python #딥러닝 #API #ibmdeveloperday2019
여러분들의 성원에 보답하기 위해 IBM Developer Day에서 발표한 세션 자료를 공개합니다! 그 어느때 보다 발표자료를 요청한 분들이 많아 놀랐습니다~ 그럼 다음에 또 뵙겠습니다 :)
Github https://github.com/yunho0130/devday_python_api
세션 영상 https://youtu.be/Z7bTfnuLXck
사내 스터디용으로 공부하며 만든 발표 자료입니다. 부족한 부분이 있을 수도 있으니 알려주시면 정정하도록 하겠습니다.
*슬라이드 6에 나오는 classical CNN architecture(뒤에도 계속 나옴)에서 ReLU - Pool - ReLu에서 뒤에 나오는 ReLU는 잘못된 표현입니다. ReLU - Pool에서 ReLU 계산을 또 하는 건 redundant 하기 때문입니다(Kyung Mo Kweon 피드백 감사합니다)
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기Joeun Park
서울 코엑스에서 진행된 파이콘 한국 2018에서 8월 19일에 발표한 내용입니다.
데이터 전처리와 Feature Engineering에 대해 다룹니다.
[파이콘 한국 2018 프로그램 | 땀내를 줄이는 Data와 Feature 다루기](https://www.pycon.kr/2018/program/47)
이 발표내용은 8월 17일 금요일에 진행되었던 다음 2개의 튜토리얼을 바탕으로 작성되었습니다.
* [공공데이터로 파이썬 데이터 분석 입문하기(3시간) — 파이콘 한국 2018](https://www.pycon.kr/2018/program/tutorial/6)
* [청와대 국민청원 데이터로 파이썬 자연어처리 입문하기(3시간) — 파이콘 한국 2018](https://www.pycon.kr/2018/program/tutorial/7)
[소스 코드]
https://github.com/kyuuuunmi/DataStructure_TREE
[설명]
대학생 연합 IT 벤처 창업 동아리 S.O.P.T (Shout Our Passion Together - http://sopt.org) 에서 내부적으로 진행하는 전공 과목 기초 스터디 자료입니다.
이번주에 다룬 내용은 이진 트리 및 우선순위 큐에 대한 내용입니다.
스터디 자료는 다음과 같은 순서대로 올라갈 예정입니다.
1. 데이터 구조 및 알고리즘
2. 운영체제
3. 네트워크
Moving objects media data computing(2019)Kwang Woo NAM
o Moving objects and media data computing
- Spatial Big Data Computing
- Moving Objects and Media Data Computing
- Integrating Spatial Media and Deep Learning
1. Collective Intelligence
Chapter 7. 의사결정트리(Modeling with Decision Trees)
Kwang Woo Nam
Department of Computer and Information Engineering
Kunsan National University
Textbook: Programming in Collective Intelligence, Toby Segaran
2. 웹 사이트 가입 유형 추정에 의사결정트리 적용하기
목적
웹 로그 정보를 이용하여 회원의 구입 결정 여부를 판단할 수 있는 의사 결정 트리 구현
– Web Log 정보 : 회원정보, 유입경로와 위치, FAQ 읽음유무, Page View
의사결정 트리로
예측하고 싶은 판단
3. 웹 사이트 가입 유형 추정에 의사결정트리 적용하기
데이터 구축
구현 파일 : treepredict.py
예제용 파일의 다운로드와 사용
– https://github.com/nico/collectiveintelligence-book/blob/master/decision_tree_example.txt
4. 의사결정트리(Decision Tree)란
정의
의사결정 규칙 (Decision Tree)을 도표화하여 관심대상이 되는 집단을 몇 개의 소집단으로
분류 (Classification)하거나 예측 (Prediction)을 수행하는 계량적 분석 방법
장점
– 분석결과는‘조건 A이고 조건 B이면 결과집단 C’라는 형태의 규칙으로 표현되므로 이해가 쉽고,
분류 또는 예측을 목적으로 하는 다른 계량적분석 방법에 비해 쉽게 이해하고 활용 할 수 있음
그림출처:http://jaek.khu.ac.kr/datamining/684
데이터마이닝 : Collective Intelligence 4
6. 의사결정트리(Decision Tree)란
의사결정 트리의 분할 속성 선택
분할된 데이터의 불순도를 얼마나 많이 제거 했는가로 속성과 속성값을 결정
– 속성선택 : 현재의 불순도 – 노드를 분리한 다음의 불순도
예 : 승차식 잔디깍기의 구매여부 판단
주택대지 크기속성의 분할 값 선택
- 15을 선택했을때 불순도 ?
- 17을 선택했을때 불순도?
- 19? 21? 23?을 선택했을 때는???
소득액 속성의 분할 값 선택
- 40을 선택했을때 불순도 ?
- 60을 선택했을때 불순도?
- 80? 100?을 선택했을 때는???
그림출처:http://jaek.khu.ac.kr/datamining/684
데이터마이닝 : Collective Intelligence 6
7. 의사결정트리(Decision Tree) : 불순도의 측정
의사결정 트리의 분할 속성 선택
어떤 입력변수를 이용하여 어떻게 분리하는 것이 목표변수의 분포를 가장 잘 구별해
주는지를 파악하여 자식마디가 형성되는데, 목표변수의 분포를 구별하는 정도를
순수도(Purity), 또는 불순도(Impurity)에 의해서 측정
– 순수도 (Purity) : 특정 범주의 개체들이 포함되어 잇는 정도를 의미한다.
– 불순도(impurity) : 얼마나 다양한 범주들의 개체들이 포함되어있는 가를 의미
분할속성의 선택
– 부모마디의 순수도에 비해서 자식마디들의 순수도가 증가하도록 자식마디를 형성
• 예를 들어 그룹0과 그룹 1의 비율이 45%와 55%인 마디는 각 그룹의 비율이 90%와 10%인 마디에
비하여 순수도가 낮다 (또는 불순도가 높다)라고 이야기 한다.
불순도의 측정
– 카이제곱 통계량의 P값
– 지니 지수 (Gini Index)
– 엔트로피 지수(Entropy Index)
데이터마이닝 : Collective Intelligence 7
8. 의사결정트리(Decision Tree) : 불순도의 측정
지니 지수 (Gini Index):
불순도를 측정하는 하나의 지수로서 지니지수를 가장 감소시켜주는 예측변수와 그 때의 최적
분리에 의해서 자식마디를 선택
데이터마이닝 : Collective Intelligence 8 그림출처:http://jaek.khu.ac.kr/datamining/684
9. 의사결정트리(Decision Tree) : 불순도의 측정
지니 지수 (Gini Index)의 값 다이어그램
두개의 범주개체가 50대 50으로 구성될때 최대의 불순도값 0.5
데이터마이닝 : Collective Intelligence 9 그림출처:http://jaek.khu.ac.kr/datamining/684
11. 의사결정트리(Decision Tree) : 불순도의 측정
지니지수와 엔트로피 지수를 이용한 불순도 측정
데이터마이닝 : Collective Intelligence 11 그림출처:http://jaek.khu.ac.kr/datamining/684
12. 의사결정트리(Decision Tree) : 불순도의 측정
불순도에 의한 트리 분할
데이터마이닝 : Collective Intelligence 12 그림출처:http://jaek.khu.ac.kr/datamining/684
13. 의사결정트리(Decision Tree) : 구현
13 트리 노드 구현
Create a new class called decisionnode, which represents each node in the
tree:
the column index of the
tchriete vraialu teo tbhea tt ethstee dcolumn
must match to get a true
result
stores a dictionary of results for
this branch. None , except
ednedcipsoioinntnsodes, which are the next
nodes in the tree if the result is tru
e or false, respectively.
14. 의사결정트리(Decision Tree) : 트리 학습
14 CART (Classification and Regression Trees)
Classification And Regression Tree의 준말
1984년 Breiman과 그의 동료들이 발명
기계학습(machine learning) 실험의 산물
가장 널리 사용되는 의사결정나무 알고리즘
1. create a root node
2. choose the best variable to divide up the data
C4.5
호주의 연구원 J. Ross Quinlan에 의하여 개발
초기버전은 ID 3 (Iterative Dichotomizer 3)로 1986년에 개발
CART와는 다르게 각 마디에서 다지분리 (multiple split)가 가능하다.
범주형 입력변수에 대해서는 범주의 수만큼 분리가 일어난다.
불순도함수로 엔트로피 지수를 사용한다.
가지치기를 사용할 때 학습자료를 사용한다.
15. 의사결정트리(Decision Tree) : 트리 학습
15 구현 : divideset
특정 컬럼에 있는 데이터를 기반으로 row들을 둘로 나누는 함수
– 둘로 나뉘어진 row들은 불순도 계산을 위해 사용됨
17. 최적 단편 선정
17 구현 : uniquecounts
finds all the different possible outcomes and returns them as a dictionary of
how many times they each appear
This is used by the other functions to calculate how mixed a set is.
18. 최적 단편 선정 : Gini Impurity 구현
18 Gini Impurity 구현
Gini impurity is the expected error rate if one of the results from a set is
randomly applied to one of the items in the set.
19. 최적 단편 선정 : Entropy 구현
19 Entropy Index 구현 :
– p(i) = frequency(outcome) = count(outcome) /
count(total rows)
– Entropy = sum of p(i) x log(p(i)) for all outcomes
20. 최적 단편 선정 : 실행 예
20 테스트 : the Gini impurity and entropy metrics
The main difference between entropy and Gini impurity is that entropy peaks
more slowly.
21. 재귀적으로 트리 만들기
21 정보이득(Information gain)을 통한 트리노드 선정
정보이득
– 현재의 entropy와 새로운 두 그룹의 가중 평균 entropy 간의 차
• 알고리즘은 모든 속성마다 정보이득을 계산하여 가장 높은 정보이득을 가진 것을 선택
현재의 불순도- 두개의 그룹으로 나뉜후의 불순도
– 재귀적으로 트리를 분할
22. 재귀적으로 트리 만들기
22 구현 : buildtree
a recursive function that builds the tree by choosing the best dividing criteria
for the current set
26. 트리 출력하기 : Graphical Display
26 Python Imaging Library
http://pythonware.com
Add this import statement at the beginning of treepredict.py:
27. 트리 출력하기 : Graphical Display
27 구현 : drawtree
determines the appropriate total size and sets up a canvas
28. 트리 출력하기 : Graphical Display
28 drawnode
draws the decision nodes of the tree
29. 트리 가지치기
과잉접합(overfitted)
– 데이터 과대반영-미소한 엔트로피 감소로도 가지가 생성한다.
– 엔트로피가 어떤 최소값만큼 줄지 않을 때 분할을 종료한다.
• 한번의 분할로 엔트로피가 많이 감소되지 않지만 다음 번 분할로 크게 감소하는 경우가 있다.
– 완전한 트리 생성 후 불필요한 노드를 제거한다.
30. Prune 함수
def prune(tree,mingain):
# If the branches aren't leaves, then prune them
if tree.tb.results==None:
prune(tree.tb,mingain)
if tree.fb.results==None:
prune(tree.fb,mingain)
# If both the subbranches are now leaves, see if they
# should merged
if tree.tb.results!=None and tree.fb.results!=None:
# Build a combined dataset
tb,fb=[],[]
for v,c in tree.tb.results.items( ):
tb+=[[v]]*c
for v,c in tree.fb.results.items( ):
fb+=[[v]]*c
# Test the reduction in entropy
delta=entropy(tb+fb)-(entropy(tb)+entropy(fb)/2)
if delta<mingain:
# Merge the branches
tree.tb,tree.fb=None,None
tree.results=uniquecounts(tb+fb)
35. 손상된 데이터 다루기
손상된 데이터 처리
– 데이터 세트가 정보조각을 잃어버릴 경우.
– 예: 사용자의 위치 정보를 IP 주소에서 발견하기 어려워 해당 필드를 공백으로 채운 경우.
트리의 가지를 선택
– 두 가지를 모두 탐색한다.
– 양쪽 가지의 결과에 다른 가중치 부여한다.
36. Mdclassify함수
def mdclassify(observation,tree):
if tree.results!=None:
return tree.results
else:
v=observation[tree.col]
if v==None:
tr,fr=mdclassify(observation,tree.tb),
mdclassify(observation,tree.fb)
tcount=sum(tr.values( ))
fcount=sum(fr.values( ))
tw=float(tcount)/(tcount+fcount)
fw=float(fcount)/(tcount+fcount)
result={}
for k,v in tr.items( ): result[k]=v*tw
for k,v in fr.items( ): result[k]=v*fw
return result
37. Mdclassify함수
else:
if isinstance(v,int) or isinstance(v,float):
if v>=tree.value: branch=tree.tb
else: branch=tree.fb
else:
if v==tree.value: branch=tree.tb
else: branch=tree.fb
return mdclassify(observation,branch)
39. 숫자 결과 다루기
숫자 출력 & 분류출력
– 분류 출력은 개개의 분류들을 완전히 별개의 것으로 취급한다.
– 숫자 출력은 숫자들간에 서로 근접해 있거나 멀리 떨어져 있는 관계가 존재한다.
– 분산(variance)을 이용하여 숫자들간의 원근관계를 반영한다.
40. Variance함수
def variance(rows):
if len(rows)==0: return 0
data=[float(row[len(row)-1]) for row in rows]
mean=sum(data)/len(data)
variance=sum([(d-mean)**2 for d in data])/len(data)
return variance
41. 주택 가격 모델링
질로우(Zillow)API
– 부동산 가격을 추적하고 이 정보를 이용하여 다른 집 가격을 예측한다.
– 집들의 정보와 예측 가격을 얻을 수 있는 API 제공한다.
• http://www.zillow.com/howto/api/APIOverview.htm
43. 데이터리스트 생성
def getpricelist( ):
l1=[]
for line in file('addresslist.txt'):
data=getaddressdata(line.strip(),'Cambridge,MA')
l1.append(data)
return l1