和我在一起的是从IoT传感器收集的数据集,其中一列标有“土壤湿度”的百分比。当然,所有的数值都是正百分数,但也有负数的混合,这是不可取的。在运行机器学习模型之前,是否有办法处理熊猫蟒蛇中不需要的负数。
发布于 2019-08-01 05:55:11
如何处理这样的无效值是机器学习中非常常见的问题,因为大多数数据集都包含某种错误。
有几种方法可以做到。例如,可以将它们全部设置为0:
df.loc[df.SoilHumidity < 0, 'SoilHumidity'] = 0或者您可以用avg(SoilHumidity)填充它们,并创建一个额外的特性来标记它们丢失的模型:
import numpy as np
df['SoilHumidityInvalid'] = np.where(df.SoilHumidity < 0, 1, 0)
df.loc[df.SoilHumidity < 0, 'SoilHumidity'] = df.SoilHumidity.mean()或者,你可以尝试以某种方式将它们归罪。通过向后或向前填充(即从数据集中的下一行或上一行获取值),或通过创建使用数据集的其他功能来预测这些无效值的模型。
正确的方法可能取决于;有时域知识会指导您(也就是说,如果您知道传感器可能在它应该读取0时错误地读取负面信息,那么您就知道填充0)。如果做不到这一点,我只需要尝试几种方法,并使用交叉验证来查看哪种方法对您的模型改进最大。
https://datascience.stackexchange.com/questions/56730
复制相似问题