机器学习之数据清洗

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2023.02.27湖南

对于记录重复数据,一般采用直接删除方式:

subset:用来指定特定的列,默认所有列1.1.2特征重复:一个或多个特征名不同,但是数据完全一样pandas提供了一个corr函数可以进行相似度的检测,当相似度为1,表示两列数据一模一样。

#dataframe查看某列缺省值和非缺省值的数量data['temp'].isnull().sum()data['temp'].notnull().sum()1.2.1删除法:当缺省的个数非常少时可以采用直接删除的方式

importnumpyasnpfromscipy.interpolateimportinterp1dx=np.array([1,2,3,4,5,8,9,10])y=np.array([2,8,18,32,50,128,162,200])linearinsert=interp1d(x,y,kind='linear')x2=[6,7]#需要插值的x2值不能超过x的范围y2=linearinsert(x2)print(y2)[76.102.]1.3异常值:数据处理中,异常值是指偏离明显的数值,有时候也成为离群点,异常值在进行数据分析的时候,分析结果容易产生偏差甚至错误,对于异常值,一般采用删除的方法。3δ原则和箱型图用于做初步的数据探查,如果经过检验数据服从正态分布,就使用3δ原则,否则使用箱型图。1.3.13δ原则如果数据服从正态分布,在3σ原则下,异常值被定义为组测定值中与平均值的偏差超过三倍标准差的值。在正态分布下,距离平均值3σ之外的值出现的概率为P(|x-μ|>3σ)<=0.003,属于极个别的概率事件。如果数据不服从正态分布,也可以远离平均值的多少倍标准差来描述这个原则有个前提条件:数据需要服从正态分布。

数据标准化主要是应对特征向量中数据很分散的情况,防止小数据被大数据(绝对值)吞并的情况。

另外,数据标准化也有加速训练,防止梯度爆炸的作用。

为什么要标准化/归一化?

提升模型精度:标准化/归一化后,不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。

加速模型收敛:标准化/归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。

如下图所示:左图表示未经过数据标准化处理的loss更新函数,右图表示经过数据标准化后的loss更新图。可见经过标准化后的数据更容易迭代到最优点,而且收敛更快。

哪些机器学习算法需要标准化和归一化:

1)需要使用梯度下降和计算距离的模型要做归一化,因为不做归一化会使收敛的路径程z字型下降,导致收敛路径太慢,而且不容易找到最优解,归一化之后加快了梯度下降求最优解的速度,并有可能提高精度。比如说线性回归、逻辑回归、adaboost、xgboost、GBDT、SVM、NeuralNetwork等。需要计算距离的模型需要做归一化,比如说KNN、KMeans等。

2)概率模型、树形结构模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、随机森林。

[0,1]标准化是最基本的一种数据标准化方法,指的是将数据压缩到0~1之间。

标准化公式如下

#代码如下defMaxMinNormalization(x):'''[0,1]normaliaztion'''x=(x-np.min(x))/(np.max(x)-np.min(x))returnx

Z-score标准化是基于数据均值和方差的标准化化方法。标准化后的数据是均值为0,方差为1的正态分布。这种方法要求原始数据的分布可以近似为高斯分布,否则效果会很差。如果不服从高斯分布,可以考虑将原始数据取log或者开根号,再检验是否符合高斯分布。

#代码实现defZscoreNormalization(x):'''Z-scorenormaliaztion'''x=(x-np.mean(x))/np.std(x)returnx

某些数据不是数值型的数据,如性别等,在进行计算的时候,往往需要数值型的数据,此时,需要将这些数据进行数值型的转换。哑变量也称虚拟变量,当自变量x为多分类时,会将每一类用一个变哑变量表示。例如x1表示坐飞机,x2表示做火车,x3表示自驾等,当x1=1表示坐飞机,x1=0表示不坐飞机。

在此需要注意的是3值以上的离散变量需要进行哑变量处理,并且增加截距项intercept,同时进行训练集和测试集的拆分。(目的是防止模型过拟合)

若针对训练数据已经做好了独热编码并建立了模型,而新增的预测数据或分类数据的类别变量未包含完整的类别。此时直接使用pd.get_dummies,会发现与训练集得到的结果不一样。例如:训练数据中季节列中春、夏、秋、冬都出现过,而在新的测试数据中只出现了春与夏,两者的结果会不一样。可以在预测数据中新增以下代码,详见原文。

