
2001-03-13 16:52  mhall

	* weka/: classifiers/MultiClassClassifier.java (1.22),
	classifiers/neural/NeuralNetwork.java (1.3),
	core/converters/AbstractLoader.java (1.2),
	core/converters/ArffLoader.java (1.2), core/converters/Loader.java
	(1.2), core/converters/SerializedInstancesLoader.java (1.2),
	filters/Makefile (1.18), gui/GenericObjectEditor.props (1.33): Made
	Weka java 1.1 compatible for the new stable release.

2001-03-12 11:32  eibe

	* weka/classifiers/j48/: BinC45Split.java (1.5),
	C45ModelSelection.java (1.5), C45PruneableClassifierTree.java
	(1.6), C45Split.java (1.5), ClassifierDecList.java (1.4),
	ClassifierSplitModel.java (1.5), ClassifierTree.java (1.11),
	Distribution.java (1.5), J48.java (1.20), MakeDecList.java (1.6):
	Added option for Laplace-corrected probability estimates in J48. 
	Fixed bug that lead to slightly incorrect probability estimates for
	datasets with missing values (if subtree raising occurred).

2001-03-02 16:54  mhall

	* weka/experiment/RemoteExperiment.java (1.8): Updated header docs
	to reflect changes.

2001-03-02 16:53  mhall

	* weka/experiment/remote.policy (1.3): Commented out the lines
	pertaining to example file permissions for codebases from file
	urls.

2001-03-02 16:52  mhall

	* weka/Makefile (1.30): Added lines to the install section to make
	a remoteExperimentServer.jar file containing a remote.policy a copy
	of DatabaseUtils.props and a remoteEngine.jar (which contains only
	those classes needed for deploying remoteEngines).

2001-03-02 09:22  mhall

	* weka/experiment/remote.policy (1.2): Updated security policy with
	new permissions that allow downloading of classes from client
	codebases and reading/writing of properties and reading of files by
	those classes.

2001-03-01 15:44  mhall

	* weka/: experiment/DatabaseUtils.java (1.14), core/Utils.java
	(1.28), gui/GenericObjectEditor.java (1.25): Changed so that
	loading of default properties (Utils.java) from system resource no
	longer throws an exception if the properties file is not found.
	This was causing problems for remote experiment objects when
	classes were being downloaded by rmi from client codebases as
	needed. Changed GenericObjectEditor and DatabaseUtils to throw
	exceptions if no properties are succesfully obtained from anywhere
	(ie, system resource, user home or local dir).

2001-02-28 11:08  mhall

	* weka/experiment/Makefile (1.11): Added TaskStatusInfo.

2001-02-28 11:07  mhall

	* weka/experiment/TaskStatusInfo.java (1.1): Initial import.

2001-02-28 11:06  mhall

	* weka/experiment/: Compute.java (1.3), RemoteEngine.java (1.3),
	RemoteExperiment.java (1.7), RemoteExperimentSubTask.java (1.4),
	Task.java (1.4): RemoteEngines now use a queue to schedule Tasks
	for execution. Also allow clients to query on the status of Tasks.

2001-02-23 16:22  eibe

	* weka/classifiers/Makefile (1.22): Updated to include
	DistributionMetaClassifier

2001-02-19 16:12  mhall

	* weka/experiment/: RemoteExperiment.java (1.6),
	RemoteExperimentSubTask.java (1.3): Modified to allow experiments
	to be split up on the basis of data set or run number.

2001-02-19 16:11  mhall

	* weka/gui/experiment/: DistributeExperimentPanel.java (1.3),
	SetupPanel.java (1.16): Modified to allow user to configure how a
	distributed experiment will be split up.

2001-02-19 11:41  eibe

	* weka/classifiers/Logistic.java (1.11): Logistic regression
	converges more frequently now thanks to changes made by Tony Voyle.

2001-02-18 15:00  mhall

	* weka/gui/experiment/GeneratorPropertyIteratorPanel.java (1.7):
	Now allows listeners to be added. Listener's get notified when
	there is a change of editing status of the panel, ie. enabled,
	disabled.

2001-02-18 14:59  mhall

	* weka/gui/experiment/SetupPanel.java (1.15): Added a panel to
	control how iterations are performed. Data sets can be advanced and
	then custom iterators, or vis versa.

2001-02-18 14:57  mhall

	* weka/experiment/Experiment.java (1.14): Modified to allow
	iteration over data sets then custom iterators or vis versa.

2001-02-13 11:11  mhall

	* weka/gui/: GenericArrayEditor.java (1.10),
	GenericObjectEditor.java (1.24): Fixed bug (in GenericArrayEditor)
	that would cause the Generator properties panel in the Experimenter
	to be disabled yet still display a list from a previous experiment.
	Changed GenericObjectEditor's setObject method	to test for
	equality (compares pointers) before firing a property change event.
	Switching between normal and remote experiments in the Experimenter
	was triggering a property change sequence that would disable the
	generator properties panel. Not an ideal solution, all editable
	objects should implement an equals method. Experimenter still has
	some problems: loading a pre-saved experiment after manually
	configuring the ResultProducer will cause property change events to
	render the generator properties panel disabled (even if generator
	properties are enabled and configured in the saved experiment).

