机器学习第一弹
机器学习定义
Arthur Samuel
和Tom Mitchell
都对机器学习进行了定义,但是我还是比较认同Tom Mitchell
的说法: 计算机程序从经验E
中学习,解决某一任务T
进行某一性能度量P
,通过P
测定在T
上的表现因经验E
而提高。因此,系统在任务T
上的性能在得到经验E
之后会提高性能度量P
。
例如跳棋游戏,经验E
就是程序与自己下几万次跳棋。任务T
就是玩跳棋。性能度量P
就是与新对手玩跳棋时赢的概率。
出一个例题帮助更好地理解任务T
、经验E
以及性能度量P
Suppose your email program watches which emails you do or do not mark as spam,and based on that learns how to better filter spam.What is the task T in this setting?
译文:假设您的电子邮件程序监视哪些电子邮件标记为垃圾邮件,并在此基础上学习如何更好地过滤垃圾邮件。什么任务T是否在此设置中?
- Classifying emails as spam or not spam.
- Watching your label emails as spam or not spam.
- The number (or fraction) of emails correctly classified as spam/not spam.
- None of the above——this is not a machine learning problem.
任务T
是第一个选项。经验E
是第二个选项。性能度量P
是第三个选项。
这道题应该挺简单的吧。
不同的学习算法能处理的特征(属性)的数量是不同的。对于某些学习算法,我们想要用无穷多的特征,因此学习算法要用无穷多的属性或特征来做预测。因此引发一个问题:如何在计算机内存不发生溢出的情况下,存储无穷多数量的事物?可以设计一个算法来解决这个问题。
机器学习算法
机器学习算法最主要的两类:也是最常使用的两类
-
监督学习:人类教计算机做某件事情
-
无监督学习:让计算机自己学习某件事情
监督学习Supervised learning
定义:监督学习是指我们给算法一个数据集,其中每一个例子都包含了正确答案。
比如预测买房价格,数据集中每一个待卖的房子都有其实际的大小和对应的价格。每一个房子给出了其大小,都能预测出其卖价。
最常见的监督学习问题:<2>
- 回归问题
regression
。比如预测买房价格,可以预测出一个具体的数值输出即价格。 - 分类问题
classification
。比如预测肿瘤是良性的还是恶性的,可以用离散数值0
和1
来表示。
回归问题的目标是预测一个连续值输出。
分类问题的目标是预测离散值输出。
出一个例题帮助更好地理解回归问题和分类问题
Problem 1: You have a large inventory of identical items.You want to predict how many of these items will sell over the next 3 months.
Problem 2:You’d like software to examine individual customer accounts,and for each account decide if it has been hacked or compromised.
译文:
问题一:你有大量相同的存货物品。你想要预测这些商品在未来3个月内会卖出多少。
问题二:你需要开发一个软件来检查每个用户的帐户,并为每个帐户决定它是否被黑客入侵或泄露。
Should you treat these as classification or as regression problems?
译文:你会将这些问题视为分类问题还是回归问题?
- Treat both as classification problems.
- Treat problem 1 as a classification problem,problem 2 as a regression problem.
- Treat problem 1 as a regression problem,problem 2 as a classification problem.
- Treat both as regression problems.
答案选择第三项。第一个问题:可以把要卖的货物数量看成一个连续的值。 第二个问题:设置预测值为0
表示用户账户没有被入侵,设置预测值为1
表示用户账户被入侵了。
如果这道题做正确的话,那么恭喜你监督学习的回归问题和分类问题已经成功掌握。
监督学习算法的工作过程
首先我们向学习算法提供训练集(在监督学习中,数据集又叫训练集training set
),例如房价训练集,学习算法的任务是输出一个函数,通常用小写h
表示,代表假设函数hypothesis
,假设函数的作用是把房子的大小作为输入变量x
,输出相应预测的房子售价值h(x)
。因此假设函数h
是一个从x
得到y
的函数。其次就是决定怎么表示这个假设函数h
。下节将介绍怎么表示假设函数。
无监督学习Unsupervised learning
无监督学习就是我们只告诉算法这里有一堆数据,算法并不知道这些数据是什么,也不知道每个数据都是什么类型的以及不知道数据都有哪些类型,然后让计算机自动找出这些数据的结构,即把这些数据类型进行分簇(这里是聚类算法Clustering
)。我们没有把数据集的正确答案给算法。这就是无监督学习。
无监督学习或聚类算法在其他领域也有大量的应用:
- 它被用来组织大型的计算机集群,也就是管理大型数据中心,并试图找出哪些机器趋向于协同工作,如果把这些机器放在一起,就可以让数据更高效地工作。
- 社交网络的分析,如果得知
Email
最频繁的联系人,据可以自动识别同属一个圈子的朋友。 - 天文数据的分析,形成了星系形成理论。
无监督学习算法和聚类算法并不相等。聚类只是无监督学习的一种。
好了,无监督学习暂且介绍到这里,以后进行详细介绍。