diff --git a/multimodal/boosting/combo.py b/multimodal/boosting/combo.py
index bad1f32ce2c786bc7a95b6631ce6f3b16af0ac9d..5f4ef5346c3b6946acf4cfcda3617fbf09884953 100644
--- a/multimodal/boosting/combo.py
+++ b/multimodal/boosting/combo.py
@@ -193,7 +193,7 @@ class MuComboClassifier(BaseEnsemble, ClassifierMixin, UBoosting):
         # n_yi = np.unique(y, return_inverse=True)
         cost = np.ones((n_views, n_samples, n_classes))
         score_function = np.zeros((n_views, n_samples, n_classes))
-        n_yi_s = np.zeros(n_classes, dtype=np.int)
+        n_yi_s = np.zeros(n_classes, dtype=int)
         for indice_class in range(n_classes):
             # n_yi number of examples of the class y_i
             n_yi = np.where(y==indice_class)[0].shape[0]
@@ -224,14 +224,14 @@ class MuComboClassifier(BaseEnsemble, ClassifierMixin, UBoosting):
 
     def _indicatrice(self, predicted_classes, y_i):
         n_samples = y_i.shape[0]
-        indicate_ones = np.zeros((self.n_views_, n_samples, self.n_classes_), dtype=np.int)
-        indicatrice_one_yi = np.zeros((self.n_views_, n_samples, self.n_classes_), dtype=np.int)
+        indicate_ones = np.zeros((self.n_views_, n_samples, self.n_classes_), dtype=int)
+        indicatrice_one_yi = np.zeros((self.n_views_, n_samples, self.n_classes_), dtype=int)
         indicate_ones[np.arange(self.n_views_)[:, np.newaxis],
                     np.arange(n_samples)[np.newaxis, :],
                     predicted_classes[np.arange(self.n_views_), :]] = 1
         indicate_ones[:, np.arange(n_samples), y_i] = 0
         indicatrice_one_yi[:, np.arange(n_samples), y_i] = 1
-        delta = np.ones((self.n_views_, n_samples, self.n_classes_), dtype=np.int)
+        delta = np.ones((self.n_views_, n_samples, self.n_classes_), dtype=int)
         delta[:, np.arange(n_samples), y_i] = -1
         return indicate_ones, indicatrice_one_yi, delta
 
@@ -451,12 +451,12 @@ class MuComboClassifier(BaseEnsemble, ClassifierMixin, UBoosting):
             # there is only one single class in the data).
             self.estimators_ = []
             self.estimator_weights_alpha_ = np.array([], dtype=np.float64)
-            self.estimator_weights_beta_ = np.zeros((self.n_iterations_, n_views), dtype=np.float)
+            self.estimator_weights_beta_ = np.zeros((self.n_iterations_, n_views), dtype=float)
             self.estimator_errors_ = np.array([], dtype=np.float64)
             return
         self.estimators_ = []
         self.estimator_weights_alpha_ = np.zeros((self.n_iterations_, n_views), dtype=np.float64)
-        self.estimator_weights_beta_ = np.zeros((self.n_iterations_, n_views, self.n_classes_), dtype=np.float)
+        self.estimator_weights_beta_ = np.zeros((self.n_iterations_, n_views, self.n_classes_), dtype=float)
         self.estimator_errors_ = np.zeros((n_views, self.n_iterations_), dtype=np.float64)
 
         random_state = check_random_state(self.random_state)
diff --git a/multimodal/datasets/data_sample.py b/multimodal/datasets/data_sample.py
index b65fe0ee134b17a5e00709bf6bce2bbe23c55f3b..c44b360e9c2d808f51bcfa22acfd32e80b1db8fa 100644
--- a/multimodal/datasets/data_sample.py
+++ b/multimodal/datasets/data_sample.py
@@ -83,6 +83,7 @@ import numpy as np
 import numpy.ma as ma
 import scipy.sparse as sp
 
+
 class MultiModalData(metaclass=ABCMeta):
 
     @staticmethod
@@ -99,7 +100,7 @@ class MultiModalData(metaclass=ABCMeta):
             n_views = views_ind.shape[0]-1
         else:
             if views_ind.ndim == 1:
-                if not views_ind.dtype == np.object:
+                if not views_ind.dtype == object:
                     raise ValueError("The format of views_ind is not "
                                      + "supported.")
                 for ind, val in enumerate(views_ind):
@@ -143,7 +144,7 @@ class MultiModalData(metaclass=ABCMeta):
             n_views = views_ind.shape[0]-1
         else:
             if views_ind.ndim == 1:
