【发布时间】:2021-12-19 06:35:41
【问题描述】:
我从事金融科技业务,我拥有如下客户级别的数据:
| Customer ID | day1 | day2 | day3 | day4 |
|---|---|---|---|---|
| 1 | 50 | 0 | NaN | 5 |
| 2 | NaN | 10 | NaN | NaN |
| 3 | -100 | -100 | 5 | 0 |
| 4 | 10 | -60 | 0 | 100 |
| 5 | 20 | NaN | -20 | NaN |
在上述数据中,行代表客户唯一 ID,列代表一年中的特定日期,值代表该特定日期的贷记和借记净额。
例如,对于 day1 上的客户 ID = 1,credit = 100 和 debit = 50 因此净值为 50。零表示当天 credit = debit。
NaN 在我的数据中简单地显示,在那一天,客户没有通过应用程序进行任何贷记或借记交易,这对我来说很重要。让NaN 成为NO INTERACTION的实例。
现在我的问题是如何告诉 scikit-learn python 中的 K-Means 将 NaN 值视为无交互?我不想消除 NaN 值。我也不想用平均值或中值替换 NaN 值。 NaN 值是我的附加信息,我如何保留这些信息?
【问题讨论】:
-
也许您可以为每一天添加一个列,指示当天是否有交互,如果有交互,则将其设置为 1,如果没有交互,则设置为 0。对于没有互动的日子,您将净信用列中的 nan 值替换为 0,因为当天的净信用为零。
标签: python scikit-learn cluster-analysis nan k-means