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
9 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
9 results
Show changes
Commits on Source (2)
......@@ -3,7 +3,7 @@ from sklearn.preprocessing import LabelBinarizer
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 ..monoview.monoview_utils import BaseMonoviewClassifier
......@@ -13,28 +13,30 @@ from ..monoview_classifiers.spkm import SPKM
classifier_class_name = "BaggedSPKM"
proto=True
class BaggedSPKM(BaseMonoviewClassifier, SPKMlikeSklearn):
class BaggedSPKM(BaseMonoviewClassifier, SPKMl2l1likeSklearn):
def __init__(self, random_state=42, n_u=2, kernel=RBFKernel(0.5),
spkmregP=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2], **kwargs):
spkmregP_01=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2],
spkm_l1_regstyle="l1ball", **kwargs):
SPKM.__init__(self, random_state=random_state,
n_u=n_u,
kernel=kernel,
spkmregP=spkmregP,
spkmregP_01=spkmregP_01,
spkminit=spkminit,
nspkminits=nspkminits,
preprocessinglist=preprocessinglist)
preprocessinglist=preprocessinglist,
spkm_l1_regstyle=spkm_l1_regstyle)
self.rus = RandomUnderSampler(random_state=random_state)
def fit(self, X, y):
self.lb = LabelBinarizer(pos_label=1, neg_label=-1)
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):
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):
u = self.feature_interpretability()
......
......@@ -25,20 +25,22 @@ class SCMboost(AdaBoostClassifier, BaseMonoviewClassifier):
"""
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):
if "base_estimator__p" in kwargs:
base_estimator.p = kwargs["base_estimator__p"]
if "base_estimator__model_type" in kwargs:
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,
random_state=random_state,
n_estimators=n_estimators,
base_estimator=base_estimator,
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.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 = {}
......
import numpy as np
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 ..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
classifier_class_name = "SPKM"
proto=True
class SPKM(BaseMonoviewClassifier, SPKMlikeSklearn):
class SPKM(BaseMonoviewClassifier, SPKMl2l1likeSklearn):
def __init__(self, random_state=42, n_u=2, kernel=RBFKernel(0.5),
spkmregP=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2], **kwargs):
spkmregP_01=1, spkminit="randn",
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,
kernel=kernel,
spkmregP=spkmregP,
spkmregP_01=spkmregP_01,
spkminit=spkminit,
nspkminits=nspkminits,
preprocessinglist=preprocessinglist)
self.param_names = ["n_u", "kernel", "spkmregP",
preprocessinglist=preprocessinglist,
spkm_l1_regstyle=spkm_l1_regstyle)
self.param_names = ["n_u", "kernel", "spkmregP_01",
"spkminit", "nspkminits", "preprocessinglist",
"spkm_l1_regstyle",
"random_state"]
self.distribs = [[2], [PolyKernel({"d":3, "r":1}), RBFKernel(0.5)],
CustomRandint(-4,4, multiplier='e'),
CustomUniform(),
["data"], [10],
[[0,1],],
[[0,1],[0,1,2]], ["l1ball", "proxgd"]
[random_state],]
self.more_than_two_views = False
self.weird_strings = []
......@@ -39,10 +42,10 @@ class SPKM(BaseMonoviewClassifier, SPKMlikeSklearn):
def fit(self, X, y):
self.lb = LabelBinarizer(pos_label=1, neg_label=-1)
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):
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):
u = self.feature_interpretability()
......
......@@ -3,7 +3,7 @@ from sklearn.preprocessing import LabelBinarizer
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 ..multiview.multiview_utils import BaseMultiviewClassifier
......@@ -16,16 +16,18 @@ classifier_class_name = "SampledPWSPKM"
class SampledPWSPKM(PWSPKM,):
def __init__(self, random_state=42, n_u=2, kernel1=RBFKernel(0.5),
kernel2=RBFKernel(0.5), spkmregP=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2], **kwargs):
kernel2=RBFKernel(0.5), spkmregP_01=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2], spkm_l1_regstyle="l1ball",
**kwargs):
PWSPKM.__init__(self, random_state=random_state,
n_u=n_u,
kernel1=kernel1,
kernel2=kernel2,
spkmregP=spkmregP,
spkmregP_01=spkmregP_01,
spkminit=spkminit,
nspkminits=nspkminits,
preprocessinglist=preprocessinglist)
preprocessinglist=preprocessinglist,
spkm_l1_regstyle=spkm_l1_regstyle)
self.rus = RandomUnderSampler(random_state=random_state)
def fit(self, X, y, train_indices=None, view_indices=None):
......@@ -46,4 +48,4 @@ class SampledPWSPKM(PWSPKM,):
for view_index in view_indices]
self.rus.fit_resample(view_list[0], y[train_indices])
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
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 ..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
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),
kernel2=RBFKernel(0.5), spkmregP=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2], **kwargs):
kernel2=RBFKernel(0.5), spkmregP_01=1, spkminit="randn",
nspkminits=10, preprocessinglist=[0,1,2],
spkm_l1_regstyle="l1ball", **kwargs):
BaseMultiviewClassifier.__init__(self, random_state)
pairwiseSPKMlikeSklearn.__init__(self, random_state=random_state,
pairwiseSPKMl2l1likeSklearn.__init__(self, random_state=random_state,
n_u=n_u,
kernel1=kernel1,
kernel2=kernel2,
spkmregP=spkmregP,
spkmregP_01=spkmregP_01,
spkminit=spkminit,
nspkminits=nspkminits,
preprocessinglist=preprocessinglist)
self.param_names = ["n_u", "kernel1", "kernel2", "spkmregP",
preprocessinglist=preprocessinglist,
spkm_l1_regstyle=spkm_l1_regstyle)
self.param_names = ["n_u", "kernel1", "kernel2", "spkmregP_01",
"spkminit", "nspkminits", "preprocessinglist",
"spkm_l1_regstyle",
"random_state"]
self.distribs = [[2], [PolyKernel({"d":3, "r":1}), RBFKernel(0.5)],
[PolyKernel({"d":3, "r":1}), RBFKernel(0.5)],
CustomRandint(-4,4, multiplier='e'),
CustomUniform(),
["data"], [10],
[[0,1],],
[[0,1],[0,1,2]], ["l1ball", "proxgd"]
[random_state],]
self.more_than_two_views = False
self.random_state = random_state
......@@ -40,7 +43,6 @@ class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn):
def fit(self, X, y, train_indices=None, view_indices=None):
self.lb = LabelBinarizer(pos_label=1, neg_label=-1)
y = self.lb.fit_transform(y)
print(np.unique(y))
train_indices, view_indices = get_samples_views_indices(X,
train_indices,
view_indices)
......@@ -53,7 +55,7 @@ class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn):
for view_index in view_indices]
view_list = [X.get_v(view_index)[train_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):
if self.more_than_two_views:
......@@ -65,7 +67,7 @@ class PWSPKM(BaseMultiviewClassifier, pairwiseSPKMlikeSklearn):
view_list = [X.get_v(view_index)[sample_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):
u, v = self.feature_interpretability()
......