上一篇笔记里,我在对机器学习一窍不通的情况下,照着Sklearn 的文档和教程,使用了一个简单的线性回归来预测股价。简单线性回归的预测结果很不理想,与训练结果相差很大。研究机器学习的科学家们为我们提供了有力的工具箱,但是想要正确高效地使用他们为我们提供的工具,我们需要系统地了解机器学校的一些基本知识。首先要知道每个工具的适用对象和方法,然后就是不断尝试和练习了。

要想明白为什么我们的预测结果不理想以及如何提高预测的准确率,我需要去系统的学习下机器学习的基本知识,看看我们是否选对了正确的工具,使用的方法是否正确。

Learning is the process of converting experience into expertise or knowledge. ——Shalev-Shwartz & Ben-Davis

学习就是把经验转换成专业知识或者学问的过程。
A computer is said to learn from experience E with respect to some task T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E. ——Mitchell

电脑能学习就是说电脑可以在有经验E的情况下比没有经验E的情况下,把某个任务T做得从角度P看来更好。(翻译需要同时对英语和汉语都有很深的造诣,我翻译得不好)

结合前面预测股价的例子,经验E就是过去的股价信息,任务T就是给出五天后的收盘价,角度P就是预测的股价与真正股价的接近程度。机器学习有很多种,就像水果有苹果、香蕉、梨子还有西瓜等等。前面预测股价的例子是统计学习。统计学习有几个常用的概念:

1, Domain set X: 定义域,前面的例子中是开盘价,收盘价,最高价,最低价,成交量等

2, Label set Y:值域,前面的例子中是5天后的收盘价

3, Training Data S: 训练集,前面的例子中是历史的股价信息

4, hypothesis h:预测函数,前面的例子中是y=Ax+b这种简单的线性模型,Sklearn 帮助我们找出最优的A和b。至于它是怎么找出来的,需要多少时间(时间复杂度),我暂时不关心。

5, hypothesis set H: 预测函数集,所有可能的h的构成的集合,在前面预测股价的例子(线性回归)中,我们人为地限定预测函数一次线性函数。在有的应用场景中,预测函数的结构可以不限定。

6, more specific /generic than: 更一般或特殊,不同预测函数之间的比较关系。h0 比h1 适用于更多的训练集样本,则h0比h1更一般,h1 比h0更特殊。

7,VC dimension: VC维度,一般是一个自然数,用来描述预测函数集的最大分辨能力。VC维度越大的预测函数也就越复杂,能适用于更复杂的问题,但是花费的时间也越多。这个东西比较抽象,这两篇博文可以记下备用:

https://xhxt2008.live/2018/05/11/VC-dimension/

https://tangshusen.me/2018/12/09/vc-dimension/

线性回归也有VC维度,http://www2.stat.duke.edu/~banks/218-lectures.dir/dmlect8.pdf,但是好像不是一个恒定的自然数。

题外话,我已经大学毕业快7年了,已经是一个孩子的父亲,父母也年事渐高,只能挤挤周末和公交车上的时间来看看相关的资料。学习机器学习纯粹是出于兴趣和娱乐。现在的电视剧和综艺节目对我真的没什么吸引力,玄幻小说也感觉没什么好看的,就来看看机器学习这高大上的玩意,假装自己很努力。笔记里的内容作为个人片面的理解,肯定错误多多,如果被我的笔记带坑里去了,本人概不负责。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据