ValueError: y имеет только 1 выборку в классе 0, ковариация определена плохо. В то время как классификация QDA - PullRequest
1 голос
/ 09 февраля 2020

Я получаю сообщение об ошибке в заголовке, когда пытаюсь классифицировать свой набор данных.

Мой набор данных - это 4 входных и 4 выходных набора данных. Мой ввод и вывод - массив, и каждый массив имеет значение 414 в форме (414,4)

Вот мой код

import numpy as np
import pandas as pd
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis


names = ['pH', 'BOI5', 'AKM', 'KOI']
dataframe = pd.read_excel ("C:/Users/hayri/Desktop/aabb.xlsx") 
array = dataframe.values
X = array[:,0:4]
Y = array[:,4:8]

Y = np.argmax(Y, axis=1)
qda = QuadraticDiscriminantAnalysis(store_covariance=True)
qda.fit(X,Y)

Я новичок в машинном обучении, поэтому каждая информация будет быть полезным

Ответы [ 2 ]

0 голосов
/ 09 февраля 2020

Ошибка говорит о том, что один из ваших классов (а именно класс 0) имеет только одну выборку в обучающем наборе, поэтому это делает вычисление шага SVD в QDA al go невозможным (потому что вы пытаетесь вычислить SVD). для нулевой матрицы см. здесь для получения дополнительной информации)

0 голосов
/ 09 февраля 2020

Из вашей трассировки стека кажется, что у вас есть только один пример класса 0, который дает неверное определение ковариационной матрицы для QDA. Попробуйте напечатать номер элемента в каждом классе, чтобы убедиться, что это так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...