美文网首页ML
机器学习基础

机器学习基础

作者: 谢小帅 | 来源:发表于2017-05-07 12:52 被阅读7次

    机器学习的应用实例

    • 搜索引擎记录用户的点击,从中学习优化下次搜索结果
    • 垃圾邮件过滤
    • 商店的款台收费软件基于以前的统计知识,认为买尿布的人通常喜欢喝啤酒
      小明给孩子买完尿布又去买了啤酒,账单信息发现这两种商品经常一起买
    • 人脸识别
    • 自然语言处理
    • 产品推荐
    • 图像识别
    • 专家系统

    机器学习就是将无序的数据转化为有用的信息

    监督与无监督

    • 监督学习:机器知道预测什么,即目标变量的分类信息。包括分类和回归。
    • 无监督学习:数据没有类别信息,完成聚类和密度估计。还可以减少数据特征维度。
      聚类:将数据集合分成由类似对象组成的多个类
      密度估计:寻找描述数据统计值的过程

    如何选择算法

    想要预测目标变量的值,选择监督学习算法,否则选择无监督学习算法。

    • 监督学习,进一步确定目标变量类型。

    • 离散,分类算法

    • 连续,回归算法

    • 无监督学习,进一步确定分组

    • 将数据划分为离散的组是唯一需求,聚类算法

    • 还需要估计数据与每个分组的相似程度,密度估计算法

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

    1. 收集数据
    • 网络爬虫从网站抽取数据
    • RSS反馈或API数据(RSS用以聚合经常发布更新数据的网站)
    • 设备传送的实测数据(滴滴打车的定位信息)
    1. 准备输入数据
    • 标准化数据格式(如List)
    • 数据类型(String,int)
    1. 分析输入数据
    • 无效数据
    • 异常数据
    • 可视化数据(多维降维分析特征值)
    1. 训练算法
    • 前两步格式化的数据输入到算法,训练抽取知识(模型参数)
    • 无监督学习不存在目标变量值,不需要这一步
    1. 测试算法
    • 监督学习通过实际目标变量值评估(如交叉熵)
    • 无监督学习也要用其他办法评估成功率
    • 算法不合格,回到第4步重新训练。问题常与数据有关,回到第1步重来
    1. 使用算法
    • 机器学习算法转化为应用程序,执行实际任务。

    Python

    • 优势
    • SciPy和NumPy等库实现向量和矩阵操作,可读性强
      SciPy和NumPy使用底层语言(C和Fortran)编写,提高了计算性能
    • Matplotlib绘制2D,3D图形,可视化结果
    • 交互式shell环境,便于查看和检测程序内容
    • Java和C等强类型虽然快,但是开发效率低
    • 缺点
    • 性能低,运行效率不如Java或者C
    • Cython和PyPy工具可以编写强类型的Python代码,改进性能

    相关文章

      网友评论

        本文标题:机器学习基础

        本文链接:https://www.haomeiwen.com/subject/vdyutxtx.html