问题领域,我正在做一个项目,其中包括建立一个模型,为人类管理者处理收入保护索赔提供下一个最佳步骤的建议。
收入保护是一个保险领域,如果被保险人生病或无法工作,则向其提供一定比例的收入。这是一个安全网,旨在帮助你,如果你曾经生病或陷入困境。我们的许多客户都患有癌症、抑郁症、骨折等疾病,而保险服务通常是由他们的公司提供的。
在我们这边,我们有一些人力监督员来管理正在进行的索赔。这意味着安排医生的预约,更新医疗记录和评估/诊断,安排康复,与客户交谈等(所有这些费用也由他们的保险支付)。这些管理项目是有限的,明确的,并被描述为行动。
主管的工作是帮助客户尽快恢复工作(RTW),既帮助客户恢复健康/恢复正常生活,又降低处理业务索赔所需的费用。
我有一套数据,描述过去20年中每个主管对每项索赔采取了哪些行动(时间序列/顺序数据),以及描述索赔进度的文本数据,以及描述索赔和客户(疾病类型、年龄、职业等)的分类数据。
我想要建立的是一个推荐系统,它利用数据来推荐哪种行为最大限度地提高了在进行中的索赔中,某个给定客户返回工作的可能性。
利用上面描述的数据,我建立了一个神经网络来预测一个封闭索赔的结果。神经网络是LSTM和密集层的结合,LSTM用于顺序动作数据,密集用于分类数据,密集用于文本数据的TfIdf转换。有39种可能的结果,其中之一是返回工作,网络表现相对良好,达到了70%的准确率。
我计划像这样使用已完成的模型:迭代所有可能的操作,并为每个操作追加到所讨论的声明中,以生成一个新的“假设”操作序列。对于每个假设序列,通过经过训练的模型进行前馈,并查看哪一个动作使输出向量的指数“得分”最大化,该指标对应于返回工作。最大限度地提高这一分数的行动就是建议。下面是一个包含10个操作的持续索赔的简单玩具示例:
scores = []
# ongoing_claim.shape = (10, 30)
for action in potential_actions:
hypothesis = ongoing_claim.append(action)
# ongoing_claim.shape = (11, 30)
hypothesis = pad_sequence(hypothesis)
output = model.predict(hypothesis)
scores[action] = output[index_for_return_to_work]该建议将是对应于scores中最高值的关键。
不幸的是这不起作用。无论哪种动作,当我在模型中给出新的动作序列时,分数保持不变,以恢复工作--没有任何变化。我认为这是因为考虑到用于训练模型的数据量,简单地添加一个微小的新数据点并不能增加足够的方差来扰乱输出。我试过在最后一层使用sigmoid和softmax激活函数,但这也不起作用。
我应该使用什么样的模型来利用所有的数据,然后检查一个正在进行的索赔,并建议采取何种行动,最大限度地提高特定结果的概率(在这种情况下,返回工作)?
发布于 2020-10-16 13:28:47
https://datascience.stackexchange.com/questions/84087
复制相似问题