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

企业首选的

数字选用平台

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

2020-12-31 11:15:47 阅读(163 评论(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模型进行相同的练习,并且

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

推荐阅读

青岛财务软件哪家好?这4款精品轻松解决账务烦恼

由于工作的压力和强度,财务管理板块可以说是企业中最复杂和混乱的一块,也是非常难攻破的磐石,财务软件也是企业内部会计必不可少的工具,青岛财务软件哪家好?以下这4款精品软件轻松解决账务烦恼。 1. 用友青岛财务软件 “T+”是一款灵动、智慧…查看详情

1tb是多少g内存

1tb等于多少个g?1tb理论上是1024gb 我们买到的标注1tb硬盘或者标注1tb容量的存储设备的实际容量约为931G。 一、存储器中所包含存储单元的数量称为存储容量,其计量基本单位是字节,单位是Byte,简称B,8个二进制…查看详情

2021六大客户档案管理系统排行榜单推荐

客户档案管理系统才能出不起,评判一个系统好坏的标准也不一样,有些系统看似操作简单,实际功能扩展性不行,有些软件复杂,但胜在扩展性能好,如果你想为企业挑选一个适合的系统,那么这份2021六大客户档案管理系统排行榜单可收藏。 1. eccrm客…查看详情

团队管理软件是什么?团队管理软件核心功能介绍

在现在的市场经济的大环境下,越来越多的人士逐渐认识到用计算机技术进行各类管理,交流的便捷,其中最突出的要算企事业单位的人事工资管理了,为了提高人事工资管理效率,减轻劳动强度,提高信息处理速度和准确性,对团队管理软件是什么?团队管理软件核心功…查看详情

多人视频聊天哪个好 什么软件支持多人视频聊天

现在多人视频通话是很多社交软件的主流,下面万商云集小编给大家来盘点下多人视频聊天软甲这方面的内容。希望大家能喜欢。   TikTok抖音国际版  基本信息:TikTok app可以说是抖音短视频国际版,TikTok抖音海外版为海外用户提供…查看详情

好用的杀毒软件有哪些 杀毒软件排行榜

  现在整个网络环境是非常的糟糕的,很多病毒都入侵别人的电脑,下面万商云集小编给大家来详细介绍一下好用的杀毒软件有哪些 杀毒软件排行榜这一块的内容,今天给大家分享5个杀毒神器,让你的电脑干干净净,建议收藏起来哟!  杀毒软件排行榜  1…查看详情

功能全的服装收银系统有哪些?服装门店收银全靠它

对于服装店面经营者来说,店面收银系统却不仅仅是每天卖了多少件衣服,收银系统还需要与会员机制、进货与库存总量、销售额与净盈利核算等内容紧密衔接。那么满足以上需求的功能全的服装收银系统有哪些呢?今天介绍几个好评不断的服装门店收银系统…查看详情

任务管理器快捷键是什么

  任务管理器是在Windows操作系统中管理计算机中正在运行的进程,服务和应用程序的一种工具。使用任务管理器可以结束不响应的应用程序,检查系统资源使用情况,以及诊断其他计算机的问题。在Windows中,有几种任务管理器可供选择:传统任务管…查看详情

好看到爆炸的安卓壁纸软件,用完不后悔

不知道有没有人和小编我一样,换一个手机壁纸,就感觉好像换了一台新手机?如果你也有和我一样的感觉,千万不要错过我这次的文章,这次的文章,小编将给大家推荐几款好看到爆炸的安卓壁纸软件,下面就由我来带大家介绍。 1.4KWallp…查看详情

windows自动关机怎么设置

  Windows自动关机怎么设置?  在Windows系统中,我们可以通过“任务计划程序”来设置自动关机,具体操作如下:  1.打开计算机的“控制面板”,然后点击“管理工具”中的“任务计划程序”进入任务计划程序窗口。  2.在任务计划程序…查看详情

charger是什么充电器

CHARGER是什么牌子的充电器电瓶车的?charger是SHOI品牌充电器,名字叫概率充电器。 著名的电子产品品牌SHOI刚刚发布了引领世界潮流的下一代电子产品——概率充电器(charger)。 SHOI概率充电器由n-1条导…查看详情

国美商城网上店铺怎么开?

在家开网店的详细步骤?开网店的详细步骤包括: 1.选择并注册一个品牌名称。 2.选择要销售的产品类别。 3.准备好产品图片、价格信息和购买须知。 4.搭建一个完整的电子商务网站或者使用市场上的电子商务解决方案。 5.选择支付方式,…查看详情

服务器硬件防火墙是什么?

  优质答案(1)  不一样,首先要看自己的财力,安装高级别防火墙,需要大资金,一般的容易被攻开,每道防火墙都有自己的定律,没有千篇一样的  优质答案(2)  防火墙是不一样的,不通用。防火墙可以采取多种形式,从专用设备,到运行在通用服务器…查看详情

适合女人9个小生意

  1、美容美发  美容美发行业一直是女性创业者的重点,小到开个小小的美发店,大到开一条整合了美容美发、SPA等多种服务的综合美容店都是很受追捧的。  2、网络销售  利用互联网开设网店,销售当地特产或一些女性用品比较适合女人创业。  3、…查看详情

从crm系统排名看,哪家是最优选择

在现今产品已无太大差异的市场中,企业都已经在靠着谁的服务更好来提升企业核心竞争力,crm系统的出现便正好满足了企业的需求。今天小万就来聊聊市场中都有哪些crm系统品牌,crm系统排名不分先后。图片来自网络crm系统排名顺序随机,没有哪个更好…查看详情

最新文章