【读书笔记与思考】《python数据分析与挖掘实战》-张良均
【读书笔记与思考】《python数据分析与挖掘实战》-张良均
最近看一些机器学习相关书籍,主要是为了拓宽视野。在阅读这本书前最吸引我的地方是实战篇,我通读全书后给我印象最深的还是实战篇。基础篇我也看了,但发现有不少理论还是讲得不够透彻,个人还是比较倾向于 《Machine Learning》--Tom M.Mitchell,Andrew 的 machine learning 课程,或周华志的《机器学习》,Jiawei Han 的 《data mining》。相对于本书的基础篇,这些侧重于理论基础的课程和书籍对基础模型的理解和阐释要更系统化。另外,值得注意的是本书基础篇有多处错误,比如高斯分布的公式,阅读时应当留意。
机器学习的工程实践过程大致可分为如下几个步骤:问题抽象、确定目标、采集数据、数据预处理(探索、清洗和变换)、模型选择与构建、模型评价和模型应用。
- 其中问题的抽象和目标确定很关键,只有充分的理解“我们想要什么”才能更好的去思考“如何做”。
- 数据采集的手段多种多样,常见的有传感器、互联网数据库、爬虫等,采集的手段往往和业务背景密切联系。
- 数据预处理,这个环节往往要耗费大量时间并且需要灵活的思考,为了保证数据的质量这一步骤尤为关键。我们需要调研一些领域知识,基于领域知识和统计特征对数据进行前期的探索,在进一步清洗的基础上进行数据变换,即特征提取。特征工程往往是模型成败的关键,这里需要多加思考、联合领域知识并反复尝试评估。
- 模型选择与构建,机器学习和数据挖掘发展至今已经有很多成熟的模型可供使用。很多时候我们需要基于业务的场景以及任务目标对比不同的模型进行选择。我们需要深入理解模型的原理、应用场景和优缺点。
- 模型的评价,机器学习的最终目的是降低泛化误差,然而我们只能通过有限的数据(训练数据)对其进行近似计算。如何根据不同的任务,选择合适的指标对模型进行评估很关键。比如回归问题的 RMSE。分类问题的 accuracy, precision, recall, f1-scall 等。充分利用图表,比如 ROC等。
- 模型的应用,对资源、模型的实时性等方面进行综合考虑。我们需要定期的更新我们的模型以适应环境的变化。
本书涉及的主要内容包括时间序列分析,分类,回归预测,关联关系挖掘,推荐系统。以下是我读过的一些书籍整理,可以作为进一步的扩展。这里还想到了本科时学的《数学建模》,实际上和数据挖掘的流程很相似。
- 时间序列分析可以进一步参考《时间序列分析及应用》——Jonathan D.Cryer,《Time Series Analysis and Its Applications with R examples》-- Robert H. Shumway。相对于 Python,其实 R 在时间序列分析上的支持更为完善。
- 统计机器学习(分类,回归预测):sklearn 官方的 tutorial 我觉得很好,理论的话,《Machine Learning》--Tom M.Mitchell,Andrew 的 machine learning 课程,或周华志的《机器学习》。
- 数据挖掘:最为经典的Jiawei Han 的 《data mining》,其中涉及了数据挖掘的基本流程和方法、数据处理、数据仓库、分类、预测、异常检测、关联关系挖掘等内容。“Data Mining”--Charu C.Aggarwal,其特点是加入了时序数据处理的内容,可作为进阶内容。
- 推荐系统:《推荐系统实践》——项亮,很好的入门书籍。
- 关于工具,我觉得官网的 tutorial 是很好的入门资料。
我没有动手实操,阅读旨在拓宽自己的视野,也是出于对各个行业如何应用机器学习的好奇。如果时间有余的读者不妨过一遍书本的例子,应该会有更深的认识。此外通过 kaggle 等比赛平台去进行实践也是不错的。
总的来说,对于 data driven 的工程实践还是应该做足调研,几乎不可能有一个全新的方向和全新的难题。因此学会在巨人的肩膀上去拓展很重要,尤其是在数据科学这一交叉领域,注意团队合作。平时注重积累,处理问题发散思考很重要,很多特征的设计都很巧妙且有意思。
完整版,更多内容
概要总结
- 01. introduction
- 02. linear regression
- 03. logistic regression
- 04. regularization
- 05. neural network
- 06. some advice
- 07. SVM
- 08. clustering
- 09. dimensionality reduction
- 10. anomaly detection
- 11. recommender systems
- 12. large scale machine learning
- 13. application photo OCR
作者:张良均、王路、谭立云、苏剑林
注意:这本书有多处地方有误,尤其是公式推导部分。
- 基础篇
- 01. 数据挖掘基础
- 02. Python 数据分析简介
- 03. 数据探索
- 04. 数据预处理
- 05. 数据建模
- 实战篇
- 06. 电力窃漏电用户自动识别:基于 5 年所有窃电用户的有关数据(用户基本信息,各种用电功率等)对窃电用户进行识别。基于目标对数据进行清洗,缺失值填充。基于领域知识构建了 3 个指标:电量趋势下降指标-用电量趋势,线损指标-线损增长率,告警类指标-与窃漏电相关的终端告警数。基于 3 个指标利用 Keras 构建 LM 神经网络模型,准确率为 94%;Scikit-Learn CART 决策树的准确率为 94%。使用 ROC 曲线对模型进行评估。
- 07. 航空公司客户价值分析:借助航空公司客户数据对客户进行分类,在此基础上对不同类客户进行对比分析发现有价值的模式。基于分析结果提供个性化服务,制定相应的营销策略。基于领域知识了解到 LRFMC模型,由此可计算 5 个关键指标作为特征,分别为客户关系长度 L, 消费时间间隔 R, 消费频率 F, 飞行里程 M 和折扣系数的平均 C。采用 k-means 聚类划分用户群,采用图表的形式分析不同用户群的特点并制定营销策略。
- 08. 中医证型关联规则挖掘:借助三阴乳腺癌患者的病理信息,挖掘患者的症状与中医证型之间的关联关系。对截断治疗提供依据,挖掘潜在性证素。由于医疗数据的缺乏,通过问卷调查的形式获取数据。问卷调查仅针对患病者并且具有一定中以诊断学基础,能清除的描述病情。根据领域知识得到 6 种证型得分作为后期模型分析的基础。采用Apriori 算法进行关联关系挖掘,注意选择合适的最小支持度、最小置信度。
- 09. 基于水色图像的水质评价:有经验的从事渔业生产的从业者可通过观察水色变化调控水质,以维持养殖水体生态系统中浮游植物、微生物、浮游动物等合理的动态平衡。我们期望通过机器学习的方法将这一过程自动化。通过拍摄照片获取不同水质的图片。这里我们还需要通过专家对数据打 label,这个过程很是费时费力,并且质量奖影响整体模型的效果。使用直接提取的方式对图片进行切割,在此基础上计算 一阶颜色矩,二阶颜色矩,三阶颜色矩 3 个特征。将特征向量输入到 svm 分类器中,这里有个需要注意的细节,征的范围都在 0~1 之间,如果直接输入 SVM,彼此之间区分度会比较小,因此不妨将所有特征统一乘以一个适当的常数 k,经过反复测试最佳的 k=30。
实际上对于图片的处理,现在大多都直接采用 DNN,尤其是 CNN 在图像处理中表现出非常好的效果。 - 10. 家用电器用户行为分析与事件识别:对热水器使用中的用水事件进行识别。分析过程涉及到领域知识和基于数据观察的手工特征,并没有涉及太多的模型,几乎都是基于阈值进行数据的处理。最后使用 BP 神经网络进行分类识别,准确率 85.5%。
- 11. 应用系统负载分析与磁盘容量预测:这是时间序列预测的一个典型案例,主要涉及到 ARIMA 模型应用的细节。
- 12. 电子商务网站用户行为分析及服务推荐:这是推荐系统的一个应用实例。爬虫获取数据,数据的探索分类,这一过程占了不少工作量。基于物品和基于用户的协同过滤推荐之间的权衡。为用户和物品之间建立关系,使得用户更容易发现潜在有价值的物品,同时使得长尾物品更容易被发掘出来。基本步骤为(1)计算物品之间的相似度;(2)根据物品的相似度和用户的历史行为给用户生成推荐列表。对于推荐系统的评价应该考虑 3 个方面:用户、物品提供者和提供推荐系统的网站。
- 13. 财政收入影响因素分析及预测模型:通过 Adative-Lasso 模型进行特征选择。灰色预测与神经网路组合模型进行预测。
- 14. 基于基站定位数据的商圈分析:计算 4 个指标,工作日上班时间人均停留时间、凌晨人均停留时间、周末人均停留时间、日均人流量。基于以上 4 个指标进行层次聚类,根据谱系聚类图可以聚成 3 类。通过图表观察每个簇的特征。“轨迹挖掘”是一个新兴的研究主题,尤其是面向拼车推荐应用是轨迹挖掘。
- 15. 电商产品评论数据情感分析: 主要是主题模型的应用。“八爪鱼”爬虫工具爬取评论数据,并进行文本去重、机械压缩去词和短句删除等数据预处理操作。(1)构建情感倾向性模型对评论进行分类,即分为正面、负面和中性 3 类评论。这里有两个关键点,一个是文本的表示,训练栈式自编码网络;另一方面是类别标注,人工标注费时。本案例使用 ROST 系统完成情感倾向性分析的任务。(2)基于语义网络的评论分析,抽取正面、负面两组,以进行语意网络的构建与分析。由于中性评论过于复杂本案例没有进一步分析。(3)基于 LDA 模型的主题分析,针对正面和负面的文本分别使用 LDA 发现潜在的主题。基于前 3 个分析结果给出改进建议。
【读书笔记与思考】《python数据分析与挖掘实战》-张良均的更多相关文章
- 学习参考《Python数据分析与挖掘实战(张良均等)》中文PDF+源代码
学习Python的主要语法后,想利用python进行数据分析,感觉<Python数据分析与挖掘实战>可以用来学习参考,理论联系实际,能够操作数据进行验证,基础理论的内容对于新手而言还是挺有 ...
- python数据分析与挖掘实战
<python数据分析与挖掘实战>PDF&源代码&张良均 下载:链接:https://pan.baidu.com/s/1TYb3WZOU0R5VbSbH6JfQXw提取码: ...
- python 数据分析与挖掘实战01
python 数据分析与挖掘实战 day 01 08/02 这种从数据中"淘金",从大量数据包括文本中挖掘出隐含的.未知的.对决策有潜在价值关系.模式或者趋势,并用这些知识和规则建 ...
- python数据分析与挖掘实战第二版pdf-------详细代码与实现
[书名]:PYTHON数据分析与挖掘实战 第2版[作者]:张良均,谭立云,刘名军,江建明著[出版社]:北京:机械工业出版社[时间]:2020[页数]:340[isbn]:9787111640028 学 ...
- 《Python数据分析与挖掘实战》读书笔记
大致扫了一遍,具体的代码基本都没看了,毕竟我还不懂python,并且在手机端的排版,这些代码没法看. 有收获,至少了解到以下几点: 一. Python的语法挺有意思的 有一些类似于JavaSc ...
- 《Python数据分析与挖掘实战》-第四章-数据预处理
点我看原版
- python数据分析与挖掘实战————银行分控模型(几种算法模型的比较)
一.神经网络算法: 1 import pandas as pd 2 from keras.models import Sequential 3 from keras.layers.core impor ...
- R学习:《R语言数据分析与挖掘实战》PDF代码
分三个部分:基础篇.实战篇.提高篇.基础篇介绍了数据挖掘的基本原理,实战篇介绍了一个个真实案例,通过对案例深入浅出的剖析,使读者在不知不觉中通过案例实践获得数据挖掘项目经验,同时快速领悟看似难懂的数据 ...
- Python数据分析与挖掘所需的Pandas常用知识
Python数据分析与挖掘所需的Pandas常用知识 前言Pandas基于两种数据类型:series与dataframe.一个series是一个一维的数据类型,其中每一个元素都有一个标签.series ...
随机推荐
- 使用Python提取中文字符
#功能:国际化测试,用于提取应用设计包中的中文字符,并输出report#解压---筛选---整理路径---提取中文---输出报告 ################################### ...
- replace深入
var b = 0; var arr = []; str = str.replace(/J/g,function(){ var args = arguments; b++; arr.push(args ...
- VMware---添加esxi主机的实验
实验环境:window_server_2012_r2_64 SQLServer2012SP1-FullSlipstream-CHS-x64 虚机配置: 关于windows server2012 和 ...
- Map Task内部实现分析
上篇我刚刚学习完.Spilt的过程,还算比較简单的了,接下来学习的就是Map操作的过程了,Map和Reduce一样.是整个MapReduce的重要内容,所以.这一篇,我会好好的讲讲里面的内部实现过程. ...
- WIN7下安装SVNserver端及client搭建协作环境
一.客户场景: 客户现场须要在虚拟机上封闭开发,所以须要搭建一个SVN协作开发环境.客户提供了一台全新的裸机安装的操作系统是WIN7旗舰版64位. 二.SVNserver搭建 1. SVNserver ...
- 2014/08/23——OJ及相关站点打开速度非常慢,训练计划login直接error!
问题: 这个问题存在已经将近一个星期了.刚開始时发现OJ及相关的站点有时候打开有点慢,那时候也没在意,后来时快时慢的越来越频繁:今天早上直接一直都打开非常慢(无论什么时候.这样的情况);训练计划和做题 ...
- HDU 1013.Digital Roots【模拟或数论】【8月16】
Digital Roots Problem Description The digital root of a positive integer is found by summing the dig ...
- Bootstrap的js插件之按钮(button)
1)属性: data-loading-text="载入中..."--使button呈现载入状态: data-toggle="button"--使按钮可以切换状态 ...
- 通过案例学习 Secret - 每天5分钟玩转 Docker 容器技术(110)
在下面的例子中,我们会部署一个 WordPress 应用,WordPress 是流行的开源博客系统. 我们将创建一个 MySQL service,将密码保存到 secret 中.我们还会创建一个 Wo ...
- Office 365 机器人(Bot)开发入门
作者:陈希章 发表于 2017年7月29日 前言 作为人工智能技术的一个主要的表现形式,这些年机器人(bot)的应用越来越广泛.不管是有实物的,还是纯软件的,现在的机器人技术应该说已经走入寻常百姓家了 ...