EvolutionTree
The Evolution Tree is user control for the visualisation of evolution. The evolution pathway is displayed by a TreeViewcontrol. By selecting a node of the TreeView (a point in the evolution pathway), more information on that point is retrieved and displayed.
Mor information on the internal calculations in the EvolutionTree control is provided in the section "Internal calculations"; the calculation of the evolution tree proper is described in the "Evolution Tree" section of the Miner.
Overview
- Constructors
- Interfaces
- Enumerations
- Properties
- Methods
- Interaction with other classes
- Internal calculations
EvolutionTree |
New() |
getMiner(): Miner |
setMiner(ByRef NewMiner: Miner): void |
refresh(): void |
Programming Language
- Microsoft Visual Basic .Net.
Availability
- Copyrighted but free software under the GNU Public License.
- Binaries and source code can be obtained from the Download section.
Constructors
Public Sub New()
Instantiates a new Evolution Tree.Parameters
- None.
Remarks
- The EvolutionTree control can be handled like any other user control. The constructor is automatically called when the control is placed onto a form in the designer.
- The EvolutionTree receives its data from a Miner object which is set by reference using the setMiner() function.
Interfaces
This class does not implement an interface.Enumerations
The class does not provide enumerations.Properties
The EvolutionTree does not have properties of its own. Only the properties inherited from System.Windows.Forms.UserControl are available.Methods
Apart from the methods inherited from System.Windows.Forms.UserControl , the follow methods were implemented:Public Sub getMiner() As Miner
Returns the Miner object associated with the EvolutionTree.Return Value
- the Miner object associated with the EvolutionTree.
Parameters
- None.
Remarks
- The Miner is set using the setMiner() function. Because it is passed by reference for performance reasons, the Miner cannot be implemented as a property.
Public Sub setMiner(ByRef NewMiner As Miner)
Associates a Miner object with the EvolutionTree.Return Value
- None.
Parameters
- NewMiner: a reference to the Miner to be associated with the EvolutionTree.
Remarks
- The Miner cannot be implemented as a property because it is passed by reference for performance reasons.
- The Miner can be retrieved using the getMiner function.
Public Overrides Sub refresh()
Refreshes the control. The text field showing information on the selected node is cleared. The treenodes of the evolution tree are replaced with the tree nodes retrieved from the Miner. All nodes of the TreeView control are expanded.Return Value
- None.
Parameter
- None.
Remarks
- This function is called when the EvolutionTree is to be displayed.
Interaction with other classes
Classes using EvolutionTree
The EvolutionTree class is a top level class and not used by other classes of the Mining library.Classes used by EvolutionTree
The EvolutionTree relies on the data supplied via the Miner object.Interal Calculations
General Use
If you want to use the EvolutionTree in your project, the steps will typically be:- Place an EvolutionTree control onto a form
- Create a MiningInputData object
- Supply case and event identifiers and the case-event-matrix or add cases with the addCase functions
- Create a Miner object with the above MiningInputData
- Set appropriate mining parameters
- Start the calculation of the evolution tree with Miner.calculateEvolutionTree
- Connect the Miner with the EvolutionTree using EvolutionTree.setMiner
- Draw the EvolutionTree by calling EvolutionTree.refresh
Node Data
When the user clicks onto a node of the TreeView control, the EvolutionTree retrieves further information on that node and displays it in the text field.The TreeView.AfterSelect handler retrieves the FullPath and Text properties from the TreeView control. The value of the FullPath property is then passed into the non-public function Miner.calculateNodeData which returns the number of cases containing all events of the node, the number of cases containing all events of the parent node, the number of cases with all events expected at this node in case of independence from the parent node, and the signed chi-square value for the dependence.
The number of cases for a node are counted in the private calculateSupportForNode function of the Miner object. The dependence of the event shown in the last node from its parent is calculated relative to the sub-population of the grand-parent of that node. The signed chi-square value is used as a parameter of dependence.
By reshuffling the elements of teh path into alternative pathways and checking those pathways for existence, alternative or concurrent ways of evolution are determined.