我试图将我的数据文件转换为LibSVM文件格式并出现此错误:
for character in binary:
if character != '1' and character != '0':
valid = False
break
if var != 2:
accepted = False
我有一个维度和标签文件的文件功能,错误发生在功能文件(列车数据)中。我对不同类型的功能使用相同的代码,因为它是2D,所以没有错误。你能帮我吗?
ValueError('X.shape[0] and y.shape[0] should be the same got 1L and 3997L instead.',), <traceback object at 0x000000000DC9E608>
打印数组的形状:((1L,3997L):user_train(特征1D),(3997L,):标签也是1D)
答案 0 :(得分:0)
X.shape [0]和y.shape [0]应该是1L和3997L相同。
这意味着user_train.shape[0]
和train_label.shape[0]
应该是相同的值,但在您的情况下,它是1和3997.
一般情况下,如果您有N
个培训示例和M
个功能(在您的情况下,它是train_label
)。然后,X
(在您的情况下,user_train
)的维度应为N X M
,y
的维度应为N X 1
。
您可以在训练模型之前验证其尺寸,以避免此类错误。
解决方案
在这种情况下,您可以使用reshape()或transpose()转换为所需尺寸。
我想在您的示例中,user_train
的维度为1 X 3997
,train_label
的维度为(3997,)
。因此,为了匹配维度,您可以重新整形或转置n维数组user_train
以解决问题。