机器学习
机器学习是数学算法的一种统称,它生动形象的表现了计算机借用数学方法解决问题的过程。与其说机器在学习,不如说机器在套公式。同样的,如果没有计算机,我们自己利用这些数学算法,在计算不出错误的前提下也可以得到和计算机一样的结果。由此可见,在机器学习中,计算机所扮演的仅是一个计算器的角色。我们对结果拥有绝对的预测性。用这种算法做出来的人工智能,是真正意义上的人工智能。它完全体现人的意志,在决定论的世界里有规矩的运行着,所以使用机器学习的算法并不会产生机器智能,电影里人机大战的局面也并不会发生。数学是一种工具,帮助我们解决生活与工程中遇到的各种难题,同样的披着机器学习外衣的数学算法,也是我们解决问题的工具,唯一不同的是,借用计算机可以提高计算速度和准确率,把人从繁杂的计算中解放出来。
sklearn
打开sklearn的官网,sklearn,我们可以看到网页被分成了六大板块。
这是sklearn主要做的六件事,也是机器学习算法所做的六件事,更是我们学习者需要学习的六件事。依次为分类,回归,聚类,降维,选型和前处理。分类就是有一堆水果,把他们区分开。回归就是做预测。聚类就是一群狗,你感觉根据它们的表现,可以把它们分成几类比较好。降维就是影响一个人的快乐程度的因素有很多,你感觉哪几个因素最重要。选型就是对模型进行优化。前处理就是对或得的数据进行处理。
在这六件事中,分类、回归、聚类是主要的,是机器学习主要完成的三个任务。而降维、选型和前处理却是为分类、回归和聚类服务的。降维、选型和前处理是在进行分类、回归和聚类前,对所获得数据进行处理。我们会发现,降维、选型和前处理不是必须的,我们有时会用到其中的一个,有时三个都用。
对sklearn的学习,我们从三个方面入手:
- 感性的了解这个算法做了什么事。
- 重点理解数学实现。
- 把代码跑通。
自学能力强的读者,可以直接在官网上看官网提供的例子,在自己的运行环境中跑通。笔者也是从官网入手,加入自己的一些理解,而官方手册永远是最好的学习工具。
机器学习本质是对数学的学习,代码是最简单的那个层面。我们需要具备的是用数学解决问题的能力。然而好消息是,sklearn封装了大量的算法,我们不用从零去编写代码,甚至不需要对数学公式完全的理解。更多的时候,我们仅需要知道这个算法在解决什么问题,以后碰到相同的问题,直接调用sklearn的接口函数就行。可是,记得有一个纪录片,反映了数学对人生的影响,发现学习数学越多,在人生中成功的概率也越大。这多少有了些功利主义的色彩,那么说的文艺点,数据最接近万物的本质,我们不光要看海看天,还要去看看真实的世界。数学其实也可以很有趣,让我们一起揭开数学的神秘面纱吧。