Я изучаю набор данных iris с использованием Perceptron и обнаруживая следующую ошибку.Количество ярлыков классов должно быть больше одного
ValueError: The number of class labels must be greater than one.
Код ниже
y = df.iloc[0:100, 4].values
y = np.where(y== 'Iris-setosa', -1,1)
X = df.iloc[0:100, [0,2]].values
ppn = Perceptron(eta0=0.1, n_iter=10)
ppn.fit(X,y)
Цель состоит в том, чтобы соответствовать данным, используя длину чашелистиков и длину лепестка для типа видов. Я не понимаю эту ошибку. Как исправить это?
df.head() #for reference
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
Пожалуйста, разместите воспроизводимый пример (мы не знаем, откуда этот класс «Перцептрон»). –
Проблема связана с вашим фреймворком данных. Опубликованный код в порядке. @CarlosCordoba это класс Перцептрона от scipy.linear_model –
Да @LukaszTracewski, dataframe y имел все одинаковые значения, потому что y = np.where (y == 'Iris-setosa', -1,1) и не было такого значения, как ' Iris-setosa "в новом наборе данных, который я загрузил. глупый я!!. Спасибо –