如何在Tensorflow中嵌入离散ID?

时间:2018-06-11 06:40:25

标签: tensorflow neural-network

有许多离散ID,我想将它们嵌入到神经网络中。 2^62仅支持固定范围的ID,即ID从0到N.如何嵌入范围为0到head(df1) international_plan voice_mail_plan number_vmail_messages 1 no yes 25 2 no yes 26 3 no no 0 4 yes no 0 5 yes no 0 6 yes no 0 total_day_minutes total_day_calls total_day_charge total_eve_minutes 1 265.1 110 45.07 197.4 2 161.6 123 27.47 195.5 3 243.4 114 41.38 121.2 4 299.4 71 50.90 61.9 5 166.7 113 28.34 148.3 6 223.4 98 37.98 220.6 total_eve_calls total_eve_charge total_night_minutes total_night_calls 1 99 16.78 244.7 91 2 103 16.62 254.4 103 3 110 10.30 162.6 104 4 88 5.26 196.9 89 5 122 12.61 186.9 121 6 101 18.75 203.9 118 total_night_charge total_intl_minutes total_intl_calls total_intl_charge 1 11.01 10.0 3 2.70 2 11.45 13.7 3 3.70 3 7.32 12.2 5 3.29 4 8.86 6.6 7 1.78 5 8.41 10.1 3 2.73 6 9.18 6.3 6 1.70 number_customer_service_calls churn 1 1 no 2 1 no 3 0 no 4 2 no 5 3 no 6 0 no 的离散ID。

1 个答案:

答案 0 :(得分:0)

为了澄清我如何理解你的问题,你想做一些像文字嵌入这样的事情,但你想要使用离散的ID(而不是索引)而不是单词。您的ID可能非常大(2 ^ 62)。但是不同ID的数量要少得多。

如果我们要处理单词,那么我们将构建单词的字典并将字典中的索引提供给神经网络(进入嵌入层)。这基本上就是你需要处理离散ID。通常,您也会为以前看不到的值保留一个数字(例如0)。您也可以稍后修剪字典以仅包含最常用的值,并将所有其他值放入相同的未知桶中(与进行字嵌入或其他nlp时完全相同)。

e.g:

  • unknown - > 0
  • 84588271 - > 1
  • 92238356 - > 2
  • 78723958 - > 3