python - 我的数据没有 nan 但我不断收到有限错误
问题描述
语境
我正在尝试规范化我的数据以运行 ML 模型。我在我的数据上使用 np.log
plt.hist(np.log(Portfolio_rtns['Aveva Returns']))
我也尝试过这种方式:
log_Aveva = np.log(Portfolio_rtns['Aveva Returns'])
log_Aveva.hist();
但是得到这个错误
ValueError: supplied range of [-inf, -1.2977785811129585] is not finite
我检查了我的数据,甚至确保将任何nan
值替换为 0。
我发现这说明要使用np.isfinite
. 但我觉得我的数据分布因此而混乱。
Port = np.isfinite(Portfolio_rtns['Aveva Returns'])
plt.hist(np.log(Port));
我也运行了这个功能
# Square root can also make normal distributed data
plt.hist(np.sqrt(Portfolio_rtns['Aveva Returns']));
虽然我得到了图表,但我得到了这个错误:
358: RuntimeWarning: invalid value encountered in sqrt
result = getattr(ufunc, method)(*inputs, **kwargs)
问题
我的数据有问题吗?
解决方案
因此,在浏览 Coursera 之后,我发现 usinglog1p
将 1 添加到整个数据中的所有零数字。也摆脱了负面。所以解决方案是:
plt.hist(np.log1p(Portfolio_rtns['Aveva Returns']));
或者
data.describe()
#'data' 是你的数据。- 找到数据的最小值
- 将此最小值添加到整个数据中,以将所有零和负数转换为正数和大于 0。
- 运行数据
- 运行 ML 模型后,转换回正常值(这也是上面的)
推荐阅读
- javascript - 单击时禁用提交按钮不会提交表单
- laravel - 获取第三方网站网址
- javascript - JSON 数据来自之前的 AJAX 调用
- docker - 无法通过 X509Store 访问自签名 CA
- css - 如何水平对齐菜单?
- xpath - 使用 xpath 检查字符串是否只有 ASCII 字符
- powershell - 将对象中的数据导出到csv中的单个单元格
- php - 为什么我在第 11 行的 C:\UwAmp\www\v.php 中收到错误解析错误:语法错误,意外 '[',期待 ')'?
- php - HTML/PHP 联系表单在 Heroku 上不起作用
- windows - 如何过滤 cl.exe 的输出但保留成功/错误代码?