调用PageRank的fit_predict方法时出现TypeError错误求助
排查sknetwork PageRank fit_predict的类型错误
问题核心
报错TypeError: The input matrix must be in Scipy sparse format or Numpy ndarray format说明你传给fit_predict的adjacency对象不符合要求格式——sknetwork的PageRank仅接受scipy稀疏矩阵或numpy数组,不直接兼容其内置的Adjacency类实例。
排查与解决步骤
确认adjacency对象类型
先打印对象类型验证:print(type(adjacency))若输出为
<class 'sknetwork.data.structure.Adjacency'>,则说明是sknetwork专属对象,需转换格式后使用。转换adjacency为兼容格式
转成scipy稀疏矩阵(推荐,内存占用更低):sparse_matrix = adjacency.to_scipy_sparse()或转成numpy数组:
numpy_array = adjacency.toarray()再将转换后的对象传入
fit_predict:pagerank = PageRank() scores = pagerank.fit_predict(sparse_matrix)修正边列表转邻接矩阵的代码逻辑
若你是通过from_edge_list生成邻接对象,避免直接传递原始返回值,需先完成格式转换:# 错误写法:直接传入Adjacency对象 adjacency = from_edge_list(edge_list) scores = pagerank.fit_predict(adjacency) # 正确写法:先转换格式再传入 adjacency = from_edge_list(edge_list) sparse_matrix = adjacency.to_scipy_sparse() scores = pagerank.fit_predict(sparse_matrix)
内容的提问来源于stack exchange,提问作者Herve Kabla
相关产品推荐
相关产品推荐

