0

我已经用 box-Cox 转换转换了我的整个数据框(相关和独立),并且我有下面的数组作为系数:

array([-0.12050315, -0.07470903, -0.11079292, -0.22158582, -0.06629854,
       -0.14941804, -0.11161256, -0.08786566, -0.17451716, -0.10773153,
       -0.09787049, -0.19569526, -0.21546309, -0.12817391, -0.03621895,
       -0.22004721, -0.10557047, -0.06584703, -0.13174353,  0.16621695,
        0.01901815, -0.1635233 ,  0.15919524,  0.05952151,  0.06084785,
        0.01126627,  0.01126626, -0.87299313])

在训练我的 Keras 回归模型后,我想对测试目标(y_test)和预测值(y_pred)进行逆变换。我使用的代码来自 sklearn 包,如下所示:对于 y_test 如下:

array([ 0.98333783,  1.50200139,  1.83218911, -0.15996774,  0.78260773,
        0.74395122, -1.03379222, -1.49198108,  1.15562537,  1.12287162,
       -0.73178092,  1.81372947, -1.07406015,  0.33985499,  1.03716673,
       -1.57230688,  1.47911475,  0.84982504, -1.44474193, -0.56389331,
       -0.20603036,  0.1266229 ,  0.34537935, -0.91948754, -0.0859256 ,
       -1.04186052, -0.46334846, -0.60194859,  1.49238056,  0.05740751,
        0.00789972,  1.72823035, -0.60434219, -1.53115573,  1.65947602,
        1.55132413, -1.63633904,  1.50525545, -1.41644302,  1.18606998,
       -0.97952481,  1.791517  ,  0.74122464,  1.35466604, -0.91996944,
       -0.66993356, -0.27276727, -0.70785461,  0.97178584, -0.26121448,
       -1.38664819,  1.10732533, -1.41707219,  1.9831894 , -1.13688763,
        0.8281032 , -0.21455527, -0.42318826, -0.10473893, -0.2152237 ,
       -1.47820045,  0.94680937, -0.17741741,  0.63605613, -0.39629346,
        1.09077037, -0.51547212, -0.67354063, -1.57748571, -0.79634151,
        0.15821278,  0.46977151,  0.27850129,  0.07907392, -0.93708215,
        1.53871748, -1.21563852,  0.79040892,  0.21197071, -0.66894071,
        0.27635132,  1.28436786,  0.48883812, -0.05657853,  1.28865163,
       -0.54660271,  1.11260471, -1.24212802,  1.71250636,  0.6430331 ,
        0.71056295,  1.09364413, -0.43520344, -0.51681466,  0.54017086,
        0.61223984,  0.05203929,  0.83618294, -0.55494482, -0.04054612,
       -0.0886779 ,  1.44277091,  1.77569744,  0.86381339,  0.15509978,
        0.65514589, -0.39788517, -0.91833687,  0.42345815, -0.86787368,
        0.20091955,  0.59593155,  1.69567572,  0.51849197,  0.60554069,
        1.32229222, -1.57268445, -0.19908104,  0.04183203, -0.18814032,
       -0.33261663, -0.2595337 , -0.74548164,  1.29234243,  1.52822498,
        0.04565854,  2.08218297])


def inverse_bc(vector , lam):
    if lam == 0:
        inv = exp(vector)
    
    else:
        inv = ((np.sign(vector)*np.abs(vector) * lam) + 1) ** (1 / lam)

    return inv

y_lambda = power.lambdas_[-1]   #-0.87299313
inverse_bc(y_test , y_lambda)

我在返回的数组中得到了一些nan值,如下所示:

*array([0.10610358,        nan,        nan, 1.16152319, 0.26775244,
   0.30072773, 2.08877834, 2.5988645 ,        nan, 0.0106793 ,
   1.76078457,        nan, 2.13303091, 0.66815944, 0.0666456 ,
   2.68968613,        nan, 0.2116487 , 2.54563854, 1.58165874,
   1.20858382, 0.8744233 , 0.66291199, 1.96381267, 1.0863822 ,
   2.09763562, 1.47558096, 1.62204719,        nan, 0.94280366,
   0.99210423,        nan, 1.62459181, 2.6431087 ,        nan,
          nan, 2.76236425,        nan, 2.51382021,        nan,
   2.02932817,        nan, 0.30307155,        nan, 1.96433746,
   1.69451594, 1.27717759, 1.7351098 , 0.11484951, 1.26526928,
   2.48037479, 0.01982524, 2.51452707,        nan, 2.20230692,
   0.22959532, 1.21731914, 1.43347482, 1.10541436, 1.21800441,
   2.58332304, 0.13404354, 1.17932312, 0.39511208, 1.40536365,
   0.03020463, 1.53045691, 1.69837201, 2.69555511, 1.83029795,
   0.84343459, 0.54620617, 0.72678135, 0.92132898, 1.98298456,
          nan, 2.28953023, 0.26115763, 0.79103097, 1.69345474,
   0.72884676,        nan, 0.52857803, 1.0567779 ,        nan,
   1.56335081, 0.01664213, 2.31896501,        nan, 0.38891339,
   0.32958372, 0.0283648 , 1.44605602, 1.53187367, 0.48149097,
   0.41636353, 0.94813399, 0.22289834, 1.57218039, 1.0406489 ,
   1.0891639 ,        nan,        nan, 0.2001915 , 0.84648205,
   0.37818144, 1.40702539, 1.96255967, 0.58932261, 1.90770871,
   0.8017689 , 0.43099541,        nan, 0.50130903, 0.42236631,
          nan, 2.69011397, 1.20146886, 0.95827965, 1.19027816,
   1.3390913 , 1.26353796, 1.77550785,        nan,        nan,
   0.95447464,        nan])
*

我的第一个问题是,转换是否应该为每列返回一个值作为 lambda?请帮助我了解这些 nan 值是什么?

谢谢

4

0 回答 0