未加星标

课堂 | 如何轻松有效地预处理数据

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二05 | 时间 2018 | 作者 红领巾 ] 0人收藏点击收藏

作者:Siraj Raval

课堂: The Best Way to Prepare a Dataset Easily

Github Repo: llSourcell.Prepare dataset challenge

本课堂的核心是讲述数据前夕的数据预处理过程,包括准备数据阶段和处理数据阶段。再具体以实例:通过大脑扫描公共数据集来分析、建模,预测某人是否在冥想。

准备数据 准备数据阶段 :决定使用何种数据,这跟你试图解决的问题相关。 关于数据来源 :能使用公共数据集解决的问题,尽量使用公共数据集。若公共数据集无法满足你的需求,引用毛主席的老话:没有条件便自己创造条件。即我们通过网络爬虫形式,把原始网页中的数据扒取下来,”创造” 数据集。 公共数据集 : Google 高级搜索 、 Kaggle 。 网络爬虫 :网站提供 API 接口、python 扒取网页数据。 公共数据集 谷歌高级搜索 官方网址 : Google 高级搜索 使用方式 :我们侧重关注以下检索项,可获得意想不到的效果。 关键字部分 :填写问题相关的关键词; 网站或域名 :填写 .edu 、 .gov 、 .org 等,即为确保数据的权威可靠性,尽可能从教育、政府、组织机构中获取公共数据集; 文件类型 :可指定为 csv ( 逗号分隔值 )、xls ( Microsoft Excel ) 等文件类型,Python 对 csv 、xls 提供了较好的库支持,为了更便捷进行数据处理,则优先选择此类型的文件格式。 Kaggle 官方网址 : Kaggle

推荐理由 :Kaggle 由 Anthony Goldbloom 创立,主要为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台 ( 已被谷歌收购 )。由此可见:

Kaggle 的每个竞赛都是独立的,无需设置项目范围然后收集数据,这让你有时间专注其它技能。

Kaggle 的每个数据集都有要解决的现实问题,要面向参与竞赛的人群,因此数据集的描述是不可缺少的。

不妨体验下 Kaggle 社区提供的入门案例 泰坦尼克:灾难中的机器学习 ,其相关的数据集描述: Titanic: Machine Learning from Disaster

入门指南 :参考文章 机器之心. Kaggle 如何入门. zhihu.com 整理而得。

选择一种编程语言 :你是一个毫无经验的新手,推荐 Python ,因这是一种通用编程语言,你可以在整个流程中都使用它。

学习探索数据的基础 :加载、浏览和绘制你的数据( 即探索性分析 )的能力,因为它可以为你将在模型训练过程中做的各种决策提供信息。

若你选择了 Python 路线,推荐使用专门为这个目的设计的 Seaborn 库。其中有高层面的绘图函数,可以绘制许多最常见和有用的图表。可参考资料:

Seaborn 官网

Seaborn 教程. EliteDataScience.com

机器之心. 数据科学相关的 Python 库介绍

训练你的第一个机器学习模型 :将数据集分成独立的训练集和测试集,交叉验证避免过拟合以及使用合适的表现评价指标。对于 Python,最好的通用机器学习库是 Scikit-Learn。可参考资料:

Scikit-Learn 官网

Scikit-Learn 教程. EliteDataScience.com

机器之心. 从零开始掌握 Python 机器学习

Ben Hamner (Kaggle CTO). 机器学习的八个步骤

解决入门级竞赛 : Getting Started 竞赛非常适合初学者,因为它们给你提供了低风险的学习环境,并且还有很多社区创造的教程。

Kaggle 的竞赛分成四个类别:

Featured :通常是由公司、组织甚至政府赞助的,奖金池最大。

Research :研究方向的竞赛,只有很少或没有奖金。它们也有非传统的提交流程。

Recruitment :这些是由想要招聘数据科学家的公司赞助的。目前仍然相对少见。

Getting Started :这些竞赛的结构和 Featured 竞赛类似,但没有奖金。它们有更简单的数据集、大量教程和滚动的提交窗口让你可以随时输入。

网络爬虫 网站 API 当公共数据集无法满足我们的需求时,则需要自定义采集数据。而采集数据则通过网络爬虫实现。值得注意的是,并不是所有的网页,都需要我们花费大功夫去扒取获得,而是它们提供了调用数据的 API。 当然,也有 Github 大神搜集并整理了较实用的 API: TonnyL. Awesome APIs 网页爬虫 Beautiful Soup :Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库。 Web Magic :Web Magic 是一个简单灵活的 Java 爬虫框架。基于 WebMagic,你可以快速开发出一个高效、易维护的爬虫。 处理数据 为什么要对数据预处理:确保数据质量,以保证预测的结果更精确。而数据质量涉及许多因素,例如准确性、完整性、一致性、可信性和可解释性。 数据预处理的主要任务: 数据清洗:缺失值处理、光滑噪声数据、识别和删除离群点。 数据归约:特征规约 ( 维归约 )、特征值归约 ( 概念分层 )。 数据变换:方法可以是数据归约、也可以分解数据,主要思想是将数据变换或统一成适合数据挖掘的形式。 数据清洗

缺失值处理 :某些实例数据中属性值为空,我们通过遍历数据集将其剔除。若数据集中存在大量实例含有缺失值的情况,则我们采用 填补缺失值 的方法。值得注意的是,根据不同情况,填补缺失值有多种方式:

人工填写缺失值。 使用全局常量填充缺失值:”unkown” 或者 $\infty$。 使用属性的中心度量:若是对称的数据分布,则使用均值;若是倾斜的数据分布,则使用中位数。

使用最可能的值填充缺失值:回归、贝叶斯形式化的基于推理的工具或决策树。

某些情况下,缺失值并不意味数据有错误。例如在申请信用卡时,要求填写申请人的驾驶执照号,没有的人可填写 “无” 或者不填。

光滑噪声 :指数据中存在着错误或异常 ( 偏离期望值 ) 的数据,这些数据对数据的分析造成了干扰。我们可通过 分箱 、 回归 、 离群点分析 等噪声光滑技术来消除噪声。

分箱 回归 离群点分析 数据归约

特征归约 :从原有的特征中删除不重要或不相关的特征,或者通过对特征进行重组来减少特征的个数。例如,某些实例数据中属性值与所研究的问题无关,我们可以选择性地剔除。

例如本课堂的实例:预测志愿者是否在冥想。大脑扫描数据是由 EEG 采集而得的,其呈现三种特征:精神专注度、冷静度以及志愿者的年龄。而志愿者是否发生冥想活动,很明显与性别无关,则可选择性地剔除该属性。

特征值归约 :特征值离散化技术,也称为 概念分层 。将连续型特征的值离散化,使之成为少量的区间,每个区间映射到一个离散符号。这种技术的好处在于简化了数据描述,并易于理解数据和最终的挖掘结果。

本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

代码区博客精选文章
分页:12
转载请注明
本文标题:课堂 | 如何轻松有效地预处理数据
本站链接:https://www.codesec.net/view/611118.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(78)