GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

Issues (4082)

Orange/projection/pca.py (24 issues)

1
import sklearn.decomposition as skl_decomposition
0 ignored issues
show
The import sklearn.decomposition could not be resolved.

This can be caused by one of the following:

1. Missing Dependencies

This error could indicate a configuration issue of Pylint. Make sure that your libraries are available by adding the necessary commands.

# .scrutinizer.yml
before_commands:
    - sudo pip install abc # Python2
    - sudo pip3 install abc # Python3
Tip: We are currently not using virtualenv to run pylint, when installing your modules make sure to use the command for the correct version.

2. Missing __init__.py files

This error could also result from missing __init__.py files in your module folders. Make sure that you place one file in each sub-folder.

Loading history...
2
3
try:
4
    from orangecontrib.remote import aborted, save_state
5
except ImportError:
6
    def aborted():
7
        return False
8
9
    def save_state(_):
10
        pass
11
12
import Orange.data
13
from Orange.misc.wrapper_meta import WrapperMeta
14
from Orange.preprocess import Continuize
15
from Orange.projection import SklProjector, Projection
16
17
__all__ = ["PCA", "SparsePCA", "RandomizedPCA", "IncrementalPCA"]
18
19
20
class PCA(SklProjector):
21
    __wraps__ = skl_decomposition.PCA
22
    name = 'pca'
23
24
    def __init__(self, n_components=None, copy=True, whiten=False, preprocessors=None):
0 ignored issues
show
The argument n_components seems to be unused.
Loading history...
The argument whiten seems to be unused.
Loading history...
The argument copy seems to be unused.
Loading history...
25
        super().__init__(preprocessors=preprocessors)
26
        self.params = vars()
27
28
    def fit(self, X, Y=None):
29
        proj = self.__wraps__(**self.params)
30
        proj = proj.fit(X, Y)
31
        return PCAModel(proj, self.domain)
32
33
34
class SparsePCA(SklProjector):
35
    __wraps__ = skl_decomposition.SparsePCA
36
    name = 'sparse pca'
37
38
    def __init__(self, n_components=None, alpha=1, ridge_alpha=0.01,
0 ignored issues
show
The argument n_components seems to be unused.
Loading history...
The argument alpha seems to be unused.
Loading history...
The argument ridge_alpha seems to be unused.
Loading history...
39
                 max_iter=1000, tol=1e-8, method='lars', n_jobs=1, U_init=None,
0 ignored issues
show
The argument method seems to be unused.
Loading history...
The argument tol seems to be unused.
Loading history...
The argument U_init seems to be unused.
Loading history...
The argument n_jobs seems to be unused.
Loading history...
The argument max_iter seems to be unused.
Loading history...
40
                 V_init=None, verbose=False, random_state=None, preprocessors=None):
0 ignored issues
show
The argument V_init seems to be unused.
Loading history...
The argument random_state seems to be unused.
Loading history...
The argument verbose seems to be unused.
Loading history...
41
        super().__init__(preprocessors=preprocessors)
42
        self.params = vars()
43
44
    def fit(self, X, Y=None):
45
        proj = self.__wraps__(**self.params)
46
        proj = proj.fit(X, Y)
47
        return PCAModel(proj, self.domain)
48
49
50
class RandomizedPCA(SklProjector):
51
    __wraps__ = skl_decomposition.RandomizedPCA
52
    name = 'randomized pca'
53
54
    def __init__(self, n_components=None, copy=True, iterated_power=3,
0 ignored issues
show
The argument n_components seems to be unused.
Loading history...
The argument copy seems to be unused.
Loading history...
The argument iterated_power seems to be unused.
Loading history...
55
                 whiten=False, random_state=None, preprocessors=None):
0 ignored issues
show
The argument random_state seems to be unused.
Loading history...
The argument whiten seems to be unused.
Loading history...
56
        super().__init__(preprocessors=preprocessors)
57
        self.params = vars()
58
59
    def fit(self, X, Y=None):
60
        proj = self.__wraps__(**self.params)
61
        proj = proj.fit(X, Y)
