机器学习简单介绍

时间:2022-06-06 10:09:58

最近在学习机器学习,经过一段时间的搜索,发现了好些好资料。首推Stanford大学Andrew Ng的公开课Machine Learning,可以在Coursera上学习,Peter Harrington的书《Machine Learning in Action》。这两个都是偏向于实用性的课程。准备就这个课程和这本书分别写一系列相关的心得体会,包括数学知识和算法知识,记录自己对机器学习的学习感悟。


机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。因为学习算法中涉及了大量的统计学理论,机器学习与统计推断学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。很多推论问题属于无程序可循难度,所以部分的机器学习研究是开发容易处理的近似算法。


机器学习是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测。从这句话中我们知道要进行机器学习需要海量的数据,少量的数据可能不足以获得规律,且有可能被被各种“噪声”数据给淹没了。过程是从数据中获得规律,目的是对未知的数据进行预测。而这又涉及到了选择哪种合适的算法,是否有通用的算法,不同算法的正确率如何,时间效率等各种问题。这些都跟我们实际中用到的数据有关。虽然采用的算法各不相同,但是采用的步骤却大同小异,包括收集数据,输入数据,分析数据,训练算法,测试算法和使用算法。


机器学习常见的两大类别:

监督学习从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。常见的监督学习算法包括回归分析统计分类

无监督学习与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类

l 至于半监督学习和增强学习这里不涉及(其实是因为不懂O(∩_∩)O哈哈~)。


机器学习已经有了十分广泛的应用,例如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人运用。


机器学习的语言常用的C/C++、Python还有Matlib这三种语言,在做项目工作的时候常用到的是C/C++语言,Matlib和Python适用于各种矩阵运算,因为Python比较简单,学个礼拜就可以大致明白相关的语法了,然后就可以在学习机器学习的过程中边学边用了。Python还有两个比较重要的库用于我们学习这本书,那就是NumPy——里面提供了大量的矩阵处理函数。Matplotlib——绘制图,可以直观的将数据或者过程展示出来。在《Machine Learning in Action》这本书中就是使用Python语言作为演示。我也将在这本书的学习心得系列中边学边用这门语言做演示。而在Machine Learning这门课学习心得系列中我将用C/C++语言作为演示。


还有一个比较重要的是,最好有点数学知识,如概率论,统计,矩阵论,代数等知识,不求有多么深的造诣,起码知道是个什么概念,不懂的话知道怎么查找资料学习。





 

 

 




参考资料:

1.http://zh.wikipedia.org/wiki/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0