2001-02-12 14:16  mhall

	* weka/classifiers/UserClassifier.java (1.7): Added link to the
	working paper in the class docs.

2001-02-12 10:08  rbk1

	* weka/core/Attribute.java (1.17): Fixed numValues() documentation
	- string attributes don't return 0.

2001-02-08 13:39  eibe

	* weka/classifiers/Makefile (1.21): Forgot to change nn to neural
	in some places.

2001-02-08 13:10  trigg

	* weka/: associations/Apriori.java (1.10),
	attributeSelection/AttributeSelection.java (1.26),
	attributeSelection/CfsSubsetEval.java (1.13),
	attributeSelection/ChiSquaredAttributeEval.java (1.3),
	attributeSelection/ClassifierSubsetEval.java (1.3),
	attributeSelection/ConsistencySubsetEval.java (1.6),
	attributeSelection/GainRatioAttributeEval.java (1.11),
	attributeSelection/InfoGainAttributeEval.java (1.10),
	attributeSelection/OneRAttributeEval.java (1.7),
	attributeSelection/PrincipalComponents.java (1.15),
	attributeSelection/SymmetricalUncertAttributeEval.java (1.10),
	attributeSelection/WrapperSubsetEval.java (1.12),
	classifiers/ClassificationViaRegression.java (1.8),
	classifiers/DecisionTable.java (1.20),
	classifiers/FilteredClassifier.java (1.12),
	classifiers/LinearRegression.java (1.11), classifiers/Logistic.java
	(1.10), classifiers/MultiClassClassifier.java (1.21),
	classifiers/RegressionByDiscretization.java (1.12),
	classifiers/SMO.java (1.22), classifiers/UserClassifier.java (1.6),
	classifiers/VotedPerceptron.java (1.9), classifiers/m5/M5Prime.java
	(1.14), classifiers/neural/NeuralNetwork.java (1.2),
	clusterers/ClusterEvaluation.java (1.15),
	clusterers/SimpleKMeans.java (1.4),
	filters/AbstractTimeSeriesFilter.java (1.3), filters/AddFilter.java
	(1.15), filters/AllFilter.java (1.7),
	filters/AttributeExpressionFilter.java (1.9),
	filters/AttributeFilter.java (1.15),
	filters/AttributeTypeFilter.java (1.8),
	filters/CopyAttributesFilter.java (1.9),
	filters/DiscretizeFilter.java (1.14),
	filters/EmptyAttributeFilter.java (1.6), filters/Filter.java
	(1.20), filters/FirstOrderFilter.java (1.12),
	filters/InstanceFilter.java (1.9), filters/MakeIndicatorFilter.java
	(1.13), filters/MergeTwoValuesFilter.java (1.8),
	filters/NominalToBinaryFilter.java (1.15),
	filters/NonSparseToSparseFilter.java (1.6),
	filters/NormalizationFilter.java (1.9), filters/NullFilter.java
	(1.6), filters/NumericToBinaryFilter.java (1.6),
	filters/NumericTransformFilter.java (1.12),
	filters/ObfuscateFilter.java (1.6), filters/RandomizeFilter.java
	(1.6), filters/ReplaceMissingValuesFilter.java (1.11),
	filters/ResampleFilter.java (1.9),
	filters/SparseToNonSparseFilter.java (1.6),
	filters/SplitDatasetFilter.java (1.10),
	filters/SpreadSubsampleFilter.java (1.7),
	filters/StringToNominalFilter.java (1.5),
	filters/StringToWordVectorFilter.java (1.7),
	filters/SwapAttributeValuesFilter.java (1.10),
	filters/TimeSeriesDeltaFilter.java (1.7),
	filters/TimeSeriesTranslateFilter.java (1.9),
	gui/explorer/ClassifierPanel.java (1.43),
	gui/explorer/ClustererPanel.java (1.29),
	gui/explorer/PreprocessPanel.java (1.22),
	gui/visualize/PlotData2D.java (1.11): Changed filter use to no
	longer use deprecated methods

2001-02-08 10:17  mhall

	* weka/attributeSelection/: AttributeSelection.java (1.25),
	ForwardSelection.java (1.12), RaceSearch.java (1.7),
	RankedOutputSearch.java (1.7), Ranker.java (1.16): Fixed bug in
	handling user specified number of attributes to select for
	RankedOutputSearchers.

2001-02-08 10:15  mhall

	* weka/classifiers/neural/Makefile (1.1): Added Makefile

2001-02-07 12:04  eibe

	* weka/: classifiers/Makefile (1.20), gui/GenericObjectEditor.props
	(1.32): nn is now called neural.

2001-02-07 12:03  eibe

	* weka/classifiers/neural/: LinearUnit.java (1.1),
	NeuralConnection.java (1.1), NeuralMethod.java (1.1),
	NeuralNetwork.java (1.1), NeuralNode.java (1.1), SigmoidUnit.java
	(1.1): renamed nn directory to neural directory