'category',categories=['春','夏','秋','冬'])3.2对循环特征比如24小时的编码,用cos和sin进行编码hour_x=cos(2pihour/24)andhour_y=sin(2pihour/24)

对于回归评价:

MAE会忽略异常值,而RMSE会注意到异常值并得到没有偏差的预测。那么应该使用哪个指标呢?很遗憾,不存在确定的答案。如果你是一名供应链领域的数据科学家,你应该多做试验:如果使用MAE作为性能评估指标会得到很大偏差,你可能需要使用RMSE。如果数据集包含很多异常值,导致预测结果产生偏移,你可能需要用MAE。

还需要注意的是,你可以选择一个或多个评估指标(如MAE&bias)来计算预测的误差,然后用另一个指标(RMSE?)来对模型进行优化。

对于分类则集中使用AUC

importnumpyasnpfromsklearn.metricsimportmean_squared_error,mean_absolute_error,mean_absolute_errordefcheck_error(orig,pred,name_col='',index_name=''):'''orig:实际值pred:预测值'''bias=np.mean(orig-pred)mse=mean_squared_error(orig,pred)rmse=sqrt(mean_squared_error(orig,pred))mae=mean_absolute_error(orig,pred)mape=np.mean(np.abs((orig-pred)/orig))*100res_smape=2.0*np.mean(np.abs(pred-orig)/(np.abs(pred)+np.abs(orig)))*100error_group=[bias,mse,rmse,mae,mape,res_smape]serie=pd.DataFrame(error_group,index=['BIAS','MSE','RMSE','MAE','MAPE','SMAPE'],columns=[name_col])serie.index.name=index_namereturnserie4.6AUC-二分类和多分类模型,采用AUC作为评价指标fromsklearn.metricsimportroc_auc_score

roc_auc_score(y_true,y_score,*,average='macro',sample_weight=None,max_fpr=None,multi_class='raise',labels=None)

