Exemplo n.º 1
0
        private static CAttributeType getTargetAttribute(Logic.CTableLogic tableLogic)
        {
            List <CAttributeType> attributeTypeList = tableLogic.getAttributeTypes();
            CAttributeType        targetAttribute   = null;

            foreach (CAttributeType type in attributeTypeList)
            {
                if (type.TargetAttribute == true)
                {
                    targetAttribute = type;
                    break;
                }
            }
            return(targetAttribute);
        }
Exemplo n.º 2
0
        private void updateVertexValue(CTreeVertex vertex, Logic.CTableLogic tableLogic)
        {
            CEntropyCalculator entropyCalc = new CEntropyCalculator();

            vertex.CountObjects = tableLogic.getFilteredTableData(vertex).Count;
            updateVertexClassCount(vertex, tableLogic);

            foreach (CTreeVertex child in vertex.ChildList)
            {
                updateVertexValue(child, tableLogic);
            }

            vertex.Entropy         = entropyCalc.getEntropy(vertex);
            vertex.WeightedEntropy = entropyCalc.getWeightedEntropy(vertex);
        }
Exemplo n.º 3
0
        private void updateVertexClassCount(CTreeVertex vertex, Logic.CTableLogic tableLogic)
        {
            CTableEntryList entryList       = tableLogic.getFilteredTableData(vertex);
            CAttributeType  targetAttribute = getTargetAttribute(tableLogic);

            int[] counts = new int[2];
            counts[CTreeVertex.YES_INDEX] = 0;
            counts[CTreeVertex.NO_INDEX]  = 0;

            if (targetAttribute != null)
            {
                bool bFirst = true;
                int  targetAttributeIndex = 0;
                foreach (CTableEntry entry in entryList)
                {
                    if (bFirst == true)
                    {
                        for (int i = 0; i < entry.Size; i++)
                        {
                            if (entry[i].AttributeType.InternalName == targetAttribute.InternalName)
                            {
                                targetAttributeIndex = i;
                            }
                        }
                        bFirst = false;
                    }

                    // TODO Bei Zielattr nicht nur Binär Verzweigen
                    if (entry[targetAttributeIndex].TableValue == "j")
                    {
                        counts[CTreeVertex.YES_INDEX]++;
                    }
                    else if (entry[targetAttributeIndex].TableValue == "n")
                    {
                        counts[CTreeVertex.NO_INDEX]++;
                    }
                }
            }

            vertex.CountObjectsPerClass = counts;
        }
Exemplo n.º 4
0
 internal void updateVertexValues(Logic.CTableLogic tableLogic)
 {
     updateVertexValue(mRoot, tableLogic);
 }
Exemplo n.º 5
0
 public void updateVertexValues(Logic.CTableLogic tableLogic)
 {
     mActiveTree.updateVertexValues(tableLogic);
 }