要评估算法的质量,我认为关键是看问题是否能得到解决。如果该算法能很好地解决实际问题,那么我认为它是一个很好的算法。例如,预测算法的关键是看预测的准确性,即预测值和实际值之间的接近度,而不是算法本身的得分。
在本文《如何用人工智能预测双 11 的交易额》中,利用线性回归算法,我预测2019年双11的营业额为2471亿元,而阿里官方公布的实际营业额为2684亿元,比实际值低7.9%。我认为这个结果的准确性不够高。反思预测过程,我认为我们可以从以下几个方面进行改进。
1. 样本
为了简化算法模型,我放弃了前几年相对较小的数据,只保留了最近5年的数据。
尽管数据量本身相对较小,但我仍然遵循简单的原则,这实际上增加了算法不稳定的风险,并导致不适当的问题。
虽然算法的分数很高,但高分并不意味着算法很好。因此,样本的选择非常重要。我们不能简单地追求算法的高分而忽略样本的质量。
2. 算法
如果保留所有样本,那么显然数据呈现的规则不是线性的,多项式回归算法应该是更好的选择。
如果用三次多项式回归算法预测,那么算法代码如下:
预测2019年双11的营业额为2689亿元。
线性回归算法的得分:0.99939752363314
下面的代码是用MATLAB绘制的:
这几乎完全符合2009年以来11年的数据,所以人们不禁怀疑阿里的数据是否太完美了。
3. 优化
根据机器学习算法的一般过程,数据应分为两部分,即训练数据集和测试数据集。从2009年到2018年,11倍的总营业额只有10个数据。我放弃了预测中的前5个数据,只剩下5个数据。我认为没有必要再把它分开。然而,机器学习算法性能的一个关键因素是有足够的数据。
此外,应适当使用网格搜索方法优化算法参数,必要时应结合交叉验证方法对算法进行评估,以提高算法的可靠性和准确性。除了算法的准确性之外,还可以使用其他方法对模型进行评估,如召回率、F1得分、ROC、AUC、均方误差、RMSE、MAE等。
现实世界很复杂。用一种算法很难解决这个问题。找到一个基本一致的模型通常需要多次尝试。需要注意的是,多项式回归的指标不应太高,否则算法过于复杂,很可能出现“过拟合”,因此泛化能力相对较差,也就是说,训练数据集可以很好地拟合,但测试数据集的预测误差相对较大。模型复杂性和预测误差之间的近似关系如下图所示:
小结
本文是我用线性回归算法预测双11成交量后的一个重复,总结了改进思路,学习了优化方法。
运用我所学的是我学习的基本原则。如果你害怕犯错误,又不敢练习,那么学习更多的算法有什么用?这就像我们不能指望不下水就能学会游泳一样。
极牛网精选文章《如何评价算法的好坏?》文中所述为作者独立观点,不代表极牛网立场。如若转载请注明出处:https://geeknb.com/3438.html