概述
引言:之前对于机器学习的认识停留在算法的分析上,这篇文章主要从项目开发的角度分析机器学习的应用。这篇文章主要解释实际项目过程中的大致方针,每一步涉及的技术不会介绍很细致。机器学习项目开发步骤如下:
1. Look at the big picture.
2. Get the data.
3. Discover and visualize the data to gain insights.
4. Prepare the data for Machine Learning algorithms.
5. Select a model and train it.
6. Fine-tune your model.
7. Present your solution.
8. Launch, monitor, and maintain your system.
首先给出一些公共的数据集:
Popular open data repositories:
- UC Irvine Machine Learning Repository
- Kaggle datasets
- Amazon’s AWS datasets
Meta portals (they list open data repositories):
- http://dataportals.org/
- http://opendatamonitor.eu/
- http://quandl.com/
Other pages listing many popular open data repositories:
- Wikipedia’s list of Machine Learning datasets
- Quora.com question
- Datasets subreddit
一、Look at the big picture:即明确你的任务和数据来源
1,定义问题:
- 明确你的任务目标
- 确定任务输出
- 分析现有的方法的利弊
- 最终,你要确定设计你任务的方法:回归、分类、或者其他
2,确定模型的评价指标:对分类和回归设计评价指标
3,检查所有的假设:列出你任务可能的所有假设(方案设计,以及可能出现的问题)
二、获取数据:数据下载和数据分析
1,数据下载:通过下载或者爬取拿到数据
2,查看数据的分布:使用pandas快速分析数据结构(一下全是pandas的方法)
- 分析数据特征及大小:head(),info()
- 分析类别属性的分布:value_counts()
- 分析数值型数据分布:describe()
- 图表展示数据分布:hist()
3,获取测试数据:从整体中分割一部分用作测试,原则是分布均匀
- shuffle之后选取一定比例:问题是,每次执行过程中选取的测试集是不同
- shuffle后选取存起来;或者在每次shuffle中设置同样的seed种子:问题是,当数据刷新后就得重新训练
- 利用样本的唯一标识符选取:利用hash映射
- 采用分层抽样:对于某一个属性的总体分布比例,代表测试集各个分布的比例
三、可视化并分析数据:对数据进一步分析,在训练集上分析,数据量大可以进行采样。目的是为了分析目标与那些属性相关
1,散点图分析:适合有二维信息的,比如位置信息。用颜色来代表分布情况。分析目标与两个轴有没有关系。
2,相关系分析:
- the standard correlation coefficient (also called Pearson’s r):取值(-1,1);计算每个属性与目标的相关系数;代表的线性相关性,并不代表非线性相关性;corr()方法
- scatter_matrix()方法:每两个属性之间的关系
3,属性组合的测试:对部分属性进行组合计算后,计算得到的属性与目标的相关系数
四、为算法准备数据:数据分析完后,可以提取特征,准备数据。这个过程把数据与目标分开,不想改变目标值
1,数据清洗:非法数据删除,修改
2,类型数据进行编码
3,各个属性的比例很不协调。常见的有:Min-max scaling;Standardization
4,可以用Pipelines进行序列操作
五、选择模型并训练:
1,训练并在训练集上评估模型
2,利用交叉验证评估更好
六、调整模型:
1,Grid Search调整参数
2,Randomized Search调整参数
3,Ensemble Methods模型融合结果
4,得到最好的模型:分析每个特征的作用得分,去掉没有用的特征
5,在测试集上评估模型
七、发行、监控、维护系统:定期监控模型的结果,并给出提示;模型也必须定期更新。
这篇文章是基于别人的代码所写:
https://github.com/ageron/handson-ml/blob/master/02_end_to_end_machine_learning_project.ipynb
最后
以上就是满意墨镜为你收集整理的机器学习项目开发过程(End-to-End Machine Learning Project)的全部内容,希望文章能够帮你解决机器学习项目开发过程(End-to-End Machine Learning Project)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复