#python #numpy #audio #scikit-learn #regression
#python #numpy #Аудио #scikit-learn #регрессия
Вопрос:
Предполагается, что мой код читает аудиофайлы и предсказывает другой аудиофайл (пока меня не волнует начисление, только ошибка)
regr = svm.SVR()
print('Fitting...')
regr.fit(data0, data1)
clf1= regr.fit(sample_rate1,sample_rate0)
clf0 = regr.fit(data,data1)
print('Done!')
predata = clf.predict(data2)
predrate = clf1.predict(sample_rate2)
wavfile.write('result.wav',predrate,predata)# using predicted ndarrays it saves the audio file
Ошибка, которую я получаю,:
Traceback (most recent call last):
File "D: FolderPythonmodule propertieswav.py", line 10, in <module>
regr.fit(data0, data1)
File "C:UsersAdmin1AppDataLocalProgramsPythonPython39libsite-packagessklearnsvm_base.py", line 169, in fit
X, y = self._validate_data(X, y, dtype=np.float64,
File "C:UsersAdmin1AppDataLocalProgramsPythonPython39libsite-packagessklearnbase.py", line 433, in _validate_data
X, y = check_X_y(X, y, **check_params)
File "C:UsersAdmin1AppDataLocalProgramsPythonPython39libsite-packagessklearnutilsvalidation.py", line 63, in inner_f
return f(*args, **kwargs)
File "C:UsersAdmin1AppDataLocalProgramsPythonPython39libsite-packagessklearnutilsvalidation.py", line 826, in check_X_y
y = column_or_1d(y, warn=True)
File "C:UsersAdmin1AppDataLocalProgramsPythonPython39libsite-packagessklearnutilsvalidation.py", line 63, in inner_f
return f(*args, **kwargs)
File "C:UsersAdmin1AppDataLocalProgramsPythonPython39libsite-packagessklearnutilsvalidation.py", line 864, in column_or_1d
raise ValueError(
ValueError: y should be a 1d array, got an array of shape (8960, 2) instead.
Ответ №1:
Проверьте ваши назначения независимых и зависимых переменных X и y.
Функция ‘fit’ используется в форме model.fit (X,y), а код, который устанавливает соответствие модели и выдает ошибку, выглядит следующим образом:
regr.fit(data0, data1)
Таким образом, ваши переменные-предсказатели, как написано, должны быть X = data0, а ваша целевая (выходная) переменная должна быть y = data1.
Убедитесь, что у вас нет обратного, и этого не должно быть:
regr.fit(data1, data0)
Если данные назначены правильно, попробуйте сгладить массив.
Вам также присваивается значение ошибки: «y должен быть одномерным массивом, вместо этого получен массив формы (8960, 2)».
Выравнивание означает преобразование многомерного массива в одномерный массив. Попробуйте изменить форму (-1).
data1 = data1.reshape(-1)
Надеюсь, это поможет! Без какой-либо дополнительной информации о наборе данных и коде модели трудно понять, что делать дальше.