我正在尝试用两个输出值解决回归问题。输出值充当传入预订值的两个不同阈值,以接受或拒绝预订。
这两个输出值是在业务案例中手动设置的,但这应在机器学习的帮助下自动完成。在业务案例中,其中一个输出值可以是 Nan,那么所有预订都将接受此标准。因此,如果一个输出值未填充,则它对业务案例有效。
例子:
X_train = np.array([(1,1),(2,2),(3,3),(4,4)])
Y_train =np.array([(1,1),(2,2),(3,3),(4,np.nan)])
X_test = np.array([(5,5),(6,6),(7,7)])
Y_test = np.array([(5,5),(6,np.nan),(7,7)])
reg = MLPRegressor()
reg = reg.fit(X_train,Y_train)
我的问题是当我为输出 Y_train/Y_test 设置 NaN 值时,例如 scikit-learn 会抛出错误。
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
我不想用平均值或 0 来估算这些值,因为如上所述,缺失值是业务案例的有效设置。
是否有可能用 scikit-learn 或一般的机器学习来解决这样的问题?
编辑:业务未设置的输出值不直接存储为 NaN 而是存储为 -9999999999 以表示无穷大。我用 NaN 替换了这些值,因为我认为如此高的值会扭曲结果。所以如果我不替换任何东西,变量实际上会导致以下结果:
X_train = np.array([(1,1),(2,2),(3,3),(4,4)])
Y_train =np.array([(1,1),(2,2),(3,3),(4,-9999999999)])
X_test = np.array([(5,5),(6,6),(7,7)])
Y_test = np.array([(5,5),(6,-9999999999),(7,7)])
是保留这些值比保留 NaN 更好,还是它们会扭曲结果而必须被忽略?
烙印99
有只小跳蛙
一只斗牛犬
相关分类