机器学习基础与实践(一)数据清洗Charlotte77

机器学习基础与实践(一)----数据清洗

机器学习基础与实践(二)----数据转换

机器学习基础与实践(三)----数据降维

第二部分特征工程

机器学习基础与实践(四)----特征选择

机器学习基础与实践(五)----特征提取

机器学习基础与实践(六)----模型选择与评估

第三部分算法基础之有监督算法

机器学习基础与实践(七)----广义线性模型

机器学习基础与实践(八)----最小二乘法

机器学习基础与实践(九)----LDA

机器学习基础与实践(十)----SGD

机器学习基础与实践(十一)----K近邻

机器学习基础与实践(十二)----高斯过程

机器学习基础与实践(十三)----决策树(ID3,C4.5,C5.0,CART)

机器学习基础与实践(十四)----朴素贝叶斯

机器学习基础与实践(十五)----支持向量机

机器学习基础与实践(十六)----集成学习(Bagging,RF,AdaBoost,GradientTreeBoosting,VotingClassifier)

机器学习基础与实践(十七)----感知机模型

机器学习基础与实践(十八)----多分类算法

第四部分算法基础之无监督算法

机器学习基础与实践(十九)----K-means

机器学习基础与实践(二十)----Affinitypropagation

机器学习基础与实践(二十一)----Mean-shift

机器学习基础与实践(二十二)----Spectralclustering

机器学习基础与实践(二十三)----Wardhierachical

机器学习基础与实践(二十四)----Agglomerativeclustering

机器学习基础与实践(二十五)----DBSCAN

机器学习基础与实践(二十六)----Gaussianmixtures

机器学习基础与实践(二十七)----Birch

第五部分算法基础之推荐算法

机器学习基础与实践(二十八)----相似度计算

机器学习基础与实践(二十九)----Arules关联规则

机器学习基础与实践(三十)----Fp-Growth

机器学习基础与实践(三十一)----User-basedorItem-based

第六部分算法基础之半监督模型

机器学习基础与实践(三十二)----LabelPropagation

第七部分算法基础之其他模型

机器学习基础与实践(三十三)----概率图模型

机器学习基础与实践(三十四)----最大熵模型

机器学习基础与实践(三十五)----规则学习

机器学习基础与实践(三十六)----强化学习

机器学习基础与实践(三十七)----条件随机场

机器学习基础与实践(三十八)----保序回归(Isotonicregression)

机器学习基础与实践(三十九)----Probabilitycalibration

正文:

直观来看,可以用一个流程图来表示:

今天讲数据清洗,为什么要进行数据清洗呢?我们在书上看到的数据,譬如常见的iris数据集,房价数据,电影评分数据集等等,数据质量都很高,没有缺失值,没有异常点,也没有噪音,而在真实数据中,我们拿到的数据可能包含了大量的缺失值,可能包含大量的噪音,也可能因为人工录入错误导致有异常点存在,对我们挖据出有效信息造成了一定的困扰,所以我们需要通过一些方法,尽量提高数据的质量。数据清洗一般包括以下几个步骤:

1#一组年薪超过10万元的经理收入2pay=c(11,19,14,22,14,28,13,81,12,43,11,16,31,16,23.42,22,26,17,22,13,27,180,16,43,82,14,11,51,76,28,66,29,14,14,65,37,16,37,35,39,27,14,17,13,38,28,40,85,32,25,26,16,12,54,40,18,27,16,14,33,29,77,50,19,34)3par(mfrow=c(2,2))#将绘图窗口改成2*2,可同时显示四幅图4hist(pay)#绘制直方图5dotchart(pay)#绘制点图6barplot(pay,horizontal=T)#绘制箱型图7qqnorm(pay);qqline(pay)#绘制Q-Q图

1importscipyassp2data=sp.genfromtxt("web_traffic.tsv",delimiter="\t")

数据情况如下:

1>>>data2array([[1.00000000e+00,2.27200000e+03],3[2.00000000e+00,nan],4[3.00000000e+00,1.38600000e+03],5...,6[7.41000000e+02,5.39200000e+03],7[7.42000000e+02,5.90600000e+03],8[7.43000000e+02,4.88100000e+03]])910>>>printdata[:10]11[[1.00000000e+002.27200000e+03]12[2.00000000e+00nan]13[3.00000000e+001.38600000e+03]14[4.00000000e+001.36500000e+03]15[5.00000000e+001.48800000e+03]16[6.00000000e+001.33700000e+03]17[7.00000000e+001.88300000e+03]18[8.00000000e+002.28300000e+03]19[9.00000000e+001.33500000e+03]20[1.00000000e+011.02500000e+03]]2122>>>data.shape23(743,2)

