- 博客(24)
- 收藏
- 关注
原创 scrapy苏宁爬虫+无头浏览器+splash渲染
请求百度首页:http://www.baidu.comfunction main(splash,args) assert(splash:go(args.url)) assert(splash:wait(0.5)) return{ html = splash:html(), png = splash:png(), har = splash.har() }end并发请求渲染,在脚本内调用的 wait() 方法类似于 Python 中的 sleep(),其参数为
2020-09-29 17:59:28
1042
原创 模型的评估与选择
2.1 经验误差与过拟合错误率与精度错误率E=a/m,a为分类错误的样本个数,m为测试样本总数。精度=1-错误率学习器在训练集上的误差称为“训练误差”或“经验误差”,在新样本上的误差称为“泛化误差”。过拟合:学习器把训练样本学的“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,导致泛化性能下降。无法彻底避免,只能够减小过拟合的风险。欠拟合:对训练...
2020-07-14 19:24:40
456
原创 线性回归与分类
基本形式线性模型是通过属性的线性组合来进行预测的函数:一般用向量形式写成:由于w直观的表达了各属性在预测中的重要性,因此线性模型具有很好的解释性。线性回归线性回归则试图学得一个线性模型尽可能准确地将预测f(xi)去 逼近yi,即:一个良好的线性回归模型的关键就是如何将f(xi)与yi之间的误差最小化!而该模型是由w以及b确定的,那么问题回到w,b的确定:即满足下式:基于均方...
2020-07-12 16:43:09
2738
原创 矩阵求导和分解
1、向量对向量的导数设A为mn的矩阵,x为n1的列向量,y为m1的列向量,那么对于矩阵运算y=Ax有基本的向量求导公式有:2、标量对向量的导数A为nn的矩阵,x为n1的列向量,对于标量y=xTAx对向量x的求导结果为:3、正交阵和对称阵3.1正交阵若n阶矩阵A满足ATA=I,称A为正交阵。其充要条件是A的列向量都是单位向量,且两两正交。A为正交阵,X为向量,则Ax称作正交变换,正交变换不改变向量长度,即(Ax)T*Ax=xTAT*Ax=xTx3.2特征值和特征向量A是n阶矩阵,若
2020-07-05 18:46:59
2817
原创 概率论经典分布与定律
1、贝叶斯概率例如:在历史姓氏的统计下,对某个人姓氏作出猜测,先猜“李王张刘…“,猜对的概率相对较大,这就是先验概率,姓氏的历史统计就是先验信息。若知道某人来自“牛家村“,则猜他姓”牛“的概率相对较大,但不排除其他姓氏的可能。这就是后验概率,来自”牛家村“就是后验信息。实例:8支步枪中有5支已校准过,3支未校准。一名射手用校准过的枪射击,中靶概率为0.8,用未校准的枪射击,中靶概率为0.3;现从8支枪中随机取一支射击,结果中靶。求该枪是已校准过的概率。记选校准枪的事件为A1,选未校准枪为A2。中靶
2020-05-19 22:07:33
10316
原创 python实现完全二叉树和广度、先序、中序和后续遍历
class Node(object): """先定义节点""" def __init__(self,item): self.elem = item self.lchild = None self.rchild = Noneclass Tree(object): def __init__(self): sel...
2020-05-07 21:01:10
141
原创 基于列表的排序常见算法
1、冒泡排序冒泡排序的运作如下:从头开始比较相邻的元素,如果第一个元素比第二个大则交换两个元素位置,依次往后比较直至最后一对,完成一次比较后列表最大元素就在队尾。在继续对除队尾的元素执行该重复步骤,使得所有元素有序排放。def bubble_sort(alist): """冒泡排序""" n = len(alist) for i in range(0,n-1): ...
2020-05-04 21:07:09
828
原创 科学数据库numpy常用操作
过于详细参考菜鸟教程 QAQhttps://www.runoob.com/numpy/numpy-statistical-functions.html
2020-03-07 13:01:02
110
原创 csv和xlrd模块
1、csv模块CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本格式,用以存储表格数据,包括数字或者字符。...
2020-02-26 16:55:08
1906
原创 python装饰器
1、装饰器简介装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码到装饰器中并继续重用。概括的讲,装饰器的作用就是为已经存在的对...
2020-01-31 15:40:50
264
原创 python多线程与多进程
线程与进程1.1 简介说到线程就不得不提与之相关的另一概念:进程,那么什么是进程?与线程有什么关系呢?简单来说一个运行着的应用程序就是一个进程,比如:我启动了自己手机上的网易云音乐播放器,这就是一个进程,然后我随意点了一首歌曲进行播放,此时酷猫启动了一条线程进行音乐播放,听了一部分,我感觉歌曲还不错,于是我按下了下载按钮,此时网易云音乐又启动了一条线程进行音乐下载,现在网易云同时进行着音乐播放...
2020-01-30 14:32:53
175
原创 python的sys和os模块
1、sys模块“sys” 即 “system”,“系统”之意。该模块提供了一些接口,用于访问 Python 解释器自身使用和维护的变量,同时模块中还提供了一部分函数,可以与解释器进行比较深度的交互。1.1 常用属性基本的功能实例如下:import sys#查看python运行平台sys.platformOut[3]: 'win32'#查看python运行版本sys.versio...
2020-01-08 22:40:40
243
原创 python正则表达式
关于正则表达式的知识点很多,一下子真的很难记住,以前第一次看的时候全是糊的,这一次学习重新理清了一些,挑一些常用的知识点记录下来备忘。1、正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。常用于文本信息提取,文本替换和文本分割,在python中正则表达式的实现是通过标准库的re模块的相关函数和方法实现,首先说一下正则表达式的基本语法。2、字符语法正...
2020-01-07 11:39:21
207
原创 对象持久化之pickle、shelve&json
1、pickle模块pickle序列化是指将python的对象转化为一种专门的二进制字符串,而反序列化则是读取该二进制文件并将其转化回对象本身。pickle模块可以将复杂对象转换为字节流,并且可以将字节流转换为具有相同内部结构的对象。或许最可能对这些字节流做的事情是将它们写入文件,但是也可以对它们进行网络传输或将它们存储在数据库中。在python中任何对象都可以执行pickle序列化的操作。主要...
2020-01-03 17:32:08
223
原创 time库、datetime库及random库
1、time库time库是Python提供的处理时间标准库,主要有三个功能:时间处理,时间格式化和计时。时间处理主要包括三个函数:time.time(),time.gmtime(),time.localtime(),time.ctime()(1)time.time()获取当前时间戳。所谓时间戳指的是从1970年1月1日00:00:00开始按秒计算的偏移量。import timetime....
2019-12-31 16:19:24
298
原创 异常处理及单元测试
1、错误及异常处理1.1 错误类型python中程序错误一般分为三种类型,及语法错误、语义错误及逻辑错误。对应程序中出现的多种异常类型,异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。1.2 异常处理Python 提供了 try/except语句用来捕获和处理异常。try 语句用来检测语句块中是否有错误,except 语句则用来捕获...
2019-12-31 11:57:35
817
原创 面向对象及类
1、基本概念1.1 面向对象面向对象是一种抽象,是一种用分类的方式看待问题的方法,用 Java 的编程思想来说就是:万物皆对象;面向对象有三大特性:封装、继承、多态。1.2 面向对象术语介绍类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。方法:类中定义的函数。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函...
2019-12-27 18:20:46
569
原创 python模块与包
1、模块(module)逻辑上来说模块就是一组功能的组合;实质上一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。import加载的模块分为四个通用类别:a.使用python编写的代码(.py文件);b.已被编译为共享库或DLL的C或C++扩展;c.包好一组模块的包d.使用C编写并链接到python解释器的内置模块;2、模块的使用模块的使用通过...
2019-12-24 20:01:28
164
原创 函数参数与传递
函数1、参数匹配*args 任意数量参数*args将参数打包成tuple给函数体调用。如:def avg(*scores): return sum(scores)/len(scores)result = avg(85,86,90)print(result)>>>87.0若直接使用一个元组**kwargs关键字参数传递lambda表达式定义匿名函...
2019-12-23 18:10:07
157
原创 迭代与函数
迭代与函数迭代器迭代器是用来帮助我们记录每次迭代访问到的位置,当我们对迭代器使用next()函数的时候,迭代器会向我们返回它所记录位置的下一个位置的数据。实际上,在使用next()函数的时候,调用的就是迭代器对象的_next_方法。所以,我们要想构造一个迭代器,就要实现它的_next_方法。但这还不够,python要求迭代器本身也是可迭代的,所以我们还要为迭代器实现_iter_方法,而_ite...
2019-12-19 19:18:02
463
原创 语句和表达式
语句和表达式代码风格符合PEP8规范,冒号换行缩进四空格,一行不超过79字节,不同逻辑体之间留空行,一般不超过两行。赋值语句1、基本赋值x=10y=202、序列赋值x,y=10,20>>> x,y,z='hao'>>> x'h'>>> y'a'>>> z'o'3、 扩展序列解包赋值,*c变量,获...
2019-12-17 22:48:48
184
原创 数据类型
数据类型集合set集合概述包含0个或多个数据项的无序组合声明{元素1,元素2,…}set()函数将其他的组合数据类型变成集合类型>>> a='我和我的祖国'>>> set(a){'祖', '的', '国', '我', '和'}集合操作操作符两集合差 S-T>>> S={'12',20,22.3,250}...
2019-12-16 22:42:07
142
原创 数值、字符串与列表
数据类型1、数值类型变量需要经过声明赋值才能使用数值表达式可以+,-,*,/数值显示使用"{}".format()方法,format格式控制如下表::<填充><对齐><宽度><,><精度><类型>引导符号填充字符<左对齐 >右对齐^中间对齐输出宽度千位分隔符浮点数精...
2019-12-12 12:13:44
186
原创 Python基础认识
Python基础认识python概览优势软件质量可读性,可重用性,可维护性高开发效率实现同等功能需要的代码量相较其他语言更少少可移植性可以跨平台使用,windows,linux,unix均可库支持丰富标准库和第三方库非常多多语言集成能将C或C++等其他语言代码封装后以Python语言方式使用支持面向过程,函数式编程,面向对象劣势执行效率...
2019-12-10 20:12:48
114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人