scikit-learn机器学习常用算法原理及编程实战(一)

机器学习介绍

  • 机器学习的概念
  • 机器学习要解决的问题分类
  • 使用机器学习解决问题的一般性步骤

什么是机器学习

  • 机器学习是一个计算机程序,针对某个特定的任务 ,从经验中学习,并且越做越好。
  • 谁掌握的数据量大 、质量高,谁就占据了机器学习和人工智能领域最有利的资本。

    机器学习有什么用

  • 语音识别、自然语言处理、人脸识别系统等等

    机器学习的分类

  • 有监督学习(Supervised learning)---通过大量已知的输入和输出相配对的数据,让计算机从中学习出规律,从而能针对一个新的输入做出合理的输出预测。
    回归学习(Regression learning):即输出结果是一个具体的数值,它的预测模型是一个连续的函数。
    分类学习(Classfication learning):即输出结果是离散的,即要么输出1表示是垃圾邮件,要么输出0表示不是垃圾邮件。
  • 无监督学习(Unsupervised learning)---通过学习大量的无标记的数据,去分析出数据本身的内在特点和结构。
    聚类(Clustering):是我们在分析数据之前其实是不知道有哪些类别的。聚类问题的答案是未知的,需要利用算法从数据里挖掘出数据的特点和结构。
    两种机器学习类别的最大区别是,有监督学习的训练数据里有己知的结果来“监督”;而无监督学习的训练数据里没有结果“监督”,不知道到底能分析出什么样的结果。

    机器学习应用开发的典型步骤

    1. 数据采集和标记
  • 在数据采集阶段,需要收集尽量多的特征。特征越全,数据越多,训练出来的模型才会越准确。
  • 数据标记到有监督的学习方法是必须的。

    2. 数据清洗
  • 数据清洗包括单位统一、去掉重复的数据及噪声数据、让数据具备结构化特征,以方便作为机器学习算法的输入。

    3. 特征选择
  • 特征选择的方法之一是人工选择方法,即对逐个特征进行人员分析,然后选择合适的特征集合。
  • 另外一个方法是通过模型来自动完成,如PCA算法 。

    4. 模型选择
  • 选择哪个模型,和问题领域、数据量大小、训练时长、模型的准确度等多方面有关。

    5. 模型训练和测试
  • 数据集分成训练数据集和测试数据集。以确保测试的准确性,即模型的准确性是要用它“没见过”的数据来测试,而不能用那些用来训练这个模型的数据来测试。
  • 更合理的数据集划分方案是分成3个,此外还要再加一个交叉验证数据集。

    6. 模型性能评估和优化
  • 训练时长
  • 数据集是否足够多
  • 模型的准确性
  • 模型是否能满足应用场景的性能要求

    7. 模型使用
  • 训练出来的模型可以把参数保存起来,下次使用时直接加载即可。一般来讲,模型训练需要的计算量是很大的,也需要较长的时间来训练,这是因为一个好的模型参数,需要对大型数据集进行训练后才能得到。而真正使用模型时,其计算量是比较少的,一般是直接把新样本作为输入,然后调用模型即可得出预测结果。

上一篇:scikit-learn Cookbook-3


下一篇:scikit-learn Cookbook-2