2001-02-02 11:07  eibe

	* weka/gui/GenericObjectEditor.props (1.31): Added neural network
	stuff.

2001-02-02 11:06  eibe

	* weka/classifiers/Makefile (1.19): Neural network stuff added.

2001-01-31 15:28  mhall

	* weka/classifiers/Bagging.java (1.13): Bagging resurected from the
	dead :-)

2001-01-30 10:19  mhall

	* weka/gui/explorer/ClassifierPanel.java (1.42): Added menu item
	for viewing cost curves.

2001-01-30 10:18  mhall

	* weka/gui/visualize/: Plot2D.java (1.14), PlotData2D.java (1.10),
	Visualize.props (1.7): Added support for drawing lines. Added
	default viewing dimensions for cost curves.

2001-01-30 10:13  mhall

	* weka/classifiers/evaluation/Makefile (1.5): Added CostCurve.java

2001-01-30 10:12  mhall

	* weka/classifiers/evaluation/CostCurve.java (1.1): Initial import.

2001-01-30 10:11  mhall

	* weka/classifiers/Bagging.java (1.12): Now works for numeric
	class.

2001-01-28 08:24  trigg

	* weka/classifiers/ThresholdSelector.java (1.21): Changed a couple
	of exceptions.

2001-01-26 14:16  trigg

	* weka/filters/: AbstractTimeSeriesFilter.java (1.2),
	AddFilter.java (1.14), AllFilter.java (1.6),
	AttributeExpressionFilter.java (1.8), AttributeFilter.java (1.14),
	AttributeSelectionFilter.java (1.18), AttributeTypeFilter.java
	(1.7), CopyAttributesFilter.java (1.8), DiscretizeFilter.java
	(1.13), EmptyAttributeFilter.java (1.5), FirstOrderFilter.java
	(1.11), InstanceFilter.java (1.8), MakeIndicatorFilter.java (1.12),
	MergeTwoValuesFilter.java (1.7), NominalToBinaryFilter.java (1.14),
	NonSparseToSparseFilter.java (1.5), NormalizationFilter.java (1.8),
	NullFilter.java (1.5), NumericToBinaryFilter.java (1.5),
	NumericTransformFilter.java (1.11), ObfuscateFilter.java (1.5),
	RandomizeFilter.java (1.5), ReplaceMissingValuesFilter.java (1.10),
	ResampleFilter.java (1.8), SparseToNonSparseFilter.java (1.5),
	SplitDatasetFilter.java (1.9), SpreadSubsampleFilter.java (1.6),
	StringToNominalFilter.java (1.4), StringToWordVectorFilter.java
	(1.6), SwapAttributeValuesFilter.java (1.9),
	TimeSeriesDeltaFilter.java (1.6), TimeSeriesTranslateFilter.java
	(1.8): Cleaned up exception handling of filters: using the newly
	defined core exceptions, and other exceptions where appropriate.

2001-01-26 14:14  trigg

	* weka/core/: BinarySparseInstance.java (1.4), Instance.java
	(1.12), Instances.java (1.30), Range.java (1.9),
	SparseInstance.java (1.8), UnassignedClassException.java (1.1),
	UnassignedDatasetException.java (1.1),
	UnsupportedAttributeTypeException.java (1.1),
	UnsupportedClassTypeException.java (1.1), WekaException.java (1.1):
	First stage cleaning up exception handling. Introduced some
	Exception classes and converted core classes to use them where
	appropriate.

2001-01-24 12:24  trigg

	* weka/classifiers/ThresholdSelector.java (1.20): Added Exception
	for wrong type of class attribute.  Removed exception for presence
	of string attributes.  Added IllegalArgumentException for too small
	value of numXValFolds.

2001-01-24 12:22  trigg

	* weka/classifiers/evaluation/: NominalPrediction.java (1.7),
	NumericPrediction.java (1.4): Added toString methods.

2001-01-24 11:45  rbk1

	* weka/associations/ItemSet.java (1.7): Made member variables
	protected.

2001-01-24 11:45  rbk1

	* weka/associations/Apriori.java (1.9): Made member variables
	protected. Fixed ranking problem by using stableSort.

2001-01-24 11:27  rbk1

	* weka/core/Utils.java (1.27): Added stable sort for double arrays.

2001-01-23 13:46  trigg

	* weka/core/Instances.java (1.29): Ooops, was a bit strict on one
	of the IllegalArgumentExceptions. No longer throws if setClassIndex
	called with negative number (as this is used to unset the class
	index).

2001-01-22 16:48  trigg

	* weka/core/Utils.java (1.26): Added a comment.

2001-01-22 16:47  trigg

	* weka/classifiers/evaluation/EvaluationUtils.java (1.5): Doesn't
	add predictions to the vector if the actual class value is unknown.

2001-01-22 16:47  trigg

	* weka/classifiers/ThresholdSelector.java (1.19): buildClassifier
	resets thresholds and bounds between subsequent calls.	Handles
	case where only one class value is present.  No longer removes
	instances with missing class value (it's up to the base learner to
	decide).

