* 소감


* 의사 결정 트리 * 

의사결정트리의 목적 : 사용자가 유료 고객이 될 가망성을 예측. 사용자가 고객이 될 것임을 시사하는 요소를 알았다면 이 정보를 이용해서 광고 전략을 짜거나 사이트의 특정 측면에 쉽게 접근할 수 있게 만들거나 유료 고객의 숫자를 늘리는 데 도움이 되는 다른 전략들을 사용할 수 있다.


 - 해석이 쉬움

01. 가입 유형 추정

a. 서버 로그에서 방문 전 사이트, 지정학적 위치, 로그인 전에 본 페이지 수 등과 같은 정보를 모은다.


02. 의사 결정 트리 소개 

a.  단지 각 질문에 올바른 대답을 하면서 트리 내 경로를 따라 내려가면 결국 해답에 이르게 된다.


03. 트리 학습

a. 이 장에서는 CART(Classification and RegressionTrees)란 알고리즘 사용

- 루트 노드를 만든다.

- 테이블 안의 모든 관찰들을 고려해서 데이터를 분리하는 최적의 변수 선정

- 변수 선정을 위해 분리할 만한 조건을 가진 모든 변수들을 살펴본다.

- 사용자가 추정하기 편한 방법으로 결과물(사용자가 어떤 서비스에 가입할지)을 분할할 조건을 찾는다.


04. 최적 단편 선정

a. 소프트웨어 솔루션에서 사용할 변수를 선정하기 위해서는 집합의 혼합정도를 판단할 방법이 필요

b. 가능한 잘 섞이지 않은 두 집합을 선정하는 변수를 찾는 것

c. 지니 불순도(Gini impurity) : 집합 내의 결과 중 하나가 그 집합 내의 항목 중 하나에 무작위로 적용될 기대 오류율

d. 엔트로피 : 집합 내의 순서 불일치 정도

- 모든 다른 결과에 대한 p(x)log(p(x))의 총합


05. 재귀적으로 트리 만들기

a. 속성이 얼마나 좋은지 보기 위해 알고리즘은 먼저 전체 그룹의 엔트로피를 계산

b. 각 속성의 가능한 값으로 그룹을 나누고 새로운 두 그룹의 엔트로피를 계산

c. 어떤 속성이 가장 잘 나누는지를 결정하기 위해 정보이득(information gain)을 계산

d. 정보 이득 : 현재의 엔트로피와 새로운 두 그룹의 가중평균 엔트로피 간의 차

e. 알고리즘은 모든 속성마다 정보 이득을 계산하여 가장 높은 정보이득을 가진 것을 선택


06. 트리 출력하기

a. 재귀 함수 이용

b. 그래프 출력


07. 새로운 관찰 분류


08. 트리 가지치기(pruning)

a. 완전한 노트를 만든 후 불필요한 노드를 제거(overfitting 방지)

b. 노드 쌍을 병합해서 특정 경계값 이하로 엔트로피를 늘릴 수 있는지 보기 위해 공통 부모를 가지고 있는 노드 쌍을 검사.

c. 두 쌍을 가능한 모든 출력을 가진 한 개 노드로 병합(?)

Pruning involves checking pairs of nodes that have a common parent to see if merg- ing them would increase the entropy by less than a specified threshold. If so, the leaves are merged into a single node with all the possible outcomes.


09. 손상된 데이터 다루기

a. 때로는 데이터 세트가 정보조작을 잃어버리는 경우가 있다.


10. 숫자 결과 다루기

a. 앞에서는 분류 출력을 다루는 문제였음

b. 앞으로는 집 가격이나 인기도를 모델링하는 데 사용되는 숫자 출력


11. 주택 가격 모델링

a. 부동산 가격을 의사결정트리로 모델링하는 방법

b. 침실이 있다 든지의 차이에 따른 주택 가격을 분류 하고 가격을 예측함


12. "인기도" 모델링


13. 의사결정트리 활용 시점

a. 학습된 모델을 이해하기 쉽다.

b. 데이터의 확률적 할당이 가능

c. 소수의 가능한 결과를 가진 문제에는 효과적이지만 많은 가능성을 가진 데이터는 효율적이지 않다.

d. 복잡한 변수 조합에 의해 분류가 결정되는 곳에서는 의사 결정트리가 데이터를 분류하기 어려워진다.

 




신고
Posted by 공놀이나하여보세
ipython notebook을 몇일 써 본 결과
py파일을 저장하기가 쉽지가 않다.
그래서 간단한 테스트는 ipython으로 하고 py파일은 pycharm으로 개발하기로 했음



신고
Posted by 공놀이나하여보세

py파일 첫 줄에 아래 주석을 추가

# -*- coding: utf-8 -*-

출처 : http://develstory.blogspot.kr/2011/05/python.html

신고
Posted by 공놀이나하여보세


티스토리 툴바