机器学习之数据清洗

开通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.盘点4种常用的数据清洗方法随着大数据时代的发展,越来越多的人开始投身于大数据分析行业。当我们进行大数据分析时,我们经常听到熟悉的行业词,如数据分析、数据挖掘、数据可视化等。然而,虽然一个行业词的知名度不如前几个词,但它的重要性相当于前几个词,即数据清洗。顾名思义,数据清洗是清洗脏数据,是指在数据文件中发现和纠正可识别http://baijiahao.baidu.com/s?id=1714040949358395597&wfr=spider&for=pc
2.数据清洗的具体方法有哪些?数据清洗流程清洗数据是数据分析和机器学习项目中至关重要的一步,其目标在于识别并纠正数据集中的错误、遗漏或不一致,以提高数据质量和后续分析结果的准确性。以下是一个详细的数据清洗流程,通常包括以下几个步骤: 1.数据收集与理解 收集数据:从各种来源(如数据库、API、文件等)获取数据。 https://blog.csdn.net/Shaidou_Data/article/details/143205411
3.值得收藏!数据清洗的十类常用方法数据清洗是数据治理过程中的一个重要环节,它指的是对原始数据进行筛选、修复、转换和处理,以确保数据的准确性、完整性和一致性。 在数据清洗过程中,不仅需要明确数据清洗的对象,还需要根据具体的情况选择合适的数据清理方法。以下是不同对象所对应不同的数据清洗方法。 https://www.fanruan.com/bw/article/178453
4.hive如何做数据清洗mob64ca12d6c78e的技术博客hive 如何做数据清洗 数据清洗在数据挖掘和分析中起着至关重要的作用,它可以帮助我们识别并处理数据集中的错误、缺失、重复和不一致的数据,从而提高数据质量和分析结果的准确性。在本文中,我们将讨论如何利用Hive进行数据清洗,并通过一个实际问题和示例来演示该过程。https://blog.51cto.com/u_16213326/11228478
5.spss数据预处理包括哪些内容spss数据预处理怎么做SPSS软件作为一款广泛应用的统计分析软件,提供了一系列强大的数据预处理功能。本文将详细介绍SPSS数据预处理包括哪些内容,以及SPSS数据预处理怎么做的内容,帮助您更好地利用软件功能,提高数据分析的准确性和效率。 一、 SPSS数据预处理包括哪些内容 在SPSS中,数据预处理主要包括以下几个方面的内容: 1、数据清洗:数据https://spss.mairuan.com/jiqiao/spss-djxklq.html
6.数据分析的流程是怎样的这项工作经常会占到整个数据分析过程将近一半的时间。如果在上一步中,你的数据是通过手工复制/下载获取的,那么通常会比较干净,不需要做太多清洗工作。但如果数据是通过爬虫等方式得来,那么你需要进行清洗,提取核心内容,去掉网页代码、标点符号等无用内容。无论你采用哪一种方式获取数据,请记住,数据清洗永远是你必须要https://www.linkflowtech.com/news/626
7.阿里面试官惊叹:这种简历不用面了,直接来上班!数据库层面有没有 数据扩展? 2.QPS8W 总单量是多少 ? 3.本地缓存 怎么保证数据一致性? 4.MQ 如果挂了 怎么办? 5.Redis 集群 性能 了解吗? 6.数据清洗怎么做的? 7如何保证最终一致性? 8.顺序消息如何保证? 9.ES 怎么用的?数据量级多少?为什么用ES 不用Hbase? https://maimai.cn/article/detail?fid=1724482192&efid=gDtXEDVbtMnEeClsOjitVw
8.未经加工的数据如何处理和清洗数据清洗的第一步是将原始数据导入到一个能轻松操控和分析的环境中。Python的Pandas库是一个强大的数据处理工具,能够读取多种数据格式(如CSV和Excel)。在数据载入后,进行初步检查是一个好习惯。这包括去除多余的空格、转换文本大小写等。例如,以下代码展示了如何使用Pandas读取CSV文件: https://www.jianshu.com/p/1f71782b0323
9.如何对数据进行清洗数据清洗是数据预处理的重要环节,目的是纠正、删除或替换不准确、不完整、不合理或重复的数据,以提高数据质量和后续数据分析的准确性。 以下是对数据进行清洗的一般步骤和方法: 数据探索与评估: 在开始清洗之前,先对数据进行初步的探索,了解数据的整体情况,包括数据的类型、范围、缺失值、异常值等。 https://www.ai-indeed.com/encyclopedia/9102.html
10.机器学习中的数据清洗与特征处理综述在线清洗数据 在线清洗优点是实时性强,完全记录的线上实际数据,缺点是新特征加入需要一段时间做数据积累。 样本采样与样本过滤 特征数据只有在和标注数据合并之后,才能用来做为模型的训练。下面介绍下如何清洗标注数据。主要是数据采样和样本过滤。 数据采样,例如对于分类问题:选取正例,负例。对于回归问题,需要采集数据http://api.cda.cn/view/8897.html
11.数据清洗范文数据清洗的目的就是利用现有的技术和手段,消除或减少数据中的错误与不一致问题,将其转化成为满足数据质量要求的数据。 本文分析了从Web上抽取到的数据存在的质量问题,给出包括不完整数据和异常数据在内的属性错误以及重复与相似重复记录的描述,并提出对应的清洗方法;设计了一个由数据预处理、数据清洗引擎和质量评估三部https://www.gwyoo.com/haowen/64743.html
12.数据处理全流程解析(如何进行数据处理)当完成这几步操作后,此时数据就已经脱离APP了,开始往数仓的方向流动,数仓承担着接收数据并最终将数据落地到应用的职责。 02 数据是如何被接收的 数据在到达接入层后会经历解包、解析转换、数据清洗、数据存储四个技术流程。只有经过了这一系列的步骤,数据才能够以规整的形式呈现出来,以供下一个环节的消费。 https://www.niaogebiji.com/article-114218-1.html
13.QuickBI如何进行数据加工连接需要清洗加工的节点。 在清洗加工节点配置区域,进行以下配置。 新增计算字段 您可以按照图示步骤进入新增计算字段配置界面。 在新增字段-公式函数编辑页,输入①新建字段名称和②字段表达式,选择③字段类型,单击④确定后保存配置。 更多的计算字段示例请参见数据集的新建计算字段。 https://help.aliyun.com/zh/quick-bi/user-guide/data-processing
14.数据分析的八个流程这项工作经常会占到整个数据分析过程将近一半的时间。如果在上一步中,你的数据是通过手工复制/下载获取的,那么通常会比较干净,不需要做太多清洗工作。但如果数据是通过爬虫等方式得来,那么你需要进行清洗,提取核心内容,去掉网页代码、标点符号等无用内容。无论你采用哪一种方式获取数据,请记住,数据清洗永远是你必须要https://36kr.com/p/1491281074089859