> 文章列表 > 第一节:机器学习和 scikit-learn 介绍

第一节:机器学习和 scikit-learn 介绍

第一节:机器学习和 scikit-learn 介绍

目录

 0、介绍

 1、监督学习介绍

监督学习的类型

2、非监督学习介绍

3、scikit-learn 介绍


 0、介绍

        机器学习(英语:Machine learning)如今越来越热门,而入门机器学习的门槛也变得越来越低。得益于优秀的机器学习框架和工具,初学者也可以很快上手一个机器学习项目,并使用机器学习算法来挖掘自己的数据。本次课程,我们首先介绍机器学习中几个基本的概念。

知识点

  • 监督学习概念
  • 非监督学习概念
  • scikit-learn 工具

 1、监督学习介绍

        机器学习中,我们通常会接触到:监督学习、非监督学习、半监督学习,强化学习等不同的应用类型。其中,监督学习(英语:Supervised learning)是最为常见,且应用最为广泛的分支之一。

        监督学习的目标是从已知训练数据中学习一个预测模型,使得这个模型对于其他输入数据产生一个预测输出。其中,监督学习的「监督」是相对与「非监督」的一种表达,二者的区别在于,监督学习的训练数据经过了人工进行标注,而非监督学习则没有这个过程。

        如同上面的两个简单的数据集。左边的数据集明显没有经过标注。而右边数据集则进行了颜色标注,也就是人为给数据样本打上了橙色、绿色和蓝色的标签。

监督学习的类型

        监督学习中,所面对的问题大致分为两类:分类和回归

        其中,分类问题可以简单概括为:已有了一些数据样本及明确的样本分类。现在从这些样本的特征中总结规律,再用于判断新输入样本到底属于哪一类别。例如下图展示了一个分类过程,使用监督学习算法对水果进行类别区分。

        分类的例子在生活中处处可见。比如这里正在讲,监督学习可以分为分类和回归一样。而面对一个新问题,判断它是属于分类还是回归,就需要根据这个问题具备的特征来判断。 

其中,回归问题与分类问题的最大区别(特征)在于,输出变量的类型不同。详细说来: 

  • 分类问题,输出为有限个离散变量,布尔值或者定类变量。
  • 回归问题,输出为连续变量,一般为实数,也就是一个确切值。

        举个例子,当我们预测一个人的性别时,就是一个典型的分类问题。而预测一个人的年龄时,则应看作是回归问题。 

2、非监督学习介绍

        什么是非监督学习?笼统来讲,它和监督学习是一个相对的概念。在监督学习的过程中,我们需要对训练数据打上标签,这是必不可少的一步。而非监督学习面对的数据是没有标签的

        举个例子,比如我们现在有一堆动物的照片。在监督学习中,我们需要提前对每张照片代表的动物进行标记。这一张是狗,那一张是猫,然后再进行训练。最后,模型对于新输入的照片,就能分清楚动物的类别。

        当进行非监督学习时,照片并未进行标注。我们需要将所有的训练样本照片「喂」给算法即可。注意,这个时候和监督学习有一些不同,非监督学习只能识别出训练样本里包含了几种类别的动物,而并不能直接告诉你这只是猫,那一只是狗。但是,这里的类别数量一般都不会太大,你可以手动对类别进行标记,再将数据用于其他用途。

        上面这个例子中,非监督学习识别出样本包含几种类别,就是我们通常所说的「聚类」。如下图所示,演示了一个非监督的聚类过程。

 

        当然,上面所说的聚类只是非监督学习主要面对的问题,实际上非监督学习还包括主成分分析等更多的应用方面。机器学习中,当我们使用到的数据没有特定标签时,基本都可以被归为非监督学习问题。

3、scikit-learn 介绍

       机器学习常用的方法有很多,例如:线性回归、支持向量机、k 近邻、决策树、朴素贝叶斯、逻辑回归等。其中的一些方法都有着比较复杂的数学过程,如果每一次都需要自己通过代码实现这些算法,那么机器学的门槛就变得很高了。

        scikit-learn 是一个十分流行的开源机器学习工具,它将众多的机器学习算法封装起来,往往只需要几行代码,通过简单的方法类调用,就可以实现原本复杂的机器学习模型。

        除此之外,scikit-learn 还提供了围绕机器学习核心算法的一套工具,包括数据预处理,模型评估,超参数优化等。这对于使用 Python 完成机器学习建模非常重要且非常实用。

        所以,本次课程我们将从 scikit-learn 入手来了解并掌握机器学习建模的流程和方法。