服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

如何在python中使用Scikit-learn进行数据预处理

2020-12-31 11:15:47 阅读(192 评论(0)

本文使用了贷款预测数据集的子集(缺乏观察值被丢弃)。您可以从这里下载培训集和测试集:下载。注:提供给您的测试数据是“贷款预测”问题的培训数据的子集。现在让我们从引入重要的包和数据集开始。#Importingpandas>>importpandasaspd#Importingtrainingdataset>>X_train=pd.read_csv(‘X_train.csv’)>>Y_train=pd.read_csv(‘Y_train.csv’)#Importingtestingdataset>>X_test=pd.read_csv(‘X_test.csv’)>>Y_test=pd.read_csv(‘Y_test.csv我们来详细了解一下这个数据集的概况。>>print(X_train.head())Loan_IDGenderMarriedDependentsEducationSelfEmployed15LP001032MaleNo0GraduateNo248LP001824MaleYes1GraduateNo590LP002928MaleYes0GraduateNo246LP001814MaleYes2GraduateNo38LP002244MaleYes0GraduateNoApploantIncoomeCoapploancomeLoancoateLoamoAmount0126.0288288.01288.0128.0128.048.048.05.03.018.018.0.028888.018.03.03.018.03.03.03.03.03.018.03.03.0188.018.018.03.018.018.03.018.01.03.03.03.03.03.03.03.03.03.03.03.03.03.01.03.03.018.018.0188.018.018.018.01.0.0.0.0.0.0.0.0.0.0.0.0.0.0.036.0.0.0.0.0.0.0.0.0.0.0.0288888.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.036.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0Credit_HistoryProperty_Area151.0urban2481.0semiurban5901.0semiurban2461.0urban3881.0urban特征缩放特征缩放是限制变量范围的一种方法,可以在同一基础上进行比较。数据集是连续变量,让我们绘制数据集中所有连续变量的分布图。>>importmatplotlib.pyplotasplt>>X_train[X_train.dtypes[(X_train.dtypes==float64″) |(X_train.dtypes==”int64″)].index.values].hist(figsize=[11,11])在理解了这些图片后,我们推断aplicantincome和coaplantantcome在几乎相同的范围内(0-5万美元),而loanamount以千为单位,从0到600美元的范围。Loan_Amount_Term与其它变量完全不同,因为它的单位是月,而其它变量的单位是美元。Loan_Amount_Term与其他变量完全不同,因为它的单位是月,其他变量单位是美元。如果我们尝试将这些特征应用于基于距离的方法,如KNN,最大范围的特征将主导预测结果,因此我们将得到不准确的预测。我们可以用特征缩放来克服这个问题。让我们练习一下。学习资源:查看这篇关于KNN的文章,以便更好地理解。让我们尝试使用KNN算法来理解其性能。#InitializingandFittingak-NNmodel>>fromsklearn.neighborsimportKNeighborsClassifier>>knn=KNeighborsClassifier(n_neighbors=5)>>knn.fit(X_train[[‘ApplicantIncome’,‘CoapplicantIncome’,’LoanAmount’,‘Loan_Amount_Term’,‘Credit_History’]],Y_train)#Checkingtheperformanceofourmodelonthetestingdataset>>fromsklearn.metricsimportaccuracy_score>>accuracy_score(Y_test,knn.predict(X_test[[‘ApplicantIncome’,‘CoapplicantIncome’,‘LoanAmount’,‘Loan_Amount_Term’,‘Credit_History’]]))Out:0.614583333333337我们的预测模型已经获得了大约61%这并不坏,但在现实世界中就足够了吗?我们能用这个模型来处理现实世界的问题吗?我们能用这个模型来处理现实世界中的问题吗?为了回答这个问题,让我们来看看训练数据集中Loan_Status的分布。>>Y_train.Target.value_counts()/Y_train.Target.count()Out:Y0.705729N0.2947:Loan_Status,dtype:float64700%批准贷款,因为有更多的批准贷款,我们会有预测,所有贷款都被批准,让我们继续检查我们预测的准确性。>>Y_test.Target.value_counts()/Y_test.Target.count()Out:Y0.Name335417:Loan_Status,dtype:float64哇!>>Y_test.Target.value_counts()/Y_test.Target.count()Out:Y0.635417N0.3645:Loan_Status,dtype:float64哇!!我们仅通过猜测获得的准确性是63%,这是什么意思?比我们的预测模型更准确?这是可能的,因为一些不重要的变量会主导目标函数,范围很大。通过将所有特征缩小到同一范围,我们可以消除这个问题。Sklearn为MinMaxScaler提供了一个工具,它将所有特征缩小到0和1之间。MinMaxScaler的数学公式是:让我们尝试使用这个工具。#ImportingMinMaxScalerandinitializingit>>fromsklearn.preprocessingimportMinMaxScaler>>min_max=MinMaxScaler()#Scalingdownbothtrainandtestdataset>>X_train_minmax=min_max.fit_transform(X_train[[‘ApplicantIncome’,‘CoapplicantIncome’,‘LoanAmount’,‘Loan_Amount_Term’,‘Credit_History’]])>>X_test_minmax=min_max.fit_transform(X_test[[‘ApplicantIncome’,‘CoapplicantIncome’,‘LoanAmount’,‘Loan_Amount_Term’,‘Credit_History现在,我们已经完成了数据缩放,让我们应用KNN算法来检查缩放数据的准确性。#Fittingk-NNonourscaleddataset>>knn=KNeighborsClassifier(n_neighbors=5)>>knn.fit(X_train_minmax,Y_train)#Checkingthemodel’saccuracy>>accuracy_score(Y_test,knn.predict(X_test_minmax))Out:0.75太棒了!我们的准确性从61开始%提高到了75%。我们的准确性从61开始%提高到了75%。这意味着一些基于距离的方法具有广泛的特征(KNN)预测结果。应该记住,在实施基于距离的方法时,我们必须尝试缩放数据,这样重要性小的特征就不会因为其范围大而主导目标函数。此外,不同单位的特征也应缩放,以赋予每个特征相等的初始权重,从而最终获得更好的预测模型。尝试使用逻辑回归模型(参数:penalty=’l2’,C=0.01)进行相同的练习,并在注释中注明缩放前后的预测准确性。在标准化阅读本节之前,我建议你先完成练习一。在最后一节中,我们研究了贷款预测数据,并在数据集中拟合了一个KNN学习器。缩放数据后,我们的准确率达到了75%,这是相当好的。我试图用逻辑回归做同样的练习,得到了以下结果:缩放数据前:缩放数据后61%:缩放后63%的正确率接近我们通过猜测做出的预测,结果并不令人满意。那这里发生了什么呢?为什么正确率没有KNN算法提高那么大?学习资源:通过本文更好地理解逻辑回归logisticregression。答案是:在逻辑回归中,每个特征都会被赋予权重或系数。如果具有较大范围的特征,且其对目标函数没有显著影响,则逻辑回归本身将对其系数分配非常低,从而中和特定特征的主导作用,而KNN等基于距离的方法没有这种内置策略,因此需要缩放。我们忘了什么吗?我们的逻辑模型仍然保持着接近猜测的准确性。现在我将在这里介绍一个叫做标准化的新概念。Sklearn中的许多机器学习算法都需要标准化数据,指的是零平均值和单位方差的数据。标准化是特征值重新缩放的过程,是的,它们具有预期为0、标准差为1的标准正态分布属性。标准分数(也成为z分数)的计算公式如下:如线性模型中的l1、l2正则化器(logistic在此类别下)和学习器SVM中的RBF核函数所认为的,所有特征以零为中心,具有相同阶数的方差。具有较大方差阶数的特征将主导目标函数,就像前文中具有较大范围的特征一样。正如我们在练习1中看到的,对数据没有预处理的准确性是61%,让我们标准化我们的数据,然后应用逻辑回归。Sklearn提供标准化数据的scale函数。#Standardizingthetrainandtestdata>>fromsklearn.preprocessingimportscale>>X_train_scale=scale(X_train[[‘ApplicantIncome’,‘CoapplicantIncome’,‘LoanAmount’,‘Loan_Amount_Term’,‘Credit_History’]])>>X_test_scale=scale(X_test[[‘ApplicantIncome’,‘CoapplicantIncome’,‘LoanAmount’,‘Loan_Amount_Term’,‘Credit_History’]])#Fittinglogisticregressiononourstandardizeddataset>>fromsklearn.linear_modelimportLogisticRegression>>log=LogisticRegression(penalty=’l2′,C=.01)>>log.fit(X_train_scale,Y_train)#Checkingthemodel’saccuracy>>accuracy_score(Y_test,log.predict(X_test_scale))Out:0.75我们在缩放后再次获得了KNN获得的最大精度。这意味着标准化数据有助于我们在使用l1或l2正则化估计器时提高预测模型的准确性。这意味着标准化数据有助于我们在使用l1或l2正则化估计器时提高预测模型的准确性。其他学习器,如KNN和欧几里德之间的距离测量,K平均值,SVM,传感器、神经网络、线性判别分析、主要成分分析在标准化数据中具有更好的预测性能。然而,我建议你首先了解你的数据和算法的特征;一段时间后,你将能够判断你的数据是否标准化。缩放和标准化之间的选择通常会让人感到困惑。在做决定之前,你必须深入了解你的数据和学习器。对于初学者,你可以尝试这两种方法,并比较交叉验证的正确性来做出选择。资源:阅读本文,更好地理解crosvalidation的交叉验证。练习2尝试使用SVM模型进行相同的练习,并且

内容来源:数据分析网,以上内容来源于网络,不代表本站观点,如有侵权,请联系删除。

推荐阅读

美国商标注册查询步骤,以及提高注册成功率的方法

在美国注册商标可以阻止侵权商品进入么多市场,还能阻挠他人注册一个容易混淆和极为相似的商标,可以很好的维护自己的利益,所以现在越来越多的人开始注册美国商标。接下来,小万将为大家介绍一下美国商标注册查询步骤以及提高美国商标注册成功率的方法。● …查看详情

推荐5款免费的模拟手机软件

当我们上了一天的班,不想再看到烦人的工作群和工作任务时,可以使用模拟手机软件进到另一个虚拟的手机系统里哦,做到工作与生活分离。下面是我给大家推荐的5款免费的模拟手机软件,内容如下: 1.360分身大师 它是一款由官方全新推…查看详情

华为云电脑干什么用的

  华为云电脑(HuaweiCloud PC)是华为云服务平台中提供的一项虚拟化服务,它可以将用户的计算资源、操作系统、应用程序和数据等内容全部存储在华为云端,通过互联网进行传输和访问。用户只需在自己的终端设备上安装一个轻量级的客户端,即…查看详情

tcpip协议的含义是

TCPIP协议的含义是?TCP协议是一种可靠的面向连接的协议,它允许将一台主机的字节流(ByteStream)无差错地传送到目的主机。 TCP协议将应用层的字节流分成多个字节段(ByteSegment),然后将一个个的字节段传送到互联网层…查看详情

制作视频的软件哪个好用 制作视频的软件排行榜

  最近几年自媒体是非常的火爆的,现在很多的自媒体制作者,作为自媒体创业者来说制作视频是必须要学会的,下面*就给大家来详细介绍一下制作视频的软件哪个好用 制作视频的软件排行榜这一块的相关内容,希望能帮助到大家。  制作视频的软件排行榜 …查看详情

win10热点资讯广告怎么关闭

  Win10系统是在Windows 8.1基础上进行升级开发而成的,其在操作界面、功能处理、易用性等方面得到了很大的提高,成为众多用户的首选操作系统。但在日常使用中,许多用户都反映Win10系统中弹出的热点资讯广告让人感到十分烦躁,需要…查看详情

dwg是什么文件

  DWG文件是一种用于2D和3D计算机辅助设计(CAD)和计算机辅助制造(CAM)的特定格式,DWG是由Autodesk公司开发的文件格式。DWG文件是AutoCAD软件的标准文件格式,其他CAD软件在导入或导出DWG格式时可能会遇到一些…查看详情

电脑没有声音了怎么恢复

  优质答案(1)  1、检查声卡驱动右击“我的电脑”----“属性”---“*件”----“设备管理器”,打开“声音、视频和游戏控制器”有无问题,即看前面有没有出现黄色的“”如有,重新安装这个设备的驱动程序进行解决;有声音但不见小喇叭时,…查看详情

国美*商城入驻的要求有哪些?

国美电器的商品是国美公司直接拿货销售还是商家进驻其中的?国美、苏宁这些电器零售商都是提供一个交易场所,制定交易规则,实行统一销售、统一结账的,厂家进驻要交场地费,进货要走零售商采购系统实行统一销售,零售商在给厂家结款时扣点,但售货员和摊位装…查看详情

2021精品免费系统软件推荐

在今天,网络购物、网络交友越来越成为人们生活中必不可少的事情,随着互联网的发展,系统的需求量也越来越大,为了能更高效地解决问题,因此这里为大家盘点几款好用的免费系统供大家参考! 1.必牛免费CRM系统 客户分布,客户消费统计,客户来源,客户…查看详情

法人变更怎么办理 法人变更办理流程

  很多的公司在经验过程中会涉及到法人的变更,其实这是很多的公司都遇到的情况,下面*就给大家来详细介绍一下法人变更怎么办理 法人变更办理流程这一块的内容,希望能帮助到大家啊。  法人变更怎么办理  1、领取《公司变更登记申请表》(工商局…查看详情

2022手机杀毒软件排行榜第一名

现在市面的手机杀毒软件有很多,都比较五花八门的,下面万商云集*给大家介绍下手机杀毒软件相关排名。  今天就先说说这些安全软件吧。  “免费”是折腾这些安全软件的前提之一。从这个角度来说,卡巴斯基、Avira、BitDefender、Avas…查看详情

如何查软件著作权?有三种方式可查证书真伪

通常来说,查询软件著作权一般是因为需要对其变更、转让、补充,而涉及到变更、转让交易时,为防止被骗一定要先确定该证书真伪。那么如何查软件著作权,来辨别证书真伪呢? 图片来源于网络 如何查软件著作权,一共有三种方法。方法一:向“中国版权保护中心…查看详情

2021市场选择最多的生鲜配送物流系统

近年来,随着冷链、物流、电商、配送等各个环节技术的突飞猛进,生鲜食材流通也逐渐被注重起来,一款好的生鲜配送物流系统能够帮助食材供应链企业实现数字化转型,让管理更科学便捷,实现降本增效提利润,那么2021市场选择最多的生鲜配送物流系统是哪些呢…查看详情

起点小说排行榜 起点公认最好看的小说前六名

起点小说是一款拥有海量小说资源的软件,有很多人都用这款软件追书。但是这么多小说里,怎么才能选择到自己喜欢的呢?下面是我总结的起点小说排行榜前六名的小说介绍,书荒的小伙伴们可以看一看。 1.请你别太得意 作者是砂梨,它是一本…查看详情

最新文章