尝试在 N_维数组上使用回归时出错

问题描述

我的代码应该读取音频文件并预测另一个音频文件(我现在不关心准确性,只是错误

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:\ Folder\Python\module properties\wav.py",line 10,in <module>
    regr.fit(data0,data1)
  File "C:\Users\Admin1\AppData\Local\Programs\Python\python39\lib\site-packages\sklearn\svm\_base.py",line 169,in fit
    X,y = self._validate_data(X,y,dtype=np.float64,File "C:\Users\Admin1\AppData\Local\Programs\Python\python39\lib\site-packages\sklearn\base.py",line 433,in _validate_data
    X,y = check_X_y(X,**check_params)
  File "C:\Users\Admin1\AppData\Local\Programs\Python\python39\lib\site-packages\sklearn\utils\validation.py",line 63,in inner_f
    return f(*args,**kwargs)
  File "C:\Users\Admin1\AppData\Local\Programs\Python\python39\lib\site-packages\sklearn\utils\validation.py",line 826,in check_X_y
    y = column_or_1d(y,warn=True)
  File "C:\Users\Admin1\AppData\Local\Programs\Python\python39\lib\site-packages\sklearn\utils\validation.py",line 864,in column_or_1d
    raise ValueError(
ValueError: y should be a 1d array,got an array of shape (8960,2) instead.   

     
    
    
    

解决方法

检查您的自变量和因变量 X 和 y 分配。

'fit' 函数以 model.fit(X,y) 形式使用,建立模型拟合并给你错误的代码似乎是:

regr.fit(data0,data1)

因此你写的预测变量应该是 X = data0,你的目标(输出)变量应该是 y = 数据1.

确保你没有把它反过来,也不应该:

regr.fit(data1,data0)

如果数据分配正确,请尝试展平数组。

你也得到了 ValueError,“y 应该是一个一维数组,而是得到了一个形状为 (8960,2) 的数组。”

扁平化意味着将多维数组转换为一维数组。尝试重塑(-1)。

data1 = data1.reshape(-1)

我希望这会有所帮助!如果没有关于数据集和模型代码的任何额外信息,就很难弄清楚下一步该做什么。