首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用Python实现面向对象编程&逻辑回归

电影《当幸福来敲门》

重要的是自由列车之行,就如同翻山越岭,我们都得面对险山砾石。

用Python实现面向对象编程

作者:孙月欣

1、面向对象编程

●面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

●面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。

●面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

2、

面向过程和面向对象的简单实例

面向过程

●我们要处理学生的个人信息,为了表示一个学生的年龄,面向过程的程序可以用一个dict表示:

●处理学生成绩可以通过函数实现,比如打印学生的年龄:

面向对象

●采用面向对象的程序设计思想,我们首选思考的不是程序的执行流程,而是Student这种数据类型应该被视为一个对象,这个对象拥有name和age这两个属性(Property)。如果要打印一个学生的年龄,首先必须创建出这个学生对应的对象,然后,给对象发一个print_age消息,让对象自己把自己的数据打印出来。

●然后调用对象的方法处理数据

3、

面向对象中重要的概念类和实例

●Class是一种抽象概念,比如我们定义的Class——Student,是指学生这个概念,而实例(Instance)则是一个个具体的Student,比如,A和B是两个具体的Student。

●面向对象的设计思想是抽象出Class,根据Class创建Instance。

●面向对象的抽象程度又比函数要高,因为一个Class既包含数据,又包含操作数据的方法。

4、

Python类定义和实例

●以Student类为例,在Python中,定义类是通过class关键字,class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。

●定义好了Student类,就可以根据Student类创建出Student的实例,创建实例是通过类名+()实现的:

●类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的init方法,在创建实例的时候,就把name,age等属性绑上去:

●特殊方法“__init__”前后分别有两个下划线!!!

●注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

●在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去:

5、

面向对象数据的封装

●面向对象编程的一个重要特点就是数据封装。在上面的Student类中,每个实例就拥有各自的name和age这些数据。我们可以通过类的方法来访问这些数据,比如打印一个学生的成绩:

●类的方法类似函数,是类中的函数,只是多了一个参数第一参数为self,其他和普通函数一样。

●类中的数据封装后,通过类的方法来处理,这样实现了数据的封装,利用类的方法和外面打交道。

6、

总结

●类是创建实例的模板,而实例则是一个一个具体的对象,各个实例拥有的数据都互相独立,互不影响;

●方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据;

●通过在实例上调用方法,我们就直接操作了对象内部的数据,但无需知道方法内部的实现细节。

●数据封装、继承和多态是面向对象的三大特点,我们后面会详细讲解。

使用Python中的SciKit-Learn对数据进行逻辑分析

作者:贺凯

利用Scikit-Learn对数据进行逻辑回归分析时,首先需要进行特征筛选,这里以某银行的贷款违约率数据为例(已上传到本人github上,请各位自行下载)。首先通过使用随机逻辑回归(RandomizedLogisticRegression)进行特征筛选(年龄,教育,工龄,收入等),然后利用筛选后的特征建立逻辑回归模型,输出平均正确率。

在运行出现了错误。

解决方案:

新建一个没有最后一列的数据集。

具体代码如下:

推文内容仅代表学生本人学习心得,不代表本公众号立场。该公众号平台旨在鼓励学生学习分享知识,至于对错,大家都可以留言评论,甚至给推文打分。作者也需要大家的鼓励,以及大家的宝贵的意见。

编辑:秦毅

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181112B1TIUQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券