Я пытаюсь использовать следующий код, но когда я пытаюсь использовать функцию fit с моими X_train и y_train, я получаю следующую ошибку
fit() missing 1 required positional argument: 'self'
Я не знаю много о классах но я знаю, что это не должно спрашивать меня о себе. Я нашел кое-что об инстанцировании, но не мог понять это.
class BernoulliNB(object):
def __init__(self, alpha=1.0):
self.alpha = alpha
def fit(self, X, y):
count_sample = X.shape[0]
# group by class
separated = [[x for x, t in zip(X, y) if t == c] for c in np.unique(y)]
# class prior
self.class_log_prior_ = [np.log(len(i) / count_sample) for i in separated]
# count of each word
count = np.array([np.array(i).sum(axis=0) for i in separated]) + self.alpha
smoothing = 2 * self.alpha
# number of documents in each class + smoothing
n_doc = np.array([len(i) + smoothing for i in separated])
print(n_doc)
def predict(self, X):
return np.argmax(self.predict_log_proba(X), axis=1)
когда я пытаюсь
b = BernoulliNB()
b.fit(b, X_train,y_train)
на этот раз я получаю
fit() takes 3 positional arguments but 4 were given
Затем я изменил его на
BernoulliNB().fit(X_train,y_train)
но это время возникновения этой ошибки
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().