List of usage examples for weka.core Instances classIndex
publicint classIndex()
From source file:lu.lippmann.cdb.datasetview.tabs.StatsTabView.java
License:Open Source License
public static JXPanel buildPanel(final Instances dataset) throws Exception { final String FULL = " FULL DATASET "; final JXPanel internalTextualModelPanel = new JXPanel(); final Set<Object> classesSet = new HashSet<Object>(); classesSet.add(FULL);/*from w w w .j a v a2 s .co m*/ if (dataset.classIndex() != -1) classesSet.addAll(WekaDataStatsUtil.getClassRepartition(dataset).keySet()); internalTextualModelPanel.setLayout(new GridLayout(classesSet.size(), 1)); for (final Object o : classesSet) { final Instances part; if (o.equals(FULL)) part = dataset; else part = WekaDataProcessingUtil.filterDataSetOnNominalValue(dataset, dataset.classIndex(), o.toString()); final JXPanel intjxp = new JXPanel(); intjxp.setLayout(new BoxLayout(intjxp, BoxLayout.PAGE_AXIS)); intjxp.add(buildScrollPane(buildStatsForNumericalAttributes(part))); final JScrollPane comp = new JScrollPane(intjxp); comp.setBorder(new TitledBorder("Stats for '" + o.toString() + "'")); internalTextualModelPanel.add(comp); } return internalTextualModelPanel; }
From source file:lu.lippmann.cdb.datasetview.tabs.TableTabView.java
License:Open Source License
/** * Constructor./*from w w w . ja v a2 s .c o m*/ */ public TableTabView(final EventPublisher eventPublisher) { super(); this.instanceTable = new JXTable(); this.instanceTable.setModel(new InstanceTableModel()); this.instanceTable.setEditable(true); this.instanceTable.setShowHorizontalLines(false); this.instanceTable.setShowVerticalLines(false); this.instanceTable.setVisibleRowCount(5); this.instanceTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //Render of numbers this.instanceTable.setDefaultRenderer(Number.class, new TableTabCellRenderer()); this.instanceTable.addMouseListener(new MouseAdapter() { public void mouseReleased(final MouseEvent e) { if (e.isPopupTrigger()) { final InstanceTableModel instanceTableModel = (InstanceTableModel) instanceTable.getModel(); final Instances dataSet = instanceTableModel.getDataSet(); final int row = instanceTable.rowAtPoint(e.getPoint()); final int column = instanceTable.columnAtPoint(e.getPoint()); final int modelColumn = instanceTable.convertColumnIndexToModel(column); final int modelRow = instanceTable.convertRowIndexToModel(row); final JPopupMenu jPopupMenu = new JPopupMenu("feur"); if (modelColumn > 0 && dataSet.classIndex() != modelColumn - 1) { final JMenuItem removeColumnMenuItem = new JMenuItem( "Remove this column ('" + instanceTableModel.getColumnName(modelColumn) + "')"); removeColumnMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { final Instances newdataSet = new Instances(dataSet); newdataSet.deleteAttributeAt(modelColumn - 1); pushDataChange(new DataChange(newdataSet, TabView.DataChangeTypeEnum.Deletion)); } }); jPopupMenu.add(removeColumnMenuItem); } if (modelColumn > 0 && dataSet.attribute(modelColumn - 1).isNumeric() && !dataSet.attribute(modelColumn - 1).isDate()) { final JMenuItem discrColumnMenuItem = new JMenuItem( "Discretize this column ('" + instanceTableModel.getColumnName(modelColumn) + "')"); discrColumnMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { try { final Instances newdataSet = WekaDataProcessingUtil .buildDiscretizedDataSetUnsupervisedForOne(dataSet, modelColumn - 1); pushDataChange(new DataChange(newdataSet, TabView.DataChangeTypeEnum.Update)); } catch (Exception e1) { eventPublisher.publish(new ErrorOccuredEvent("Error during discretization of '" + instanceTableModel.getColumnName(modelColumn) + "'", e1)); } } }); jPopupMenu.add(discrColumnMenuItem); for (final int c : new int[] { 5, 10, 20, 40, 80 }) { final JMenuItem discrColumnMenuItemN = new JMenuItem("Discretize this column ('" + instanceTableModel.getColumnName(modelColumn) + "') bins=" + c); discrColumnMenuItemN.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { try { final Instances newdataSet = WekaDataProcessingUtil .buildDiscretizedDataSetUnsupervised(dataSet, modelColumn - 1, c); pushDataChange( new DataChange(newdataSet, TabView.DataChangeTypeEnum.Update)); } catch (Exception e1) { eventPublisher .publish(new ErrorOccuredEvent("Error during discretization of '" + instanceTableModel.getColumnName(modelColumn) + "'", e1)); } } }); jPopupMenu.add(discrColumnMenuItemN); } } if (column > 0 && dataSet.attribute(column - 1) .isNumeric()/*WekaDataStatsUtil.isInteger(dataSet,column-1)*/) { final JMenuItem nominalizeColumnMenuItem = new JMenuItem( "Nominalize this column ('" + instanceTableModel.getColumnName(column) + "')"); nominalizeColumnMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { try { final Instances newdataSet = WekaDataProcessingUtil .buildNominalizedDataSet(dataSet, new int[] { modelColumn - 1 }); pushDataChange(new DataChange(newdataSet, TabView.DataChangeTypeEnum.Update)); } catch (Exception e1) { eventPublisher.publish(new ErrorOccuredEvent("Error during nominalization of '" + instanceTableModel.getColumnName(modelColumn) + "'", e1)); } } }); jPopupMenu.add(nominalizeColumnMenuItem); } if (column > 0 && (dataSet.attribute(column - 1).isNominal() || dataSet.attribute(column - 1).isString())) { final JMenuItem numColumnMenuItem = new JMenuItem( "Numerize this column ('" + instanceTableModel.getColumnName(column) + "')"); numColumnMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { try { final Instances newdataSet = WekaDataProcessingUtil .buildDataSetWithNumerizedStringAttribute(dataSet, column - 1); pushDataChange(new DataChange(newdataSet, TabView.DataChangeTypeEnum.Update)); } catch (Exception e1) { eventPublisher.publish(new ErrorOccuredEvent("Error during numerization of '" + instanceTableModel.getColumnName(column) + "'", e1)); } } }); jPopupMenu.add(numColumnMenuItem); } final JMenuItem removeRowMenuItem = new JMenuItem( "Remove this row (id='" + instanceTableModel.getValueAt(row, 0) + "')"); removeRowMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { final Instances newdataSet = new Instances(dataSet); newdataSet.remove(modelRow); instanceTableModel.removeRow(modelRow); pushDataChange(new DataChange(newdataSet, TabView.DataChangeTypeEnum.Deletion)); } }); jPopupMenu.add(removeRowMenuItem); final JMenuItem selectKNNMenuItem = new JMenuItem("Select nearest neighbours of this row (id='" + instanceTableModel.getValueAt(modelRow, 0) + "')"); selectKNNMenuItem.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { try { final Instances knnResult = WekaMachineLearningUtil .computeNearestNeighbours(dataSet, instanceTableModel.getRow(modelRow), 10); pushDataChange(new DataChange(knnResult, TabView.DataChangeTypeEnum.Selection)); } catch (Exception e1) { eventPublisher.publish(new ErrorOccuredEvent( "Error when selecting nearest neighbours of this row!", e1)); } } }); jPopupMenu.add(selectKNNMenuItem); jPopupMenu.show(instanceTable, e.getX(), e.getY()); } } }); this.instanceTable.packAll(); final int tableWidth = (int) this.instanceTable.getPreferredSize().getWidth() + 30; this.scrollPane = new JScrollPane(this.instanceTable); this.scrollPane.setPreferredSize(new Dimension(Math.min(tableWidth, 500), 500)); this.scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); }
From source file:lu.lippmann.cdb.datasetview.tabs.TimeSeriesCalendarPanel.java
License:Open Source License
public void refresh(final Instances dataSet, final int dateIdx) { refresh(dataSet, dateIdx, dataSet.classIndex(), Mode.ONE_DAY_IN_TWO_PIECHARTS); }
From source file:lu.lippmann.cdb.datasetview.tasks.HierarchizeReverseTask.java
License:Open Source License
/** * {@inheritDoc}// w w w .j a va 2 s. com */ @Override Instances process0(final Instances dataSet) throws Exception { if (dataSet.classIndex() == -1) throw new Exception("Need a selected class!"); final int[] idx = WekaMachineLearningUtil.computeRankedAttributes(dataSet); ArrayUtils.reverse(idx); return WekaDataProcessingUtil.buildFilteredByAttributesDataSet(dataSet, idx); }
From source file:lu.lippmann.cdb.datasetview.tasks.HierarchizeTask.java
License:Open Source License
/** * {@inheritDoc}/*from w w w .ja v a 2s .c om*/ */ @Override Instances process0(final Instances dataSet) throws Exception { if (dataSet.classIndex() == -1) throw new Exception("Need a selected class!"); return WekaDataProcessingUtil.buildHierarchizedDataSet(dataSet); }
From source file:lu.lippmann.cdb.datasetview.tasks.SupervisedDiscretizeTask.java
License:Open Source License
/** * {@inheritDoc}//w ww . j a va 2 s .co m */ @Override Instances process0(final Instances dataSet) throws Exception { if (dataSet.classIndex() == -1) throw new Exception("Need a selected class!"); return WekaDataProcessingUtil.buildDiscretizedDataSetSupervised(dataSet); }
From source file:lu.lippmann.cdb.datasetview.tasks.SupervisedFeatureSelectionTask.java
License:Open Source License
/** * {@inheritDoc}/* w w w. j a va2 s . co m*/ */ @Override Instances process0(final Instances dataSet) throws Exception { if (dataSet.classIndex() == -1) throw new Exception("Need a selected class!"); return WekaDataProcessingUtil.buildDataSetWithBestAttributes(dataSet); }
From source file:lu.lippmann.cdb.datasetview.tasks.SupervisedFeatureSelectionWithDecisionTreeTask.java
License:Open Source License
/** * {@inheritDoc}/*from w w w.j a va 2 s . c om*/ */ @Override Instances process0(final Instances dataSet) throws Exception { if (dataSet.classIndex() == -1) throw new Exception("Need a selected class!"); final DecisionTree dt = dtFactory.buildCachedDecisionTree(dataSet); final Set<Integer> attrToKeep = new HashSet<Integer>(); for (final CNode cn : dt.getGraphWithOperations().getVertices()) { final Attribute attribute = dataSet.attribute(cn.getName()); if (attribute != null) attrToKeep.add(attribute.index()); } attrToKeep.add(dataSet.classIndex()); final int size = attrToKeep.size(); final int[] array = new int[size]; int i = 0; final Iterator<Integer> iter = attrToKeep.iterator(); while (iter.hasNext()) { array[i] = iter.next().intValue(); i++; } return WekaDataProcessingUtil.buildFilteredByAttributesDataSet(dataSet, array); }
From source file:lu.lippmann.cdb.datasetview.tasks.SupervisedMergeValuesOfFirstNominalTask.java
License:Open Source License
/** * {@inheritDoc}/*from w w w .j a v a2 s . co m*/ */ @Override Instances process0(final Instances dataSet) throws Exception { final int[] idxs = WekaDataStatsUtil.getNominalAttributesIndexes(dataSet); if (idxs.length > 0) { int idx = idxs[0]; if (idx == dataSet.classIndex() && idxs.length > 1) idx = idxs[1]; final Instances newds = WekaDataProcessingUtil.buildDataSetWithSupervisedMergeNominalValues(dataSet, idx); return newds; } else { return dataSet; } }
From source file:lu.lippmann.cdb.datasetview.tasks.TransformFirstNominalAsBinariesTask.java
License:Open Source License
/** * {@inheritDoc}/*from w w w . j a v a2s. com*/ */ @Override Instances process0(final Instances dataSet) throws Exception { final int[] idxs = WekaDataStatsUtil.getNominalAttributesIndexes(dataSet); if (idxs.length > 0) { int idx = idxs[0]; if (idx == dataSet.classIndex() && idxs.length > 1) idx = idxs[1]; final Instances newds = WekaDataProcessingUtil.buildDataSetWithNominalAsBinary(dataSet, idx); return newds; } else { return dataSet; } }