可以看到,第2列已经出现了缺失值,现在我们来看一下缺失值的数量:

1>>>x=data[:,0]2>>>y=data[:,1]3>>>sp.sum(sp.isnan(y))48在743个数据里只有8个数据缺失,所以删除它们对于整体数据情况影响不大。当然,这是缺失值少的情况下,在缺失值值比较多,而这个维度的信息还很重要的时候(因为缺失值如果占了95%以上,可以直接去掉这个维度的数据了),直接删除会对后面的算法跑的结果造成不好的影响。我们常用的方法有以下几种:

1.直接删除----适合缺失值数量较小,并且是随机出现的,删除它们对整体数据影响不大的情况

2.使用一个全局常量填充---譬如将缺失值用“Unknown”等填充,但是效果不一定好,因为算法可能会把它识别为一个新的类别,一般很少用

3.使用均值或中位数代替----优点:不会减少样本信息,处理简单。缺点:当缺失数据不是随机数据时会产生偏差.对于正常分布的数据可以使用均值代替,如果数据是倾斜的,使用中位数可能更好。

4.插补法

处理方法:

1.删除异常值----明显看出是异常且数量较少可以直接删除

2.不处理---如果算法对异常值不敏感则可以不处理,但如果算法对异常值敏感,则最好不要用,如基于距离计算的一些算法,包括kmeans,knn之类的。

3.平均值替代----损失信息小,简单高效。

4.视为缺失值----可以按照处理缺失值的方法来处理

1#创建数据,data里包含重复数据2>>>data=pd.DataFrame({'v1':['a']*5+['b']*4,'v2':[1,2,2,2,3,4,4,5,3]})3>>>data4v1v250a161a272a283a294a3105b4116b4127b5138b31415#DataFrame的duplicated方法返回一个布尔型Series,表示各行是否是重复行16>>>data.duplicated()170False181False192True203True214False225False236True247False258False26dtype:bool2728#drop_duplicates方法用于返回一个移除了重复行的DataFrame29>>>data.drop_duplicates()30v1v2310a1321a2334a3345b4357b5368b33738#这两个方法默认会判断全部列,你也可以指定部分列进行重复项判断。假设你还有一列值,且只希望根据v1列过滤重复项:39>>>data['v3']=range(9)40>>>data41v1v2v3420a10431a21442a22453a23464a34475b45486b46497b57508b3851>>>data.drop_duplicates(['v1'])52v1v2v3530a10545b455556#duplicated和drop_duplicates默认保留的是第一个出现的值组合。传入take_last=True则保留最后一个:57>>>data.drop_duplicates(['v1','v2'],take_last=True)58v1v2v3590a10603a23614a34626b46637b57648b38

1list0=['b','c','d','b','c','a','a']23方法1:使用set()45list1=sorted(set(list0),key=list0.index)#sortedoutput6print(list1)78方法2:使用{}.fromkeys().keys()910list2={}.fromkeys(list0).keys()11print(list2)1213方法3:set()+sort()1415list3=list(set(list0))16list3.sort(key=list0.index)17print(list3)1819方法4:迭代2021list4=[]22foriinlist0:23ifnotiinlist4:24list4.append(i)25print(list4)2627方法5:排序后比较相邻2个元素的数据,重复的删除2829defsortlist(list0):30list0.sort()31last=list0[-1]32foriinrange(len(list0)-2,-1,-1):33iflist0[i]==last:34list0.remove(list0[i])35else:36last=list0[i]37returnlist03839print(sortlist(list0))

一般而言,宽度越大,光滑效果越明显。箱也可以是等宽的,其中每个箱值的区间范围是个常量。分箱也可以作为一种离散化技术使用.

2.回归法

可以用一个函数拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”直线,使得一个属性能够预测另一个。多线性回归是线性回归的扩展,它涉及多于两个属性,并且数据拟合到一个多维面。使用回归,找出适合数据的数学方程式,能够帮助消除噪声。

1#-*-coding:utf-8-*-2#文本格式化处理,过滤掉空行34file=open('123.txt')56i=07while1:8line=file.readline().strip()9ifnotline:10break11i=i+112line1=line.replace('\r','')13f1=open('filename.txt','a')14f1.write(line1+'\n')15f1.close()16printstr(i)

2.如何判断文件的编码格式