2001-01-22 16:46  trigg

	* weka/classifiers/MultiClassClassifier.java (1.20): Fixed bug in
	toString.

2001-01-19 14:19  trigg

	* weka/: associations/Apriori.java (1.8),
	attributeSelection/BestFirst.java (1.18),
	attributeSelection/RaceSearch.java (1.6),
	classifiers/AdditiveRegression.java (1.5),
	classifiers/AttributeSelectedClassifier.java (1.6),
	classifiers/CostSensitiveClassifier.java (1.8),
	classifiers/DecisionTable.java (1.19), classifiers/IBk.java (1.16),
	classifiers/LinearRegression.java (1.10), classifiers/MetaCost.java
	(1.6), classifiers/MultiClassClassifier.java (1.19),
	classifiers/ThresholdSelector.java (1.18), classifiers/j48/J48.java
	(1.19), classifiers/j48/PART.java (1.13),
	classifiers/kstar/KStar.java (1.5), classifiers/m5/M5Prime.java
	(1.13), core/AdditionalMeasureProducer.java (1.4),
	core/Attribute.java (1.16), core/AttributeStats.java (1.4),
	core/BinarySparseInstance.java (1.3), core/Instance.java (1.11),
	core/Instances.java (1.28), core/Matrix.java (1.10),
	core/Range.java (1.8), core/SelectedTag.java (1.4),
	core/SparseInstance.java (1.7), core/Tag.java (1.3),
	core/Utils.java (1.25), experiment/AveragingResultProducer.java
	(1.12), experiment/ClassifierSplitEvaluator.java (1.12),
	experiment/CrossValidationResultProducer.java (1.10),
	experiment/DatabaseResultProducer.java (1.12),
	experiment/LearningRateResultProducer.java (1.3),
	experiment/RandomSplitResultProducer.java (1.12),
	experiment/RegressionSplitEvaluator.java (1.11),
	filters/AttributeTypeFilter.java (1.6): Changed a bunch of
	Exceptions to IllegalArgumentExceptions, and removed newly
	redundant try/catch blocks.

2001-01-18 11:34  trigg

	* weka/core/Instances.java (1.27): Added a check for 0 folds to
	stratify method.

2001-01-18 11:16  trigg

	* weka/classifiers/ThresholdSelector.java (1.17): Just passes data
	through if only one class value found.

2001-01-17 12:08  trigg

	* weka/filters/: AbstractTimeSeriesFilter.java (1.1),
	AddFilter.java (1.13), AttributeFilter.java (1.13), Makefile
	(1.17), StringToWordVectorFilter.java (1.5),
	SwapAttributeValuesFilter.java (1.8), TimeSeriesDeltaFilter.java
	(1.5), TimeSeriesTranslateFilter.java (1.7): Fixed string handling.
	 Fixed a couple of minor bugs found during unit testing.

2001-01-17 12:07  trigg

	* weka/core/SparseInstance.java (1.6): Added some diagnostic
	messages.

2001-01-15 15:54  trigg

	* weka/filters/: InstanceFilter.java (1.7),
	MakeIndicatorFilter.java (1.11), ResampleFilter.java (1.7),
	SparseToNonSparseFilter.java (1.4), SplitDatasetFilter.java (1.8):
	More fixes, mainly related to string value handling.

2001-01-15 15:53  trigg

	* weka/filters/Filter.java (1.19): getOutputFormat() now makes a
	shallow copy of the instances. Shouldn't be too much extra
	overhead, but cache the result if you're concerned.

2001-01-15 15:52  trigg

	* weka/: TODO.dtd (1.1), TODO.xml (1.1): First version of files to
	track things to do. We should be able to process this into other
	formats like html, plaintext etc using XSLT.

2001-01-15 11:34  trigg

	* weka/core/AttributeStats.java (1.3): Added a toString method.

2001-01-15 11:33  trigg

	* weka/core/Range.java (1.7): Changed a bunch of exceptions to be
	unchecked exceptions (since they are thrown as a result of caller
	errors rather than environmental errors).

2001-01-12 16:21  trigg

	* weka/filters/: NominalToBinaryFilter.java (1.13),
	NonSparseToSparseFilter.java (1.4), NormalizationFilter.java (1.7),
	NumericToBinaryFilter.java (1.4), NumericTransformFilter.java
	(1.10), ReplaceMissingValuesFilter.java (1.9): Fixed passing
	through of string attribute values correctly.

2001-01-12 16:04  trigg

	* weka/core/SparseInstance.java (1.5): Made copy() also copy the
	reference to the instance's dataset, like in Instance.copy()

2001-01-09 15:21  trigg

	* weka/filters/Filter.java (1.18): Took out buggy expression in
	string optimization code.

2001-01-09 14:36  eibe

	* weka/core/Attribute.java (1.15): Added hashtable for string
	attributes. New values are only added if not present in hashtable.

