博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python数据预处理:机器学习、人工智能通用技术(1)
阅读量:7078 次
发布时间:2019-06-28

本文共 4768 字,大约阅读时间需要 15 分钟。

  2018年12月24日17:28:26 

摘要:大数据技术与我们日常生活越来越紧密,要做大数据,首要解决数据问题。原始数据存在大量不完整、不一致、有异常的数据,严重影响到数据建模的执行效率,甚至可能导致模型结果的偏差,因此要数据预处。数据预处理主要是将原始数据经过文本抽取、数据清理、数据集成、数据处理、数据变换、数据降维等处理后,不仅提高了数据质量,而且更好的提升算法模型性能。数据预处理在数据挖掘、自然语言处理、机器学习、深度学习算法中起着重要的作用。(本文原创,转载必须注明出处.)

1 什么是数据预处理

数据预处理简而言之就是将原始数据装进一个预处理的黑匣子之后,产生出高质量数据用来适应相关技术或者算法模型。为了大家更明确的了解数据预处理,我们举个新闻分类的例子:

  • 将原始的数据直接进行分类模型训练,分类器准确率和召回率都比较低。因为我们原始数据存在很多干扰项,比如,等这些所谓停用词特征对分类起的作用不大,很难达到工程应用。
  • 我们将原始数据放假预处理黑匣子后,会自动过滤掉干扰数据,并且还会按照规约的方法体现每个词特征的重要性,然后将词特征压缩变换在数值型矩阵中,再通过分类器就会取得不错的效果,可以进行工程应用。

总结:数据预处理前的数据存在不完整、偏态、噪声、特征比重、特征维度、缺失值、错误值等问题;数据预处理后的数据存在完整、正态、干净、特征比重合适、特征维度合理、无缺失值等优点。

数据预处理方法

  • 数据清理:通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致性来清理数据。主要目标:格式标准化,异常数据清除,错误纠正,重复数据的清除。
  • 数据集成:将数据由多个数据源合并成一个一致的数据存储,如数据仓库。
  • 数据变换:通过平滑聚集,数据概化,规范化等方式将数据转换成适用于的形式。如把数据压缩到0.0-1.0区间。
  • 数据归约:往往数据量非常大,在少量数据上进行挖掘分析需要很长的时间,数据归约技术可以用来得到数据集的归约表示,它小得多,但仍然接近于保持原数据的完整性,并结果与归约前结果相同或几乎相同。可以通过如聚集、删除冗余特征或聚类来降低数据的规模。

2 为什么做这门课程

在初期学习阶段,大家精力着重于算法模型和调参上。实际情况是,有时候在算法改进上花费很多功夫,却不如在数据质量上的些许提高来的明显。另外,习惯于数据语料的拿来主义之后,当面对新的任务时候,却不知道如何下手?有的同学在处理英语时候游刃有余,面对中文数据预处理却不知所措。基于以上几个问题,结合作者工程经验,整理出了‘数据预处理’学习资料,本教程主要面对文本信息处理,在图片语音等数据语料处理上是有所区别的。

3 本课程能学到什么

  • 文本批量抽取:涉及技术点包括pywin32插件安装使用、文档文本提取、PDF文本提取、文本抽取器的封装、方法参数的使用、遍历文件夹、编码问题、批量抽取文本信息。
  • 数据清洗:包括yield生成器、高效读取文件、正则表达式的使用、清洗网页数据、清洗字符串、中文的繁简互相转换、缺失值的处理、噪声数据、异常数据清洗、批量清洗30万条新闻数据。
  • 数据处理:包括结巴分词精讲、HanLP精讲、停用词的处理、NLTK的安装使用、高频词和低频词的处理、词性的选择、特征数据的提取、批量预处理30万条新闻数据。
  • 数据向量化:包括词袋模型、词集模型、词向量的转化、缺失值和数据均衡、语料库技术、TFIDF、特征词比重、主成分分析、主题模型等、批量进行30万条数据向量化。
  • 可视化技术:包括条形图、柱形图、散点图、饼图、热力图等,还有matplotlib、seabom、Axes3D综合使用进行三维可视化。
  • XGBoost竞赛神器:包括监督学习、文本分类、XGBoost原理、XGBoost算法实现、XGBoost调参、算法性能评估、30万条文档生成词典、30万条文档转化TFIDF、30万条文档转化生成LSI、训练分类器模型、抽样改进模型算法、特征维度改进模型算法、XGBoost实现30万条新闻数据文本分类

