在过去的十年里,机器学习已经从科学研究实验室转移到了日常的网络和移动应用程序。机器学习使你的应用程序能够执行以前非常难以编程的任务,如检测图像中的物体和人脸,检测垃圾邮件和仇恨言论,以及为电子邮件和消息应用程序生成智能回复。
但执行机器学习与经典的编程有根本的不同。在这篇文章中,你将学习机器学习的基础知识,并将创建一个基本模型,可以根据花的测量结果预测花的种类。
机器学习是如何工作的?
经典编程依赖于定义明确的问题,这些问题可以被分解成不同的类、函数和if-else命令。另一方面,机器学习依靠的是根据经验发展其行为。你不是用规则来提供机器学习模型,而是通过实例来训练它们。
有不同类别的机器学习算法,每一种都可以解决特定的问题。
监督下的学习
监督下的学习监管模型适用于那些你想从输入数据到结果的问题。所有监督学习问题的共同特点是,有一个可以测试你的模型的基础事实,例如,标记的图像或历史销售数据。
监督下的学习模型可以解决回归或分类问题。回归模型预测数量(如销售的商品数量或股票价格),而分类问题则试图确定输入数据的类别(如猫/狗/鱼/鸟,欺诈/非欺诈)。
图像分类、人脸检测、股票价格预测和销售预测是监督学习可以解决的问题的例子。
一些流行的监督学习算法包括线性回归和逻辑回归、支持向量机、决策树和人工神经网络。
无监督学习
无监督学习适用于你有数据但不是结果,而是寻找模式的问题。例如,你可能想根据客户的相似性将他们分成几个部分。这在无监督学习中被称为聚类。或者你可能想检测偏离你企业正常活动的恶意网络流量。这被称为异常检测,是另一项无监督学习任务。无监督学习对降维也很有用,这是一种通过去除不相关特征来简化机器学习任务的技巧。
一些流行的无监督学习算法包括K-means聚类和原理成分分析(PCA)。
强化学习
强化学习强化学习是机器学习的一个分支,其中一个智能代理试图通过与环境的互动来实现一个目标。强化学习涉及行动、状态和奖励。一个未经训练的RL代理开始时随机采取行动。每个行动都会改变环境的状态。如果代理发现自己处于所需的状态,它就会得到奖励。代理人试图找到能产生最多奖励的行动和状态的序列。
强化学习被用于推荐系统、机器人技术和游戏机器人,如谷歌的AlphaGo和AlphaStar。
设置Python环境
在这篇文章中,我们将专注于监督学习,因为它是机器学习中最流行的分支,其结果更容易评估。我们将使用Python,因为它有许多支持机器学习应用的功能和库。但一般的概念可以应用于任何有类似库的编程语言。
如果你是Python的新手,freeCodeCamp有一个很好的速成课程,可以让你从基础知识开始学习)。
经常用于数据科学和机器学习的Python库之一是Scikit-learn,它提供了流行机器学习算法的实现。Scikit-learn不是Python基本安装的一部分,你必须手动安装它。
macOS和Linux已经预装了Python。要安装Scikit-learn库,在终端窗口中输入以下命令。
pip install scikit-learn
或者对于Python 3。
python3 -m pip install scikit-learn
在Microsoft Windows上,你必须先安装Python。你可以从官方网站上获得最新版本的Python 3 for Windows的安装程序。安装完Python后,在一个命令行窗口中输入以下命令。
python -m pip install scikit-learn
或者,你也可以安装Anaconda框架,它包括独立安装的Python 3以及Scikit-learn和许多其他用于数据科学和机器学习的库,如_Numpy_、Scipy_和_Matplotlib。你可以在其官方网站上找到Anaconda免费个人版的安装说明。
第一步:定义问题
每个机器学习项目的第一步是知道你要解决什么问题。定义问题将帮助你确定你需要收集什么样的数据,并让你了解你需要使用什么样的机器学习算法。
在我们的案例中,我们想创建一个模型,根据花瓣和萼片的长度和宽度的测量结果来预测一朵花的种类。
这是一个监督下的分类问题。我们需要收集一份不同花的标本及其相应物种的测量清单。然后,我们将使用这些数据来训练和测试一个机器学习模型,该模型可以将测量值映射到物种。
继续阅读《用Python进行机器学习的入门》,请访问SitePoint。