python - 连接轴的所有维度必须完全匹配,但沿维度 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
解决方案
推荐阅读
- javascript - Firebase Chrome 扩展安全通过 SSR
- c - C语言中“%c”和“%s”的区别
- node.js - 每次变量更改 DISOCRD.JS 时,Nodejs 都会更改机器人的昵称
- ms-access - 在 Access 中检查大型链接数据库
- python - 如何配置 pytesseract 以支持 Windows 10 中非英语语言的文本检测?
- python - numpy unique() 返回 '<' 在 float / str 实例之间不支持错误 - 为什么?
- c++ - 如何彼此相邻打印倒置的半星金字塔图案?
- php - Nginx 代理 Apache2 php ERR_CONNECTION_RESET
- python - 在 Cython 中添加双打时精度损失
- azure-active-directory - 使用 Microsoft Graph 列出不同 Active Directory 的用户