62
        return PCAModel(proj, self.domain)
63
64
65
class _LinearCombination:
66
    def __init__(self, attrs, weights, mean=None):
67
        self.attrs = attrs
68
        self.weights = weights
69
        self.mean = mean
70
71
    def __call__(self):
72
        if self.mean is None:
73
            return ' + '.join('{} * {}'.format(w, a.to_sql())
74
                              for a, w in zip(self.attrs, self.weights))
75
        return ' + '.join('{} * ({} - {})'.format(w, a.to_sql(), m, w)
76
            for a, m, w in zip(self.attrs, self.mean, self.weights))
77
78
79
class PCAModel(Projection, metaclass=WrapperMeta):
80
    def __init__(self, proj, domain):
81
        def pca_variable(i):
82
            v = Orange.data.ContinuousVariable(
83
                'PC%d' % (i + 1), compute_value=Projector(self, i))
84
            v.to_sql = _LinearCombination(
85
                domain.attributes, self.components_[i, :],
86
                getattr(self, 'mean_', None))
87
            return v
88
89
        super().__init__(proj=proj)
90
        self.orig_domain = domain
91
        self.n_components = self.components_.shape[0]
92
        self.domain = Orange.data.Domain(
93
            [pca_variable(i) for i in range(self.n_components)],
94
             domain.class_vars, domain.metas)
95
96
97
class IncrementalPCA(SklProjector):
98
    __wraps__ = skl_decomposition.IncrementalPCA
99
    name = 'incremental pca'
100
101
    def __init__(self, n_components=None, whiten=False, copy=True,
0 ignored issues
show
The argument n_components seems to be unused.
Loading history...
The argument copy seems to be unused.
Loading history...
The argument whiten seems to be unused.
Loading history...
102
                 batch_size=None, preprocessors=None):
0 ignored issues
show
The argument batch_size seems to be unused.
Loading history...
103
        super().__init__(preprocessors=preprocessors)
104
        self.params = vars()
105
106
    def fit(self, X, Y=None):
107
        proj = self.__wraps__(**self.params)
108
        proj = proj.fit(X, Y)
109
        return IncrementalPCAModel(proj, self.domain)
110
111
    def partial_fit(self, data):
112
        return self(data)
113
114
115
class IncrementalPCAModel(PCAModel):
116
    def partial_fit(self, data):
117
        if isinstance(data, Orange.data.Storage):
118
            if data.domain != self.pre_domain:
119
                data = data.from_table(self.pre_domain, data)
120
            self.proj.partial_fit(data.X)
121
        else:
122
            self.proj.partial_fit(data)
123
        self.__dict__.update(self.proj.__dict__)
124
        return self
125
126
127
class Projector:
128
    def __init__(self, projection, feature):
129
        self.projection = projection
130
        self.feature = feature
131
        self.transformed = None
132
133
    def __call__(self, data):
134
        if data.domain != self.projection.pre_domain:
135
            data = data.from_table(self.projection.pre_domain, data)
136
        self.transformed = self.projection.transform(data.X)
137
        return self.transformed[:, self.feature]
138
139
    def __getstate__(self):
140
        d = dict(self.__dict__)
141
        d['transformed'] = None
142
        return d
143
144
145
class RemotePCA:
146
    def __new__(cls, data, batch=100, max_iter=100):
147
        cont = Continuize(multinomial_treatment=Continuize.Remove)
148
        data = cont(data)
149
        model = Orange.projection.IncrementalPCA()
150
        percent = batch / data.approx_len() * 100
151
        for i in range(max_iter):
152
            data_sample = data.sample_percentage(percent, no_cache=True)
153
            if not data_sample:
154
                continue
155
            data_sample.download_data(1000000)
156
            data_sample = Orange.data.Table.from_numpy(
157
                Orange.data.Domain(data_sample.domain.attributes),
158
                data_sample.X)
159
            model = model.partial_fit(data_sample)
160
            model.iteration = i
161
            save_state(model)
162
            if aborted() or data_sample is data:
163
                break
164
        return model
165