Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
dev
scikit-multimodallearn
Commits
750b6a8c
Commit
750b6a8c
authored
Mar 04, 2021
by
Baptiste Bauvin
Browse files
Added tests
parent
a83236d8
Changes
7
Hide whitespace changes
Inline
Side-by-side
multimodal/boosting/boost.py
View file @
750b6a8c
...
@@ -59,13 +59,6 @@ class UBoosting(metaclass=ABCMeta):
...
@@ -59,13 +59,6 @@ class UBoosting(metaclass=ABCMeta):
def
_validate_X_predict
(
self
,
X
):
def
_validate_X_predict
(
self
,
X
):
"""Ensure that X is in the proper format."""
"""Ensure that X is in the proper format."""
if
(
self
.
base_estimator
is
None
or
isinstance
(
self
.
base_estimator
,
(
BaseDecisionTree
,
BaseForest
))):
check_array
(
X
,
accept_sparse
=
'csr'
,
dtype
=
DTYPE
)
else
:
check_array
(
X
,
accept_sparse
=
[
'csr'
,
'csc'
])
if
X
.
ndim
<
2
:
if
X
.
ndim
<
2
:
X
=
X
[
np
.
newaxis
,
:]
X
=
X
[
np
.
newaxis
,
:]
if
X
.
shape
[
1
]
!=
self
.
n_features_
:
if
X
.
shape
[
1
]
!=
self
.
n_features_
:
...
@@ -73,8 +66,15 @@ class UBoosting(metaclass=ABCMeta):
...
@@ -73,8 +66,15 @@ class UBoosting(metaclass=ABCMeta):
"match the input. Model n_features is %s and "
"match the input. Model n_features is %s and "
"input n_features is %s "
%
(
self
.
n_features_
,
X
.
shape
[
1
]))
"input n_features is %s "
%
(
self
.
n_features_
,
X
.
shape
[
1
]))
else
:
else
:
mes
=
"Reshape your data"
mes
=
"Reshape your data
as a 2D-array
"
raise
ValueError
(
mes
)
raise
ValueError
(
mes
)
if
(
self
.
base_estimator
is
None
or
isinstance
(
self
.
base_estimator
,
(
BaseDecisionTree
,
BaseForest
))):
check_array
(
X
,
accept_sparse
=
'csr'
,
dtype
=
DTYPE
)
else
:
check_array
(
X
,
accept_sparse
=
[
'csr'
,
'csc'
])
if
X
.
ndim
>
1
:
if
X
.
ndim
>
1
:
if
X
.
shape
[
1
]
!=
self
.
n_features_
:
if
X
.
shape
[
1
]
!=
self
.
n_features_
:
if
X
.
shape
[
0
]
==
self
.
n_features_
and
X
.
shape
[
1
]
>
1
:
if
X
.
shape
[
0
]
==
self
.
n_features_
and
X
.
shape
[
1
]
>
1
:
...
@@ -83,10 +83,6 @@ class UBoosting(metaclass=ABCMeta):
...
@@ -83,10 +83,6 @@ class UBoosting(metaclass=ABCMeta):
raise
ValueError
(
"Number of features of the model must "
raise
ValueError
(
"Number of features of the model must "
"match the input. Model n_features is %s and "
"match the input. Model n_features is %s and "
"input n_features is %s "
%
(
self
.
n_features_
,
X
.
shape
[
1
]))
"input n_features is %s "
%
(
self
.
n_features_
,
X
.
shape
[
1
]))
#
# raise ValueError(mes)
return
X
return
X
def
_global_X_transform
(
self
,
X
,
views_ind
=
None
):
def
_global_X_transform
(
self
,
X
,
views_ind
=
None
):
...
@@ -97,10 +93,10 @@ class UBoosting(metaclass=ABCMeta):
...
@@ -97,10 +93,10 @@ class UBoosting(metaclass=ABCMeta):
X_
=
MultiModalSparseArray
(
X
,
views_ind
)
X_
=
MultiModalSparseArray
(
X
,
views_ind
)
else
:
else
:
X_
=
MultiModalArray
(
X
,
views_ind
)
X_
=
MultiModalArray
(
X
,
views_ind
)
if
not
isinstance
(
X_
,
MultiModalData
):
#
if not isinstance(X_, MultiModalData):
try
:
#
try:
X_
=
np
.
asarray
(
X
)
#
X_ = np.asarray(X)
X_
=
MultiModalArray
(
X_
)
#
X_ = MultiModalArray(X_)
except
Exception
as
e
:
#
except Exception as e:
raise
TypeError
(
'Reshape your data'
)
#
raise TypeError('Reshape your data')
return
X_
return
X_
multimodal/datasets/data_sample.py
View file @
750b6a8c
...
@@ -365,14 +365,14 @@ class MultiModalArray(np.ndarray, MultiModalData):
...
@@ -365,14 +365,14 @@ class MultiModalArray(np.ndarray, MultiModalData):
views_ind
.
append
(
dat_values
.
shape
[
1
]
+
views_ind
[
index
])
views_ind
.
append
(
dat_values
.
shape
[
1
]
+
views_ind
[
index
])
index
+=
1
index
+=
1
thekeys
=
data
.
keys
()
thekeys
=
data
.
keys
()
if
new_data
.
ndim
<
2
:
#
if new_data.ndim < 2 :
raise
ValueError
(
'Reshape your data'
)
#
raise ValueError('Reshape your data')
if
new_data
.
ndim
>
1
and
(
new_data
.
shape
==
(
1
,
1
)
or
new_data
.
shape
==
()):
if
new_data
.
ndim
>
1
and
(
new_data
.
shape
==
(
1
,
1
)
or
new_data
.
shape
==
()):
raise
ValueError
(
'Reshape your data'
)
raise
ValueError
(
'Reshape your data'
)
elif
isinstance
(
data
,
np
.
ndarray
)
and
views_ind
is
None
and
data
.
ndim
==
1
:
elif
isinstance
(
data
,
np
.
ndarray
)
and
views_ind
is
None
and
data
.
ndim
==
1
:
try
:
try
:
dat0
=
np
.
array
(
data
[
0
])
dat0
=
np
.
array
(
data
[
0
])
except
Exception
:
except
Exception
:
# pragma: no cover
raise
TypeError
(
"input format is not supported"
)
raise
TypeError
(
"input format is not supported"
)
if
dat0
.
ndim
<
2
:
if
dat0
.
ndim
<
2
:
...
@@ -388,13 +388,13 @@ class MultiModalArray(np.ndarray, MultiModalData):
...
@@ -388,13 +388,13 @@ class MultiModalArray(np.ndarray, MultiModalData):
elif
(
isinstance
(
data
,
np
.
ndarray
)
)
and
data
.
ndim
>
1
:
elif
(
isinstance
(
data
,
np
.
ndarray
)
)
and
data
.
ndim
>
1
:
try
:
try
:
data
=
np
.
asarray
(
data
)
data
=
np
.
asarray
(
data
)
except
:
except
:
# pragma: no cover
raise
TypeError
(
"input format is not supported"
)
raise
TypeError
(
"input format is not supported"
)
if
views_ind
is
not
None
:
if
views_ind
is
not
None
:
try
:
try
:
views_ind
=
np
.
asarray
(
views_ind
)
views_ind
=
np
.
asarray
(
views_ind
)
except
:
except
:
# pragma: no cover
raise
TypeError
(
"n_views should be list or nparray"
)
raise
TypeError
(
"n_views should be list or nparray"
)
elif
views_ind
is
None
:
elif
views_ind
is
None
:
if
data
.
shape
[
1
]
>
1
:
if
data
.
shape
[
1
]
>
1
:
...
@@ -413,7 +413,7 @@ class MultiModalArray(np.ndarray, MultiModalData):
...
@@ -413,7 +413,7 @@ class MultiModalArray(np.ndarray, MultiModalData):
elif
not
isinstance
(
views_ind
,
np
.
ndarray
):
elif
not
isinstance
(
views_ind
,
np
.
ndarray
):
try
:
try
:
views_ind
=
np
.
asarray
(
views_ind
)
views_ind
=
np
.
asarray
(
views_ind
)
except
Exception
:
except
Exception
:
# pragma: no cover
raise
TypeError
(
"format of views_ind is not list or nd array"
)
raise
TypeError
(
"format of views_ind is not list or nd array"
)
except
Exception
as
e
:
except
Exception
as
e
:
raise
ValueError
(
'Reshape your data'
)
raise
ValueError
(
'Reshape your data'
)
...
@@ -421,8 +421,8 @@ class MultiModalArray(np.ndarray, MultiModalData):
...
@@ -421,8 +421,8 @@ class MultiModalArray(np.ndarray, MultiModalData):
raise
ValueError
(
'Reshape your data'
)
raise
ValueError
(
'Reshape your data'
)
if
new_data
.
ndim
>
1
and
(
new_data
.
shape
==
(
1
,
1
)
or
new_data
.
shape
==
()):
if
new_data
.
ndim
>
1
and
(
new_data
.
shape
==
(
1
,
1
)
or
new_data
.
shape
==
()):
raise
ValueError
(
'Reshape your data'
)
raise
ValueError
(
'Reshape your data'
)
if
views_ind
.
ndim
<
2
and
new_data
.
ndim
<
2
and
views_ind
[
-
1
]
>
new_data
.
shape
[
1
]:
#
if views_ind.ndim < 2 and new_data.ndim < 2 and views_ind[-1] > new_data.shape[1]:
raise
ValueError
(
'Reshape your data'
)
#
raise ValueError('Reshape your data')
# views_ind_self = views_ind
# views_ind_self = views_ind
# if new_data.shape[1] < 1:
# if new_data.shape[1] < 1:
...
@@ -437,7 +437,7 @@ class MultiModalArray(np.ndarray, MultiModalData):
...
@@ -437,7 +437,7 @@ class MultiModalArray(np.ndarray, MultiModalData):
# obj = ma.MaskedArray.__new(new_data) # new_data.view() a.MaskedArray(new_data, mask=new_data.mask).view(cls)
# obj = ma.MaskedArray.__new(new_data) # new_data.view() a.MaskedArray(new_data, mask=new_data.mask).view(cls)
# bj = super(Metriclearn_array, cls).__new__(cls, new_data.data, new_data.mask)
# bj = super(Metriclearn_array, cls).__new__(cls, new_data.data, new_data.mask)
if
hasattr
(
new_data
,
"mask"
):
if
hasattr
(
new_data
,
"mask"
):
# pragma: no cover
obj
=
ma
.
masked_array
(
new_data
.
data
,
new_data
.
mask
).
view
(
cls
)
obj
=
ma
.
masked_array
(
new_data
.
data
,
new_data
.
mask
).
view
(
cls
)
elif
hasattr
(
new_data
,
"data"
)
and
\
elif
hasattr
(
new_data
,
"data"
)
and
\
hasattr
(
new_data
,
"shape"
)
and
len
(
new_data
.
shape
)
>
0
:
hasattr
(
new_data
,
"shape"
)
and
len
(
new_data
.
shape
)
>
0
:
...
@@ -462,7 +462,7 @@ class MultiModalArray(np.ndarray, MultiModalData):
...
@@ -462,7 +462,7 @@ class MultiModalArray(np.ndarray, MultiModalData):
for
dat_values
in
data
:
for
dat_values
in
data
:
try
:
try
:
dat_values
=
np
.
array
(
dat_values
)
dat_values
=
np
.
array
(
dat_values
)
except
Exception
:
except
Exception
:
# pragma: no cover
raise
TypeError
(
"input format is not supported"
)
raise
TypeError
(
"input format is not supported"
)
new_data
=
cls
.
_populate_new_data
(
index
,
dat_values
,
new_data
)
new_data
=
cls
.
_populate_new_data
(
index
,
dat_values
,
new_data
)
views_ind
[
index
+
1
]
=
dat_values
.
shape
[
1
]
+
views_ind
[
index
]
views_ind
[
index
+
1
]
=
dat_values
.
shape
[
1
]
+
views_ind
[
index
]
...
@@ -471,7 +471,8 @@ class MultiModalArray(np.ndarray, MultiModalData):
...
@@ -471,7 +471,8 @@ class MultiModalArray(np.ndarray, MultiModalData):
return
new_data
,
shapes_int
,
views_ind
return
new_data
,
shapes_int
,
views_ind
@
staticmethod
@
staticmethod
def
_populate_new_data
(
index
,
dat_values
,
new_data
):
def
_populate_new_data
(
index
,
dat_values
,
new_data
):
# pragma: no cover
"""Work in progress : including missing data"""
if
index
==
0
:
if
index
==
0
:
if
isinstance
(
dat_values
,
ma
.
MaskedArray
)
or
\
if
isinstance
(
dat_values
,
ma
.
MaskedArray
)
or
\
isinstance
(
dat_values
,
np
.
ndarray
)
or
sp
.
issparse
(
dat_values
):
isinstance
(
dat_values
,
np
.
ndarray
)
or
sp
.
issparse
(
dat_values
):
...
@@ -525,30 +526,32 @@ class MultiModalArray(np.ndarray, MultiModalData):
...
@@ -525,30 +526,32 @@ class MultiModalArray(np.ndarray, MultiModalData):
def
set_view
(
self
,
view
,
data
):
def
set_view
(
self
,
view
,
data
):
start
=
int
(
np
.
sum
(
np
.
asarray
(
self
.
shapes_int
[
0
:
view
])))
start
=
int
(
np
.
sum
(
np
.
asarray
(
self
.
shapes_int
[
0
:
view
])))
stop
=
int
(
start
+
self
.
shapes_int
[
view
])
stop
=
int
(
start
+
self
.
shapes_int
[
view
])
if
stop
-
start
==
data
.
shape
[
0
]
and
data
.
shape
[
1
]
==
self
.
data
.
shape
[
1
]:
if
stop
-
start
==
data
.
shape
[
1
]
and
data
.
shape
[
0
]
==
self
.
data
.
shape
[
0
]:
self
[:,
start
:
stop
]
=
data
self
[:,
start
:
stop
]
=
data
else
:
else
:
raise
ValueError
(
raise
ValueError
(
"shape of data does not match (%d, %d)"
%
stop
-
start
%
self
.
data
.
shape
[
1
])
"shape of data does not match (%d, %d)"
%
(
stop
-
start
,
self
.
data
.
shape
[
0
])
)
def
get_raw
(
self
,
view
,
raw
):
def
get_row
(
self
,
view
,
row
):
start
=
np
.
sum
(
np
.
asarray
(
self
.
shapes_int
[
0
:
view
]))
start
=
int
(
np
.
sum
(
np
.
asarray
(
self
.
shapes_int
[
0
:
view
])))
stop
=
np
.
sum
(
np
.
asarray
(
self
.
shapes_int
[
0
:
view
+
1
]))
stop
=
int
(
np
.
sum
(
np
.
asarray
(
self
.
shapes_int
[
0
:
view
+
1
])))
return
self
.
data
[
start
:
stop
,
raw
]
return
self
[
row
,
start
:
stop
]
def
add_view
(
self
,
v
,
data
):
# def add_view(self, data):
if
len
(
self
.
shape
)
>
0
:
# if len(self.shape) > 0:
if
data
.
shape
[
0
]
==
self
.
data
.
shape
[
0
]:
# if data.shape[0] == self.data.shape[0]:
indice
=
self
.
shapes_int
[
v
]
# print(self.data.shape, data.shape)
np
.
insert
(
self
.
data
,
data
,
indice
+
1
,
axis
=
0
)
# new_data = np.hstack((self.data, data))
self
.
shapes_int
.
append
(
data
.
shape
[
1
])
# self.shapes_int.append(data.shape[1])
self
.
n_views
+=
1
# self.n_views +=1
else
:
# print(new_data.shape)
raise
ValueError
(
"New view can't initialazed"
)
#
# self.shapes_int= [data.shape[1]]
# else:
# self.data.reshape(data.shape[0],)
# raise ValueError("New view can't initialazed")
# np.insert(self.data, data, 0)
# # self.shapes_int= [data.shape[1]]
# self.n_views = 1
# # self.data.reshape(data.shape[0],)
# # np.insert(self.data, data, 0)
# # self.n_views = 1
def
_todict
(
self
):
def
_todict
(
self
):
dico
=
{}
dico
=
{}
...
...
multimodal/kernels/mkernel.py
View file @
750b6a8c
...
@@ -124,22 +124,22 @@ class MKernel(metaclass=ABCMeta):
...
@@ -124,22 +124,22 @@ class MKernel(metaclass=ABCMeta):
X
=
X_
X
=
X_
if
isinstance
(
X
,
MultiModalArray
):
if
isinstance
(
X
,
MultiModalArray
):
X_
=
X
X_
=
X
if
not
isinstance
(
X_
,
MultiModalArray
):
#
if not isinstance(X_, MultiModalArray):
try
:
#
try:
X_
=
np
.
asarray
(
X
)
#
X_ = np.asarray(X)
X_
=
MultiModalArray
(
X_
,
views_ind
)
#
X_ = MultiModalArray(X_, views_ind)
except
Exception
as
e
:
#
except Exception as e:
pass
#
pass
# raise TypeError('Reshape your data')
# raise TypeError('Reshape your data')
if
isinstance
(
X_
,
MultiModalArray
):
if
isinstance
(
X_
,
MultiModalArray
):
for
v
in
range
(
X
.
n_views
):
for
v
in
range
(
X
.
n_views
):
if
Y
is
not
None
:
y
=
Y
.
get_view
(
v
)
# y = self._global_check_pairwise(X, Y, v)
if
Y
is
not
None
:
y
=
Y
.
get_view
(
v
)
# y = self._global_check_pairwise(X, Y, v)
kernel_dict
[
v
]
=
self
.
_get_kernel
(
X_
.
get_view
(
v
),
y
)
kernel_dict
[
v
]
=
self
.
_get_kernel
(
X_
.
get_view
(
v
),
y
)
if
not
isinstance
(
X_
,
MultiModalArray
):
#
if not isinstance(X_, MultiModalArray):
if
sp
.
sparse
.
issparse
(
X
):
#
if sp.sparse.issparse(X):
raise
TypeError
(
"Nonsensical Error: no sparse data are allowed as input"
)
#
raise TypeError("Nonsensical Error: no sparse data are allowed as input")
raise
TypeError
(
'Reshape your data'
)
#
raise TypeError('Reshape your data')
K_
=
MultiModalArray
(
kernel_dict
)
K_
=
MultiModalArray
(
kernel_dict
)
return
X_
,
K_
return
X_
,
K_
...
...
multimodal/tests/test_combo.py
View file @
750b6a8c
...
@@ -374,6 +374,8 @@ class TestMuComboClassifier(unittest.TestCase):
...
@@ -374,6 +374,8 @@ class TestMuComboClassifier(unittest.TestCase):
[
4.49110023
,
1.
,
-
2.
],
[
4.49110023
,
1.
,
-
2.
],
[
8.
,
2.49110023
,
1.
]]])
[
8.
,
2.49110023
,
1.
]]])
np
.
testing
.
assert_almost_equal
(
label_score
,
expected_label_score
,
6
)
np
.
testing
.
assert_almost_equal
(
label_score
,
expected_label_score
,
6
)
#
#
# label_score = np.array(
# label_score = np.array(
# [[[-1, -2, 4], [-8, 1, 4], [2, 8, -4], [2, -1, 4]],
# [[[-1, -2, 4], [-8, 1, 4], [2, 8, -4], [2, -1, 4]],
...
...
multimodal/tests/test_data_sample.py
View file @
750b6a8c
...
@@ -47,6 +47,7 @@ from multimodal.tests.datasets.get_dataset_path import get_dataset_path
...
@@ -47,6 +47,7 @@ from multimodal.tests.datasets.get_dataset_path import get_dataset_path
from
multimodal.datasets.data_sample
import
MultiModalArray
from
multimodal.datasets.data_sample
import
MultiModalArray
import
pickle
import
pickle
class
UnitaryTest
(
unittest
.
TestCase
):
class
UnitaryTest
(
unittest
.
TestCase
):
@
classmethod
@
classmethod
...
@@ -85,6 +86,44 @@ class UnitaryTest(unittest.TestCase):
...
@@ -85,6 +86,44 @@ class UnitaryTest(unittest.TestCase):
array_x
=
a
.
data
array_x
=
a
.
data
b
=
MultiModalArray
(
a
)
b
=
MultiModalArray
(
a
)
np
.
testing
.
assert_equal
(
b
.
views_ind
,
np
.
array
([
0
,
120
,
240
]))
np
.
testing
.
assert_equal
(
b
.
views_ind
,
np
.
array
([
0
,
120
,
240
]))
view_1
=
np
.
random
.
randint
(
1
,
10
,
10
)
view_2
=
np
.
random
.
randint
(
1
,
10
,
11
)
data
=
{
0
:
view_1
,
1
:
view_2
,}
c
=
MultiModalArray
(
data
)
np
.
testing
.
assert_array_equal
(
np
.
asarray
(
c
[
0
,:]),
np
.
concatenate
((
view_1
,
view_2
)))
view_1
=
np
.
random
.
randint
(
1
,
10
,
1
)
data
=
{
0
:
view_1
,
}
self
.
assertRaises
(
ValueError
,
MultiModalArray
,
data
)
view_1
=
np
.
array
([
0
,])
data
=
view_1
d
=
MultiModalArray
(
data
)
np
.
testing
.
assert_array_equal
(
d
.
views_ind
,
np
.
array
([
0
,
1
]))
view_1
=
[[
0
]]
data
=
view_1
self
.
assertRaises
(
ValueError
,
MultiModalArray
,
data
)
view_1
=
[[
0
,
1
,
2
],[
0
,
1
,
2
]]
data
=
view_1
d
=
MultiModalArray
(
data
,
[
0
,
1
])
np
.
testing
.
assert_array_equal
(
d
.
views_ind
,
np
.
array
([
0
,
1
]))
view_1
=
[[
0
]]
data
=
view_1
self
.
assertRaises
(
ValueError
,
MultiModalArray
,
data
)
def
test_view_functions
(
self
):
view_1
=
np
.
random
.
randint
(
1
,
10
,
(
5
,
10
))
view_2
=
np
.
random
.
randint
(
1
,
10
,
(
5
,
10
))
view_3
=
np
.
random
.
randint
(
1
,
10
,
(
5
,
10
))
data
=
{
0
:
view_1
,
1
:
view_2
,
}
c
=
MultiModalArray
(
data
)
c
.
set_view
(
1
,
view_3
)
np
.
testing
.
assert_array_equal
(
c
.
get_view
(
1
),
view_3
)
view_3
=
np
.
random
.
randint
(
1
,
10
,
(
12
,
10
))
c
=
MultiModalArray
(
data
)
self
.
assertRaises
(
ValueError
,
c
.
set_view
,
1
,
view_3
)
np
.
testing
.
assert_array_equal
(
c
.
get_row
(
0
,
2
),
view_1
[
2
,
:])
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
...
...
multimodal/tests/test_mumbo.py
View file @
750b6a8c
...
@@ -909,6 +909,18 @@ class TestMumboClassifier(unittest.TestCase):
...
@@ -909,6 +909,18 @@ class TestMumboClassifier(unittest.TestCase):
else
:
else
:
self
.
assertTrue
(
all
([
issubclass
(
type_
,
csr_matrix
)
for
type_
in
types
]))
self
.
assertTrue
(
all
([
issubclass
(
type_
,
csr_matrix
)
for
type_
in
types
]))
def
test_validate_X_predict
(
self
):
clf
=
MumboClassifier
()
X
=
np
.
random
.
randint
(
1
,
10
,
(
2
,
10
))
y
=
[
1
,
0
]
clf
.
fit
(
X
,
y
)
X_pred
=
np
.
random
.
randint
(
1
,
10
,
10
)
self
.
assertRaises
(
ValueError
,
clf
.
_validate_X_predict
,
X_pred
)
X_pred
=
np
.
random
.
randint
(
1
,
10
,
9
)
self
.
assertRaises
(
ValueError
,
clf
.
_validate_X_predict
,
X_pred
)
X_pred
=
np
.
random
.
randint
(
1
,
10
,
(
2
,
9
))
self
.
assertRaises
(
ValueError
,
clf
.
_validate_X_predict
,
X_pred
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
unittest
.
main
()
unittest
.
main
()
\ No newline at end of file
multimodal/tests/test_mvml.py
View file @
750b6a8c
...
@@ -43,6 +43,7 @@ import pickle
...
@@ -43,6 +43,7 @@ import pickle
import
unittest
import
unittest
import
numpy
as
np
import
numpy
as
np
import
scipy
as
sp
from
sklearn.exceptions
import
NotFittedError
from
sklearn.exceptions
import
NotFittedError
from
multimodal.datasets.data_sample
import
MultiModalArray
from
multimodal.datasets.data_sample
import
MultiModalArray
...
@@ -271,6 +272,21 @@ class MVMLTest(unittest.TestCase):
...
@@ -271,6 +272,21 @@ class MVMLTest(unittest.TestCase):
pass
pass
# return check_estimator(MVML)
# return check_estimator(MVML)
def
test_check_kernel
(
self
):
clf
=
MVML
()
clf
.
kernel
=
"an_unknown_kernel"
self
.
assertRaises
(
ValueError
,
clf
.
_check_kernel
)
def
testFitMVMLSparesArray
(
self
):
#######################################################
# task with nparray 2d
#######################################################
x_metricl
=
MultiModalArray
(
self
.
kernel_dict
)
x_array
=
np
.
asarray
(
x_metricl
)
x_array_sparse
=
sp
.
sparse
.
csr_matrix
(
x_array
)
mvml3
=
MVML
(
lmbda
=
0.1
,
eta
=
1
,
nystrom_param
=
1.0
)
self
.
assertRaises
(
TypeError
,
mvml3
.
fit
,
x_array_sparse
,
self
.
y
,
[
0
,
120
,
240
])
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
# import sys;sys.argv = ['', 'Test.testName']
# import sys;sys.argv = ['', 'Test.testName']
unittest
.
main
()
unittest
.
main
()
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment