机器学习实战--第一章

来源:互联网 发布:网络金融诈骗判王登科 编辑:程序博客网 时间:2024/06/01 09:02

移动计算和传感器产生的海量数据意味着未来我们将要面临越来越多的数据,如何从海量的数据中抽取到有价值的信息将是一个非常重要的课题。

很重要的一段话:
在过去的半个世纪里,发达国家的多数工作岗位已经从体力劳动转化为脑力劳动,过去的工作基本上都有明确的定义,类似于把物品从A处搬运到B处,或者在这里打个洞,但是这类工作正在消失。现在的情况具有很大的二义性,类似于“最大化利润”,“最小化风险”,“找到最好的市场策略”。。。诸如此类任务要求都已经成为常态。虽然可以从互联网上获得数据,但这并没有简化知识工人的工作难度。针对具体任务搞懂所有的相关数据的意义所在,这成为了基本的技能要求。正如谷歌公司的首席经济学家Hal Varian所说:
“我不断地告诉大家,未来十年最热门的职业是统计学家。很多人认为我是在开玩笑,谁又能想到计算机工程师会是20世纪90年代最诱人的职业呢?如何解释数据、处理数据、从中抽取价值、展示和交流数据成果,在未来的十年将是最重要的职业技能,甚至是大学、中学、小学的学生必备的技能,因为我们每时每刻都在接触大量的免费信息,如何理解数据、从中抽取有价值的信息成为了关键。这里统计学家只是其中的一个关键环节,我们还需要合理的展示数据、交流和利用数据。我确实认为,能够从数据分析中领悟到有价值的信息是非常重要的。职业经理人尤其需要能合理使用和理解自己部门所产生的数据。“ ————–McKinsey Quarterly ,2009年1月

特征或者属性通常是训练集的列,它们是独立测量得到的结果,多个特征联系在一起共同组成一个训练样本。

监督学习:分类和回归

  1. k-近邻算法
  2. 线性回归
  3. 局部加权线性回归
  4. 朴素贝叶斯算法
  5. 支持向量机
  6. Ridge回归
  7. Lasso最小回归系数估计
  8. 决策树

无监督学习:聚类和密度估计

  1. K-均值
  2. 最大期望算法
  3. DBSCAN
  4. Parzen窗设计

如何选择合适的算法

  • 机器学习算法的目的
  • 数据问题

开发机器学习应用的步骤:

  1. 收集数据:获取数据来源
  2. 准备输入数据:确保数据的格式
  3. 分析输入数据:提取相关属性数据
  4. 训练算法
  5. 测试算法
  6. 使用算法

Python优势:
语法清晰、易于操纵纯文本文件、使用广泛,存在大量开发文档。

Python提供大量的正则表达式函数以及很多访问Web页面的函数库,使得从HTML中提取数据变得非常的简单、直观。

Python的不足是性能问题。
如果程序是按照模块化组织的,可以先构造可以运行的Python程序,然后再逐步使用C代码替换核心代码以改进程序的性能。C++Boost就适合完成这样的任务,类似于Cython和PyPy的工具也可以编写强类型的Python代码,以改进程序的性能。

原创粉丝点击