2001-01-09 08:20  trigg

	* weka/filters/: AddFilter.java (1.12),
	AttributeExpressionFilter.java (1.7), AttributeFilter.java (1.12),
	AttributeSelectionFilter.java (1.17), AttributeTypeFilter.java
	(1.5), CopyAttributesFilter.java (1.7), DiscretizeFilter.java
	(1.12), EmptyAttributeFilter.java (1.4), Filter.java (1.17),
	FirstOrderFilter.java (1.10), InstanceFilter.java (1.6): Updated to
	work safely with string attributes, and any bugs found during
	writing of JUnit tests fixed.

2001-01-09 08:17  trigg

	* weka/gui/GenericObjectEditor.java (1.23): Fixed the problem where
	you have to load the object twice to get sub-properties to load in,
	although the fix could be better.

2001-01-09 08:15  trigg

	* weka/core/Instance.java (1.10): Added some diagnostic messages.

2001-01-09 08:14  trigg

	* weka/core/Queue.java (1.5): Changed some exceptions to be more in
	line with similar java library classes.

2000-12-29 14:36  trigg

	* weka/gui/GenericObjectEditor.props (1.30): Added
	LearningRateResultProducer

2000-12-22 15:51  trigg

	* weka/classifiers/ThresholdSelector.java (1.16): A few more
	javadocs added. JDE's "check documenation" feature *rocks*.

2000-12-22 15:42  trigg

	* weka/classifiers/ThresholdSelector.java (1.15): Added ability to
	expand the range of probabilities returned by the base learner to
	[0,1] based on values seen during the optimization.
	
	Added documentation available via the gui.

2000-12-20 11:45  trigg

	* weka/classifiers/MultiClassClassifier.java (1.18): Reinserted
	indicator filtering of test instances. Even though classifiers
	shouldn't really be looking at the class attribute of test
	instances, some (such as j48) currently do look at the test
	instance class attribute to find the number of class values.
	
	Maybe we should probably have a policy that classifiers do not
	access the class attribute of test instances (and write test code
	to check this).

2000-12-20 11:26  trigg

	* weka/filters/MakeIndicatorFilter.java (1.10): Added property
	documentation for gui.

2000-12-20 11:23  trigg

	* weka/gui/PropertySheetPanel.java (1.8): Outputs help entries for
	properties that don't contain a .

2000-12-20 11:21  trigg

	* weka/filters/AttributeExpressionFilter.java (1.6): Capitalization
	of tip texts.

2000-12-20 09:49  trigg

	* weka/filters/: AttributeFilter.java (1.11),
	CopyAttributesFilter.java (1.6), DiscretizeFilter.java (1.11),
	FirstOrderFilter.java (1.9), NumericTransformFilter.java (1.9),
	TimeSeriesTranslateFilter.java (1.6): Refactored some common code
	out into Range.java

2000-12-20 09:49  trigg

	* weka/gui/GenericObjectEditor.props (1.29): Added a couple of
	classifiers. Fixed a bug in the entry for DistributionClassifiers
	(trailing whitespace does matter).

2000-12-20 09:48  trigg

	* weka/classifiers/CostSensitiveClassifier.java (1.7): Added
	documentation available via the gui.

2000-12-20 09:47  trigg

	* weka/filters/MakeIndicatorFilter.java (1.9): MakeIndicatorFilter
	can now indicate on any combination of attribute values.

2000-12-20 09:46  trigg

	* weka/core/Range.java (1.6): Added a constructor to initialize the
	Range with a range list.

2000-12-20 09:45  trigg

	* weka/classifiers/MultiClassClassifier.java (1.17): Now does
	error-correcting output codes. Two code generation methods are
	implemented: random codes (with simple tests for code goodness),
	and exhaustive code generation. Also added a bunch of methods for
	providing docs via the gui.

2000-12-19 15:45  trigg

	* weka/gui/PropertySheetPanel.java (1.7): Better help width and
	proper initial caret position.

2000-12-13 18:48  trigg

	* weka/filters/Filter.java (1.16): Removed timing instrumentation
	code. ooops.

2000-12-13 18:28  trigg

	* weka/classifiers/ThresholdSelector.java (1.14): Reduces the
	number of x-val folds if there are not enough training instances.

2000-12-13 18:15  trigg

	* weka/filters/Filter.java (1.15): Fixed that case I mentioned
	before. Input buffering is now string-safe.

2000-12-13 18:09  trigg

	* weka/classifiers/SMO.java (1.21): Changed internal
	m_dontNormalize variable to m_Normalize. Less stressful on the
	brain when looking at
	
	if (m_Normalize)
	
	than
	
	if (!m_dontNormalize)
	
	No change to command-line or gui use.

2000-12-12 16:05  trigg

	* weka/filters/Filter.java (1.14): Smarter about whether and how
	often String references are flushed. Much speedup for incremental
	filtering.

2000-12-12 16:04  trigg

	* weka/clusterers/DistributionMetaClusterer.java (1.3): Took bodgy
	pseudo-WeightedInstancesHandling out of this meta clusterer.  See
	log comments for DistributionMetaClassifier for why.