综上所述:数据预处理整体包括数据抽取-->数据清洗-->数据处理-->数据向量化-->可视化分析-->模型构建。在整个过程中,我们每个章节相关性很强,首先对整个章节最终实现效果进行演示,然后拆分知识点分别讲解,最后将所有知识点整合起来做小节的实战。每个小节实战数据为下一个章节做铺垫,最后,一个综合实战分类案例串联所有知识点。

4 开发环境说明

  • 开发语言: Python3.5.3
  • 系统环境:window10操作系统
  • 编程环境:Sublime
  • 软件环境:Anaconda4.4.0
  • 插件版本:均支持最新版本

sublime激活:打开Help >Enter LICENSE

----- BEGIN LICENSE -----sgbteamSingle User LicenseEA7E-11532598891CBB9 F1513E4F 1A3405C1 A865D53F115F202E 7B91AB2D 0D2A40ED 352B269B76E84F0B CD69BFC7 59F2DFEF E267328F215652A3 E88F9D8F 4C38E3BA 5B2DAAE4969624E7 DC9CD4D5 717FB40C 1B9738CF20B3C4F1 E917B5B3 87C38D9C ACCE7DD85F7EF854 86B9743C FADC04AA FB0DA5C0F913BE58 42FEA319 F954EFDD AE881E0B------ END LICENSE ------

解决Package Control报错:Package Control.sublime-settings]修改方法:Preferences > Package Settings > Package Control > Settings - User 添加:

