hands on machine learning with sklearn and tensorflow 附录B 翻译与整理(1)概要

本文提供了一份详实的机器学习项目流程指南,包括问题框架化、数据获取与处理、模型选择与评估等关键步骤,旨在帮助读者高效推进项目进展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

(略),该书最出色的地方在于总结了一套非常实用的机器学习项目checklist(检查表),该检查表几乎覆盖了一个机器学习项目的所有过程,具有典型意义。所以本人拟将其翻译并与文中详细内容整合。希望对浏览者本人提供帮助。


目录:

1.将问题框架化,在宏观大局上思考问题(look at the big picture)。

2.获取数据

3.初步处理数据,发掘数据潜在意义

4.进一步处理数据,以便更好地发现数据的潜在模式,为机器学习算法做准备

5.利用数据,尝试实用相当多数量的模型,分析各个模型的优劣。最后简短地列出几个最好的模型。

6.将最终选中的数据,进行模型参数微调(finetune),达到一个满意的状态后,将模型组合获取最优解(可选)。

7.展示结果。
8.上线,监测并维护算法模型系统。


1.将问题框架化在宏观大局上思考问题

1.用商业属于描述所需要的目标(需要达成什么样的结果)

2.你讲如何解决问题

3.针对于该问题,公司现在存在不存在已经有的解决方案或相关的工作成果,是否可以对接或利用

4.如何定义或框架化该问题?(监督/无监督/强化,在线/离线)

5.如何评估/评判算法模型的表现?

6.模型表现的评估与商业目标是同一的吗?

7.达到商业目标的最低评判准则是怎样的?

8.

9

10.人工如何处理该问题?

11.列出针对与该问题现在为止作出的所有假设。

12.如果可能的话验证一下上述假设。


2.获取数据

注意:尽最大可能编写函数自动化处理数据,这样会使得你更方便地处理新数据。

1.列出你所有需要的数据,以及数据量的大小
2.找出并记录从何处可以获取这些数据
3.检查其将会占据多少存储空间
4.检查合法性,如果可能的话获取授权
5.获取授权
6.建立一个工作区(包含足够的储存空间)
7.拿到数据
8.将数据转换成你方便操作的格式(此时不可更改数据)。
9.保证敏感信息(例如保密信息)已经被删除,或保护。
10.检查数据的规模,与数据的类型(例如时间序列数据,样本数据,或图片)
11.(此步骤相当重要)抽选一组测试组,并且在项目快完成前坚决不窥探该部分数据。


3.初步探索数据

注意:请根据以下步骤探索数据

1.将数据复制一份以便进行探索(当数据量过大时进行抽样)
2.建立一份Jupyter notebook以便对数据探索的过程进行记录。
3.对每一个列属性查看其如下特征:
(1)名称
(2)数据类型(标签类,整数/浮点数,有界的/无界的,文本类,结构化数据)
(3)数据丢失量%
(4)是否包含噪声及包含那种噪声(随机,奇异值,舍入误差等)
(5)是否对这个任务真的有用
(6)分布类型(高斯分布,均匀分布,对数分布)
4.对于监督学习任务,检验其目标值属性(标签属性)
5.将数据可视化
6.研究数据维度与维度之间的相关性
7.研究你如何人工解决该项任务
8.确认你将要对数据做出的转化
9.确认是否要用额外的数据(如果需要,转到第二步)
10.记录你已经根据上述步骤知道了的信息

4.准备数据

注意:
请在复制的数据上进行操作(保存原始数据完好无损)
一定要尽量编写函数自动化转换(处理)数据,以下有五点理由:
-当获取新数据时,更容易地进行处理
-可以更方便地处理后续任务
-更方便地处理test set(测试集)
-在线学习时更方便地处理新样本
-编写函数集中了数据处理超参数,可以更方便地调整数据预处理超参数

1.数据清理
-调整或移除异常值(可选)
-补全缺失值(例如用0,平均值,中值等等(跟数据分布有关?)),或者直接删除该列属性

2.特征选取(可选)
删除对当前任务不提供任何有用信息的属性列

3.特征工程(合适的话):
-连续特征离散化
-分解特征(?)
-添加可能的变换特征(例如取对数,取根,取平方)
-将特征组合成新特征

4.特征标准化:取平均,标准化 等

5.选取几个可能的模型

注意:
-如果数据量很大,那么可以将数据分成更小的训练集,这样便可以根据不同的训练集在合理的时间内训练很多不同的模型(注意,这种做法可能对复杂模型不够友好,例如神经网络模型以及随机森林模型)
-同样,尽可能地编写函数,抽象模型的生成与训练过程,以便对新数据,新任务有同样的适用性

1.应用标准参数训练很多快速的初步的隶属与不同类别的模型(线性,朴素贝叶斯,支持向量机,随机森林,神经网络等)
2.计算并对比模型的表现:
-对每个模型,应用N折交叉验证,计算N折上测量误差的平均值与标准差。根据该项数据,评估模型
3.对每个模型,分析最重要的变量
4.分析每个模型的误差种类
-
5.再快速进行一波特征选取与特征工程
6.再进行1到2次上述五步的迭代
7.选取并列出表现最优的三到五个模型,最好模型有不同的误差种类。

6.微调模型

注意:
-用到手边尽可能多的数据,尤其到模型微调要结束的时刻。
-尽量用抽象函数代替操作过程。
1.利用交叉验证微调超参数。
-将数据的转换当作是超参数的一部分,尤其当你对这种转换并没有信心的时候。(例如,我到底是该在缺失值填入0还是中值还是直接删掉这一列)
-除非有非常少的超参数去调整,我们更倾向于用随机的gird search,去寻找更好的参数。如果训练的过程实在太长,那么就应该去寻找一条贝叶斯优化路径(例如用高斯过程优先)。
2.尝试利用集成方法,组合手头上最优的模型,一般来说这样做都会比单独实用模型更优。
3.一旦你对最终的模型抱有信心了,那就可以用测试集去查看模型的表现,并评估其泛化误差。
**注意,在评估完泛化误差后,就不要再动模型了,不然就会开始根据测试集而过拟合。





TensorFlow Deep Learning Projects: 10 real-world projects on computer vision, machine translation, chatbots, and reinforcement learning Leverage the power of Tensorflow to design deep learning systems for a variety of real-world scenarios Key Features Build efficient deep learning pipelines using the popular Tensorflow framework Train neural networks such as ConvNets, generative models, and LSTMs Includes projects related to Computer Vision, stock prediction, chatbots and more Book Description TensorFlow is one of the most popular frameworks used for machine learning and, more recently, deep learning. It provides a fast and efficient framework for training different kinds of deep learning models, with very high accuracy. This book is your guide to master deep learning with TensorFlow with the help of 10 real-world projects. TensorFlow Deep Learning Projects starts with setting up the right TensorFlow environment for deep learning. Learn to train different types of deep learning models using TensorFlow, including Convolutional Neural Networks, Recurrent Neural Networks, LSTMs, and Generative Adversarial Networks. While doing so, you will build end-to-end deep learning solutions to tackle different real-world problems in image processing, recommendation systems, stock prediction, and building chatbots, to name a few. You will also develop systems that perform machine translation, and use reinforcement learning techniques to play games. By the end of this book, you will have mastered all the concepts of deep learning and their implementation with TensorFlow, and will be able to build and train your own deep learning models with TensorFlow confidently. What you will learn Set up the TensorFlow environment for deep learning Construct your own ConvNets for effective image processing Use LSTMs for image caption generation Forecast stock prediction accurately with an LSTM architecture Learn what semantic matching is by detecting duplic
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值