2016-06-15 2 views
0

이것은 매우 간단하지만 의사 결정 트리와 ID3 알고리즘에 대해 배우고 있습니다. 나는 매우 도움이 웹 사이트를 발견하고 나는 각각의 속성에 대한 엔트로피 (햇살, 바람, 비오는가) 얼마나 이해하지 못하는특정 속성의 엔트로피 계산?

this point on the page.

에 도착 전까지는 엔트로피와 정보 이득에 대한 모든 것을 다음되었다 계산 - 구체적으로 어떻게 p-sub-i가 계산되는지. 그것은 엔트로피 (S)에 대해 계산되는 방식과 다른 것처럼 보입니다. 누구든지이 계산의 과정을 설명 할 수 있습니까?

답변

0

두 개의 다른 하위 노드로 노드를 분할하려면 정보 이득을 최대화 할 수있는 변수에 따라 노드를 분할하는 방법이 있습니다. 순수 리프 노드에 도달하면 정보가 0이됩니다 (하나의 변수 만 포함하는 노드를 분할하여 정보를 얻을 수 없으므로 logic).

예시에서 Entropy(S) = 1.571은 현재의 엔트로피 즉 분할 전의 엔트로피입니다. HBase이라고합시다. 그런 다음 여러 개의 분할 가능 매개 변수에 따라 엔트로피를 계산합니다. >gain = Hbase - child1NumRows/numOfRows*entropyChild1 - child2NumRows/numOfRows*entropyChild2

def GetEntropy(dataSet): 
    results = ResultsCounts(dataSet) 
    h = 0.0 #h => entropy 

    for i in results.keys(): 
     p = float(results[i])/NbRows(dataSet) 
     h = h - p * math.log2(p) 
    return h 

def GetInformationGain(dataSet, currentH, child1, child2): 
    p = float(NbRows(child1))/NbRows(dataSet) 
    gain = currentH - p*GetEntropy(child1) - (1 - p)*GetEntropy(child2) 
    return gain 

목적은 모든 정보 이득의 최고를 얻을 수 있습니다 - 은 정보 이득을 얻으려면, 당신은 HBase에 자식 노드의 엔트로피를 빼지!

희망이 도움이됩니다. :)