机器学习项目的实例分析设计(附源码)

本文基于《Hands-On Machine Learning with Scikit-Learn & TensorFlow》的实例,模拟了一个完整的机器学习项目流程,包括项目分析、数据探索、特征工程和模型训练。作者提供了全面自动化运行的Python代码,强调了特征工程的重要性,并分享了项目的GitHub源码链接。
摘要由CSDN通过智能技术生成

摘要说明:

最近在学习“Hands-On Machine Learning with Scikit-Learn &TensorFlow,其中一些机器学习的思考和处理方式很具有项目级开发的特点。我在原文提供的实例基础上,结合自己的分析,模拟了一个机器学习项目的分析和实现过程,包括项目分析,数据分析,模型分析,性能分析等,在原文的样本代码基础上,编写了完整的可全面自动化运行的代码,供大家一起参考。(文章后面将提供源码的 github 地址)


一. 项目的总体分析

  • 业务分析
  • 内容

    分析设计

    项目名称

    加利福尼亚房价预测

    商业背景及价值

    本公司是一家投资公司,现有一套综合投资分析系统,将汇总各类信息,对行政区进行全面分析后,决定是否值得进行投资。

    本项目获得的各行政区的房价中值预测值,将提供给公司的综合投资分析系统,作为其中的一项分析指标,帮助公司进行决策。

    目前房价中值的计算,完全依靠业务专家,通过复杂的人工推导分析后获得,费时费力,不及时,不准确。

    本项目将实现房价中值的自动化预测计算和处理,其预测结果将影响公司投资决策的速度和准确性,从而直接影响公司的商业业绩。

    业务需求

    利用加利福尼亚房价数据库提供的统计数据,通过机器学习,从这些数据中构建模型,获得信息,用于预测加利福尼亚州不同行政区的房价中值

    非功能性需求

    目前采用人工分析的方法,全部计算一次所有行政区的房价中值,需要5 人天。

    本项目完成后,正常情况下,要求在1小时内完成所有计算。


  • 系统分析

内容

分析设计

基本训练模型方案

1.     由于有明确的预测值要求,因此将使用有监督的模型(不是无监督模型);

2.     由于预测的是具体数值,不是标签,因此属于回归问题(不是分类问题,或聚类问题);

3.     根据跟专家的沟通,房价的预测将需要涉及数据集中提供的多个特征属性,属于多变量回归问题

4.     房价数据源信息不是实时连续变化的数据,数据量也不是特别大,完全可以装载到内存后进行处理,因此采用简单的单机批处理方式来完成。(不考虑大数据下的分布式处理及实时数据流的在线处理方式)

综上分析,本项目将采用的基本回归分析模型有

  • 线性回归模型:LinearRegression
  • 决策树模型:DecisionTreeRegressor
  • 随机森林树模型: RandomForestRegressor

模型效果的测量指标

回归分析模型的性能,可采用的测量指标有:

  • 均方根误差(RMSE)
  • 均方误差(MSE)
  • 平均绝对误差(MAE)
  • 中位值误差
  • r方误差

RMSE对异常数据比较敏感,若数据集的异常数据很少时(即数据分布比较集中,像一个钟型),用RMSE来衡量模型效果还是比较好的,


因此,本项目将采用 RMSE 指标进行模型性能的衡量比较,RMSE值越小,模型性能越好。

开发环境

Python的生态环境提供了我们完成该项目需要的机器学习函数库,开源,通用性好,运行性能可满足项目要求;如 numpy, pandas, scikit-Learn等,其中scikit-Learn模块中有一些流程化处理的函数,可以让自动化处理的实现更加简洁和优雅。


因此,本项目将采用 Python + Scikit-Learn 为主要开发平台

自动化及可重用性

这是一个需要可重复使用的生产系统,不是一次性工具,也不是单纯研究用的人机交互程序;需要尽量把处理代码自动化,以提高调试优化的效率,并在生产环境中部署后自动化运行,提供必要的运维日志信息

前提假设

1.     加利福尼亚房价数据库持续提供更新的房价数据

2.     公司综合投资分析系统的数据接口保持不变,需要本项目提供的是房价的具体数值,而不是“昂贵”,“中等”,“低廉”的分类标签。否则,本项目的学习模型将会更改为分类模型

术语说明

关于记录集变量的定义说明如下:(括号内为全名称)

变量名

含义

train_set

原始训练数据集,包含标签列,特征列

test_set

原始数据测试集,包含标签列,特征列

train(train_feature)

训练集中的特征集,不含标签列,简写成 train

train_label

 

训练集中的标签列

train_num(train_feature_num)

训练集中的数值意义特征集

train_cat(train_feature_cat)

 

