python - RuntimeWarning:在 true_divide 距离中遇到的无效值 = 1 - 0.5 * X @ self.X_T / np.linalg.norm(X, axis=1)[:, None] / self.X_T_norm
问题描述
我正在尝试运行 predict_labels:
def test_ensemble_labels(train_data, y, test_data, vector_names, NNeighbours, lower, upper):
y_pred = []
for j in range(len(vector_names)):
y_pred.append(frnn_owa_method(train_data, y, test_data, vector_names[j], NNeighbours[j], lower, upper)[1])
# Use voting function to obtain the ensembled label - we used mean
y_pred_res = np.mean(y_pred, axis=0)
return y_pred_res
predicted_labels = test_ensemble_labels(data, data['Label'], test_data, ["Vector_d2v"], [19], additive(), additive())
但我收到一条消息:
/content/frnn_owa_eval.py:33: RuntimeWarning: invalid value encountered in true_divide
distances = 1 - 0.5 * X @ self.X_T / np.linalg.norm(X, axis=1)[:, None] / self.X_T_norm
这是一个包含距离的函数:
def _query(self, X, m_int: int):
distances = 1 - 0.5 * X @ self.X_T / np.linalg.norm(X, axis=1)[:, None] / self.X_T_norm
return least_indices_and_values(distances, m_int, axis=-1)
解决方案
您的代码正在尝试执行经典的“除以零”或“除以 NaN”。预处理您的数据集/变量以事先检查这些条件。
如果您不想这样做,可以使用以下方法绕过:
import numpy as np
np.seterr(divide='ignore', invalid='ignore')
推荐阅读
- javascript - 是否有更好/更短的方法来检查数组中对象的值,该数组是Javascript中对象的一部分?
- firebase - 当 FirebaseImage 在 Flutter 中返回 null 时返回占位符图像
- react-native - 如何告诉我的计数器在达到特定数量时停止递增?
- flutter - 如何修复颤振 blocConsumer 状态接收器空错误
- ms-access - Currentdb.Execute 与 dbFailonError 不引发错误
- ruby-on-rails - 为什么我会收到“目标元素缺失”错误?
- sql - PostgreSQL ERROR 列不存在引用了一个列值
- c# - 使用 Saxon-HE 和 C# 在 XQuery 中查找所有 XPath
- r - mlr3 - 对新数据应用预处理
- javascript - 是否可以通过提供路径将文件从 Electron 应用程序发送到 Express 服务器?