Это мой код. Я получаю сообщение об ошибке, когда пытаюсь запустить функцию «fit». Это набор данных рака молочной железы. х и у показаны в коде. Я создал x_train и y_train, используя разделение Train-test. Обратите внимание, что тип (x_train) - это «numpy.ndarray», а тип (y_train) - «pandas.core.series.Series».
Я пытался запустить код после преобразования y_train в numpy.ndarray, но все равно он не работал.
import numpy as np
import pandas as pd
breast_cancer = sklearn.datasets.load_breast_cancer()
data = pd.DataFrame(breast_cancer.data, columns = breast_cancer.feature_names)
data['class'] = breast_cancer.target
x = data.drop('class', axis = 1)
y = data['class']
class Perceptron:
def __init__(self):
self.w = None
self.b = None
def model(self, X):
return 1 if (np.dot(self.w, X) >= self.b) else 0
def predict(self, x):
y = []
for X in x:
result = self.model(X)
y.append(result)
return np.array(y)
def fit(self, x, y):
self.w = np.ones(x.shape[1])
self.b = 0
for X, Y in zip(x, y):
y_pred = self.model(X)
if y == 1 and y_pred == 0:
self.w = self.w + x
self.b = self.b + 1
elif y == 0 and y_pred == 1:
self.w = self.w - x
self.b = self.b - 1
percep = Perceptron()
percep.fit(x_train,y_train)```
percep.fit(x_train, y_train)
ValueError Traceback (most recent call last)
<ipython-input-67-5570c9a29c08> in <module>()
----> 1 percep.fit(x_train, y_train)
1 frames
/usr/local/lib/python3.6/dist-packages/pandas/core/generic.py in __nonzero__(self)
1476 raise ValueError("The truth value of a {0} is ambiguous. "
1477 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
-> 1478 .format(self.__class__.__name__))
1479
1480 __bool__ = __nonzero__
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().