学习目标
机器学习实战第一章
学习内容
1. 什么是机器学习?
答:简单地说,机器学习就是把无序的数据转换成有用的信息。
2. 数据来源?
从互联网上可以获取大量的人为数据,比如某用户的购物记录,刷过的短视频记录,这占了很大一部分比例;但是另一部分非人为数据也变得越来越重要,比如传感器数据,尤其是移动手机的封装的各种小传感器数据。如何从移动计算和传感器产生的海量数据中抽取有价值的信息是一个很重要的研究课题。
3. 机器学习的主要任务?
监督学习:分类、回归;无监督学习:聚类、密度估计、特征降维。
4. 如何选择合适的算法?
- 首先考虑目的。如果要预测目标的值,则选择监督学习,反之,选择无监督学习。进一步来说,在选择监督学习后,如果目标变量是离散的,选择分类方法,如果是连续的,选择回归方法;在选择无监督学习后,如果进一步需要将数据划分为组别,可以选择聚类算法,如果还需要估计数据与每个组别的相似程度,则选择密度估计算法。
- 其次是考虑数据。数据是离散还是连续,特征值是否存在缺失、数据中是否存在异常值、某些特征出现的频率等等。
- 上述考虑只是缩小选择范围,并不一定是最好的,还需要考虑最后的效果。
5. 机器学习开发的步骤?
- 收集数据。如网络爬虫、物联网设备数据、使用公开源数据。
- 数据预处理。主要是为了保证得到的数据格式符合算法的输入。
- 分析输入数据。主要是为了保证数据集中没有垃圾数据。人工分析得到的数据是否有异常值(如空值、特别大或小的值)、能否看出规律以识别出模式、特征维度等。
- 训练算法。对于监督学习,利用训练集,抽取知识和信息,得到计算机可以处理的格式,方便后续使用;对于无监督学习,不需要此步。
- 测试算法。对于监督学习,从第四步得到知识信息,进行测试评估算法的效果;对于无监督学习,使用其他评测手段来检验算法的有效性。效果不好,可以回炉重造。
- 使用算法。将效果达到需求的算法转换成应用,执行实际任务。
6. 开发语言?
- 虽然个人认为python一点都不好用,但是大家都在用,那就勉为其难地接受它吧哈哈哈哈哈。
- 书中提到Python比java和C好理解(本人也不这样认为),但是python的性能并不是很好(比Java和C低),于是想出来了用python调用C代码,可谓是天秀。
- 让本人接受的点倒是有,比如python的矩阵运算清晰简练、有很多的第三方库比如NumPy,方便机器学习算法的实现。
|