如何在python中使用Scikit-learn进行数据预处理
2020-12-31 11:15:47 阅读(176) 评论(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模型进行相同的练习,并且
推荐阅读
- 哪个网站有免费下载的模板
哪些网站可以不花钱就能下载工作用的各种模板?1.officeplus这个网站是微软官方的模板网站,有大量工作汇报、总结计划类型PPT模板2.wps稻壳有大量免费的精品模板,表格类、文档类、ppt类都有涉及到,分了行业的,基本可以满足工作需要…查看详情
- 如何建立自己的网站?有哪些好用的建站工具?
互联网的应用与延展在当今的社会生活实践中无处不见,它与每个人的生活已经密不可分。对于想要建站的人来说,应该如何建立自己的网站呢?了解好建站步骤并学会使用相应的工具,其实建立自己的网站也并不难。 要知道“如何建立自己的网站”,就要先知道搭建个…查看详情
- 视频制作软件哪个好?为大家推荐这几款
很多朋友想要在短视频平台中,发表富有个性化的视频内容,但是却不知道该如何操作,其实在这个信息爆炸的时代,早已有各种各样功能强大的软件,为大家提供视频制作的帮助,那么视频制作软件哪个好呢?为大家推荐以下这几款,不妨试一试吧。 …查看详情
- 港剧排行榜前十名都有哪些?这些港剧就很不错
追剧是很多人都比较喜欢的,其实每一个不同类型的电视剧带给用户的体验也是不同的,很多人都比较喜欢港剧港剧带来的感觉不同,而且剧情也都是非常不错的,但是不同的港剧也有着不同的感觉,所以说很多人在选择港剧的时候都想要选择一些比较好的经…查看详情
- 网站建设平台有哪些?
网站建设平台是指一个提供网站建设服务的在线工具,它可以帮助用户快速、简便地创建自己的网站。这种类型的平台通常是基于云计算技术的,用户可以在云端访问到各种网站开发工具,从而轻松地创建自己的网站。 网站建设平台通常具有以下特点: 1. …查看详情
- 两千左右的手机有哪些 两千左右的手机排行榜
买手机我们也是根据自己的要求去购买的,每个人对于手机的定价不相同所接受的价格也不一样,所以一般会根据自己能接受的价格范围去选择对应的手机类型,那么如果想要用两千买手机的话就要了解一下,两千左右的手机排行榜都有哪些,从排行榜中挑选…查看详情
- 专利权无效宣告审查什么内容?
在平时很多的小伙伴都不知道专利权无效宣告审查什么内容的基本情况,而且对专利权无效宣告审查什么内容都不是很熟悉,下面万商云集小编就为大家整理了专利权无效宣告审查什么内容这方面的相关内容,希望下面的内容能帮助到各位。 一、专利权无效宣…查看详情
- 2022免费交友软件有哪些 免费交友软件排行榜
现在年轻人社交的软件是非常的多的,而且现在也有很多的聊天交友软件,下面小编就给大家来详细介绍一下2022免费交友软件有哪些 免费交友软件排行榜这一块的相关内容,希望能帮助到大家。免费交友软件排行榜 1.陌陌 作为陌生社交的龙头老大…查看详情
- 支付宝体验金有什么用 支付宝体验金的作用
可以让新用户体验一下余额宝,能切身体验到余额宝每天能带来多少收益,吸引用户往余额宝里存钱,以获得更多的收益。用户开通了余额宝后,体验金不能消费与提现,到期后支付宝会自动收回,但是在体验期间体验金所产生的收益是归用户的。下面万商云集小编给…查看详情
- 国内知名企业纷纷申请中文域名,已是大势所趋
在英文域名资源日益枯竭的情况下,中文域名在国内开始崛起。从网络安全角度来看,单一的英文注域名很容易被钓鱼网站山寨。回归国内域名圈,我们能惊奇地发现,不少企业已经开始着手注册自由品牌的中文域名,比如“网址”、“集团”、“公司”、“手机”等,中…查看详情
- 零申报的公司要做哪些事情
公司零申报怎么做? 公司财务报表零申报的方法: 1、零申报只要在利润表(损益表)的主营业务收入填为0就可以了,其他数与零申报无关。无收入,就是0申报,但是负债表,和损益表都要填的,如果有费用发生,就都进长期待摊费用-开办费.以后发生…查看详情
- 五款简单好用的舆情监测系统免费
随着社会的发展,科技的进步,舆情监测系统也在不断的发展中,但是好用而且免费的舆情监测系统却是少之又少,针对此需求,小万为大家总结了五款简单好用的舆情监测系统免费版本。 1、哨兵舆情监测系统 哨兵舆情监测系统免费版是一款包含了监测功能、网…查看详情
- 财务软件哪个好 好用的财务软件推荐
现在深受疫情的影响很多的小伙伴都开始使用财务软件来给自己记账,看一下平时的日常开支,下面万商云集小编给大家来详细介绍一下财务软件哪个好 好用的财务软件推荐这一块的内容,不知道下面的软件大家使用过没有。 一、钱迹 钱迹和其他的记账AP…查看详情
- 免费建站系统哪个好 好用免费的建站系统推荐
对于中小企业或者个人,不想做网络宣传营销,首先考虑的是建立一个网站,但是奈何考虑成本,不妨自主建站,利用网络的现成工具,下面万商云集小编给大家来介绍一下免费建站系统哪个好 好用免费的建站系统推荐这方面的内容,希望能帮助到大家解决建站的相…查看详情
- 键盘打不出字怎么回事?可能是这些原因
长期使用电脑的朋友很可能会遇到一些问题,其中电脑键盘失灵是最常见的,键盘是易损电脑产品,长期使用电脑,键盘很容易出现问题,键盘失灵后有的字打不出来,下面小编就给大家来盘点一下键盘打不出字怎么回事这一块的内容,希望能帮助到大家。 键盘打…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP

企业首选的数字选用平台






