使用scikit-learn中CCA的inverse_transform出现TypeError报错如何解决?
问题修复:CCA inverse_transform() 参数错误
报错原因
CCA.inverse_transform() 方法仅接受1个待逆变换的典型变量矩阵作为参数(调用时自动传入self作为第一个参数,因此用户只需传1个参数)。你同时传入x_test和predicted两个参数,导致参数数量不匹配,触发TypeError。
修复方案
你的需求是将预测得到的Y侧典型变量逆变换回原始Y空间,只需对predicted进行处理后传入方法即可:
- 调整
predicted的形状:当前predicted是一维数组(4,),需转换为二维数组(样本数×特征数),符合方法对输入维度的要求; - 仅传入调整后的
predicted到inverse_transform()。
修改后的代码片段:
# 将predicted转换为二维数组 predicted_reshaped = predicted.reshape(1, -1) # 逆变换得到原始空间的Y预测值 original_y_pred = mycca.inverse_transform(predicted_reshaped)
补充说明
- 若要逆变换X侧典型变量(如
x_test)回原始X空间,直接调用mycca.inverse_transform(x_test)即可; inverse_transform()会根据输入的典型变量来源(X侧或Y侧的变换结果)自动对应到原始空间的重构。
内容的提问来源于stack exchange,提问作者Shayan
相关产品推荐
相关产品推荐

