Ejemplo n.º 1
0
    def predict(self, X):
        y_pred = []
        X = np.array(X)
        m, n = self.X.shape
        k = m
        l = int(math.sqrt(n))

        nb = MultinomialNB()
        nb.row_idxs = np.random.choice(m, k)
        nb.col_idxs = list(set(np.random.choice(n, l)))
        self.X = (X - min(X)) / (max(X) - min(X))
        nb.fit(self.X, self.y)
        for xi in X:
            predictions = {}
        predicted = nb.predict(xi.reshape(1, -1))[0]
        predictions[predicted] = predictions.get(predicted, 0) + 1
        sorted_votes = list(predictions.items())
        sorted_votes.sort(key=operator.itemgetter(1))
        y_pred.append(sorted_votes[-1][0])
        return y_pred