目录
三、非监督学习(Unsupervised Learning)
一、机器学习(Machine Learning)
1.1 机器学习定义
(1) Arthur Samuel(1959): Field of study that gives computers the ability to learn without being explicitly programmed.
在没有明确设置的情况下,使计算机具有学习能力的研究领域。
(2) Tom Mitchell(1998): Well-posed Learning Problem:A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
一个计算机程序被认为能从经验E中学习,解决某一任务T,达到某一性能度量P;当且仅当,程序在处理T时的性能(经过P评判)随着经验E的提高而有所提升。
eg1:人机玩跳棋游戏
经验E:程序与自己下几万盘棋局;
任务T:下跳棋;
性能度量P:与新对手下跳棋时赢的概率。
eg2:假设您的电子邮件程序监视哪些电子邮件被标记为垃圾邮件,哪些没有标记为垃圾邮件,并基于此学习如何更好地过滤垃圾邮件。
经验E:看着你给邮件贴上垃圾邮件或非垃圾邮件的标签;
任务T:将电子邮件分类为垃圾邮件或非垃圾邮件;
性能度量P:正确分类为垃圾邮件/非垃圾邮件的数量(或部分)。
1.2 机器学习算法分类
监督学习(Supervised Learning): 教计算机如何去完成任务。它的训练数据是有标签的,训练目标是能够给新数据(测试数据)以正确的标签。
无监督学习(Unsupervised Learning):让计算机自己进行学习。它的训练数据是无标签的,训练目标是能对观察值进行分类或者区分等。
强化学习(Reinforcement Learning):智能体以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏。
二、监督学习(Supervised Learning)
2.1 监督学习定义
给算法一个数据集,数据集中的每个样本都有相应的“正确答案”,算法根据这些样本作出预测,目的是给出更多的正确答案。
Supervised Learning“right answers” given
数据集包含正确答案,算法基于正确答案预测更多的正确答案
2.2 回归问题(Regression)
eg:预测房价——已知一个数据集(房子的平方英尺数-价格),预测房子价格
可以通过一条直线拟合数据,或者通过二次函数拟合数据。如何选择和如何决定用什么拟合数据会有更好的结果。
Regression: Predict continuous valued output (price) → 回归问题:预测连续的数值输出
2.3 分类问题(Classification)
eg:预测肿瘤是良性或恶性(分类问题)——横轴表示肿瘤大小,纵轴1和0表示是或者不是恶性肿瘤,假设已知肿瘤大小,预测肿瘤是恶性或良性的概率。
(1)一种特征时:
(2)两种特征时:
(3)多种特征时:
怎么处理无限多个特征,甚至怎么存储这些特征都存在问题,你电脑的内存肯定不够用。后面会讲一个算法叫支持向量机,能让计算机处理无限多个特征。
Classification: Discrete valued output (0 or 1) → 分类问题:预测一组离散的输出
2.4 练习
问题1:你有一大批同样的货物,想象一下,你有上千件一模一样的货物等待出售,这时你想预测接下来的三个月能卖多少件?
问题2:你有许多客户,这时你想写一个软件来检验每一个用户的账户。对于每一个账户,你要判断它们是否曾经被盗过?
那这两个问题,它们属于分类问题、还是回归问题?
- 问题1:回归问题,因为如果我有数千件货物,我会把它看成一个实数,一个连续的值。因此卖出的物品数,也是一个连续的值。
- 问题2:分类问题,因为我会把预测的值,用 0 来表示账户未被盗,用 1 表示账户曾经被盗过。所以我们根据账号是否被盗过,把它们定为0 或 1,然后用算法推测一个账号是 0 还是 1,因为只有少数的离散值,所以我把它归为分类问题。
三、非监督学习(Unsupervised Learning)
3.1 非监督学习定义
只给算法一个数据集,但是不给数据集的正确答案,由算法自行分类。
- 非监督学习没有任何 标签(labels)
- 非监督学习会把数据分成不同的 簇(clusters)
- 非监督学习是 聚类算法(clustering algorithm)
3.2 聚类算法应用
- Organize computing clusters 组织大型计算机集群高效协作:想解决什么样的机器易于协同地工作,如果你能够让那些机器协同工作,你就能让你的数据中心工作得更高效。
- Social network analysis 社交网络分析:已知你朋友的信息,比如你经常发email的,或Facebook的朋友、谷歌圈的朋友,自动地给出朋友的分组,使每组里的人们彼此都熟识。
- Market segmentation 市场分割:市场通过对用户进行分类,确定目标用户。
- Segmentation data analysis 天文数据分析
- 新闻事件分类:每天收集几十万条新闻,并按主题分好类,组成有关联的新闻。
- 基因学,一个DNA微观数据:输入一组不同个体,分析不同的个体是否有着一个特定的基因,运行一个聚类算法把个体聚类到不同的类或不同类型的组(人)……
- 鸡尾酒算法:两个麦克风分别离两个人不同距离,录制两段录音,将两个人的声音分离开来(只需一行代码就可实现,但实现的过程要花大量的时间)
鸡尾酒算法:[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');