写在前面: 本博客系列是关于《机器学习实战》一书的学习笔记系列,与隔壁吴恩达的视频笔记相互配合,希望能学得更好一些(不知道,试试吧)。


第一章 机器学习基础

什么是机器学习

  • 机器学习就是把海量无序的数据转换成有用的信息。机器学习需要用到统计学知识。
  • 训练集:用于训练机器学习算法的数据样本集合。
  • 特征/属性:训练样本集的列,独立测量得到的结果。多个特征联系在一起共同组成一个训练样本。
  • 目标变量:机器学习算法的预测结果
  • 为了测试机器学习算法的效果,通常使用两套独立的样本集:训练数据和测试数据。
  • 知识表示:某程序/机器通过满足精度的测试。其可以采用规则集、概率分布、或者训练样本集中的一个实例表示。

机器学习的主要任务

  • 机器学习的主要任务是分类和回归。
  • 回归:主要用于预测数值型数据,比如数据拟合曲线(通过给定数据点的最优拟合曲线)。
  • 监督学习:分类和回归属于监督学习。这类算法必须知道预测什么,即目标变量的分类信息。
  • 无监督学习:数据没有类别信息,也不会给定目标值。其可以减少数据特征的维度,以便可以使用二维或三维图形更加直观地展示数据信息。
    • 聚类:将数据集合分成由类似的对象组成的多个类的过程。
    • 密度估计:寻找描述数据统计值的过程。

用于执行分类、回归、聚类和密度估计的机器学习算法

监督学习的用途 无监督学习的用途
k-近邻算法 K-均值
朴素贝叶斯算法 DBSCAN
支持向量机 最大期望算法
决策树 Parzen窗设计
线性回归 -
局部加权线性回归 -
Ridge回归 -
Lasso最小回归系数估计 -

如何选择合适的算法

  • 首先考虑使用机器学习算法的目的

    • 若要预测目标变量的值,可以选择监督学习算法,并进一步确定目标变量的值。

      • 离散型用分类算法:是/否、1/2/3、A/B/C、红/黄/蓝
      • 连续型用回归算法:0.0-100.00、-999-999
    • 无监督学习。

      • 聚类算法:唯一需求是要将数据划分为离散的组。
      • 密度估计算法:除了分组还需要估计数据与每个分组的相似程度。
  • 还应该了解数据的以下特征:

    • 特征值是离散型变量还是连续型变量
    • 特征值中是否存在确实的值,何种原因造成的
    • 数据中是否有异常值
    • 某个特征值发生的频率如何

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

  • 1 收集样本数据:可使用公开的数据源,也可制作网络爬虫从网站上抽取数据、从RSS反馈或者API中得到消息…
  • 2 准备输入数据:数据格式要符合要求。书中用的是Python语言的List。
  • 3 分析输入数据:人工分析或通过123维图形展示数据(多维也可压缩成123维),且必须保证数据集中没有垃圾数据。
  • 4 训练算法:机器学习算法(步骤4+5是算法核心)是从这一步开始学的。 (若使用无监督算法,无需目标变量值故不需要训练算法,则所有与算法相关的步骤都集中在第五步)
  • 5 测试算法:实际使用第四步机器学习得到的知识信息。评估算法精度。
  • 6 使用算法:将机器学习算法转换成应用程序,检验是否可在实际环境中操作。

Python语言的优势与劣势

  • 优势
    • python语法清晰
    • 易于操作纯文本文件
    • 使用广泛,存在大量开发文档
  • 劣势
    • 运行效率不如java和c。
  • 解决办法
    • C代码替换核心代码,如C++Boost库
    • Cython和PyPy等工具来编写强类型的Python代码来进一步改进性能

NumPy函数库基础

  • 用书上的例子验证是否正确安装了函数库
  • NumPy函数库中有两种完全不同的数据类型(矩阵matrix和数组array)都可以处理行列表示的数字元素。在这两个数据类型上执行相同的数学运算可能得到不同的结果。

学习笔记1 | 机器学习实战(Harrington)

相关文章: