Skip to content

立即掌握:股票交易中AI“火眼金睛”的实战指南+源码,开启盈利之旅

作者:老余捞鱼

原创不易,转载请标明出处及原作者。

写在前面的话:本文将深入探讨AI 机器学习在股票交易中的核心评估指标:精准率(Precision)、召回率(Recall)和F1分数(F1-Score)。这些指标不仅是量化交易中的关键工具,还能帮助我们优化交易策略,让投资决策更加科学和高效。如果你想借助AI技术提升交易胜率,掌握这些指标绝对是你的必修课!

一、三位一体的性能指标

在机器学习领域中,有三个指标堪称“王者”:精准率(Precision)、召回率(Recall)和F1分数(F1-Score)。它们不仅是模型性能的核心衡量标准,更是优化AI决策的利器。无论是股票交易还是其他应用场景,掌握这三个指标,你就能在机器学习的征途上所向披靡!

1.1 精准率(Precision)

想象你开发了一个垃圾邮件过滤器,任务是守护收件箱,将那些烦人的垃圾邮件统统挡在门外。精准率(Precision)会问你:“在你标记为垃圾邮件的所有邮件中,有多少是真正的垃圾邮件?”这个指标帮助你衡量过滤器的准确性,确保你不会误伤重要邮件。

其公式如下:

Precision = True Positives / (True Positives + False Positives)
         = TP / (TP + FP)

代码实践:

precision = precision_score(y_true, y_pred)
# Our sample showed: 0.75

这意味着我们的初始预测有75%的准确率……表现不错,但仍有提升空间!通过优化模型或调整阈值,我们可以进一步提高精准率,减少误判,让过滤器的表现更上一层楼。

1.2 召回率(Recall)

如果说精准率关注的是“质量”,那么召回率(Recall)则更注重“完整性”。它会问你:“在所有垃圾邮件中,你成功拦截了多少?”召回率帮助你评估过滤器的覆盖能力,确保尽可能多的垃圾邮件被捕获,而不是漏网之鱼。

其公式如下:

Recall = True Positives / (True Positives + False Negatives)
       = TP / (TP + FN)

代码实践:

recall = recall_score(y_true, y_pred)
# Our sample showed: 0.60

我们的过滤器目前只拦截了60%的垃圾邮件,这意味着仍有40%的“漏网之鱼”悄悄溜进了收件箱。这些鬼鬼祟祟的垃圾邮件不仅让人头疼,还可能带来风险。是时候优化模型,提高召回率,让这些“狡猾的家伙”无处可逃了!

1.3 F1分数(F1-Score)

但别急,我们的 F1分数就像一位智慧的朋友,总能找到精准率和召回率之间的完美平衡。它将这两个指标融合为一个单一的综合评分,帮你全面评估模型的性能。无论是追求精准还是覆盖全面,F1分数都能为你指明最优解。

其公式如下:

F1 = 2 * (Precision * Recall) / (Precision + Recall)
= 2 * ((TP / (TP + FP)) * (TP / (TP + FN))) / ((TP / (TP + FP)) + (TP / (TP + FN)))

代码实践:

f1 = f1_score(y_true, y_pred)
# Our sample showed: 0.67

1.4 宏观平均法

有时候,我们需要跳出细节,从全局视角审视问题。这正是宏观平均法(Macro-Averaging)的价值所在——它通过计算所有类别的平均值,帮助我们全面评估模型的整体表现,避免因某一类别的偏差而影响判断。

其公式如下:

Macro-Precision = (Precision_class1 + Precision_class2 + ... + Precision_classN) / N

Macro-Recall = (Recall_class1 + Recall_class2 + ... + Recall_classN) / N

Macro-F1 = (F1_class1 + F1_class2 + ... + F1_classN) / N

代码实践:

precision_macro, recall_macro, f1_macro, _ = precision_recall_fscore_support(y_true, y_pred, average='macro')

宏观平均法(Macro-Averaging)的核心思想很简单:对所有类别的表现取平均值,无论类别的大小或样本数量如何。这种方法确保每个类别都被平等对待,特别适合当你希望所有类别都能得到同等重视的场景!

二、现实世界示例:二进制分类报告

让我们一起来分析一份真实的分类报告,通过拆解报告中的细节,我们可以更清晰地理解模型的性能表现,并找到优化的方向。

让我们来逐条分析……

2.1 Class 0 性能

  • 精确度:0.97(97% 的预测 0 级实际为 0 级)
  • 召回率:0.99(99% 的实际 0 类被正确识别)
  • F1 分数:0.98(精确度和召回率之间的和谐平衡)
  • 支持:378 个样本(这是我们占多数的班级)

2.2 Class 1  性能

  • 精确度:0.91(91% 的预测 1 级实际为 1 级)
  • 召回率:0.68(实际只有 68% )
  • F1 分数:0.78(因召回率下降而降低)
  • 支持:31 个样本(啊哈!我们有一个不平衡的数据集!)。

2.3 宏平均(Macro Average)

Precision: 0.94 = (0.97 + 0.91) / 2
Recall: 0.84 = (0.99 + 0.68) / 2
F1: 0.88 = (0.98 + 0.78) / 2

2.4 加权平均(Weighted Average)

Precision: 0.97 = (0.97 * 378/409 + 0.91 * 31/409)
Recall: 0.97 = (0.99 * 378/409 + 0.68 * 31/409)
F1: 0.97 = (0.98 * 378/409 + 0.78 * 31/409)

你注意到什么有趣的现象了吗?我们的模型准确率高达97%……听起来简直不可思议,对吧?但别急着庆祝,仔细分析后你会发现,这个数字背后可能隐藏着一些关键问题。

  • 我们有 378 个 0 类样本,只有 31 个 1 类样本(很不平衡吗?)
  • 该模型在识别 0 级方面表现出色(99% 的召回率)
  • 但在 1 类样本(68% 的回忆率)的学习中却很吃力。

这是一个典型的“准确性悖论”案例——高准确率并不总是等同于出色的性能!想象一下,如果这是一个医疗诊断模型,漏掉32%的阳性病例,后果可能是灾难性的。高准确率的背后,往往隐藏着严重的偏差和风险。

2.5 为什么需要不同的平均值?

为什么我们需要不同的平均值?因为现实世界的数据往往复杂多样,单一的平均值无法全面反映模型的性能。宏观平均法(Macro-Averaging)关注每个类别的平等性,而微观平均法(Micro-Averaging)则更注重整体数据的分布。选择合适的方法,才能更准确地评估模型的表现。

三、在股市预测中的应用 

首先让我们以指标为例进行分析:

3.1 指标分析

            precision    recall    f1-score    support
    Downturn       0.91      0.68      0.78        31
    Normal         0.97      0.99      0.98       378

这对交易意味着什么?

在正常市场条件下(0级),我们的模型能够准确识别99%的正常交易日,表现非常出色。这不仅有助于维持稳定的交易业务,还能最大限度地减少误报的下跌警报,避免不必要的市场恐慌。

在市场下滑(1类)的情况下,我们的模型预测下跌的准确率达到了91%,表现不俗。然而,它也漏掉了32%的实际衰退期,这意味着在熊市中,可能会错过关键的预警信号,带来高昂的代价!

3.2 “百万美元”的问题

交易者应该优先考虑哪个指标?答案取决于你的交易策略:

  • 如果你更注重避免误报,精准率(Precision)是你的首选;
  • 如果你希望尽可能捕捉所有市场机会,召回率(Recall)则更为重要;
  • 而如果你追求两者的平衡,F1分数就是你的最佳伙伴。

请注意我们的数据分布:在409个交易日中,正常交易日占378天,而低迷日仅有31天。这种不均衡的数据分布意味着,模型可能会更倾向于预测“正常”情况,从而忽略少数但重要的低迷信号。

这真实反映了市场的典型行为:市场大多数时候保持稳定,但偶尔的剧烈波动(尽管罕见)却可能带来巨大影响。因此,模型必须能够有效处理这种数据不平衡,确保在关键时刻发出准确的预警。

3.3 源代码下载

源代码请从我的Google Colab中申请下载:
https://colab.research.google.com/drive/1CAa8vSeyn5xPRq43_btbonJHdJVbov-K?usp=sharing

四、观点总结

本文主要讲解了机器学习在股票交易中性能评估的关键指标:精确度(Precision)、召回率(Recall)和 F1 分数(F1-Score),并解释了这些指标的计算方法、实际应用以及在面对不平衡数据集时如何进行宏观和加权平均。

  • 精确度、召回率和 F1 分数是评估机器学习模型性能的关键指标,它们能够帮助我们了解模型在不同情况下的表现。
  • 在实际应用中,精确度和召回率可能会冲突,因此 F1 分数作为它们的调和平均值,能够提供一个更全面的性能评估。
  • 不平衡数据集对模型性能评估有重要影响,宏观平均能够平等对待所有类别,而加权平均则考虑了类别大小的影响。
  • 在股票市场预测中,选择合适的性能指标对于不同的交易策略至关重要。例如,保守型投资者可能更关注精确度,而风险厌恶型基金则可能更注重召回率。

感谢您阅读到最后,希望这篇文章为您带来了新的启发和实用的知识!如果觉得有帮助,请不吝点赞和分享,您的支持是我持续创作的动力。祝您投资顺利,收益长虹!如果对文中内容有任何疑问,欢迎留言,我会尽快回复!


本文内容仅限技术探讨和学习,不构成任何投资建议。

Published inAI&Invest专栏

Be First to Comment

    发表回复