-                if not views_ind.dtype == np.object:
+                if not views_ind.dtype == object:
                     raise ValueError("The format of views_ind is not "
                                      + "supported.")
                 for ind, val in enumerate(views_ind):
@@ -428,7 +429,7 @@ class MultiModalArray(np.ndarray, MultiModalData):
                 hasattr(new_data, "shape") and len(new_data.shape) > 0:
                 obj = np.asarray(new_data.data).view(cls)
         else:
-            obj = np.recarray.__new__(cls, shape=(0, 0), dtype=np.float)
+            obj = np.recarray.__new__(cls, shape=(0, 0), dtype=float)
         obj.view_mode_ = view_mode
         obj.views_ind = views_ind
         obj.shapes_int = shapes_int
@@ -439,7 +440,7 @@ class MultiModalArray(np.ndarray, MultiModalData):
     def _for_data(cls, data):
         n_views = data.shape[0]
         index = 0
-        views_ind = np.empty(n_views + 1, dtype=np.int)
+        views_ind = np.empty(n_views + 1, dtype=int)
         views_ind[0] = 0
         shapes_int = []
         new_data = np.ndarray([])
diff --git a/multimodal/tests/test_combo.py b/multimodal/tests/test_combo.py
index f8d085dfa2138313b8060fc51eb81456dc87876f..5b864e62c9e581cf0d638591b8c21dd537d6f22e 100644
--- a/multimodal/tests/test_combo.py
+++ b/multimodal/tests/test_combo.py
@@ -268,7 +268,7 @@ class TestMuComboClassifier(unittest.TestCase):
                                          cost_Tminus1_vue, A, b, G, h, l))
             self.assertEqual(solver.shape, (9,1))
             s_r = np.sum(solver.reshape(3,3), axis=1)
-            np.testing.assert_almost_equal(s_r, np.ones(3, dtype=np.float), 9)
+            np.testing.assert_almost_equal(s_r, np.ones(3, dtype=float), 9)
 
     def test_solver_compute_betas(self):
         clf = MuComboClassifier()
@@ -289,13 +289,13 @@ class TestMuComboClassifier(unittest.TestCase):
           [ 5.45938775e+01,  4.03397223e+02, -4.57991101e+02],
           [ 1.48401545e+02, -1.48426438e+02,  2.48935342e-02],
           [ 1.09663316e+03,  2.71828184e+00, -1.09935144e+03]]])
-        score_function_Tminus1 =10 *np.ones((3,4,3), dtype =np.float)
+        score_function_Tminus1 =10 *np.ones((3,4,3), dtype =float)
         alphas = np.array([0.5, 1., 2.])
         predicted_classes = np.array([[0, 0, 1, 1], [0, 1, 0, 2], [2, 2, 0, 0]])
         y = np.array([0, 1, 2, 0])
         betas = clf._compute_betas(alphas, y, score_function_Tminus1, predicted_classes)
         self.assertEqual(betas.shape, (3,3))
-        np.testing.assert_almost_equal(np.sum(betas, axis =1), np.ones(3, dtype=np.float), 9)
+        np.testing.assert_almost_equal(np.sum(betas, axis =1), np.ones(3, dtype=float), 9)
         self.assertTrue(np.all(betas <= 1) )
         self.assertTrue(np.all(betas >= 0) )
 
@@ -336,7 +336,7 @@ class TestMuComboClassifier(unittest.TestCase):
                  [[-2, 1, 0.5], [1, 1, -1], [1, -2, 0.5], [1, 1, -1]],
                  [[-2, 1, 0.5], [1, 1, -1], [1, -2, 0.5], [1, 1, -1]]],
                 dtype=np.float64)
-        score_function_Tminus1 =10 *np.ones((3,4,3), dtype=np.float)
+        score_function_Tminus1 =10 *np.ones((3,4,3), dtype=float)
         clf = MuComboClassifier()
         clf.n_views_ = 3
         clf.n_classes_ = 3
diff --git a/multimodal/tests/test_mumbo.py b/multimodal/tests/test_mumbo.py
index af9c5c69f222c26ad892c1cbf2e4bfb68104574b..fd626247b536fb2013e1160ac2dfec55a2b584e8 100644
--- a/multimodal/tests/test_mumbo.py
+++ b/multimodal/tests/test_mumbo.py
@@ -74,7 +74,7 @@ class TestMumboClassifier(unittest.TestCase):
         X[X < .8] = 0
         X_csr = csr_matrix(X)
         clf = MumboClassifier()
