Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • SMOTE
  • archive
  • cuisine
  • develop
  • master
  • no_graphviz
  • object
  • private_algos
  • revert-76c4cca5
  • 0.0.1
10 results

Target

Select target project
  • baptiste.bauvin/summit
1 result
Select Git revision
  • SMOTE
  • archive
  • cuisine
  • develop
  • master
  • no_graphviz
  • object
  • private_algos
  • revert-76c4cca5
  • 0.0.1
10 results
Show changes
Commits on Source (2)
...@@ -3,7 +3,7 @@ from sklearn.preprocessing import LabelBinarizer ...@@ -3,7 +3,7 @@ from sklearn.preprocessing import LabelBinarizer
from imblearn.under_sampling import RandomUnderSampler from imblearn.under_sampling import RandomUnderSampler
from spkm.spkm_wrapper import SPKMlikeSklearn from spkm.spkm_wrapper import SPKMl2l1likeSklearn
from spkm.kernels_and_gradients import RBFKernel, PolyKernel from spkm.kernels_and_gradients import RBFKernel, PolyKernel
from ..monoview.monoview_utils import BaseMonoviewClassifier from ..monoview.monoview_utils import BaseMonoviewClassifier
...@@ -13,28 +13,30 @@ from ..monoview_classifiers.spkm import SPKM ...@@ -13,28 +13,30 @@ from ..monoview_classifiers.spkm import SPKM
classifier_class_name = "BaggedSPKM" classifier_class_name = "BaggedSPKM"
proto=True proto=True
class BaggedSPKM(BaseMonoviewClassifier, SPKMlikeSklearn): class BaggedSPKM(BaseMonoviewClassifier, SPKMl2l1likeSklearn):
def __init__(self, random_state=42, n_u=2, kernel=RBFKernel(0.5), def __init__(self, random_state=42, n_u=2, kernel=RBFKernel(0.5),
spkmregP=1, spkminit="randn", spkmregP_01=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2], **kwargs): nspkminits=10, preprocessinglist=[0,1,2],
spkm_l1_regstyle="l1ball", **kwargs):
SPKM.__init__(self, random_state=random_state, SPKM.__init__(self, random_state=random_state,
n_u=n_u, n_u=n_u,
kernel=kernel, kernel=kernel,
spkmregP=spkmregP, spkmregP_01=spkmregP_01,
spkminit=spkminit, spkminit=spkminit,
nspkminits=nspkminits, nspkminits=nspkminits,
preprocessinglist=preprocessinglist) preprocessinglist=preprocessinglist,
spkm_l1_regstyle=spkm_l1_regstyle)
self.rus = RandomUnderSampler(random_state=random_state) self.rus = RandomUnderSampler(random_state=random_state)
def fit(self, X, y): def fit(self, X, y):
self.lb = LabelBinarizer(pos_label=1, neg_label=-1) self.lb = LabelBinarizer(pos_label=1, neg_label=-1)
y = self.lb.fit_transform(y) y = self.lb.fit_transform(y)
return SPKMlikeSklearn.fit(self, X, y[:,0],) return SPKMl2l1likeSklearn.fit(self, X, y[:,0],)
def predict(self, X, preprocess=True): def predict(self, X, preprocess=True):
return self.lb.inverse_transform(np.sign(SPKMlikeSklearn.predict(self, X))) return self.lb.inverse_transform(np.sign(SPKMl2l1likeSklearn.predict(self, X)))
def get_interpretation(self, directory, base_file_name, labels, multiclass=False): def get_interpretation(self, directory, base_file_name, labels, multiclass=False):
u = self.feature_interpretability() u = self.feature_interpretability()
......
...@@ -25,20 +25,22 @@ class SCMboost(AdaBoostClassifier, BaseMonoviewClassifier): ...@@ -25,20 +25,22 @@ class SCMboost(AdaBoostClassifier, BaseMonoviewClassifier):
""" """
def __init__(self, random_state=None, n_estimators=50, def __init__(self, random_state=None, n_estimators=50,
base_estimator=SCM(p=0.49, max_rules=10, model_type="conjunction"), base_estimator=SCM(p=0.49, max_rules=1, model_type="conjunction"),
**kwargs): **kwargs):
if "base_estimator__p" in kwargs: if "base_estimator__p" in kwargs:
base_estimator.p = kwargs["base_estimator__p"] base_estimator.p = kwargs["base_estimator__p"]
if "base_estimator__model_type" in kwargs: if "base_estimator__model_type" in kwargs:
base_estimator.model_type = kwargs["base_estimator__model_type"] base_estimator.model_type = kwargs["base_estimator__model_type"]
if "base_estimator__max_rules" in kwargs:
base_estimator.max_rules = kwargs["base_estimator__max_rules"]
AdaBoostClassifier.__init__(self, AdaBoostClassifier.__init__(self,
random_state=random_state, random_state=random_state,
n_estimators=n_estimators, n_estimators=n_estimators,
base_estimator=base_estimator, base_estimator=base_estimator,
algorithm="SAMME",) algorithm="SAMME",)
self.param_names = ["n_estimators", "base_estimator__p", "base_estimator__model_type"] self.param_names = ["n_estimators", "base_estimator__p", "base_estimator__model_type", "base_estimator__max_rules"]
self.classed_params = [] self.classed_params = []
self.distribs = [CustomRandint(low=1, high=100), CustomUniform(loc=0, state=1), ["conjunction", "disjunction"]] self.distribs = [CustomRandint(low=1, high=100), CustomUniform(loc=0, state=1), ["conjunction", "disjunction"], CustomRandint(low=1, high=20)]
self.weird_strings = {} self.weird_strings = {}
......
import numpy as np import numpy as np
from sklearn.preprocessing import LabelBinarizer from sklearn.preprocessing import LabelBinarizer
from spkm.spkm_wrapper import SPKMlikeSklearn from spkm.spkm_wrapper import SPKMl2l1likeSklearn
from spkm.kernels_and_gradients import RBFKernel, PolyKernel from spkm.kernels_and_gradients import RBFKernel, PolyKernel
from ..monoview.monoview_utils import BaseMonoviewClassifier from ..monoview.monoview_utils import BaseMonoviewClassifier
from ..utils.hyper_parameter_search import CustomRandint from ..utils.hyper_parameter_search import CustomUniform
from ..utils.dataset import get_samples_views_indices from ..utils.dataset import get_samples_views_indices
classifier_class_name = "SPKM" classifier_class_name = "SPKM"
proto=True proto=True
class SPKM(BaseMonoviewClassifier, SPKMlikeSklearn): class SPKM(BaseMonoviewClassifier, SPKMl2l1likeSklearn):
def __init__(self, random_state=42, n_u=2, kernel=RBFKernel(0.5), def __init__(self, random_state=42, n_u=2, kernel=RBFKernel(0.5),
spkmregP=1, spkminit="randn", spkmregP_01=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2], **kwargs): nspkminits=10, preprocessinglist=[0,1,2],
spkm_l1_regstyle="l1ball",**kwargs):
SPKMlikeSklearn.__init__(self, random_state=random_state, SPKMl2l1likeSklearn.__init__(self, random_state=random_state,
n_u=n_u, n_u=n_u,
kernel=kernel, kernel=kernel,
spkmregP=spkmregP, spkmregP_01=spkmregP_01,
spkminit=spkminit, spkminit=spkminit,
nspkminits=nspkminits, nspkminits=nspkminits,
preprocessinglist=preprocessinglist) preprocessinglist=preprocessinglist,
self.param_names = ["n_u", "kernel", "spkmregP", spkm_l1_regstyle=spkm_l1_regstyle)
self.param_names = ["n_u", "kernel", "spkmregP_01",
"spkminit", "nspkminits", "preprocessinglist", "spkminit", "nspkminits", "preprocessinglist",
"spkm_l1_regstyle",
"random_state"] "random_state"]
self.distribs = [[2], [PolyKernel({"d":3, "r":1}), RBFKernel(0.5)], self.distribs = [[2], [PolyKernel({"d":3, "r":1}), RBFKernel(0.5)],
CustomRandint(-4,4, multiplier='e'), CustomUniform(),
["data"], [10], ["data"], [10],
[[0,1],], [[0,1],[0,1,2]], ["l1ball", "proxgd"]
[random_state],] [random_state],]
self.more_than_two_views = False self.more_than_two_views = False
self.weird_strings = [] self.weird_strings = []
...@@ -39,10 +42,10 @@ class SPKM(BaseMonoviewClassifier, SPKMlikeSklearn): ...@@ -39,10 +42,10 @@ class SPKM(BaseMonoviewClassifier, SPKMlikeSklearn):
def fit(self, X, y): def fit(self, X, y):
self.lb = LabelBinarizer(pos_label=1, neg_label=-1) self.lb = LabelBinarizer(pos_label=1, neg_label=-1)
y = self.lb.fit_transform(y) y = self.lb.fit_transform(y)
return SPKMlikeSklearn.fit(self, X, y[:,0],) return SPKMl2l1likeSklearn.fit(self, X, y[:,0],)
def predict(self, X, preprocess=True): def predict(self, X, preprocess=True):
return self.lb.inverse_transform(np.sign(SPKMlikeSklearn.predict(self, X))) return self.lb.inverse_transform(np.sign(SPKMl2l1likeSklearn.predict(self, X)))
def get_interpretation(self, directory, base_file_name, labels, multiclass=False): def get_interpretation(self, directory, base_file_name, labels, multiclass=False):
u = self.feature_interpretability() u = self.feature_interpretability()
......
...@@ -3,7 +3,7 @@ from sklearn.preprocessing import LabelBinarizer ...@@ -3,7 +3,7 @@ from sklearn.preprocessing import LabelBinarizer
from imblearn.under_sampling import RandomUnderSampler from imblearn.under_sampling import RandomUnderSampler
from spkm.spkm_wrapper import pairwiseSPKMlikeSklearn from spkm.spkm_wrapper import pairwiseSPKMl2l1likeSklearn
from spkm.kernels_and_gradients import RBFKernel, PolyKernel from spkm.kernels_and_gradients import RBFKernel, PolyKernel
from ..multiview.multiview_utils import BaseMultiviewClassifier from ..multiview.multiview_utils import BaseMultiviewClassifier
...@@ -16,16 +16,18 @@ classifier_class_name = "SampledPWSPKM" ...@@ -16,16 +16,18 @@ classifier_class_name = "SampledPWSPKM"
class SampledPWSPKM(PWSPKM,): class SampledPWSPKM(PWSPKM,):
def __init__(self, random_state=42, n_u=2, kernel1=RBFKernel(0.5), def __init__(self, random_state=42, n_u=2, kernel1=RBFKernel(0.5),
kernel2=RBFKernel(0.5), spkmregP=1, spkminit="randn", kernel2=RBFKernel(0.5), spkmregP_01=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2], **kwargs): nspkminits=10, preprocessinglist=[0,1,2], spkm_l1_regstyle="l1ball",
**kwargs):
PWSPKM.__init__(self, random_state=random_state, PWSPKM.__init__(self, random_state=random_state,
n_u=n_u, n_u=n_u,
kernel1=kernel1, kernel1=kernel1,
kernel2=kernel2, kernel2=kernel2,
spkmregP=spkmregP, spkmregP_01=spkmregP_01,
spkminit=spkminit, spkminit=spkminit,
nspkminits=nspkminits, nspkminits=nspkminits,
preprocessinglist=preprocessinglist) preprocessinglist=preprocessinglist,
spkm_l1_regstyle=spkm_l1_regstyle)
self.rus = RandomUnderSampler(random_state=random_state) self.rus = RandomUnderSampler(random_state=random_state)
def fit(self, X, y, train_indices=None, view_indices=None): def fit(self, X, y, train_indices=None, view_indices=None):
...@@ -46,4 +48,4 @@ class SampledPWSPKM(PWSPKM,): ...@@ -46,4 +48,4 @@ class SampledPWSPKM(PWSPKM,):
for view_index in view_indices] for view_index in view_indices]
self.rus.fit_resample(view_list[0], y[train_indices]) self.rus.fit_resample(view_list[0], y[train_indices])
resampled_list = [X[self.rus.sample_indices_, :] for X in view_list] resampled_list = [X[self.rus.sample_indices_, :] for X in view_list]
return pairwiseSPKMlikeSklearn.fit(self, resampled_list, y[train_indices,0][self.rus.sample_indices_],) return pairwiseSPKMl2l1likeSklearn.fit(self, resampled_list, y[train_indices,0][self.rus.sample_indices_],)
import numpy as np import numpy as np
from sklearn.preprocessing import LabelBinarizer from sklearn.preprocessing import LabelBinarizer
from spkm.spkm_wrapper import pairwiseSPKMlikeSklearn from spkm.spkm_wrapper import pairwiseSPKMl2l1likeSklearn
from spkm.kernels_and_gradients import RBFKernel, PolyKernel from spkm.kernels_and_gradients import RBFKernel, PolyKernel
from ..multiview.multiview_utils import BaseMultiviewClassifier from ..multiview.multiview_utils import BaseMultiviewClassifier
from ..utils.hyper_parameter_search import CustomRandint from ..utils.hyper_parameter_search import CustomUniform
from ..utils.dataset import get_samples_views_indices from ..utils.dataset import get_samples_views_indices
classifier_class_name = "PWSPKM" classifier_class_name = "PWSPKM"
class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn): class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMl2l1likeSklearn):
def __init__(self, random_state=42, n_u=2, kernel1=RBFKernel(0.5), def __init__(self, random_state=42, n_u=2, kernel1=RBFKernel(0.5),
kernel2=RBFKernel(0.5), spkmregP=1, spkminit="randn", kernel2=RBFKernel(0.5), spkmregP_01=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2], **kwargs): nspkminits=10, preprocessinglist=[0,1,2],
spkm_l1_regstyle="l1ball", **kwargs):
BaseMultiviewClassifier.__init__(self, random_state) BaseMultiviewClassifier.__init__(self, random_state)
pairwiseSPKMlikeSklearn.__init__(self, random_state=random_state, pairwiseSPKMl2l1likeSklearn.__init__(self, random_state=random_state,
n_u=n_u, n_u=n_u,
kernel1=kernel1, kernel1=kernel1,
kernel2=kernel2, kernel2=kernel2,
spkmregP=spkmregP, spkmregP_01=spkmregP_01,
spkminit=spkminit, spkminit=spkminit,
nspkminits=nspkminits, nspkminits=nspkminits,
preprocessinglist=preprocessinglist) preprocessinglist=preprocessinglist,
self.param_names = ["n_u", "kernel1", "kernel2", "spkmregP", spkm_l1_regstyle=spkm_l1_regstyle)
self.param_names = ["n_u", "kernel1", "kernel2", "spkmregP_01",
"spkminit", "nspkminits", "preprocessinglist", "spkminit", "nspkminits", "preprocessinglist",
"spkm_l1_regstyle",
"random_state"] "random_state"]
self.distribs = [[2], [PolyKernel({"d":3, "r":1}), RBFKernel(0.5)], self.distribs = [[2], [PolyKernel({"d":3, "r":1}), RBFKernel(0.5)],
[PolyKernel({"d":3, "r":1}), RBFKernel(0.5)], [PolyKernel({"d":3, "r":1}), RBFKernel(0.5)],
CustomRandint(-4,4, multiplier='e'), CustomUniform(),
["data"], [10], ["data"], [10],
[[0,1],], [[0,1],[0,1,2]], ["l1ball", "proxgd"]
[random_state],] [random_state],]
self.more_than_two_views = False self.more_than_two_views = False
self.random_state = random_state self.random_state = random_state
...@@ -40,7 +43,6 @@ class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn): ...@@ -40,7 +43,6 @@ class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn):
def fit(self, X, y, train_indices=None, view_indices=None): def fit(self, X, y, train_indices=None, view_indices=None):
self.lb = LabelBinarizer(pos_label=1, neg_label=-1) self.lb = LabelBinarizer(pos_label=1, neg_label=-1)
y = self.lb.fit_transform(y) y = self.lb.fit_transform(y)
print(np.unique(y))
train_indices, view_indices = get_samples_views_indices(X, train_indices, view_indices = get_samples_views_indices(X,
train_indices, train_indices,
view_indices) view_indices)
...@@ -53,7 +55,7 @@ class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn): ...@@ -53,7 +55,7 @@ class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn):
for view_index in view_indices] for view_index in view_indices]
view_list = [X.get_v(view_index)[train_indices, :] view_list = [X.get_v(view_index)[train_indices, :]
for view_index in view_indices] for view_index in view_indices]
return pairwiseSPKMlikeSklearn.fit(self, view_list, y[train_indices,0],) return pairwiseSPKMl2l1likeSklearn.fit(self, view_list, y[train_indices,0],)
def predict(self, X, sample_indices=None, view_indices=None): def predict(self, X, sample_indices=None, view_indices=None):
if self.more_than_two_views: if self.more_than_two_views:
...@@ -65,7 +67,7 @@ class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn): ...@@ -65,7 +67,7 @@ class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn):
view_list = [X.get_v(view_index)[sample_indices, :] view_list = [X.get_v(view_index)[sample_indices, :]
for view_index in view_indices] for view_index in view_indices]
return self.lb.inverse_transform(np.sign(pairwiseSPKMlikeSklearn.predict(self, view_list))) return self.lb.inverse_transform(np.sign(pairwiseSPKMl2l1likeSklearn.predict(self, view_list)))
def get_interpretation(self, directory, base_file_name, labels, multiclass=False): def get_interpretation(self, directory, base_file_name, labels, multiclass=False):
u, v = self.feature_interpretability() u, v = self.feature_interpretability()
......