/**
         * <summary> The convertInstance method takes an {@link Instance} as an input and creates a {@link java.util.Vector} attributes from continuousAttributes.
         * After removing all attributes of given instance, it then adds new {@link ContinuousAttribute} by using the dot
         * product of attributes Vector and the eigenvectors.</summary>
         *
         * <param name="instance">Instance that will be converted to {@link ContinuousAttribute} by using eigenvectors.</param>
         */
        protected override void ConvertInstance(Instance.Instance instance)
        {
            var attributes = new Vector(instance.ContinuousAttributes());

            instance.RemoveAllAttributes();
            foreach (var eigenvector in _eigenvectors)
            {
                instance.AddAttribute(new ContinuousAttribute(attributes.DotProduct(eigenvector)));
            }
        }