1#-*-coding:utf8-*-2#批量处理编码格式转换(优化)3importos4importchardet56path1='E://2016txtutf/'7defdirlist(path):8filelist=os.listdir(path)9forfilenameinfilelist:10filepath=os.path.join(path,filename)11ifos.path.isdir(filepath):12dirlist(filepath)13else:14iffilepath.endswith('.txt'):15f=open(filepath)16data=f.read()17ifchardet.detect(data)['encoding']!='utf-8':18printfilepath+"----"+chardet.detect(data)['encoding']1920dirlist(path1)

3.文件编码格式转换,gbk与utf-8之间的转换

这个主要是在一些对文件编码格式有特殊需求的时候,需要批量将gbk的转utf-8的或者将utf-8编码的文件转成gbk编码格式的。

1#-*-coding:gbk-*-2#批量处理编码格式转换3importcodecs4importos5path1='E://dir/'6defReadFile(filePath,encoding="utf-8"):7withcodecs.open(filePath,"r",encoding)asf:8returnf.read()910defWriteFile(filePath,u,encoding="gbk"):11withcodecs.open(filePath,"w",encoding)asf:12f.write(u)1314defUTF8_2_GBK(src,dst):15content=ReadFile(src,encoding="utf-8")16WriteFile(dst,content,encoding="gbk")1718defGBK_2_UTF8(src,dst):19content=ReadFile(src,encoding="gbk")20WriteFile(dst,content,encoding="utf-8")2122defdirlist(path):23filelist=os.listdir(path)24forfilenameinfilelist:25filepath=os.path.join(path,filename)26ifos.path.isdir(filepath):27dirlist(filepath)28else:29iffilepath.endswith('.txt'):30printfilepath31#os.rename(filepath,filepath.replace('.txt','.doc'))32try:33UTF8_2_GBK(filepath,filepath)34exceptException,ex:35f=open('error.txt','a')36f.write(filepath+'\n')37f.close()3839dirlist(path1)

