吴恩达机器学习笔记之机器学习基础(内含机器学习路线、机器学习资源)

这里小编简单的罗列出一些本人刚开始着手于机器学习时候的小问题,并将小编了解到的答案采用问答的方式给读者进行解释,本文也可以用做感兴趣的读者作为科普使用,如果答案有误,欢迎评论。先声明,小编也只是一个刚入门的小菜鸡。

Q:什么是机器学习
A:简单来讲,机器学习就是将无序的数据转换成有用的信息

Q:机器学习都有哪些应用?
A:简单列举几个:人脸识别,手写数字识别,垃圾邮件过滤,你逛某宝时的推荐系统,搜索引擎的推送规则,Alpha Go(下围棋很厉害的那个机器人)。

Q:机器学习都包含什么?
A:机器学习分为监督学习和无监督学习监督学习是指利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程无监督学习是指根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题

Q:监督学习和无监督学习都包含什么
A:监督学习包含分类和回归;无监督学习包含聚类和降维分类是将实例数据划分到合适的分类器中(鸟类的划分问题),回归是预测数值型数据(房屋出售问题),聚类是将数据集合分为由多个类似的对象组成的类的过程,降维就是在保证数据所具有的代表性特征或分布的情况下, 将高维数据转化为低维数据的过程(数据可视化)。

Q:机器学习真的需要很多数学知识吗?
A:是的,但对于入门阶段来讲只要你有普通工科专业大一大二那几门基础的数学课知识就足够了(线性代数、概率论与数理统计、高等数学),有这些知识做储备,看懂大部分的机器学习算法对于入门的你来讲就不是什么难事了。随着逐渐的深入学习,你也许会用到矩阵论、优化设计等知识,但那个时候你可以采用点对点的学习模式进行知识的学习。

Q:机器学习用什么编程语言较好?
A:这个问题就仁者见仁了,主流的当然是python做机器学习和深度学习等AI领域多一些,但是matlab、R语言也是可以的,比如matlab的神经网络,R语言的自然语言处理(NLP)。从学习的角度来讲,python和matlab都是比较简单的编程语言(二者也有很多相似点),入门起来非常快(即使你是编程小白),小编之前在使用python来做数据处理相关任务,现在就直接用python转来学机器学习了(真相是不怎么会其他的编程语言,手动滑稽)。

Q:python做机器学习有什么优缺点?
A:优点:首先来讲它含有非常丰富的用来进行机器学习的库以及大量的高级数据类型,很多轮子已经不需要你自己去弄了,直接采用拿来主义用就可以,例如,Scipy(机器学习库),NumPy(数学运算库),Matplotlib(绘图库)等等;其次,python被称为可执行的伪代码即他的代码逻辑很清晰甚至于接近自然语言;最后,python对于数据处理以及文本文件的操作也很方便,有时候我们没有数据用来训练算法,那么我们可以利用爬虫技术去网上获取数据,然后利用python的数据分析功能来进行预处理。缺点:显然高级语言都具有的一个缺点就是执行效率偏低,他的运行效率不如Java和C,但是我们利用python可以调用C的编译的代码,如果最终想要在产品中实现机器学习,那么进行代码的转化也没有那么太困难,比如可以采用C语言代码去替换python核心的代码以提升运行速度等方式来解决效率问题。

Q:开发机器学习应用程序的步骤
A:① 收集数据:这一块你可以制作网络爬虫去获取某些网站的数据,或者收集来自某些设备的数据(传感器数据),通常为了节省时间,小编推荐大家直接使用一些公开的数据源(大数据竞赛网或者一些房地产的数据网站)。② 数据处理:要将得到的数据整理成为算法可以使用的形式(使用python进行数据处理很方便)。③ 分析输入数据:这一步要确保数据集中没有垃圾数据、检查数据的异常值、数据之间的差异**等工作。④ 训练算法:机器学习的算法在这一步才开始真正的学习,如果是监督学习,我们就将数据集中的数据输入到算法,从中抽取知识或信息;如果是无监督学习,那么是不存在目标变量值的故也不需要训练算法,因此 该步骤可以省去测试算法:对于监督学习,我们要检测算法的输出结果和已知结果的差异;对于无监督学习,我们也需要采用其他手段来检测算法的工作效率。如果不满意算法的输出结果,可以返回到第四步,改正算法并加以测试。但是 通常来讲,问题都会与数据的收集和准备有关,那么我们就必须需要回到第一步重新开始使用算法:将机器学习算法转换为应用程序来执行实际问题,如果此时碰到了新的问题,那么我们就需要再次执行上述步骤来进行算法的检查和改进。

Q:机器学习路线
A:主线就是吴恩达的机器学习视频(最好多看几遍)。第一步,看视频的同时可以搭配Machine Learning in Action(中文名称为:《机器学习实战》);第二步,这个时候你已经有了基本的机器学习算法概念以及他们的思想,可以看一下周志华老师的西瓜书《机器学习》李航老师的《统计学习方法》,这两本书包含了少量的数学推导,看完之后可以强化一下自己所了解的机器学习算法;第三步,这个时候你已经对很多机器学习算法有了清楚的认识了,如果英文水平不错的老铁,建议你读一下《Element of Statistical Learning》(算是机器学习的圣经,内容很详细,但是难度较大,需要你耐心去慢慢的体会和领悟)和 《Elements of Machine Learning》;想看中文书籍的话推荐一下《数据挖掘导论》和《机器学习导论》(后者内容很多,由于小编没有看过,也就不知道是否实用,前者的内容略微少一些)如果非要推荐的话,还是建议看前者;第四步,到这一步,恭喜你,你已经成功入门机器学习这个大坑,接下来你可以按照自己想着做的方向去选择学习路线了。比如想做大数据分析的,就得看看Hadoop、Spark等计算框架了;想做深度学习的可以看看《深度学习》,了解一下神经网络方面的知识;想做自然语言处理方向的可以看看吴军博士的科普读物《数学之美》然后去了解相关知识,还有模式识别,计算机视觉、推荐系统等方向。最后,Good Luck for you。

你可能感兴趣的:(Machine,Learning)