THE END
1.数据挖掘的数据清洗方法数据清洗是数据挖掘过程中的一个关键环节,它可以帮助提高数据的质量和可靠性,从而提高数据挖掘的效果。数据清洗可以减少数据错误的影响,提高数据分析的准确性和可靠性,从而提高数据挖掘的效果。 3.核心算法原理和具体操作步骤以及数学模型公式详细讲解 3.1 数据整理 https://blog.csdn.net/universsky2015/article/details/137324459
2.数据挖掘怎么清洗帆软数字化转型知识库数据挖掘需要进行数据清洗以确保数据质量、提高模型的准确性、减少噪声和冗余、统一数据格式、填补缺失值、删除重复数据。数据清洗是数据挖掘过程中的关键步骤之一,它对后续的数据分析和建模起到至关重要的作用。数据清洗可以通过以下步骤来实现:数据预处理、数据转化、数据集成、数据归约。数据预处理是数据清洗的第一步,https://www.fanruan.com/blog/article/574111/
3.数据挖掘的步骤包括什么首先,需要收集与待挖掘主题相关的数据。可能涉及从各种来源(如数据库、文件、网络等)获取数据,并将其清洗、整合到一个统一的格式中。 2、数据预处理 收集到的数据往往包含噪声、缺失值或异常值,需要进行预处理以保证数据的质量和一致性。预处理步骤包括数据清洗(删除或填充缺失值、处理异常值)、数据转换(将数据转换https://www.pxwy.cn/news-id-81213.html
4.数据清洗的概念常见问题及实践(数据清洗)数据清洗:确保数据分析准确性的关键步骤 数据已成为现代企业和组织决策的重要依据。然而,原始数据往往存在各种问题,如缺失值、错误值、重复数据等,这些问题会严重影响数据分析的准确性和可靠性。数据清洗作为数据预处理的关键环节,发现并纠正数据集中的错误和不一致信息,为后续的数据分析和挖掘打下坚实的基础。本文探讨数https://www.hypers.com/content/archives/5287
5.如何做采购数据分析步骤五:撰写采购数据分析报告,提出优化建议和决策支持。 关键词:如何做采购数据分析 在采购过程中,数据分析是至关重要的一环。通过对采购数据的深入分析,我们可以更好地了解供应链情况、优化采购流程、降低成本、提高效率。那么,如何做好采购数据分析呢?接下来我将从采购目标、数据收集、数据清洗、数据分析、数据可视化https://h.chanjet.com/ask/4f59bead0acf6.html
6.网络资源:数据挖掘实战2(航空公司客户价值分析)freq(最高频数)、mean(平均值),std(方差),min(最小值),50%(中位数),max(最大值)''' explore.to_excel(result_file)#导出结果 统计结果如下: 四、数据预处理 1、数据清洗 1、丢弃票价为空的记录 2、丢弃票价为0,但平均折扣率不为0,总飞行公里数大于0的记录。(脏数据) https://nonlinear.wtu.edu.cn/info/1117/1664.htm
7.数据处理的六步骤上述步骤提供了一个基本的框架,可帮助实现可靠的数据处理,在数字孪生技术栈中其他的技术可能根据具体的需求和应用进行进一步扩展和细化。 二、数据处理的六步骤 数据处理在数字孪生中扮演着重要的角色,它包括以下几个方面: 数据清洗 对采集到的数据进行清洗和预处理,包括去除噪声、填补缺失值、处理异常值等。清洗后的https://www.esensoft.com/industry-news/dx-33247.html
8.为了让数据变得可用,需要对数据进行三个步骤的处理,分别是()数据清洗 B、数据抽样 C、数据管理 D、数据分析 答案 查看答案 更多“为了让数据变得可用,需要对数据进行三个步骤的处理,分别是()”相关的问题 第1题 据《2015中国网络文学版权保护白皮书》披露,网络文学盗版的进化速度十分惊人。近年来,专业化盗版网络文学站点由大站转向小站,由在线转向下载,由电脑端转向手机端等https://www.educity.cn/souti/C4E11027.html
9.数据挖掘的流程包含哪些步骤?数据挖掘是从大量数据中挖掘出有用的信息和模式的过程。它涉及多个步骤,从数据收集到模型评估。以下是数据挖掘的常见流程步骤:理解业务目标:在进行数据挖掘之前,需要明确业务目标和问题。确定要解决的问题以及所需的结果有助于指导整个流程。数据收集:在 https://www.cda.cn/view/202981.html
10.数据分析流程包括哪些步骤在数据分析流程中,数据采集是一个关键步骤。数据采集涉及到数据源的选择、数据收集和数据清洗。数据源可以是数据库、文件、API等,需要根据具体情况进行选择。数据收集需要根据业务问题和目标,采用相应的方式进行收集,如爬虫、调查问卷等。数据清洗是指对原始数据进行预处理,包括去除重复数据、处理缺失值、异常值和噪声数据https://www.linkflowtech.com/news/1597
11.介绍KDD流程及其与知识提取数据挖掘的相关性数据挖掘中kdd的步骤G. H. John提出的螺旋处理过程模型阶段:定义问题、抽取数据、清洗数据、数据工程、算法工程、运行挖掘算法、分析结果。 以用户为中心的处理模型 以用户为中心的处理模型着重对用户进行知识发现的整个过程的支持。 整个处理过程分为下面一些步骤:任务发现、数据发现、数据清洗、模型开发、数据分析、输出结果生成。 https://blog.51cto.com/u_16213724/9570367
12.干货来了!快速教你数据清洗的步骤及方法明月说数据快速教你数据清洗的步骤及方法 ?说起数据清洗,可能会有些小伙伴会觉得这一步可以忽略掉,但是!作为混迹在数据分析这一块多年的老油条,小编在此严肃地声明!资料清理是资料处理中最不能被忽略的部分,它是资料分析过程中不可缺少的一环,其结果的好坏直接关系到模型的效果。实际上,数据清洗通常要占用50%—80%的https://www.cnblogs.com/mingyueshuoshuju/p/15781335.html
13.数据处理方法有哪些,掌握这些技巧让你轻松应对数据分析问题1.预处理方法:当我们需要对采集到的原始数据进行处理时,可以采用预处理方法进行数据清洗、去噪、归一化、降噪等步骤,以便更好地应用数据处理技术。 2.数据挖掘方法:数据挖掘方法通常用于发现数据中的模式和规律,比如通过分类算法来识别一些分类问题,通过聚类算法进行数据分组等。 https://www.jiandaoyun.com/fe/sjclffynxz/