-        y = (4 * rng.rand(40)).astype(np.int)
+        y = (4 * rng.rand(40)).astype(int)
         clf.fit(X_csr, y)
 
     def test_init_var(self):
@@ -450,15 +450,15 @@ class TestMumboClassifier(unittest.TestCase):
         clf = MumboClassifier()
         self.assertRaises(ValueError, clf.fit, X, y, views_ind)
 
-        views_ind = np.array([[-1], [1, 2]])
+        views_ind = np.array([np.array([-1]), np.array([1, 2])])
         clf = MumboClassifier()
         self.assertRaises(ValueError, clf.fit, X, y, views_ind)
 
-        views_ind = np.array([[3], [1, 2]])
+        views_ind = np.array([np.array([3]), np.array([1, 2])])
         clf = MumboClassifier()
         self.assertRaises(ValueError, clf.fit, X, y, views_ind)
 
-        views_ind = np.array([[0.5], [1, 2]])
+        views_ind = np.array([np.array([0.5]), np.array([1, 2])])
         clf = MumboClassifier()
         self.assertRaises(ValueError, clf.fit, X, y, views_ind)
 
@@ -520,7 +520,7 @@ class TestMumboClassifier(unittest.TestCase):
 
         X = np.array([[0., 0.5, 0.7], [1., 1.5, 1.7], [2., 2.5, 2.7]])
         y = np.array([1, 1, 1])
-        views_ind = np.array([[0, 2], [1]])
+        views_ind = np.array([np.array([0, 2]), np.array([1])])
         clf = MumboClassifier()
         clf.fit(X, y, views_ind)
         np.testing.assert_equal(clf.predict(X), y)
@@ -573,7 +573,7 @@ class TestMumboClassifier(unittest.TestCase):
                            np.array([0, 1]))
         self.assertEqual(clf.decision_function(X).shape, y.shape)
 
-        views_ind = np.array([[2, 0], [1]])
+        views_ind = np.array([np.array([2, 0]), np.array([1])])
         clf = MumboClassifier()
         clf.fit(X, y, views_ind)
         np.testing.assert_equal(clf.predict(X), y)
@@ -598,7 +598,7 @@ class TestMumboClassifier(unittest.TestCase):
         np.testing.assert_equal(clf.predict(data), np.array([0, 1]))
         self.assertEqual(clf.decision_function(X).shape, y.shape)
 
-        views_ind = np.array([[2, 0], [1], [3, 4]])
+        views_ind = np.array([np.array([2, 0]), np.array([1]), np.array([3, 4])])
         clf = MumboClassifier()
         clf.fit(X, y, views_ind)
         np.testing.assert_equal(clf.predict(X), y)
@@ -626,7 +626,7 @@ class TestMumboClassifier(unittest.TestCase):
         np.testing.assert_equal(clf.predict(data), np.array([0, 1, 2]))
         self.assertEqual(clf.decision_function(X).shape, (X.shape[0], 3))
 
-        views_ind = np.array([[1, 0], [2], [3, 4]])
+        views_ind = np.array([np.array([1, 0]), np.array([2]), np.array([3, 4])])
         clf = MumboClassifier()
         clf.fit(X, y, views_ind)
         np.testing.assert_equal(clf.predict(X), y)
diff --git a/multimodal/tests/test_mvml.py b/multimodal/tests/test_mvml.py
index 83c6ea3125032a0574398185fbe3b220da427453..3a27d97ebdbe3114b12e306d5d04777af99aa7fc 100644
--- a/multimodal/tests/test_mvml.py
+++ b/multimodal/tests/test_mvml.py
@@ -270,7 +270,7 @@ class MVMLTest(unittest.TestCase):
 
     def test_classifier(self):
         pass
-        # return check_estimator(MVML)
+        # return check_estimator(MVML())
 
     def test_check_kernel(self):
         clf = MVML()
diff --git a/setup.py b/setup.py
index 602cb5d6950ff9949c8d3c8ac32ceac2bcea7b01..d9f23f30cf933a95dfba03dd8c9e40aa91de1b77 100644
--- a/setup.py
+++ b/setup.py
@@ -176,7 +176,7 @@ def setup_package():
     keywords = ('machine learning, supervised learning, classification, '
                 'ensemble methods, boosting, kernel')
     packages = find_packages(exclude=['*.tests'])
-    install_requires = ['scikit-learn==0.24.2', 'numpy', 'scipy', 'cvxopt' ]
+    install_requires = ['scikit-learn>=0.24.2', 'numpy', 'scipy', 'cvxopt' ]
     python_requires = '>=3.6'
     extras_require = {
         'dev': ['pytest', 'pytest-cov'],