cmaclell / concept_formation

Python implementations of TRESTLE, COBWEB/3, and COBWEB
MIT License
61 stars 18 forks source link

Look at normalizing continuous attribute values by general attr name #24

Closed cmaclell closed 7 years ago

cmaclell commented 8 years ago

For example. If there are two attributes in the concept (x ?o1) and (x ?o2), consider normalizing both attributes by the same thing because they share an attribute name despite being in potentially different objects. I guess the idea is that if things have the same attribute then they are on the same scale.

Using this approach instance attribute values will be normalized before even entering them into the root of the tree.

One of the motivations for this change is that this will be necessary for making structure mapping and continuous value normalization play more friendly together. In particular, in the example above if ?o1 is mapped to a object (not one already in the concept) then there is nothing to normalize the value by. Also, structure mapping has to work with the unnormalized values because we don't know what the object matches will be yet. By normalizing by the inner most attribute name (i.e., "x" here) first, we can overcome these issues.