原文地址:

机器学习实战之开篇

首先说点儿题外话,上上周末去了趟杭州参加阿里巴巴2013的ADC技术嘉年华,感觉阿里巴巴的大数据不说牛逼只能说运用的真是淋漓尽致,人家有的是用户资源,这么多财富不充分挖掘真是对不起d对不起gj更对不起自己,期间赶上图灵打折,就顺手入了一本"机器学习实战",所以,准备把学习过程记录下来,一是在整理的时候自己也能够理清思路,二是督促自己贵在坚持,最后,如果有人能看到我写的这篇文章那么就当奉献了

本人非工作需求,纯属自娱自乐,如有错误在所难免

准备按照这本书的章节顺序分享自己学习心得,另外,如果涉及到一些例如数学,信息学等知识也可能单独提取出来分享

什么是机器学习

不废话,具体参看维基,从定义我们可以看出机器学习包含了太多方面,总之个人感觉机器学习本质 上就是一种人工智能,只不过这种人工智能应用在领域,比如数据预测,数据分类等

机器学习主要任务

主要学习一下几个方面:

  • 监督学习

      - 分类:解决如何将数据划分到合适的分类中

     - 回归:主要用于预测数值型数据

  • 无监督学习:与监督学习相对,此时的数据没有分类信息也不会有目标值

     - 聚类:将数据集合分成有类似的对象组成的多个类的过程

      - 密度估计:将寻找数据统计值的过程成为密度估计

     - 降维:减少数据特征维度,以便通过二维或者三维图形展示数据信息

机器学习算法开发步骤

  • 收集数据

      - 利用爬虫从网站抓取数据

      - 设备提供的数据

      - 手动生成的数据

      - ......

  • 格式化数据

     - 数据类型格式化

     - 数据格式格式化

  • 分析数据

      - 这一步骤通过人工分析数据来确保数据的正确性

      - 分析数据合理性,例如某个个别数据和其它数据有强烈地"违和感",此时需要特殊处理

     - 可以通过二维或者三维展示数据信息

  • 训练算法

     - 将前面产生的数据输入到算法,从而使机器从中抽取知识和信息

      - 主要是监督算法使用,无监督算法无法使用(因为无监督算法不存在目标变量值,故而也不需要训练算法,监督学习其实就可以看成先训练再使用,由wiki定义也可以发现这一点)

  • 测试算法

      - 监督学习和无监督学习都要进行此过程

     - 监督学习必须知道目标变量值才能测试正确性

     - 无监督学习要通过其他手段判断正确性,例如人工

      - 如果测试不理想要考虑以下几个方面:

       - 算法:例如参数调整代码调整等

      - 数据:例如数据量太小或者太特殊等

  • 使用算法

    使用语言

    这本书中使用Python语言,其实用Python更能让我们初学者把精力放到算法本身上而非代码本身,同样一个简单的功能可能用C或者Java实现起来要多几倍的代码,况且如果算法思想掌握了再把Python转成C相对来说就容易了