文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

结合基于规则和机器学习的方法构建强大的混合系统

2024-11-30 17:58

关注

在本文中,我将介绍一些实际的案例,以及如何将手动规则和ML结合使得我们的方案变得更好。

基于规则的系统

基于规则的系统是通过预定义规则来为决策提供支持,系统根据存储的规则评估数据,并根据映射执行特定操作。

下面是几个例子:

欺诈检测:在欺诈检测中,基于规则的系统可用于根据预定义规则快速标记和调查可疑交易。

比如说国际象棋的作弊者,他们的的基本作法是在另一个窗口中安装计算机象棋应用程序,使用程序进行对弈,对于程序来说无论多复杂,每一步都需要 4-5 秒才能完成。所以添加“阈值”来计算玩家每一步的时间,如果在浮动不大就有可能被判断为是作弊者,如下图所示:

医疗保健行业:基于规则的系统可用于管理处方和防止用药错误。它们还可以非常有用地帮助医生根据先前的结果为患者开出额外的分析处方。

供应链管理:在供应链管理中,基于规则的系统可用于生成低库存警报、帮助管理到期日期或新产品推出。

基于机器学习的系统

机器学习 (ML) 系统使用算法从数据中学习并做出预测或采取行动,且无需明确编程。机器学习系统使用通过大量数据训练获得的知识来对新数据进行预测和决策。随着更多数据用于训练,ML 算法可以提高其性能。机器学习系统包括自然语言处理、图像和语音识别、预测分析等。

欺诈检测:银行可能会使用机器学习系统从过去的欺诈交易中学习并实时识别潜在的欺诈活动。或者,它可能会对系统进行逆向工程并寻找看起来非常“异常”的交易。

医疗保健:医院可能会使用 ML 系统来分析患者数据,并根据某些 X 射线预测患者患某种疾病的可能性。

对比

基于规则的系统和ML系统都有各自的优点和缺点

基于规则的系统的优点很明显:

缺点:

基于ml的系统的优点也很明显

缺点:

通过对比我们发现,这两种系统的优缺点并不冲突,并且是互补的,那么有没有一种方法可以将他们的优点结合起来呢?

混合型系统

混合系统,结合了基于规则的系统和机器学习算法,最近变得越来越流行。它们可以提供更健壮、准确和有效的结果,特别是在处理复杂问题时。

让我们来看看可以使用租赁数据集实现的混合系统:

特征工程:将楼层转换为三个类别之一:高、中或低,具体取决于建筑物的楼层数。这样可以提高ML模型的效率

硬编码规则可以用作特征工程过程的一部分,以识别和提取输入数据中的重要特征。例如,如果问题领域清晰明确,规则可以很容易地而准确地定义,硬编码规则可以用来创建新特征或修改现有特征,以提高机器学习模型的性能。虽然硬编码规则和特征工程是两种不同的技术,但它们可以结合使用以提高机器学习模型的性能。硬编码规则可以用于创建新特征或修改现有特征,而特征工程可以用于提取不易通过硬编码规则捕获的特征。

后处理:四舍五入或归一化最终结果。

硬编码规则可以作为后处理阶段的一部分来修改机器学习模型的输出。例如,如果机器学习模型输出一组预测结果与某些已知规则或约束条件不一致,硬编码规则可以用来修改预测结果,使其符合规则或约束条件。比如过滤或平滑等后处理技术可以通过消除噪声或错误,或提高预测的整体准确性来精细机器学习模型的输出。当机器学习模型输出概率预测或输入数据存在不确定性时,这些技术尤其有效。在某些情况下,后处理技术也可以用于使用额外信息增强输入数据。例如,如果机器学习模型是在有限数据集上训练的,后处理技术可以用来从外部来源(如社交媒体或新闻提要)中提取额外的特征,以提高预测的准确性。

案例

医疗保健

让我们来看看心脏病的数据:

如果我们用随机森林来预测目标类:

clf = RandomForestClassifier(n_estimators=100, random_state=random_seed
X_train, X_test, y_train, y_test = train_test_split(
df.iloc[:, :-1], df.iloc[:, -1], test_size=0.30, random_state=random_seed
)
clf.fit(X_train, y_train))

这里选择随机森林的原因之一是它的构建特征重要性能力。下面可以看到用于训练的特征的重要性:

看看结果:

y_pred = pd.Series(clf.predict(X_test), index=y_test.index
cm = confusion_matrix(y_test, y_pred, labels=clf.classes_)
conf_matrix = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=clf.classes_)
conf_matrix.plot())

f1_score(y_test, y_pred): 0.74
recall_score(y_test, y_pred): 0.747

这时一位心脏病专家看到了你的模型。基于他的经验和领域知识,他认为地中海贫血特征(thal)比上面所示的要重要得多。所以我们决定建立一个直方图并查看结果。

然后指定一个强制性规则

y_pred[X_test[X_test["thal"] == 2].index] = 1

结果的混淆矩阵变成这样:

f1_score(y_test, y_pred): 0.818
recall_score(y_test, y_pred): 0.9

结果有了很大的提升。这就是领域知识在评估患者得分方面发挥了重要作用。

欺诈交易

下面的数据集是银行欺诈交易。

数据集高度不平衡:

df["Class"].value_counts()
0 28431
1 4925

为了创建规则,我们查看特征的分布箱线图:

我们们要编写一个自己的HybridEstimator类,他将作为我们手动规则的预估器:

from hulearn.classification import FunctionClassifier
rules = {
"V3": ("<=", -2),
"V12": ("<=", -3),
"V17": ("<=", -2),
}
def create_rules(data: pd.DataFrame, rules):
filtered_data = data.copy()
for col in rules:
filtered_data[col] = eval(f"filtered_data[col] {rules[col][0]} {rules[col][1]}")
result = np.array(filtered_data[list(rules.keys())].min(axis=1)).astype(int)
return result
hybrid_classifier = FunctionClassifier(create_rules, rules=rules)

我们可以比较纯基于规则的系统和kNN方法的结果,这里使用kNN的原因是,它可以处理不平衡数据:

可以看到,我们只写了3个规则,就比KNN模型的表现好

总结

我们这里的例子可能并不非常的确切,但是它足以说明,混合模型提供了实际的好处,例如快速实施、对异常值的稳健性和增加的透明度。在将业务逻辑与机器学习相结合时,它们是有益的。例如,医疗保健中的混合规则-ML 系统可以通过结合临床规则和分析患者数据的机器学习算法来诊断疾病。机器学习能够在很多任务上取得出色的结果,但是它也需要领域知识的补充。领域知识可以帮助机器学习模型更好地理解数据,并更准确地进行预测和分类。

混合模型可以帮助我们将领域知识和机器学习模型结合起来。混合模型通常是由多个子模型组成,其中每个子模型都针对特定的领域知识进行了优化。这些子模型可以是基于硬编码规则的模型,也可以是基于统计方法的模型,甚至可以是基于深度学习的模型。

混合模型可以利用领域知识来指导机器学习模型的学习过程,从而提高模型的准确性和可靠性。例如,在医学领域中,混合模型可以结合医生的专业知识和机器学习模型的能力,以诊断患者的疾病。在自然语言处理领域,混合模型可以结合语言学知识和机器学习模型的能力,以更好地理解和生成自然语言。

总之,混合模型可以帮助我们将领域知识和机器学习模型结合起来,从而提高模型的准确性和可靠性,并且在各种任务中都有广泛的应用。

来源:DeepHub IMBA内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