#Script generated by Orange3 from Orange.data.table import Table from Orange.widgets.classify.owclassificationtree import OWClassificationTree from Orange.widgets.classify.owclassificationtreegraph import OWClassificationTreeGraph from Orange.widgets.data.owpreprocess import OWPreprocess from Orange.widgets.visualize.owscatterplot import OWScatterPlot from PyQt4.QtGui import QApplication import numpy from sklearn.tree._tree import TREE_LEAF qapp = QApplication([]) # #file0 # dataPath = "/home/casey/Documents/orange-dev/orange3/Orange/datasets/titanic.tab" data = Table(dataPath) file0_data = data # #preprocess1 # input_data = file0_data ow = OWPreprocess() ow.set_data(input_data) preprocessor = ow.buildpreproc() if input_data is not None: try: data = preprocessor(input_data) except ValueError as e: print("Error preprocessing data.") else: data = None ow.set_data(None) ow.handleNewSignals() ow.saveSettings() ow.onDeleteWidget() preprocess1_preprocessed_data = data preprocess1_preprocessor = preprocessor # #file2 # dataPath = "/home/casey/Documents/orange-dev/orange3/Orange/datasets/iris.tab" data = Table(dataPath) file2_data = data # #scatter_plot3 # input_data = file2_data ow = OWScatterPlot() ow.set_data(input_data) try: ow.set_subset_data(input_data_subset) except: pass ow.handleNewSignals() ow.show() qapp.exec() ow.set_data(None) ow.set_subset_data(None) ow.handleNewSignals() ow.saveSettings() ow.onDeleteWidget() # #classification_tree4 # input_preprocessor = preprocess1_preprocessor input_data = preprocess1_preprocessed_data ow = OWClassificationTree() ow.set_data(input_data) try: ow.set_preprocessor(input_preprocessor) except: pass ow.learner = ow.create_learner() ow.update_learner() ow.update_model() classification_tree4_Learner = ow.learner classification_tree4_classifier = ow.model def update_selection(ow): if ow.dataset is None or ow.model is None or ow.tree is None: return items = [item for item in ow.scene.selectedItems() if isinstance(item, ow.NODE)] selected_leaves = [_leaf_indices(ow.tree, item.node_id) for item in items] if selected_leaves: selected_leaves = numpy.unique(numpy.hstack(selected_leaves)) all_leaves = _leaf_indices(ow.tree, 0) if len(selected_leaves) > 0: ind = numpy.searchsorted(all_leaves, selected_leaves, side="left") leaf_samples = _assign_samples(ow.tree, ow.clf_dataset.X) leaf_samples = [leaf_samples[i] for i in ind] indices = numpy.hstack(leaf_samples) else: indices = [] if len(indices): data = ow.dataset[indices] else: data = None ow.send("Data", data) def _leaf_indices(tree, node_id): start, stop = _subnode_range(tree, node_id) if start == stop: # leaf return numpy.array([node_id], dtype=int) else: isleaf = tree.children_left[start: stop] == TREE_LEAF assert numpy.flatnonzero(isleaf).size > 0 return start + numpy.flatnonzero(isleaf) def _subnode_range(tree, node_id): right = left = node_id if tree.children_left[left] == TREE_LEAF: assert tree.children_right[node_id] == TREE_LEAF return node_id, node_id else: left = tree.children_left[left] # run down to the right most node while tree.children_right[right] != TREE_LEAF: right = tree.children_right[right] return left, right + 1 # #classification_tree_viewer5 # input_classifier = classification_tree4_classifier ow = OWClassificationTreeGraph() ow.handleNewSignals() ow.ctree(input_classifier) ow.show() qapp.exec() update_selection(ow) ow.handleNewSignals() ow.saveSettings() ow.onDeleteWidget() classification_tree_viewer5_data = data # #scatter_plot6 # input_data = file0_data input_data_subset = classification_tree_viewer5_data ow = OWScatterPlot() ow.set_data(input_data) try: ow.set_subset_data(input_data_subset) except: pass ow.handleNewSignals() ow.show() qapp.exec() ow.set_data(None) ow.set_subset_data(None) ow.handleNewSignals() ow.saveSettings() ow.onDeleteWidget()
Password: Filename:
Secret