THE END
1.干净的数据:数据清洗入门与实践(豆瓣)第1章 为什么需要清洗数据 1 1.1 新视角 1 1.2 数据科学过程 2 1.3 传达数据清洗工作的内容 3 1.4 数据清洗环境 4 1.5 入门示例 5 ··· (更多) "干净的数据:数据清洗入门与实践"试读· ··· 大数据、数据挖掘、机器学习和可视化,近来计算界的几件大事好像总也绕不开数据这个主角。从统计学家到软件开发https://book.douban.com/subject/26781011/
2.数据清洗入门与实践pdf下载数据清洗入门与实践高清干净的数据 数据清洗入门与实践是一本数据清洗指导学习书籍,由美国的Megan Squie编著,本书从文件格式、数据类型、字符编码等基本概念讲起,通过真实的示例,探讨如何提取和清洗关系型数据库、网页文件和PDF文档中的数据。 最后提供了两个真实的项目,让读者将所有数据清洗技术付诸实践,完成整个数据科学过程,适合任何一个对https://www.ddooo.com/softdown/100992.htm
3.《干净的数据数据清洗入门与实践》([美]斯夸尔(MeganSquire当当网图书频道在线销售正版《干净的数据 数据清洗入门与实践》,作者:[美] 斯夸尔(Megan Squire),出版社:人民邮电出版社。最新《干净的数据 数据清洗入门与实践》简介、书评、试读、价格、图片等相关信息,尽在DangDang.com,网购《干净的数据 数据清洗入门与实践》,http://product.dangdang.com/23959039.html
4.干净的数据:数据清洗入门与实践数据清洗基础与实践 作者:谢东亮 ISBN:9787560654607 出版社:西安电子科技大学出版社 出版年:2019 Python 数据清洗 作者:沃克尔 ISBN:9787302609360 出版社:清华大学出版社 出版年:2022 Python数据清洗 作者:沃克尔 ISBN:9787302609360 出版社:清华大学出版社 https://www.las.ac.cn/front/book/detail?id=5400f772c88948629455c6c78921ce50
5.干净的数据:数据清洗入门与实践.pdf文章浏览阅读782次。干净的数据:数据清洗入门与实践.pdf下载链接转载于:https://blog.51cto.com/4456998/2361970_数据清洗的教程pdfhttps://blog.csdn.net/weixin_34319374/article/details/92172504
6.干净的数据:数据清洗入门与实践PDF下载内容简介 本书主要内容包括:数据清洗在数据科学领域中的重要作用,文件格式、数据类型、字符编码的基本概念,组织和处理数据的电子表格与文本编辑器,各种格式数据的转换方法,解析和清洗网页上的HTML 文件的三种策略,提取和清洗PDF 文件中数据的方法,检测和清除RDBMS https://cmsblogs.cn/3273.html
7.干净的数据:数据清洗入门与实践中文pdf扫描版[39MB]电子书下载☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持! ☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。 ☉ 本站提供的干净的数据:数据清洗入门与实践 中文pdf扫描版[39MB]资源来源互联网,版权归该下载资源的合法拥有者所有。https://www.jb51.net/books/567054.html
8.干净的数据数据清洗入门与实践.pdf下载文件名: 干净的数据 数据清洗入门与实践.pdf 附件大小: 38.78 MB 举报本内容 下载通道游客无法下载, 注册 登录 熟悉论坛请点击新手指南 下载说明 1.下载一个附件只会扣除您一次免流量下载次数或通用积分。 2.论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可(不会算多次下载次数https://bbs.pinggu.org/a-2410496.html
9.数据分析从入门到进阶的必看书单!文末附16本书的PDF下载2、《干净的数据:数据清洗入门与实践》 推荐指数:★★★☆☆ 由数据清洗开始窥窃数据分析,介绍了很多有意思的东西,轻松读物,适合没有编程基础的同学阅读学习! 豆瓣评分:评分:6.2分 优点:算是还可以的爬虫入门书籍,有技术讲解,最后也有案例说明; 缺点:内容过于杂乱,而且对于已经有编程基础的人来说非常简单,没有看https://www.shangyexinzhi.com/article/5048539.html
10.QLExpress资料入门指南:从基础到实践QLExpress 是一款高效的数据处理工具,专为专业数据分析师和数据科学家设计,简化了资料探索、清洗、分析和可视化的流程,提供强大的性能、直观的语法和丰富的整合能力。通过本文,您将从安装环境、资料导入与预处理、查询与分析,以及数据可视化等多个关键环节深入了解QLExpress,包括示例代码演示。本文还提供了实践项目案例,帮https://www.imooc.com/article/347782
11.研究生学术训练营之信息素养系列回顾(2018Python进阶之数据爬取与清洗(海南医学院副教授 余本国) 内容提要:本节课开始以统计美剧《老友记》英语台词词频的案例,对上节课关于模块的应用进行了复习,随后老师以上海外国语贴吧和研究生讲座网站为例,为同学们展示了如何利用Python快速爬取网页上的文本及数据。 https://wmcj.shisu.edu.cn/1a/15/c990a137749/page.htm
12.科学网—系统:R语言贝叶斯网络模型R语言贝叶斯模型进阶R语言本教程包括回归及结构方程模型概述及数据探索;R和Rstudio简介及入门和作图基础;R语言数据清洗-tidyverse包;贝叶斯回归与混合效应模型;贝叶斯空间自相关、时间自相关及系统发育相关数据分析;贝叶斯非线性数据分析;贝叶斯结构方程模型及统计结果作图等。教程不仅适合R语言和生态环境数据统计分析初学者,也适合有高阶应用需求的研https://wap.sciencenet.cn/blog-3539141-1414917.html
13.Python数据分析实战,小费数据集应用本节选用的是Python的第三方库seaborn自带的数据集,该小费数据集为餐饮行业收集的数据,其中total_bill为消费总金额、tip为小费金额、sex为顾客性别、smoker为顾客是否吸烟、day为消费的星期、time为聚餐的时间段、size为聚餐人数。 一、数据来源 本节选用的是Python的第三方库seaborn自带的数据集,该小费数据集为餐饮行https://www.51cto.com/article/623941.html
14.技术分析数据清洗后的深度分析与洞察:探索数据背后的故事上涨常态找变态卖空点,下跌常态找变态买补点。https://www.55188.com/thread-27847026-1-1.html
15.Spark大数据入门与实践本实训路径以任务为导向,较为全面地介绍了 Spark 大数据技术的相关知识。具体内容包括 Spark 概述;SparkRDD 编程;Spark 编程进阶;Spark SQL:结构化数据文件处理;Spark Streaming:实时计算框架:功能强大的算法库;项目案例:餐饮平台菜品智能推荐。通过练习和操作实践,帮助你巩固所学的内容。 https://www.educoder.net/paths/691
16.PQ入门手册(数据清洗手册powerquery).pdfPQ入门手册(数据清洗手册power query).pdf,PQ 入门手册 轻松入门 Excel 报表自动化利器——PowerQuery PQ in Excel By JaryYuan 目录 入门案例 5 获取文本文件 5 更改数据类型 6 将数据返回 Excel 8 连接数据类型 9 基本界面功能 11 Excel 文件的导入 11 从外部导入 11 从https://mip.book118.com/html/2023/0524/8112015120005071.shtm