# Packages

• package

High level Smile operators in Scala.

High level Smile operators in Scala.

Definition Classes
root
• package
Definition Classes
root
• package

Multidimensional scaling.

Multidimensional scaling. MDS is a set of related statistical techniques often used in information visualization for exploring similarities or dissimilarities in data. An MDS algorithm starts with a matrix of item-item similarities, then assigns a location to each item in N-dimensional space. For sufficiently small N, the resulting locations may be displayed in a graph or 3D visualization.

The major types of MDS algorithms include:

Classical multidimensional scaling takes an input matrix giving dissimilarities between pairs of items and outputs a coordinate matrix whose configuration minimizes a loss function called strain.

Metric multidimensional scaling is a superset of classical MDS that generalizes the optimization procedure to a variety of loss functions and input matrices of known distances with weights and so on. A useful loss function in this context is called stress which is often minimized using a procedure called stress majorization.

Non-metric multidimensional scaling finds both a non-parametric monotonic relationship between the dissimilarities in the item-item matrix and the Euclidean distances between items, and the location of each item in the low-dimensional space. The relationship is typically found using isotonic regression.

Generalized multidimensional scaling is an extension of metric multidimensional scaling, in which the target space is an arbitrary smooth non-Euclidean space. In case when the dissimilarities are distances on a surface and the target space is another surface, GMDS allows finding the minimum-distortion embedding of one surface into another.

Definition Classes
smile
• Operators
t

# Operators 

#### trait Operators extends AnyRef

High level multi-dimensional scaling operators.

Linear Supertypes
AnyRef, Any
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. Operators
2. AnyRef
3. Any
Implicitly
2. by StringFormat
3. by Ensuring
4. by ArrowAssoc
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Value Members

1. final def !=(arg0: Any): Boolean
Definition Classes
AnyRef → Any
2. final def ##(): Int
Definition Classes
AnyRef → Any
3. def +(other: String): String
Implicit
This member is added by an implicit conversion from Operators to any2stringadd[Operators] performed by method any2stringadd in scala.Predef.
Definition Classes
4. def ->[B](y: B): (Operators, B)
Implicit
This member is added by an implicit conversion from Operators to ArrowAssoc[Operators] performed by method ArrowAssoc in scala.Predef.
Definition Classes
ArrowAssoc
Annotations
@inline()
5. final def ==(arg0: Any): Boolean
Definition Classes
AnyRef → Any
6. final def asInstanceOf[T0]: T0
Definition Classes
Any
7. def clone(): AnyRef
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( ... )
8. def ensuring(cond: (Operators) ⇒ Boolean, msg: ⇒ Any)
Implicit
This member is added by an implicit conversion from Operators to Ensuring[Operators] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring
9. def ensuring(cond: (Operators) ⇒ Boolean)
Implicit
This member is added by an implicit conversion from Operators to Ensuring[Operators] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring
10. def ensuring(cond: Boolean, msg: ⇒ Any)
Implicit
This member is added by an implicit conversion from Operators to Ensuring[Operators] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring
11. def ensuring(cond: Boolean)
Implicit
This member is added by an implicit conversion from Operators to Ensuring[Operators] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring
12. final def eq(arg0: AnyRef): Boolean
Definition Classes
AnyRef
13. def equals(arg0: Any): Boolean
Definition Classes
AnyRef → Any
14. def finalize(): Unit
Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )
15. def formatted(fmtstr: String): String
Implicit
This member is added by an implicit conversion from Operators to StringFormat[Operators] performed by method StringFormat in scala.Predef.
Definition Classes
StringFormat
Annotations
@inline()
16. final def getClass(): Class[_]
Definition Classes
AnyRef → Any
17. def hashCode(): Int
Definition Classes
AnyRef → Any
18. final def isInstanceOf[T0]: Boolean
Definition Classes
Any
19. def isomds(proximity: Array[Array[Double]], k: Int, tol: Double = 0.0001, maxIter: Int = 200): IsotonicMDS

Kruskal's nonmetric MDS.

Kruskal's nonmetric MDS. In non-metric MDS, only the rank order of entries in the proximity matrix (not the actual dissimilarities) is assumed to contain the significant information. Hence, the distances of the final configuration should as far as possible be in the same rank order as the original data. Note that a perfect ordinal re-scaling of the data into distances is usually not possible. The relationship is typically found using isotonic regression.

