首页 > 解决方案 > 连接轴的所有维度必须完全匹配,但沿维度 0,

问题描述

我正在使用 Movielens-1m。我想使用连接函数将辅助信息添加到评级矩阵。当我连接用户信息时,它工作正常。

在此处输入图像描述

代码

# Shape is (6040, 4)

# onehot encoding
user_data['age'] = preprocessing.LabelEncoder().fit(user_data['age']).transform(user_data['age'])
user_data['gender'] = preprocessing.LabelEncoder().fit(user_data['gender']).transform(user_data['gender'])
onehot_data = preprocessing.OneHotEncoder(handle_unknown='ignore', sparse=False).fit(user_data[['gender', 'age', 'occupation']]).transform(user_data[['gender', 'age', 'occupation']])


#Concatenate side information to the rating matrix
user_side_info = np.concatenate((matrix, onehot_data[None:, :]), axis=1)

但是对于movie.csv,我得到了错误

在此处输入图像描述

#shape (3883, 4184)


movie_data['title'] = preprocessing.LabelEncoder().fit(movie_data['title']).transform(movie_data['title'])
movie_data['genre'] = preprocessing.LabelEncoder().fit(movie_data['genre']).transform(movie_data['genre'])
onehot_data = preprocessing.OneHotEncoder(handle_unknown='ignore', sparse=False).fit(movie_data[['title', 'genre']]).transform(movie_data[['title', 'genre']])


movie_side_info = np.concatenate((matrix, onehot_data), axis=1)

ValueError:连接轴的所有输入数组维度必须完全匹配,但沿维度 0,索引 0 处的数组大小为 6040,索引 1 处的数组大小为 3883

标签: pythonconcatenationtf.kerasrecommendation-engineone-hot-encoding

解决方案


推荐阅读