![机器学习实战:模型构建与应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/359/44389359/b_44389359.jpg)
上QQ阅读APP看书,第一时间看更新
1.2 传统编程的局限性
图1-3中的模型从它初始就成为开发的主干。但是它有一个与生俱来的局限:只适用于可以制定规则的场景。其他情况下怎么办呢?通常,由于代码过于复杂,它们是不可行的,无法通过编写代码来处理它们。
考虑一个例子:运动检测。可以检测我们运动的健身监视器是最近的一个创新产品,不仅得益于其廉价精致的硬件而变得普及,同时得益于曾经不可行的检测算法现在可行了。让我们来研究一下为什么。
图1-4展示了一个简单的步行运动检测算法。它可以知道人的速度。如果速度小于一个固定的值,我们便可以判断人们可能正在走路。
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/025-1.jpg?sign=1739251640-fDHmNZm7x32echZHOQiMASsMfIdmPqAI-0-c5a6ca57e3e259899a4f8aeee9921415)
图1-4:运动检测算法
既然数据是速度,我们可以扩展到检测人们是否正在跑步,如图1-5所示。
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/025-2.jpg?sign=1739251640-lRGHw69rqfLsTq0HJbSfbTNNoPyYtajA-0-88d8e82e455e0959b8adecd47de2cc8a)
图1-5:扩展算法来检测跑步
可以看到,根据速度,我们可以说如果它小于一个固定值(例如,4英里/时,约6.44千米/时),那么这个人就是在走路,否则他们就是在跑步。这个算法仍然有效。
现在假设我们想要扩展这个算法来检测另一个受欢迎的健身运动:骑行。算法可能看起来如图1-6所示。
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/026-1.jpg?sign=1739251640-iY3RkTGIHbfIYNqhSnTpmGkjWcbkMaHu-0-e3d30bfd9a9cae227d91b55fc9065d48)
图1-6:扩展算法来检测骑行
我知道这很简单,因为它只是检测速度—有些人比其他人跑得更快,而且你可能在跑步下山时比上山骑行时更快。但是总的来说,这个算法依然有效。但是,如果我们要检测高尔夫球(如图1-7所示)时会发生什么呢?
![](https://epubservercos.yuewen.com/A03276/23627497809544006/epubprivate/OEBPS/Images/026-2.jpg?sign=1739251640-OrrDlFFliqqPpXRKIwQ7m2bmTmqSJIgY-0-a0c0d94c85e6c8dc4c2cedf0622b84b8)
图1-7:如何写一个高尔夫球算法
我们现在卡住了。如何通过上述方法来判断一个人正在打高尔夫球呢?那个人可能走一会,停下来,做一些活动,再走一会,停下来,等等。但是我们怎么知道这是打高尔夫球呢?
我们使用传统规则来检测这项运动的能力碰壁了。但是也许有一种更好的方法。
使用机器学习。