Sklearn 与 TensorFlow 机器学习实用指南——第二章总结


本章主要讲解了一个完整的机器学习项目的构建过程,参考 地址

1.使用真实的数据

学习机器学习时,最好使用真实数据,而不是人工数据集。幸运的是目前有许多开源的数据集可以进行选择,涵盖多个领域。比如:
流行的开源数据仓库:
http://archive.ics.uci.edu/ml/index.php
https://www.kaggle.com/datasets
https://registry.opendata.aws/
准入口(提供开源数据列表)
http://dataportals.org/
https://opendatamonitor.eu/frontend/web/index.php?r=dashboard%2Findex
https://www.quandl.com/

2.项目概述

根据项目要求确定任务目标(回归还是分类),查看数据类型等等。

3.规划问题

确定此项目的用途背景,更近一步的理解模型要学习的内容以及工作要求,并给出一个参考性能。最后需要确定使用什么学习方法,什么学习模式等等。

4.选择性能指标

常见的有,均方根误差(RMSE):
在这里插入图片描述
平均绝对误差(Mean Absolute Error,也称作平均绝对误差:
在这里插入图片描述
还有一些其他的性能指标定义,针对不同的问题,性能指标也有所不同。

5.核实假设

列出所有的假设进行分析核实,讨论每一个假设是否合理。

6.快速查看数据结构

使用DataFrame的head()方法查看该数据集的前5行,使用value_counts()方法查看该项中都有哪些类别,describe()方法展示了数值属性的概括。

7.创建测试集合

为了在选择训练模型时不那么刻意的考虑测试集,需要创建测试集放在一边,直到我们的模型训练完成。
创建测试集很简单:只要随机挑选一些实例,一般是数据集的 20%,放到一边。

8.数据探索和可视化、发现规律

常用的技术有:
可视化
标准相关系数(皮尔逊相关系数)pd.corr()
尝试将某些单位或者量纲相同的属性进行组合

9.为机器学习算法准备数据

数据清洗
针对一些确实项:去掉整个属性;去掉对应数据;进行复制(0,平均值,中位数等等)
处理文本和类别属性
特征缩放:线性函数归一化(Min-Max scaling)和标准化(standardization)
转换流水线:利用Scikit-Learn提供的类Pipeline来实现一个数据转换流水线。

10.选择并训练模型

在训练集上训练和评估
在这里我们已经完成了数据的整理与特征的提取,接下来只需要选择几个模型进行多次尝试。

11.使用交叉验证做更佳的评估

通常在模型上线之前,使用验证集对其进行验证,一个较好的方法是使用Scikit-Learn的交叉验证功能。

12.模型微调

使用 Scikit-Learn 的GridSearchCV进行网格搜索可以确定超参数,另外当超参数组合比较多时,可以使用随机搜索RandomizedSearchCV。
还有就是将表现最好的模型组合起来,集成之后的性能通常比单个模型要好。

13.分析最佳模型和它们的误差

查看每个属性对准确预测的相对重要性,可以丢弃一些那么重要的特征。
应该看一下系统犯的误差,搞清为什么会有些误差,以及如何改正问题(添加更多的特征,或相反,去掉没有什么信息的特征,清洗异常值等等)。

14.用测试集评估系统

调节完系统之后,就有了一个性能足够好的系统。现在就可以用测试集评估最后的模型了。这个过程没有什么特殊的:从测试集得到预测值和标签,运行full_pipeline转换数据(调用transform(),而不是fit_transform()!),再用测试集评估最终模型。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值