原文作者:python猫娘
原文地址:监督学习与非监督学习
一、监督学习(supervised learning)
监督学习(supervised learning)的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。即:利用训练数据集学习一个模型,再用模型对测试样本集进行预测。例如kaggle上的泰坦尼克号比赛。
官方提供旅客数据——数据集1(姓名,年龄,性别,社会经济阶层,是否生存等),要求参赛选手建立一个预测模型来回答“另外418名乘客是否会生存?”这是一个典型的监督学习(supervised learning)的例子。因为该训练资料有输入物件(姓名,年龄,性别,社会经济阶层等)和预期输出(是否生存)。有无预期输出是监督学习(supervised learning)与非监督学习(unsupervised learning)的区别。
我们的任务是根据数据集1建立一个预测模型(model),即学习算法(learning algorithm)。这个过程称为“学习(learning)”或“训练(training)”。由于我们得到的学得模型只是接近了数据的某种潜在规律,因此被称为‘假设(hypothesis)’。相对应的,潜在规律自身则被称为‘真实(ground-truth)’。学习的目的就在于找到最好的‘假设(hypothesis)’。用学习算法(learning algorithm)对数据集2的每个实例(姓名,年龄,性别,社会,社会经济阶层等)进行判断——‘是否能生存?’。
这是一个二分类任务(输出为‘生存’或‘死亡’两个维度)。如果所需结果为‘生存’,‘半生半死’或‘死亡’等多个维度,则为多分类任务。如果所需结果为生存率(0~1),则为回归任务(输出结果为连续值)。
分类问题(离散)与回归问题(连续)等都是监督学习。
分类问题:
回归问题:
二、非监督学习(unsupervised learning)
非监督学习(unsupervised learning)为直接对数据进行建模。没有给定事先标记过的训练范例,所用的数据没有属性或标签这一概念。事先不知道输入数据对应的输出结果是什么。自动对输入的资料进行分类或分群,以寻找数据的模型和规律。如聚类算法:针对数据集,自动找出数据中的结构,从而把数据分成不同的簇。例如:谷歌新闻利用聚类算法把不同的主题放在一起。
无监督学习(unsupervised learning)的优点:由于没有标准的分类方法,有可能从数据中挖出启发与亮点。