第二课 机器学习导论

发布时间 2023-05-29 16:59:41作者: tgltt

       机器学习是AI的一个研究分支,有别于专家系统等基于规则的老式AI。下面通过一些维度,简要阐述下机器学习。

1、 机器学习所需要的数学基础

1)《高等数学》

     需要掌握的知识点包括微分(导数)、积分,其中微分是理解梯度下降法的关键基础。

2)《线性代数》

     需要掌握向量、矩阵加减乘运算,另外需对SVD(矩阵奇异值分解)的应用有所了解。

3)《概率论与数理统计》

     概率是人工智能最重要的数学基础,可以说人工智能里的一切皆为计算概率而生,需掌握概率的常见分布,比如:均匀分布、正态分布,以及概率密度函数、大数定律和中心极限定理,参数估计等。

4)《信息论》

     需了解香农提出的熵理论及其计算方法。

2、机器学习中的任务类型

       机器学习中的任务有两类:分类和回归。

1)分类任务

     对应数据集的标签表示的是离散数据类型,图像分类、物体检测、图像分割、语音识别等任务就是分类任务。

2)回归任务

     对应数据集的标签表示的是连续数据类型,比如预测房价、年龄就是回归任务。

3、机器学习采用的编程语言

    可以使用任何语言,但AI圈子里主流的编程语言采用的是python,其提供的支持库也较为完善。

4、机器学习三剑客

1) Numpy

       Numpy是一个高性能科学计算库,提供了大型矩阵的计算方式,其底层采用C++编写,因此运行效率非常高效。

       Numpy是机器学习和深度学习中底层最重要的支持库,后面的机器学习框架SkLearn,深度学习框架Pytorch、TensorFlow等,都是基于Numpy的封装,可以说是铁打的Numpy,流水的上层框架。

       下面是使用Numpy编程的一个例子:

 

2) Pandas

       主要用于读写关系表,操作起来比较方便,可根据列名或行名来操作某列或某行,一般在金融领域使用比较多。

3) Matplotlib

       是一种数据可视化工具,用于观察数据特征、分布、噪声点、算法执行效果等。

 

图2 Matplotlib的使用示例

5、机器学习框架SkLearn

       SkLearn是机器学习框架中的王者,凭借其良好的封装、易用性和运行性能,几乎干掉了一切其他机器学习框架。

       SkLearn共包含分类、回归、聚类、降维、模型选择和预处理六大模块,其提供了常见的机器学习算法,比如:KNN(最近邻)、朴素贝叶丝、决策树、随机森林、支持向量机等,此外还提供鸢尾花、波士顿房价预测、乳腺癌预测等小数据集。

 

图3 SkLearn六大模块