2000-12-12 16:03  trigg

	* weka/classifiers/: DistributionMetaClassifier.java (1.4),
	FilteredClassifier.java (1.11), MultiClassClassifier.java (1.16),
	RegressionByDiscretization.java (1.11): Took bodgy
	pseudo-WeightedInstancesHandler out of these meta classifiers.	The
	right way to do this is to write a WeightedInstancesMetaClassifier
	and give the user the choice between resampling with/without
	replacement and with varying sizes of post-resampling data.

2000-12-11 10:36  trigg

	* weka/filters/Filter.java (1.13): Performs a memory optimization
	after the last instance is retrieved from the output queue between
	batches.
	
	The recent changes to Filter will require updates to any filters
	you have implemented yourself. The changes are:
	
	In your implementation of inputFormat(Instances) you should call
	super.inputFormat(Instances) as the first line.
	
	If your filter requires buffering instances in the first batch, use
	bufferInput(Instance) to do this. Your implementation of
	batchFinished should also call flushInput() (after processing
	buffered instances if necessary).
	
	Other references to m_InputFormat should be replaced by
	getInputFormat().

2000-12-11 10:23  trigg

	* weka/classifiers/evaluation/ThresholdCurve.java (1.11): Now
	handles non-integer prediction weights properly.

2000-12-11 10:23  trigg

	* weka/filters/AddFilter.java (1.11): Fixed bug introduced by
	Instance.copy() maintaining the dataset reference.

2000-12-10 16:18  trigg

	* weka/core/Instances.java (1.26): Made stringFreeStructure more
	efficient.

2000-12-10 16:16  trigg

	* weka/: attributeSelection/AttributeSelection.java (1.24),
	attributeSelection/PrincipalComponents.java (1.14),
	classifiers/ClassificationViaRegression.java (1.7),
	classifiers/DecisionTable.java (1.18),
	classifiers/FilteredClassifier.java (1.10),
	classifiers/LinearRegression.java (1.9), classifiers/Logistic.java
	(1.9), classifiers/MultiClassClassifier.java (1.15),
	classifiers/RegressionByDiscretization.java (1.10),
	classifiers/SMO.java (1.20), classifiers/VotedPerceptron.java
	(1.8), classifiers/m5/M5Prime.java (1.12),
	clusterers/SimpleKMeans.java (1.3): Reordered batchFinished calls.

2000-12-10 14:02  trigg

	* weka/: attributeSelection/AttributeSelection.java (1.23),
	attributeSelection/PrincipalComponents.java (1.13),
	classifiers/ClassificationViaRegression.java (1.6),
	classifiers/DecisionTable.java (1.17),
	classifiers/FilteredClassifier.java (1.9),
	classifiers/LinearRegression.java (1.8), classifiers/Logistic.java
	(1.8), classifiers/MultiClassClassifier.java (1.14),
	classifiers/RegressionByDiscretization.java (1.9),
	classifiers/SMO.java (1.19), classifiers/ThresholdSelector.java
	(1.13), classifiers/VotedPerceptron.java (1.7),
	classifiers/m5/M5Prime.java (1.11), clusterers/SimpleKMeans.java
	(1.2): Updated users of Filters so that incremental use is followed
	by a call to batchFinished() -- this gives memory optimization in
	the case of datasets with string attributes as references to old
	strings are flushed.

2000-12-10 13:58  trigg

	* weka/filters/: AddFilter.java (1.10), AllFilter.java (1.5),
	AttributeExpressionFilter.java (1.5), AttributeFilter.java (1.10),
	AttributeSelectionFilter.java (1.16), AttributeTypeFilter.java
	(1.4), CopyAttributesFilter.java (1.5), DiscretizeFilter.java
	(1.10), EmptyAttributeFilter.java (1.3), Filter.java (1.12),
	FirstOrderFilter.java (1.8), InstanceFilter.java (1.5),
	MakeIndicatorFilter.java (1.8), MergeTwoValuesFilter.java (1.6),
	NominalToBinaryFilter.java (1.12), NonSparseToSparseFilter.java
	(1.3), NormalizationFilter.java (1.6), NullFilter.java (1.4),
	NumericToBinaryFilter.java (1.3), NumericTransformFilter.java
	(1.8), ObfuscateFilter.java (1.4), RandomizeFilter.java (1.4),
	ReplaceMissingValuesFilter.java (1.8), ResampleFilter.java (1.6),
	SparseToNonSparseFilter.java (1.3), SplitDatasetFilter.java (1.7),
	SpreadSubsampleFilter.java (1.5), StringToNominalFilter.java (1.3),
	StringToWordVectorFilter.java (1.4), SwapAttributeValuesFilter.java
	(1.7), TimeSeriesDeltaFilter.java (1.4),
	TimeSeriesTranslateFilter.java (1.5): Huge cleanup here. Filters
	now work safely with string attributes. Previously, Bad Things
	would happen and the string values would get lost or point to the
	wrong strings when passing through filters.
	
	There is one case (not applicable all known filters) yet to handle,
	see comments in Filter.inputFormat.

2000-12-10 13:53  trigg

	* weka/core/Instances.java (1.25): Added a method for quickly
	removing all instances from the dataset.