训练集中的分类意义特征集

  • 47
    点赞
  • 407
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
目 录 ............................................................... I 实验 1 监督学习中的分类算法应用 .................................. - 1 - 实验目标 .................................................. - 1 - 实验软、硬件环境 .......................................... - 1 - 实验任务.................................................. - 2 - 实验 1.1 Python 开发环境搭建 ...................................... - 2 - 实验目标 .................................................. - 2 - 实验任务 .................................................. - 2 - (1)Python 安装与配置 ............................. - 2 - (2)Pycharm 安装和配置 ............................ - 4 - (3)Python 中安装第三方库 ........................ - 11 - 实验 1.2 K-近邻算法实现 ......................................... - 14 - 实验目标 ................................................. - 14 - 实验任务 ................................................. - 14 - (1)电影类别分类 ................................. - 14 - (2)约会网站配对效果判定 ......................... - 14 - 实验 1.3 决策树算法实现 ......................................... - 16 - 实验目标 ................................................. - 16 - 实验任务 ................................................. - 16 - (1)银行房屋贷款申请 ............................. - 16 - (2)患者佩戴隐形眼镜类型预测 ..................... - 17 - 实验 1.4 朴素贝叶斯算法实现 ..................................... - 19 - 实验目标 ................................................. - 19 - 实验任务 ................................................. - 19 - (1)文本分类 1 ................................... - 19 - (2)文本分类 2 ................................... - 19 - 实验 1.5 Logistic 回归算法实现 ................................... - 21 - 实验目标 ................................................. - 21 - 目 目 录 II 实验任务 ................................................. - 21 - (1)构建 Logistic 回归分类模型 .................... - 21 - (2)预测患疝气病的马的存活问题 ................... - 21 - 实验 1.6 SVM 算法实现 ............................................ - 23 - 实验目标 ................................................. - 23 - 实验任务 ................................................. - 23 - (1)构建 SVM 分类模型 ............................. - 23 - 实验 1.7 监督学习中的分类算法综合应用 ........................... - 24 - 实验目标 ................................................. - 24 - 实验任务 ................................................. - 24 - (1)手写识别系统 ................................. - 24 - (2)电子邮件垃圾过滤 ............................. - 25 - 实验 2 监督学习中的回归算法应用 ................................. - 26 - 实验目标 ................................................. - 26 - 实验软、硬件环境 ......................................... - 26 - 实验任务 ................................................. - 26 - (1)鲍鱼年龄预测 ................................. - 26 - (2)乐高玩具价格预测 ............................. - 27 - 实验 3 无监督学习中的聚类算法应用 ............................... - 29 - 实验目标 ................................................. - 29 - 实验软、硬件环境 ......................................... - 29 - 实验任务 ................................................. - 29 - (1)使用 K 均值算法对数据进行聚类分析 ............. - 29 - (2)对地图上的点进行聚类 ......................... - 30 -
### 回答1: Python数据分析机器学习实战是一本非常优秀的书籍,内容既广泛又深入,适合初学者和有一定经验的人。书中除了介绍了数据分析机器学习算法外,还深入介绍了Python的使用和如何用Python对数据进行处理。 在书中,作者简明扼要地介绍了各种数据分析机器学习算法,并通过实例来介绍各种算法的应用场景和优缺点,同时也介绍了如何使用Python进行数据处理和可视化。此外,书中还讲解了数据清理、特征选择、模型评估等实际应用问题。 为了方便读者学习,作者也提供了一些实例源码,可以帮助读者更好地理解相关的知识点。读者可以通过书的官方网站或其他资源网站来下载这些实例源码,并结合书中的讲解,来学习如何进行Python数据分析机器学习实战代码开发。 总之,Python数据分析机器学习实战是一本非常实用的书籍,能够帮助读者深入了解Python数据分析机器学习算法相关知识并掌握实战技能,同时如果能够结合实例源码进行学习,会更加有效地帮助读者提高自己的能力。 ### 回答2: Python是一门强大的编程语言,其应用广泛,尤其是在数据分析机器学习领域中。为了帮助学习者更好地理解和应用python进行数据分析机器学习,一些专业的教育机构编写了相应的教程书籍。这些书籍中通常都包含具体的代码实现,这些源代码可以通过官方网站或Github等代码托管网站进行下载。 其中,对于想要深入学习数据分析机器学习的同学来说,可以下载《Python数据分析实战》和《Python机器学习实战》两本书籍的源代码进行学习。这两本书籍主要讲述Python在数据分析机器学习应用领域的具体实现方法,由基础入门到深入实践都有详细的介绍。相应的源码和数据集的下载链接也都提供在书中。同学们可以自行下载代码并在本地运行。通过学习源代码,可以更好地理解书中所讲述的知识点和方法,并实现自己的数据分析机器学习实践。 当然,只有下载到源代码并运行,对于代码的理解和运用还是需要花费相应的时间和精力。因此,在学习过程中也可以参考其他相关的学习资料和参考书籍,加深对Python数据分析机器学习的理解和应用。 ### 回答3: Python数据分析机器学习是当前非常流行的技术,其实战源码是学习和掌握这些技术的重要手段之一。对于想要深入学习这些领域的人来说,Python数据分析机器学习实战源码的下载是必不可少的。 Python数据分析机器学习实战源码下载可以通过互联网上多个渠道进行。其中,比较流行的是从相关书籍的官方网站、Github上或其他在线资源共享平台上进行下载。比如,由Python爱好者发布的Github上,有很多包含源码项目,非常方便下载。 这些源码可以帮助大家理解Python数据分析机器学习算法在实际应用中的运用。通过对源码的研究,大家可以了解算法的基本原理、运作方式以及优化技巧。这有利于大家快速掌握相关领域的实践能力。 总的来说,Python数据分析机器学习实战源码是学习和掌握这些技术的重要手段,这些源码的下载可以通过多种渠道进行。同时,建议大家尽可能多地阅读不同领域的实战源码,不断扩展自己的知识面和实践能力。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值