votes up 6

n_iter should be at least 250

Package:
Exception Class:
ValueError

Raise code

        random_state = check_random_state(self.random_state)

        if self.early_exaggeration < 1.0:
            raise ValueError("early_exaggeration must be at least 1, but is {}"
                             .format(self.early_exaggeration))

        if self.n_iter < 250:
            raise ValueError("n_iter should be at least 250")

        n_samples = X.shape[0]

        neighbors_nn = None
        if self.method == "exact":
            # Retrieve the distance matrix, either using the precomputed one or
            # computing it.

Ways to fix

votes up 1 votes down

Summary:

This exception can be thrown when creating an instance of TSNE and calling the _fit function. The init function for this class includes lots of optional parameters. The parameter that can lead to this exception is n_iter. This parameter expects an integer to be passed into it, and that integer must be greater than or equal to 250. Any value passed in that is less than 250, will cause this exception.

Code to Reproduce the Error (Wrong):

from sklearn.manifold._t_sne import TSNE
import numpy as np

x = np.array([[1, 2], [3, 4]])
iterations = 100
t = TSNE(n_iter=iterations)
t._fit(x)

Error Message:

ValueError                                Traceback (most recent call last)
<ipython-input-8-bb93ce2402e2> in <module>()
      5 iterations = 100
      6 t = TSNE(n_iter=iterations)
----> 7 t._fit(x)

/usr/local/lib/python3.7/dist-packages/sklearn/manifold/_t_sne.py in _fit(self, X, skip_num_points)
    695 
    696         if self.n_iter < 250:
--> 697             raise ValueError("n_iter should be at least 250")
    698 
    699         n_samples = X.shape[0]

ValueError: n_iter should be at least 250

Working Version (Right):

from sklearn.manifold._t_sne import TSNE
import numpy as np

x = np.array([[1, 2], [3, 4]])
iterations = 300
t = TSNE(n_iter=iterations)
t._fit(x)

Successful Output:

array([[ 2901.4639,  1243.7153],
       [-2901.4639, -1243.7153]], dtype=float32)
Jul 16, 2021 codingcomedyig answer

Add a possible fix

Please authorize to post fix