proximity

the nonnegative proximity matrix of dissimilarities. The diagonal should be zero and all other elements should be positive and symmetric.

k

the dimension of the projection.

tol

tolerance for stopping iterations.

maxIter

maximum number of iterations.

20. def mds(proximity: Array[Array[Double]], k: Int, add: Boolean = false): MDS

Classical multidimensional scaling, also known as principal coordinates analysis.

Classical multidimensional scaling, also known as principal coordinates analysis. Given a matrix of dissimilarities (e.g. pairwise distances), MDS finds a set of points in low dimensional space that well-approximates the dissimilarities in A. We are not restricted to using a Euclidean distance metric. However, when Euclidean distances are used MDS is equivalent to PCA.

proximity

the nonnegative proximity matrix of dissimilarities. The diagonal should be zero and all other elements should be positive and symmetric. For pairwise distances matrix, it should be just the plain distance, not squared.

k

the dimension of the projection.

true to estimate an appropriate constant to be added to all the dissimilarities, apart from the self-dissimilarities, that makes the learning matrix positive semi-definite. The other formulation of the additive constant problem is as follows. If the proximity is measured in an interval scale, where there is no natural origin, then there is not a sympathy of the dissimilarities to the distances in the Euclidean space used to represent the objects. In this case, we can estimate a constant c such that proximity + c may be taken as ratio data, and also possibly to minimize the dimensionality of the Euclidean space required for representing the objects.

21. final def ne(arg0: AnyRef): Boolean
Definition Classes
AnyRef
22. final def notify(): Unit
Definition Classes
AnyRef
23. final def notifyAll(): Unit
Definition Classes
AnyRef
24. def sammon(proximity: Array[Array[Double]], k: Int, lambda: Double = 0.2, tol: Double = 0.0001, maxIter: Int = 100): SammonMapping

The Sammon's mapping is an iterative technique for making interpoint distances in the low-dimensional projection as close as possible to the interpoint distances in the high-dimensional object.

The Sammon's mapping is an iterative technique for making interpoint distances in the low-dimensional projection as close as possible to the interpoint distances in the high-dimensional object. Two points close together in the high-dimensional space should appear close together in the projection, while two points far apart in the high dimensional space should appear far apart in the projection. The Sammon's mapping is a special case of metric least-square multidimensional scaling.

Ideally when we project from a high dimensional space to a low dimensional space the image would be geometrically congruent to the original figure. This is called an isometric projection. Unfortunately it is rarely possible to isometrically project objects down into lower dimensional spaces. Instead of trying to achieve equality between corresponding inter-point distances we can minimize the difference between corresponding inter-point distances. This is one goal of the Sammon's mapping algorithm. A second goal of the Sammon's mapping algorithm is to preserve the topology as best as possible by giving greater emphasize to smaller interpoint distances. The Sammon's mapping algorithm has the advantage that whenever it is possible to isometrically project an object into a lower dimensional space it will be isometrically projected into the lower dimensional space. But whenever an object cannot be projected down isometrically the Sammon's mapping projects it down to reduce the distortion in interpoint distances and to limit the change in the topology of the object.

The projection cannot be solved in a closed form and may be found by an iterative algorithm such as gradient descent suggested by Sammon. Kohonen also provides a heuristic that is simple and works reasonably well.

proximity

the nonnegative proximity matrix of dissimilarities. The diagonal should be zero and all other elements should be positive and symmetric.

k

the dimension of the projection.

lambda

initial value of the step size constant in diagonal Newton method.

tol

tolerance for stopping iterations.

maxIter

maximum number of iterations.

25. final def synchronized[T0](arg0: ⇒ T0): T0
Definition Classes
AnyRef
26. def toString(): String
Definition Classes
AnyRef → Any
27. final def wait(): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
28. final def wait(arg0: Long, arg1: Int): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
29. final def wait(arg0: Long): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
30. def [B](y: B): (Operators, B)
Implicit
This member is added by an implicit conversion from Operators to ArrowAssoc[Operators] performed by method ArrowAssoc in scala.Predef.
Definition Classes
ArrowAssoc