一、概论C4.5主要是在ID3的基础上改进,ID3选择(属性)树节点是选择信息增益值最大的属性作为节点。而C4.5引入了新概念“信息增益率”,C4.5是选择信息增益率最大的属性作为树节点。二、信息增益以上公式是求信息增益率(ID3的知识点)三、信息增益率信息增益率是在求出信息增益值在除以。例如下面公式为求属性为“outlook”的值:四、C4.5的完整代码fromnumpyimport*fromscipyimport*frommathimportlogim
系统 2019-09-27 17:54:47 2073
利用上一篇的框架,再写了个翻转棋的程序,为了调试minimax算法,花了两天的时间。几点改进说明:拆分成四个文件:board.py,player.py,ai.py,othello.py。使得整个结构更清晰,更通用,更易于维护。AI的水平跟minimax的递归深度,以及评价函数有关。基于此,我把minimax和评价函数都放到AI类里面AIPlayer使用了多重继承。继承了Player与AI两个类Game类中把原run函数里的生成两个玩家的部分提出来,写成一个
系统 2019-09-27 17:54:46 2073
我在面试前,面试公司发来一道python题,我觉得还挺有意思的。题目如下。"""“”"我们知道2进制数字由2种字符(01)组成,10进制数字由10种字符(0123456789)组成,16进制由16种字符(0123456789ABCDEF)。不同进制的数字之间可以相互转换。我们定义一种“十二地支进制”数字,这种数字由中国古代地支的12种字符(子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥)组成。“十二地支进制”数字和10进制数字的关系可以看下面的代码。[["
系统 2019-09-27 17:52:33 2073
Socket的英文原义是“孔”或“插座”。作为BSDUNIX的进程通信机制,取后一种意思。通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电,有的提供110伏交流电,有的
系统 2019-09-27 17:52:33 2073
一、异常1.1异常介绍异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下:1.2异常种类在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误1#触发IndexError2l=['egon','aa']3l[3]45#触发KeyError6dic={'name':'egon'}7dic['age']89#触发ValueError10s='hello'1
系统 2019-09-27 17:52:31 2073
最近在弄flask的东西,好久没写博客的,感觉少了点什么,感觉被别人落下好多,可能渐渐的养成了写博客的习惯吧。也是自己想学的东西太多了(说白了就是基础太差了,只是knowhow,不能做到konwwhy)。不说那些毒鸡汤了,我们来说说我们今天的python基础面试题吧。一,Q:python的优缺点有什么?A:优点:1,基础语法简单易学,对于初学者来说,语法还是相对简单的,比较容易学习,网上的学习资料也很多。2,面向对象,在python里继承和封装较多,而py
系统 2019-09-27 17:50:49 2073
Python的MRO即MethodResolutionOrder(方法解析顺序),也就是在Python中的类的继承顺序是怎样的。在Python2.3之前,MRO的实现是基于DFS的,而在Python2.3以后MRO的实现是基于C3算法(我这里两种算法的具体实现都不详述)。C3算法最早被提出是用于Lisp的,应用在Python中是为了解决原来基于深度优先搜索算法不满足本地优先级,和单调性的问题。本地优先级:指声明时父类的顺序,比如C(A,B),如果访问C类对
系统 2019-09-27 17:50:47 2073
wtfPython是github上的一个项目,作者收集了一些奇妙的Python代码片段,这些代码的输出结果会和我们想象中的不太一样;通过探寻产生这种结果的内部原因,可以让我们对Python里的一些细节有更广泛的认知。1.字典键的隐式转换some_dict={}some_dict[5.5]="Ruby"some_dict[5.0]="JavaScript"some_dict[5]="Python"输出如下:>>>some_dict{5.0:"Python",
系统 2019-09-27 17:50:47 2073
压缩数据创建gzip文件先看一个略麻烦的做法importStringIO,gzipcontent='Lifeisshort.Iusepython'zbuf=StringIO.StringIO()zfile=gzip.GzipFile(mode='wb',compresslevel=9,fileobj=zbuf)zfile.write(content)zfile.close()但其实有个快捷的封装,不用用到StringIO模块f=gzip.open('fil
系统 2019-09-27 17:50:34 2073
python读写Excel最近小编在处理各种.xlsx表格的数据处理和计算的工作,目前python用于操作表格的模块有很多,功能各有千秋。本文主要讲的是xlwt用于写,xlrt用于读。表格写入简单的写入功能可用xlwt模块,写入功能的难点在于写入合并的单元格。单元格的下标都是从0开始。xlwt官方API:https://xlwt.readthedocs.io/e...安装:pipinstallxlwt新建workbook:wk=xlwt.Workbook(
系统 2019-09-27 17:50:14 2073