有监督学习
简单来说,就是人教会计算机学会做一件事。
给算法一个数据集,其中数据集中包含了正确答案,根据这个数据集,可以对额外的数据希望得到一个正确判断(详见下面的例子)
回归问题
例如现在有一个房价数据集,记录了不同面积的房子的实际卖价, 现在用图表表示数据集,横轴表示房子面积,纵轴表示房子的卖价, 图画出来后,可以用一个直线或者曲线去拟合(至于选择直线还是曲线,要看具体的衡量标准),然后现在有一个需求,就是我有一个x平方的房子,想要知道这个房子的卖价, 此时就可以通过在横轴的x位置,找到直线或曲线上对应的纵轴的值y,就可以得到预估卖价。
这个房价问题是个回归问题,回归问题是指:我们想要预测连续的数据输出,即预测的结果是一个连续值,如这里房子卖出的价格就是一个连续值,还有一种类型是分类问题(详见下面),以二分类问题为例,对于某一个样本,它的结果只有两种可能:对或错, 而我们预测某个数据的结果,要么是对要么是错,也就是说结果是离散的 那么对比之下,我们预测某个面积的房子的卖价,卖价可能是一个范围里的任何数字,也就是连续的, 所以回归问题就是某个数据的结果是连续的,不是像分类问题的结果是离散的。
分类问题
例如现在有一组数据集,是不同的肿瘤大小对应它是否是恶性肿瘤(结果只有两种:是或否),现在需要预测肿瘤大小为x的肿瘤,是否是恶性肿瘤,预测的结果为y(是或否),这就是个二分类问题,即答案只有两种。除此之外,还有多分类问题,也就是答案不止两种(但也是有限种类)。
在判断肿瘤是否是恶性的这个问题上,我们判断的标准只有肿瘤大小这一个特征/属性, 而实际中,可能会根据多个特征/属性进行综合判断进而得到结果,上面的房价问题也是如此,我们只根据房屋面积这一个特征进行估价,而实际上肯定还会结合地段、交通等多个特征进行判断。如下面的数据集是根据肿瘤大小和患者年龄两个特征来判断肿瘤的性质。
无监督学习
简单来说,就是让计算机在不用人教的情况下自己学会做一件事
在上述的监督学习中,房价问题中的数据集的每个样本都清楚的知道了它的卖价,在肿瘤问题中的数据集中,每个样本也都被表明为是恶性还是良性。由此可见,在有监督学习中,对于数据集的每个样本,我们都清楚的告知了的正确答案(如肿瘤是恶性还是良性)。
而在无监督学习中,我们给算法一个数据集,不告诉算法这个数据集的每个数据点代表什么,要求算法找出数据的类型结构。
例如,给定一组不同的个体,对于每个个体,检测他们是否拥有某个特定的基因,具体做法就是,运行一个聚类算法,根据个体所拥有的基因把不同的个体归为不同类型的人,这就是无监督学习。因为在给定这些个体时,即给定数据集时,没有事先告知每个个体的类型,只是告诉算法,这里有一堆数据。我不知道这些数据是什么,不知道每个数据的类型,甚至不知道总共有哪些类型,你能自动找出这些数据的结构吗?虽然我事先不知道有哪些类型,但你能按得到的类型把这些个体进行分类吗?因为我们没有把数据集中的正确答案(即每个个体属于什么类型的人)告诉算法,所以这就是无监督学习。
聚类算法
聚类算法是无监督学习算法中的一种,对于给定的数据集,无监督学习算法可能判定数据集包含两个不同的簇,然后把这些数据分为两个不同的簇,这就是聚类算法。
聚类算法的应用举例
- 市场细分。根据客户信息将客户分为不同的市场群体,进而进行精准销售。我们只拥有全部客户的信息,但是并不知道有哪些市场细分,也不知道某个客户属于哪种市场细分,所以让算法自己从数据中去发现这些
- 社交网络的分析。可以得知和你联系最频繁的人,判断哪些人可能相互认知等。
- 新闻分类。将几万条甚至更多的新闻组成不同的新闻专题