起因
最近萌生了一个项目的想法,也从网上找到了相关项目的代码,但涉及机器学习的知识。因此,我决定开始了解并深入学习相关知识。
该系列文章即Coursera中斯坦福大学机器学习课程的笔记。
机器学习
计算机程序处理某一系列任务的性能,通过学习与之相关的经验,得到了提升。
这个经验一般用E表示,一系列任务用T表示,P则是程序性能的度量。
比如机器学习下棋:
- E = 许多下棋的下棋经验
- T = 下棋的任务
- P = 程序赢得一次比赛的可能性
一般来说,机器学习分为两类:
- 监督学习
- 非监督学习
监督学习
监督学习,就好像小孩子学习。如果小孩子做的对,我们会表扬;反之,我们会批评他们。
因此,我们利用标记了正确与否的数据集来训练机器学习。
监督学习分为两种问题:
- 回归
- 分类
回归
回归方法一般解决结果具有连续性的问题。比如房价和房子大小的关系,可以表现为连续函数。
当然,如果你有胆量,股价走势也可以用回归方法预测。
分类
分类则解决离散分类问题,比如预测明天是否下雨。也可以类别多一些,但都是离散类别,比如预测明天是晴朗、多云还是下雨。
非监督学习
在非监督学习中,我们自己可能对数据都不太了解。
聚类方法可以帮助我们获取数据的结构信息。
显然,在这里我们没有对预测结果的反馈——也就是没有老师家长来纠正学生的错误。
聚类
我们有一万篇关于经济的文章,我们想将其自动分类,每一类中有一些共同点,诸如词频、句长、页数等。
非聚类
假设一个医生学医时并没有学习一些疾病的病人特点,但有多年从医经验,见过很多疾病的病人的特点。如果一个新病人来看病,医生就可能基于此判断其病症,甚至判断多病并发。
医生一开始并不知道病人的一些特点意味着可能患什么病。但通过大量数据的学习,就有可能做出判断,而这个判断没有标准答案来参考。