2000-12-10 13:52  trigg

	* weka/core/Instance.java (1.9): copy() now points the copied
	instance at the same dataset as the original instance. This makes
	more sense. If you want the old behaviour, use the equivalent
	constructor.

2000-12-10 13:51  trigg

	* weka/core/Attribute.java (1.14): Adding string values no longer
	checks for duplicates (since it's assumed string values are
	typically unique, otherwise they'd be nominal).
	
	Added a method for efficiently copying string values from one
	attribute to another.

2000-12-09 14:13  trigg

	* weka/: classifiers/FilteredClassifier.java (1.8),
	core/Instances.java (1.24), filters/StringToWordVectorFilter.java
	(1.3): Moved common code into Instances.

2000-12-09 14:13  trigg

	* weka/classifiers/MultiClassClassifier.java (1.13): Less
	restrictive of the datasets it accepts.

2000-12-09 11:42  trigg

	* weka/: associations/Associator.java (1.3),
	attributeSelection/ASEvaluation.java (1.7),
	classifiers/Classifier.java (1.7), clusterers/Clusterer.java (1.7):
	Changed makeCopies methods to use Serialization when copying. Now
	copies will also contain any model built by the input object.
	However, this method now works when making copies of objects that
	were not previously able to be created by the command line.

2000-12-08 16:13  trigg

	* weka/classifiers/evaluation/ThresholdCurve.java (1.10): Added
	routine for calculating area under ROC curve.

2000-12-08 15:30  trigg

	* weka/filters/MakeIndicatorFilter.java (1.7): Changed how output
	indicator values are named.

2000-12-08 15:25  trigg

	* weka/classifiers/ThresholdSelector.java (1.12): Little more
	accepting in the auto-name case. Now just wants class values
	starting with "yes" or "pos" (case-insensitive) or equalling "1".

2000-12-08 15:17  trigg

	* weka/attributeSelection/StartSetHandler.java (1.4): Fixed buggy
	Revision tag.

2000-12-08 15:04  trigg

	* weka/classifiers/ThresholdSelector.java (1.11): Another method
	for picking which class to optimize: value with a positive sounding
	name (yes, pos, positive, 1);

2000-12-08 14:12  trigg

	* weka/filters/SpreadSubsampleFilter.java (1.4): Added an option to
	adjust weights of output instances so that the total weight per
	class can be maintained.

2000-12-08 11:42  trigg

	* weka/classifiers/evaluation/Prediction.java (1.3): Incorrect
	access on the predicted method.

2000-12-08 11:37  trigg

	* weka/classifiers/evaluation/TwoClassStats.java (1.4): Added a
	method to get an equivalent confusion matrix. Perhaps TwoClassStats
	should be changed to use a ConfusionMatrix internally. Advantage:
	loading/saving/applying costs. Disadvantage: slightly slower,
	slightly more memory.

2000-12-08 11:35  trigg

	* weka/classifiers/Evaluation.java (1.38): Added a couple of
	comments.

2000-12-08 11:34  trigg

	* weka/classifiers/CostSensitiveClassifier.java (1.6):
	setCostMatrix and setOnDemandDirectory now set the cost matrix
	source appropriately.

2000-12-08 11:33  trigg

	* weka/classifiers/CostMatrix.java (1.7): A couple of extra
	comments. No actual code change.

2000-12-06 09:46  trigg

	* weka/classifiers/MetaCost.java (1.5): setCostMatrix and
	setOnDemandDirectory now make the appropriate setting to
	setCostMatrixSource. We should probably go through properties in
	other schemes and get the property dependencies updating
	appropriately.

2000-12-05 13:58  trigg

	* weka/classifiers/Evaluation.java (1.37): Partial refactoring of
	the main evaluation routine.

2000-12-04 15:22  trigg

	* weka/classifiers/AttributeSelectedClassifier.java (1.5): Fixed
	small bug in Revision tag.

2000-12-04 15:18  trigg

	* weka/attributeSelection/SymmetricalUncertAttributeEval.java
	(1.9): Fixed small bug in Revision tag.

2000-12-04 15:14  trigg

	* weka/attributeSelection/: ErrorBasedMeritEvaluator.java (1.3),
	RankedOutputSearch.java (1.6): Fixed small bug in Revision tag.

2000-12-04 12:26  trigg

	* weka/classifiers/ThresholdSelector.java (1.10): Added different
	options for choosing which class value to optimize for.

2000-12-04 10:52  trigg

	* weka/classifiers/ThresholdSelector.java (1.9): Converted into a
	DistributionClassifier, where the probability distribution is
	rescaled so that the selected threshold corresponds to 0.5 in the
	output distribution. Essentially means this metaclassifier just
	does two linear transformations on the output of the subclassifier.

2000-12-03 16:32  trigg

	* weka/classifiers/evaluation/ThresholdCurve.java (1.9): Now
	possible to get the names of the attributes used for the various
	measures as static fields.

2000-12-03 16:31  trigg

	* weka/classifiers/evaluation/EvaluationUtils.java (1.4): Can now
	generate NumericPredictions.

2000-12-03 16:30  trigg

	* weka/classifiers/DistributionMetaClassifier.java (1.3): Added a
	useful constructor.

2000-12-03 16:29  trigg

	* weka/classifiers/ThresholdSelector.java (1.8): Removed 120 lines
	of code :-)

