机器学习笔记:开始

By on 2018-01-23

近期机器学习风风火火,满城尽是AI is Coming。是炒作,还是造势,还需观察。但也的确让人(我)意识到科技已经和时间一样,不等人。出于兴趣,于是入门机器学习。也是不想丢了编程这门手艺,于是用Python实现机器学习中一些主要的算法(毕竟Python已经纳入学生考试范围了,以后给孩子补习功课也用得上)。

将学习的经验的笔记整理至此,不定期更新、修改,主要看白天工作忙不忙。。。

那么先从概述开始:

一、机器学习已来到我们身边

举几个熟悉的例子,访问了某些网页,相关信息就会推送至网页广告;在某宝访问了些商品,某宝首页就会立即出现关联产品的推荐;将某些邮件定义为垃圾邮件,那么下一次同类邮件也会被默认归为垃圾分类。以上这些,就是机器学习的应用。世界上有很多东西是有明确的定义,例如某人从A移动到B;但也有些是没法明确定义的,例如从A移动到B的人是什么星座的,这些没法明确的,就需要机器学习:事先定义一个模型,给它一堆数据分析,逐步去精确、优化这个模型的参数,以此来对未来给出较高概率的预判。大概就是这么回事儿吧。

补上百度百科上“机器学习”的定义,随便看看,反正我没看懂:

“机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。”

二、机器学习的学习形式

大抵上分为监督学习(supervised)与非监督学习(unsupervised):

监督学习
  • 即给机器一堆x及y,机器自己琢磨出关系,下次再给出一个x1,告诉你y1是多少。
  • 可用的算法有:k-近邻;线性回归;朴素贝叶斯;局部加权线性回归;支持向量机;决策树;Ridge回归;Lasso最小回归系数估计
非监督学习
  • 即给机器一堆没关系的x,机器自己琢磨出关系,下次再给出一个x1,告诉你x1的大致定义。
  • 可用的算法有:K-均值;最大期望算法;DBSCAN;Parzen窗设计

以上算法不一定都会记入进笔记,反正书上有,而且我看懂的内容会做笔记。

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

应该只有六步,但七步成诗顺口,所以我最后加了一步。

  1. 收集数据:各种手段获取数据,例如爬虫是一个不错但方法,有机会给分享几个爬虫的实例
  2. 准备数据:将获取的数据,整为算法需要的统一格式
  3. 分析数据:将数据进行处理,例如去除些异常数据,归一标准啦,就是机器学习不够高级,还给整理好数据
  4. 训练算法:就是让机器跑呗
  5. 测试算法:就是看机器跑得对不对,好不好呗
  6. 使用算法:跑得还行,就用起来呗
  7. 拍照留恋:那么幸苦做了,总要留下些什么

好吧,入门就到这里,再多的我也不懂了~
第一个算法《k-近邻算法》