zoukankan      html  css  js  c++  java
  • 机器学习:基本概念、一般步骤、工具

    人工智能(Artificial Intelligence)

    • 通过计算机模拟人类智慧,以完成很多只有人类才可以完成,甚至连人类都无法完成的任务
    • 比如专家系统、图像识别、语音识别、自然语言处理、自动驾驶、推荐系统、人机博弈、电脑游戏、机器人等
    • 人类利用计算机完成了很多对人类而言非常困难的工作,但一些人类可以很容易解决的问题比如驾驶汽车、语言图像识别,计算机却很难解决,这是人工智能需要解决的问题
    • 早期人工智能只能解决简单的特定环境下的问题,比如国际象棋

    机器学习(Machine Learning)

    • 通过分析已有的数据,从中学习,然后对新数据进行预测、决策、判断
    • 人们发现有些问题通过逻辑分析很难解决,还不如通过对已有的数据进行统计分析
    • 机器学习需要有海量数据进行训练,很多数据量小或是靠逻辑分析能解决的问题并不适合使用机器学习

    深度学习(Deep Learning)

    • 传统的机器学习,需要人工选取特征值,计算机从数据中提取人工指定的特征值然后进行训练
    • 然而有些问题,靠人工的方式无法很好的提取特征值
    • 深度学习不需要人工指定特征值,而是自动提取简单的特征值,并组合成更复杂的特征值,然后进行训练
    • 深度学习使用的主要是神经网络

    监督学习(Supervised Learning)

    • 给定样本集 (X, Y),机器从中推演出合适的模型 y = F(x),然后对新的 X 数据,通过 F 预测相应的 Y
    • 监督学习一般使用两种类型的目标变量:标称型和数值型
      • 标称型目标变量的结果只在有限目标集中取值,如真与假、动物分类集合{爬行类、鱼类、哺乳类、两栖类}
      • 标称型目标变量主要用于分类
      • 数值型目标变量则可以从无限的数值集合中取值,如 0.100、42.001、1000.743 等
      • 数值型目标变量主要用于回归分析

    无监督学习(Unsupervised Learning)

    • 给定的样本集中只有 X 没有 Y,无监督学习要回答的是:从数据 X 中能发现什么?
    • 比如 "构成 X 的最佳的 6 个数据簇都是哪些"、"X 中哪三个特征最频繁共现"
    • 将数据集合分成由类似的对象组成的多个类的过程被称为聚类
    • 将寻找描述数据统计值的过程称之为密度估计

    回归(Regression)一词的来历

    • 假设现在有一些数据点,我们用一条曲线对这些点进行拟合,寻找最佳拟合参数,这个拟合过程就称作回归
    • 回归由高尔顿发明,高尔顿 1877 年完成第一次回归预测:根据上一代豌豆种子的尺寸预测下一代豌豆种子的尺寸
    • 他发现个体小的豆子往往倾向于产生比其更大的子代,而个体大的豆子则倾向于产生比其小的子代
    • 高尔顿认为这是由于新个体在向这种豆子的平均尺寸回归,就是事物总是倾向于朝着某种平均发展
    • 高尔顿在多项研究上都注意到这个现象,所以尽管这个英文单词跟数值预测没有任何关系,但这种研究方法仍被称作回归

    机器学习的一般步骤如下

    1. 收集数据
    2. 提取特征
    3. 转换数据
    4. 清洗数据
    5. 划分数据
    6. 选择算法
    7. 训练算法
    8. 验证算法
    9. 符合要求则继续,否则重新选择算法或重新训练算法,甚至是重新收集数据
    10. 使用算法

    分类例子 - 专家系统 - 鸟类识别系统

    1. 收集大量已分好种类的样本数据
    2. 选择用于分析的特征(重量,翼展,有无脚蹼,不同部位颜色,等等)
    3. 取特征值 X 和种类 Y、转换数据格式、特征编码
    4. 清洗数据、处理缺失值、处理异常值、归一化或标准化、降维
    5. 分为两套独立的样本集:训练数据集和测试数据集,比如可以选择 90% 的样本作训练,10% 的样本作测试,需要保证有随机性
    6. 选择一种分类算法
    7. 使用训练数据集进行迭代训练,产生一个模型 F(X) = Y
    8. 将测试数据集的特征值作为模型的输入,模型判断出相应的种类
    9. 将模型判断的结果与测试数据集的实际种类作比较,得出该模型的精确度,如果精确度不符合要求,重新选择算法或重新训练算法,甚至是重新收集数据
    10. 使用该模型,通过特征值对新数据进行分类

    工具

    • Python

      • 简单(脚本,高级数据类型如 Dict,正则表达式,操作文本文件,等等)
      • 流行(网上资料多,库多,SciPy、NumPy 等许多科学函数库都实现了向量和矩阵操作,MatplotLib 等库实现图形化)
      • 缺点是性能差些(可以通过使用 C 替代核心代码改善,实际上 NumPy 这些库就是 C 实现的)
    • 机器学习库

      简介
      scikit-learn(sklearn) 机器学习算法
      TensorFlow/Theano/Caffe 深度学习框架
      Keras 以 TensorFlow 或 Theano 为后端,提供友好易用的API,适合于简单快速的原型设计
      Spark MlLib 分布式、大数据、运算快,提供的算法可能比较基础,API 限制多


  • 相关阅读:
    PS 给天空添加蓝天白云<转载>
    Study 8 —— 行块元素及定位
    Study 7 —— CSS美化背景和边框
    Study 6 —— 字体和段落属性
    Study 5 —— CSS概述
    Study 4 —— 表单标签
    Study 3 —— 表格
    Study 2 —— 图片热点区域
    Study 1 —— HTML5概述
    CentOS6.x下,tomcat
  • 原文地址:https://www.cnblogs.com/moonlight-lin/p/12267500.html
Copyright © 2011-2022 走看看