监督学习

定义:监督学习就是指的是我们给学习算法一个数据集,这个数据集由"正确答案"构成,然后再给一个样本,机器能推算出一个近似正确或者可能的答案

回归问题

eg:我们收集一些房价的数据(面积+售出价格),然后将数据放在坐标轴上,如下图

我们可看到纵坐标表示的是售出房子的价格,横坐标表示的是售出的面积,我们可以先通过直线拟合这些收集的数据,此时我们会发现如果给定的面积样本是750feet^2,通过第一次直线拟合的数据,我们能看到这个房子大约能卖$150k但是很明显我们可以通过二次方程或者其他曲线方程对数据集进行拟合可能得到的数据会更加接近真实的情况,比如第二次我们通过曲线拟合,我们能看到这个房子大约能卖$200k,这一类问题就是回归问题(高中学的),即,通过有限的数据集我们推测这些数据范围内连续值的结果,在这里就是房子的价格

分类问题

eg:收集乳腺肿瘤的大小,判断乳腺肿瘤是否是恶性,那么此时的数据就为两种,一种是肿瘤的大小,第二种是肿瘤是否为恶性,同样的我们将数据集对应在坐标上,可以得到如下图:

横轴是肿瘤的大小,纵轴是是否是恶性肿瘤,很明显我们发现这个数据集的结果是一个离散值,结果只有两类,是或者不是,这一类问题就是分类问题,通过给定数据集你能否估算结果是哪一类的.当然这里仅仅通过一个特征来估算肿瘤是否为恶性这是不准确的,我们希望或者是通常由很多甚至无限个特征,但是如果让我们的计算机存储大量的特征,那内存肯定是不够用的,比如:假设我们的计算机能开一个1e9的一维数组,即表示的特征只有一个,当我们表示的特征数目为2时,数组的大小a[1e4.5][1e4.5]当我们的特征数目为3的时,数组的大小a[1e3][1e3][1e3],随着特征值的增多我们的能保存的数据范围也就在减小,想要达到最开始1e9这个数据这么大,我们有两种做法,第一种就是增大计算机的内存,第二种则是采用一个支持向量机的算法,这种算法可以处理无限多个特征

简单来说,监督学习就是通过一直正确结果的数据集,来判断或者是推测新样本的结果

无监督学习

聚类算法

给你一组数据集,但是这一组数据集没有任何的提示或者标签,结果什么的,无监督学习算法能自动将这一组数据集分成两个或者一些不同的簇,这就是聚类算法

eg:谷歌新闻,谷歌每天都会收集大量的新闻,然后自动将将有相同特点的新闻放在同一个分区里面,区别可能只是不同的出版社报道的,如下图

我们可以很清楚的看到第一个分区里面都是相同的内容,这就是聚类算法,聚类算法的特点就是,给算法训练一些数据集,但是这些数据集里面有什么,有哪些类型,是怎么对应的,都没提前得知,这一点和分类问题不同,分类是明确指出了有哪些类,并且给清楚了数据集和类别的对应关系。

再举一个常见的聚类算法,QQ大家都用过吧,在QQ联系人这里有一个可能想认识的人

我们点进去看就会看到一个非好友QQ的列表

这也是聚类算法的一种应用,即一个非好友的人,可能通过某种方式和你进行了一次或多次互动,QQ将推送这些人给你。

聚类算法不仅能用在这些上面,还能在生物DNA、组织大型计算机集群、市场划分、天文数据分析等等。


本当の声を響かせてよ