小鼠插补的运行时估计?

2024-10-01 07:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用老鼠插补来填充机器学习数据集的缺失值。数据集很大,11726412行30列。以下是此数据中缺少的值的数量:

In [2]:X.isnull().sum()

Out[2]: 
time                           0
count_neshan                   0
count_scat_o             4059792
count_avl_en_o           7364664
count_avl_ex_o           7364664
count_anpr_o             9646200
karmnd_dr_mhl_shghl_o          0
veh_own_o                      0
n_bussi_unit_o                 0
park_area_o                    0
area_o                         0
office_land_use_o              0
n_office_o                     0
commercial_unit_o              0
n_commercial_o                 0
schl_o                         0
count_scat_d             4059792
count_avl_en_d           7364664
count_avl_ex_d           7364664
count_anpr_d             9646200
karmnd_dr_mhl_shghl_d          0
veh_own_d                      0
n_bussi_unit_d                 0
park_area_d                    0
area_d                         0
office_land_use_d              0
n_office_d                     0
commercial_unit_d              0
n_commercial_d                 0
schl_d                         0
dtype: int64

我运行此代码来插补数据集中缺少的值:

from impyute.imputation.cs import mice

imputed_train_data = mice(X.values)

这是我第一次使用鼠标,我无法估计它运行所需的时间。我在8天前执行了这段代码,它仍然在运行

我找不到关于老鼠运行时间的任何信息。我只知道“它很慢”。 如果有这方面经验的人能够估计时间,或者考虑到大数据集,建议更快的替代方案,我将不胜感激


Tags: 数据count时间unitareaexenoffice
1条回答
网友
1楼 · 发布于 2024-10-01 07:18:48

根据docsmice运行直到收敛,收敛定义为所有插补值的连续更新之间的变化小于10%。这意味着它何时停止是不可预测的。我的直觉是,插补更新小于10%的概率变得非常小,有大量缺失值

鉴于source code实际上相当简单,您可以编写自己的版本来限制迭代次数。似乎源代码中的一条评论实际上表明,在某些情况下,原始实现就是这样的:

# Step 5: Repeat step 2 - 4 until convergence (the 100 is arbitrary)

您可以将while all(converged):替换为for _ in range(max_iterations):

相关问题 更多 >