"channels":    [        "http://cst.stu.126.net/u/json/cms/channel_v3.json",        //"https://packagecontrol.io/channel_v3.json",        //"https://web.archive.org/web/20160103232808/https://packagecontrol.io/channel_v3.json",        //"https://gist.githubusercontent.com/nick1m/660ed046a096dae0b0ab/raw/e6e9e23a0bb48b44537f61025fbc359f8d586eb4/channel_v3.json"    ]

5 项目演示

5.1 原始数据

5.2 数据预览

5.3 数据清洗

5.4 生成词典

5.5 生成特征向量

5.6 生成LSI

 

5.7 XGBoost新闻数据文本分类


6 目录列表

☆ 理论介绍

★ 实战演练

第1章 课程介绍

  • 1-1 为什么做这门课--☆
  • 1-2 课程整体介绍与导学--☆☆
  • 1-3 学习建议--☆☆
  • 1-4 课程开发环境介绍--☆
  • 1-5 文本分类项目演示--☆
  • 1-6 源码获取说明--☆☆☆
  • 1-7 总结与扩展--☆

第2章 Python数据预处理之抽取文本信息

  • 2.1 数据类型与采集方法--☆☆☆
  • 2.2 一堆杂乱无章的数据--☆
  • 2.3 文本抽取问题(3种方法对比)--☆
  • 2.4 Pywin32实现格式转换--☆☆
  • 2.3 Word转换TXT算法--★
  • 2.6 PDF转换TXT算法--★
  • 2.7 文本抽取工具--★★
  • 2.8 文本批量编码--★
  • 2.9 遍历读取文件--★★★
  • 2.10 实战案例1:遍历文件批量抽取新闻文本内容--★★★
  • 2.11 总结与扩展--☆☆

第3章 Python数据预处理之清洗文本信息

  • 3.1 准备30万条新闻数据--☆
  • 3.2 yield生成器--★
  • 3.3 高效读取文件--★★
  • 3.4 数据缺失值--★★
  • 3.5 脏数据与噪声数据--★★
  • 3.6 正则清洗数据--★★
  • 3.7 清洗HTML数据--★★
  • 3.8 简繁字体转换--★★
  • 3.9 实战案例2:30万条新闻文本数据清洗--★★★
  • 3.10 总结与扩展--☆☆

第4章 Python数据预处理之文本处理

  • 4.1 常见分词工具--☆
  • 4.2 jieba分词(推荐)--★★★
  • 4.3 HanLP分词(扩展)--★★
  • 4.4 自定义去停词--★★
  • 4.5 词频统计--★★
  • 4.6 自定义去高低词频--★★
  • 4.7 自定义规则提取特征词--★★
  • 4.8 实战案例3:6万条新闻文本处理--★★★
  • 4.9 总结与扩展--☆☆

第5章 Python数据预处理之文本特征向量化

  • 5.1 解析数据文件--★★
  • 5.2 词集模型--★★
  • 5.3 词袋模型--★★
  • 5.4 特征词转文本向量--★★★
  • 5.5 不均衡数据归一化处理--★★
  • 5.6 处理数据缺失值--★★
  • 5.7 实战案例4:新闻文本特征向量化--★★★
  • 5.8 总结与扩展--☆☆

第6章 Python数据预处理之gensim文本向量化

  • 6.1 gensim介绍--☆☆
  • 6.2 gensim构建语料词典--★
  • 6.3 gensim统计词频特征--★★
  • 6.4 gensim计算IF-IDF--★★
  • 6.5 潜在语义索引--★★★★
  • 6.6 生成主题模型--★★★★
  • 6.7 生成随机映射--★★★★
  • 6.8 分层狄利克雷过程--★★★★
  • 6.9 实战案例6:gensim实现新闻文本特征向量化--★★★★
  • 6.10 总结与扩展--☆☆☆

第7章 Python数据预处理之特征降维

  • 7.1 什么是降维--☆☆
  • 7.2 PCA 概述--☆☆☆
  • 7.3 PCA 应用场景--☆☆
  • 7.4 PCA 算法原理--★★★
  • 7.5 PCA 算法实现--★★★
  • 7.6 高维数据向低纬数据映射--★★
  • 7.7 前N个主成分特征--★★
  • 7.8 实战案例5:PCA技术实现新闻文本特征降维--★★★★
  • 7.9 总结与扩展--☆☆

第8章 数据可视化分析

  • 8.1 matplotlib介绍--☆
  • 8.2 matplotlib绘制折线图--★★
  • 8.3 matplotlib绘制散点图--★★
  • 8.4 matplotlib绘制直方图--★★
  • 8.5 matplotlib绘制气温图表--★★
  • 8.6 matplotlib绘制三维图--★★★
  • 8.7 总结与扩展--☆

第9章 XGBoost实现30万条新闻数据文本分类

  • 9.1 有监督学习--☆☆☆
  • 9.2 文本分类方法--☆☆☆
  • 9.3 XGBoost 原理--★★★★
  • 9.4 XGBoost 算法实现--★★★★
  • 9.5 准确率与召回率--☆
  • 9.6 F度量值--☆
  • 9.7 30万条文档生成词典--★★★
  • 9.8 30万条文档转化TFIDF--★★★
  • 9.9 30万条文档转化生成LSI--★★★★
  • 9.10 训练分类器模型--★★★★
  • 9.11 测试分类器模型--★★
  • 9.12 抽样改进模型算法--★★
  • 9.13 特征维度改进模型算法--★★
  • 9.14 训练集和测试集比率改进模型算法--★★
  • 9.15 综合实战:XGBoost实现30万条新闻数据文本分类--★★★★★
  • 9.11 总结与扩展--★★

7 源码获取

源码请进【机器学习和自然语言QQ群:436303759】文件下载:

 

 

你可能感兴趣的文章
Android日常开发总结
查看>>
数据库连接池php-cp介绍
查看>>
微信支付id出现的重复支付解决方法和app应用中多种支付方式之间的对比
查看>>
在CentOS下利用Eclipse调试FFmpeg
查看>>
Sed 命令详解 正则表达式元字符
查看>>
ng-include文件实现ng-repeat
查看>>
python 回溯法 子集树模板 系列 —— 10、m着色问题
查看>>
监测CentOS下TCP断线
查看>>
cocos JS for循环让精灵从屏幕中间往两边排列散开
查看>>
(最短路径算法整理)dijkstra、floyd、bellman-ford、spfa算法模板的整理与介绍
查看>>
bzoj 3597: [Scoi2014]方伯伯运椰子 [01分数规划 消圈定理 spfa负环]
查看>>
poj 2240
查看>>
java同步包种ArrayBlockingQueue类的分析与理解
查看>>
Kafka设计解析(四):Kafka Consumer解析--转
查看>>
检验开发团队好不好的12个问题
查看>>
JS创建对象几种不同方法具体解释
查看>>
Verilog HDL程序设计——基本要素
查看>>
ubuntu16.04 登录密码破解方法
查看>>
匈牙利算法解决二分图匹配
查看>>
Android 源码下载,国内 镜像
查看>>