第一章 机器学习

  • 1.1何谓机器学习
  • 1.2关键术语
  • 1.3机器学习的主要任务
  • 1.4如何选择合适的算法
  • 1.5开发机器学习应用程序的步骤
  • 1.6Python语言的优势


1.1何谓机器学习

    1、简单地说,机器学习就是把无序的数据转换成有用的信息;
    2、机器学习能让我们自数据集中受启发,我们会利用计算机来彰显数据背后的真实含义;
    3、机器学习横跨计算机科学、工程技术和统计学等多个学科,需要多学科的专业知识。

1.2关键术语

    1、特征或者属性:数值型(十进制)、二值型(有/无或0/1)、枚举型(鸟类后背颜色);
    2、特征或者属性通常是训练样本集的列,它们是独立测量得到的结果,多特征联系在一起共同组成一个训练样本。

1.3机器学习的主要任务

    1、机器学习的主要任务就是分类,另一项任务是回归,它主要用于预测数值型数据;
    2、分类和回归属于监督学习,之所以称为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息;
    3、与监督学习相对应的是无监督学习,此时数据没有类别信息,也不会给定目标值。在无监督学习中,将数据集合分成有类似的对象组成的多个类的过程被称为聚类,将寻找描述数据统计值的过程称之为密度估计。并且无监督学习可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。
    下表列出了机器学习的主要任务以及解决相应问题的算法:

监督学习的用途

k-近邻算法

线性回归

朴素贝叶斯算法

局部加权线性回归

支持向量机

Ridge回归

决策树

Lasso最小回归系数估计

无监督学习的用途

K-均值

最大期望算法

DBSCAN

Parzen窗设计

1.4如何选择合适的算法

    1、首先考虑使用机器学习的目的:如果想要预测目标变量的值,则可以选择监督学习算法,否则选择无监督学习算法。
    选择监督学习算法之后,需要进一步确定目标变量类型。如果目标变量是离散型,如是/否、1/2/3、A/B/C,或者红/黑/蓝,则可以选择分类算法。如果目标变量是连续性的数值,如0.0-100.00、-999-999等,则选择回归算法。
    选择无监督学习算法之后,进一步分析是否需要将数据划分为离散的组,如果这是唯一的要求,则使用聚类算法。如果需要估计数据与每个分组的相似程度,则需要使用密度估计算法。
    2、其次需要分析或收集的数据是什么。充分了解数据特性可以缩短选择机器学习算法的时间。

1.5开发机器学习应用程序的步骤

    1、收集数据
    2、准备输入数据
    3、分析输入数据:主要是人工分析数据,查看数据是否为空值、是否存在明显异常值。
    4、训练算法:如果使用无监督学习算法,由于不存在目标变量值,不需要训练算法。
    5、测试算法:为了评估算法,必须测试算法工作的效果。如果不满意算法的输出结果,则可以回到第四步,改正并加以测试。
    6、使用算法:将机器学习算法转换为应用程序,执行实际任务。如果碰到新的数据问题,同样需要重复执行上述的步骤。

1.6Python语言的优势

    1、Python的语法清晰
    2、易于操作纯文本文件
    3、使用广泛,存在大量的开发文档