2000-11-30 15:48  trigg

	* weka/: Makefile (1.29), core/Makefile (1.9),
	core/converters/AbstractLoader.java (1.1),
	core/converters/ArffLoader.java (1.1),
	core/converters/C45Loader.java (1.1),
	core/converters/CSVLoader.java (1.1),
	core/converters/ConverterUtils.java (1.1),
	core/converters/Loader.java (1.1), core/converters/Makefile (1.1),
	core/converters/SerializedInstancesLoader.java (1.1),
	gui/GenericObjectEditor.props (1.28),
	gui/explorer/PreprocessPanel.java (1.21): Moved weka.converters to
	weka.core.converters Did some renaming of classes Added ability for
	some Loaders to read from an InputStream Implemented
	SerializedInstancesLoader

2000-11-29 16:13  trigg

	* weka/classifiers/FilteredClassifier.java (1.7): The memory
	optimization to remove references to old strings after filtering
	wasn't passing the class attribute through. Fixed.

2000-11-24 13:11  mhall

	* weka/gui/explorer/Explorer.java (1.18): Oops. Changed addPlot to
	setMasterPlot when setting up Visualize panel.

2000-11-24 12:55  mhall

	* weka/gui/explorer/Explorer.java (1.17): Visualize panel is now
	initialized using a PlotData2D object rather than calling
	setInstances.

2000-11-24 12:54  mhall

	* weka/gui/visualize/VisualizePanel.java (1.17): The setInstances
	method does not add an instance number attribute (for the sake of
	the UserClassifier).

2000-11-24 11:40  mhall

	* weka/gui/explorer/: ClassifierPanel.java (1.41),
	AttributeSelectionPanel.java (1.22), ClustererPanel.java (1.28):
	Visualizable results now have instance number attribute.

2000-11-24 11:39  mhall

	* weka/gui/visualize/: PlotData2D.java (1.9), VisualizePanel.java
	(1.16): Made adding an instance number attribute to visualizeable
	instances optional.

2000-11-23 14:16  mhall

	* weka/gui/visualize/PlotData2D.java (1.8): Now preserves original
	relation name (used to get overwritten by the filter that is used
	to add the instance number attribute).

2000-11-22 17:27  trigg

	* weka/classifiers/MultiClassClassifier.java (1.12): Optimization
	when using on two-class problems -- doesn't build a redundant
	model.

2000-11-22 08:54  mhall

	* weka/gui/GenericObjectEditor.props (1.27): Added SimpleKMeans

2000-11-22 08:54  mhall

	* weka/clusterers/: Makefile (1.3), SimpleKMeans.java (1.1):
	Initial import SimpleKMeans. Added to Makefile.

2000-11-20 15:06  mhall

	* weka/gui/visualize/PlotData2D.java (1.7): Now adds an
	"Instance_number" attribute

2000-11-10 16:18  mhall

	* weka/experiment/ClassifierSplitEvaluator.java (1.11): Added kappa
	statistic to the results produced.

2000-11-03 18:11  eibe

	* weka/filters/SplitDatasetFilter.java (1.6): Option to generate
	data that is not stratified even if class index is set.

2000-11-01 16:25  mhall

	* weka/classifiers/AdditiveRegression.java (1.4): Added option for
	setting the maximum number of iterations to perform.

2000-11-01 12:24  eibe

	* weka/classifiers/Evaluation.java (1.36): Included kappa statistic
	in output.

2000-11-01 11:41  mhall

	* weka/classifiers/Prism.java (1.11): Fixed bug that Eibe
	introduced in July last year :-)

2000-10-30 15:49  mhall

	* weka/gui/GenericObjectEditor.props (1.26): Added converter
	C45ToArff.

2000-10-30 10:31  trigg

	* weka/classifiers/MultiClassClassifier.java (1.10): Better output
	-- includes class names rather than just indices.

2000-10-24 12:36  mhall

	* weka/gui/explorer/: ClassifierPanel.java (1.39),
	ClustererPanel.java (1.26), AttributeSelectionPanel.java (1.20):
	Now sets the log object for VisualizePanels that are popped up.

2000-10-24 12:35  mhall

	* weka/gui/visualize/VisualizePanel.java (1.14): Added a test for
	non null log object before trying to write a message to it :-)

2000-10-24 10:38  trigg

	* weka/core/: BinarySparseInstance.java (1.1), Instance.java (1.7),
	SparseInstance.java (1.3): Added first version of an Instance
	optimized for binary data (i.e. less memory requirements). Needs
	more testing. Also required some changes to finality of methods in
	parent classes.

2000-10-20 16:33  mhall

	* weka/gui/experiment/RunPanel.java (1.14): No longer "says waiting
	for remote tasks to finish" if experiment is not a
	RemoteExperiment.

2000-10-20 15:42  mhall

	* weka/classifiers/m5/Node.java (1.3): Fixed bug that prevented the
	last attribute from being considered when making a split at a node.

