hands on machine learning with sklearn and tensorflow Chapter2.读书笔记(一) 大局观

目录

(略)


1.尽量使用真实数据工作。

书中提供了一些网络中常见的真实数据,供大家练习。

作者最后选取了加利福尼亚1990年房价数据,为了方便教学,对特征做了一些增删。

数据集包含的每个街区的平均人口,平均收入,经度,纬度,包含的房间数,平均房屋价格等等。

2.大局观

做机器学习任务首先要建立大局观,而不是一上来闷头就做。书中这点就讲的很好,要结合boss的任务要求

安排详细的计划。

首先作者提出,作为有条理的数据科学家,应该列一份机器学系项目checklist,可以参考书中附录B并且根据自己的

需求进行相应增删。

(1)问题框架化

问题框架化是作者强调的大局观的一部分,在接到任务时首先应该问清楚boss任务的主题,目的。

所以第一个应该问老板的问题是:任务的主题是什么要解决什么?

我们的目的是为了解决该项任务而不是直接套模型,建立模型并不是任务的最终目标。应该考虑公司利用该模型期望获得什么,目标是什么。然后根据任务的主旨和目标:

1才能将问题框架化

2决定选用何种模型

3何种模型评判标准

4花多少精力去调整模型

如果团队的模型输出结果要喂到另一机器学习系统里,就要考虑pipeline的工作模式。

hands on machine learning with sklearn and tensorflow Chapter2.读书笔记(一) 大局观_第1张图片

你所在系统组建接受上游流下来的数据,输出数据流入下一环节,并与其他因素一起喂入下一个模型,最终生成一整个机器学习系统。

所以pipeline在问题框架化中是很重要的。而且在机器学习系统中非常常见,在系统中,每个机器学习组建都可以分头运转,接受大量数据,并向数据储存区输出数据。然后,一段时间后,下一个机器学习系统就可以将这些上游数据接受,处理,并透入下一环节。系统中,每个块都是自给自足的,互相之间留下接口,不同组之间聚焦自己的工作,这样可以保证一个组建出现问题,系统还可以根据该组件的上一个版本正常运转。

将问题框架化就是要考虑:

1.机器学习系统如何组成运转,各部件之间的功能与配合。

2.每个部件的算法,算法的评价指标以及要花多少时间去调整模型。

第二个要问老板的问题是:现有的模型是什么样的?现有的模型达到了什么样的程度?使用了什么方法。

这将有助于你从各个角度更好地设计机器学习系统。


获得了以上信息后考虑:

使用监督学习,无监督学习,还是强化学习?是分类任务,回归任务还是其他?

使用批量学习还是在线学习技术?(tip:如果数据量巨大,应该将数据切分并在多个服务器上使用批量学习技术(可以使用mapreduce技术),或者使用在线学习技术)


(2)选择一个模型评估方法(书里只讲了针对线性回归的误差度量方法)

对回归问题来说,误差评估方法最典型的是均方根误差(RMSE L2范数),以及平均绝对误差(MAE,L1范数)

二者都是用以测量预测点与真实点之间的距离。

RMSE与MAE对比:RMSE相当于L2范数,MAE相当于L1范数。次数越高,计算结果就越与较大的值有关,而忽略较小的值,所以这就是为什么RMSE针对异常值更敏感的原因(即有一个预测值与真实值相差很大,那么RMSE就会很大)。如果奇异点几何级数稀少,RMSE表现更佳。


(3)最后,检查假设.

检查假设可以提前发现问题。例如,我们在预测房价的项目中,我们假设的输出结果是回归的数值结果,但是跟下一机器学习组件团队对接,发现需要“低”,“中”,“高”等等结果,那完全就没必要进行复杂的回归分析,而提前改变思路转换为分类问题。如果未做此类假设检查,整个项目会在后期运行中出现问题。



你可能感兴趣的:(机器学习,读书笔记,machine,learning,sklearn,读书笔记)