Python
文章平均质量分 61
Life is short, you need Python.
adamyoungjack
师傅领进门,修行看个人。
展开
-
Python
python是一个解释器,学习使用它用的是python语言,也可以说python解释器是用python语言开的。pycharm是一个工具,为开发项目的集成开发环境,可以集成了python解释器,mysql数据库,django框架。pip是python的包管理工具,自身也是一个包,django,django-haystack,pytest,PyJWT,PyMySQL,mysqlclient,elasticsearch,django-redis,django-redis,redis ,requests ,.原创 2020-10-21 20:59:51 · 173 阅读 · 0 评论 -
Python办公自动化
问题1TypeError: expected <class 'str'>已解决openpyxl版本问题换成2.5.0版本以下(2.4.9)就可以帮助链接原创 2021-06-15 15:47:27 · 932 阅读 · 0 评论 -
静态Web服务器
HellloWorld.java:1: 错误: 类 HelloWorld 是公共的, 应在名为 HelloWorld.java 的文件中声明改正:把文件名和类名改成一致原创 2020-09-20 21:11:26 · 349 阅读 · 0 评论 -
样本不均衡
1. 简介通常分类机器学习任务期望每种类别的样本是均衡的,即不同目标值样本的总量接近相同。在梯度下降过程中,不同类别的样本量有较大差异时,很难收敛到最优解。很多真实场景下,数据集往往是不平衡的,一些类别含有的数据要远远多于其他类的数据在风控场景下,负样本的占比要远远小于正样本的占比2. 样本不均衡解决方案2.1 代价敏感在风控领域中,将一个坏用户分类为好用户所造成的损失远远大于将一个好用户分类来坏用户的损失,因此在这种情况下要尽量避免将坏用户分类为好用户类权重计算方法如下:weight原创 2020-12-18 18:45:08 · 671 阅读 · 1 评论 -
GBDT
1. 简介GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树。GBDT使用的决策树是CART回归树当CART是回归树时,采用样本的最小方差作为节点分裂的依据CART树是二叉树。2. 回归树生成算法输入:训练数据集D输出:回归树选择每个特征的每个取值,根据该值对样本进行划分成两部分。分别计算每部分的方差,计算过程:对每部分计算平均值,用每部分的每个取值减去平均值求平方再累加。即可得到每个特征每个取值的损失值,此时选择损失值最小的特征和对应的取值作为分原创 2020-12-11 18:17:08 · 745 阅读 · 0 评论 -
聚类算法
1. 简介1.1 现实中的应用用户画像,广告推荐,Data Segmentation,搜索引擎的流量推荐,恶意流量识别基于位置信息的商业推送,新闻聚类,筛选排序图像分割,降维,识别;离群点检测;信用卡异常消费;发掘相同功能的基因片段1.2 定义聚类算法:一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中。1.3 聚类算法与分类算法最大的区别聚类算法是无监督的学习算法,而分类算法属于监督的学习算法。1.4 聚类算法api初步使用sklearn.cluster.KMean原创 2020-12-11 18:16:29 · 1765 阅读 · 0 评论 -
集成学习
1. 简介集成学习是一种思想,不是某一个算法集成学习 (Ensemble Learning) 算法的基本思想就是将多个学习器组合,从而实现一个预测效果更好的集成学习器集成算法大致可以分为:Bagging,Boosting 和Stacking等类型。bagging 并行 多个学习器互不相关 可以并行训练boosting 串行 后一个学习器依赖于前一个学习器stacking 多个学习器的输出作为后面一个学习器的输入2. Bagging和随机森林2.1 简介每次采用有放回的抽样从训练集中取出t原创 2020-12-10 20:11:56 · 831 阅读 · 0 评论 -
分类算法
1. 简介逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归。2. 应用场景数据不均衡问题广告点击率是否为垃圾邮件是否患病金融诈骗虚假账号3. 原理线性回归:通过sigmoid函数对线性回归输出结果进行转化,转化到 (0,1) 之间。此时这个结果可以认为是取某个类别的概率值。sigmoid: h(t) = 1/(1+e^(-t))def sigmoid(t): return 1/(1+np.e**原创 2020-12-09 18:53:16 · 14554 阅读 · 0 评论 -
决策树
1. 简介概念:是一种树形结构,本质是一颗由多个判断节点组成的树其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。构建决策树from sklearn.tree import DecisionTreeClassifiertree = DecisionTreeClassifier(max_depth=2,criterion="entropy")tree.fit(X,y)通过上述分析可知:决策树是非参数学习算法决策树可以解决分原创 2020-12-09 18:52:20 · 409 阅读 · 0 评论 -
逻辑回归
1. 简介1.1 定义逻辑回归(Logistic Regression)是机器学习中的一种分类模型逻辑回归是一种分类算法,虽然名字中带有回归由于算法的简单和高效,在实际中应用非常广泛1.2 特点解决的是一个二分类问题逻辑回归的输入是线性回归的输出1.3 应用场景广告点击率是否为垃圾邮件是否患病金融诈骗虚假账号特点:都属于两个类别之间的判断逻辑回归就是解决二分类问题的利器1.3 原理要想掌握逻辑回归,必须掌握两点:逻辑回归中,其输入值是什么如何判断逻辑原创 2020-12-09 00:40:59 · 1040 阅读 · 0 评论 -
Python语法
1. 数据类型和变量2. 条件判断和循环语句3. 容器类型4. 函数4.1 匿名函数4.2 偏函数5. 文件6. 高级特性6.1 切片6.2 迭代6.3 列表生成式6.4 生成器6.5 迭代器6.6 装饰器7. 魔法方法8. 面向对象9. 异常10.模块、包...原创 2020-11-15 13:41:08 · 735 阅读 · 0 评论 -
Python内置函数
1. zip()函数"""zip()函数简介:将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后放回由这些元组组成的对象(Python2中返回的是列表)语法: zip([iterble, ...]) 参数:iterable:一个或多个迭代器返回值: 一个对象作用:节约内存使用:使用list()准话来输出列表注意:1. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同 2. 利用*号操作符,将元组解压为列表"""# 应用a = [1, 2, 3原创 2020-12-08 10:29:19 · 102 阅读 · 0 评论 -
梯度下降算法
1. 简介1.1 定义步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度是超参数 0.1 0.01特征(feature):指的是样本中输入部分假设函数(hypothesis function):根据经验观察得到的目标值和特征值之间的关系的表达式损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。1.2 推导流程1 构建假设函数,表示的是标签值和特征值之间的关系2 根据假设函数构建损失函原创 2020-12-07 17:49:41 · 835 阅读 · 0 评论 -
K-近邻算法
1 K-近邻算法1 knn算法特点思想极度简单应用数学知识少(近乎为零)虽然算法简单,但效果出奇的好缺点也是存在的,后面会进行讲解2 K-近邻算法首先有原始已知标签的数据,把需要预测的点和所有已知标签的点去计算距离找到和待预测点最近的k个点根据k个点的标签确定待预测点的标签。knn算法可以做回归问题也可以做分类问题3 K-近邻算法实现分类1 获取原始数据,包括特征值和目标值2 画出原始数据3 在图中标记出待预测样本4 计算出待预测样本和原始样本点的距离5原创 2020-12-06 18:11:17 · 259 阅读 · 1 评论 -
线性回归
1.线性回归简介1 定义与公式线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FGa6kroX-1607249076148)(day06.assets/_mathjax_53b3b51f.svg)]我们看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型。线性回归当中主要有两种模型,一种是线性关系,另一种是非线性原创 2020-12-06 18:10:46 · 223 阅读 · 0 评论 -
Python树
"""Python树:体现父子关系概念:节点, 根节点:最上面的节点, 叶子节点:没有孩子的节点节点高度:节点到叶子结点的最长路径/边数节点深度:节点到根节点的最长路径/边数层:叶子结点到根节点的最长路径/边数 + 1 或 所有节点的个数树的高度:根节点到叶子结点的最长路径二叉树:每个节点最多有两个节点类别:普通二叉树:每个节点最多有两个子节点 满二叉树:除了叶子节点,每个节点都有左右两个子节点 完全二叉树:对树中的节点从上至下,从左至右进行编号,变好的节点与满二叉树的.原创 2020-12-06 00:37:47 · 921 阅读 · 0 评论 -
Python堆
"""Python堆:heap 三角形机制类别:大堆 :pop的时候取的永远是最大值 小堆:pop的时候取的永远是最小值Python表示:heapq包,在Java中是priorityQueue包 from heapq import heapify, heappush, heappop heapify(): 默认是小堆 heappush(): heappop():默认删除最小值 heaplargest():前n个最大的值 heapsmallest():.原创 2020-12-06 00:36:55 · 102 阅读 · 0 评论 -
Python栈
"""Python栈:LIFO:后进先出 杯子或桶机制Python表示方法:1. deque:双端队列 insert, delete速度快 一般不使用 from collections import deque s = deque([1, 2, 3]常用操作:append():尾部添加, pop():尾部删除, appendleft():头部添加 popleft():头部删除搭配使用:append(), pop()和appendleft(), p.原创 2020-12-06 00:34:09 · 87 阅读 · 1 评论 -
String字符串
"""字符串:一个一个字符组成的数组 s = 'python'操作:查找:s[0] s[-1] 切片:s[:]函数: len(s) 包括空格 max(s):最大的字母 min(s):最小的字母字符串独有的函数:.语法s.count('p') s.isupper() islower() s.isdigit()数字 s.lower() s.upper() strip() 去左右两边空格s.lstrip() s.rstrip() swapcase() 大写变成小写,小写变成大写 s.replac.原创 2020-12-05 12:32:13 · 68 阅读 · 0 评论 -
Dict字典
"""字典:有dict1 = {'key':'value', 'key2':'value2'}操作:查找:dict1['key'] 添加:dict1['key3']='value3' 修改:dict1['key'] = 'value4'删除:dict.pop('key') 存在:'key1' in dict 遍历:for k in dict1: print(k)for v in dict.values(): print(v) for k, v in dict1.items(): print(k,.原创 2020-12-05 12:07:36 · 237 阅读 · 1 评论 -
Set集合
"""集合:使用{},元素唯一性,无序性操作:查找:in 添加: add() 更新:update({}) 删除:pop() 随机删 remove(value)函数:len() max() min()操作符:- | & ^a = {1, 2, 3} b = {2, 5, 9}a - b:a有b没有 {1, 3}a | b:a有或b有,相当于aub(交集) {1, 2, 3, 5, 9}a & b:a有并且b有相当于 anb(并集) {2}a ^ b:a和b不同时有的元素 {.原创 2020-12-05 11:50:40 · 74 阅读 · 0 评论 -
应用
1 APP Store 数据分析案例1 案例介绍案例背景对APP下载和评分数据分析帮助App开发者获取和留存用户通过对应用商店的数据分析为开发人员提供可操作的意见通过数据分析要解决的问题免费和收费的App都集中在哪些类别收费app的价格是如何分布的,不同类别的价格分布怎样App文件的大小和价格以及用户评分之间是否有关分析流程2 数据清洗app.drop(‘Unnamed: 0’,axis=1,inplace=True)app[‘size_mb’] = app[‘siz原创 2020-12-04 19:07:01 · 185 阅读 · 0 评论 -
Tuple元组
"""tuple元组:与list区别:1. 表示用()表示2.只能查3. 定义 (1,)操作:查,in, 切片函数:len(), max(), min(), list()"""a = (1, 2, 3, 4, 5)print(a)print(type(a))b = (50)print(b)print(type(b))c = (50,)print(c)print(type(c))# 1. 查找print(a[0])print(a[-1])# 2. 更改# T.原创 2020-12-04 13:49:15 · 55 阅读 · 0 评论 -
List列表
"""list列表:列表中相同类型是为数组操作:查找,增加,更新,删除函数:len(), max(), min(), reverse(), clear()迭代/遍历:1. for x in a 2. for index in range(len(a)) 3.comprehersion [expression if condition else station for element in iteration]"""a = [1, 2, 3, 4, 5]# 1. 查找print(a[2].原创 2020-12-04 01:03:31 · 199 阅读 · 0 评论 -
Number数字
"""number类型:int,float,complex,bool操作:+ - * / % //函数:abs(), max(), min(), pow(x, y), sqrt(x)"""print(3)print(3 + 3)print(3 - 3)print(3 * 3)print(3 / 2)print(3 // 2)print(3 % 2)print(abs(-1))print(max(1, 2, 3, 4))print(min(1, 2, 3, 4.原创 2020-12-04 00:27:37 · 93 阅读 · 0 评论 -
Python队列
"""Python队列常用操作"""import queuefrom collections import deque# 1. 创建队列(双端队列)queue = deque()# 2. 添加元素# 0(1)queue.append(1)queue.append(2)queue.append(3)print(queue)# 3. 获取即将出队的元素# 0(1)temp1 = queue[0]print(temp1)# 4. 删除即将出队的元素# 0(1)te.原创 2020-12-02 23:49:43 · 85 阅读 · 0 评论 -
Python链表
"""Python链表操作"""import queuefrom collections import deque# 1. 创建链表linkedlist = deque()# 2. 添加元素# 2.1 末尾添加元素# 0(1)linkedlist.append(1)linkedlist.append(2)linkedlist.append(3)print(linkedlist)# 2.2 中间插入元素 insert(index, value)# 0(n) 先找再插#.原创 2020-12-02 20:43:34 · 106 阅读 · 0 评论 -
Python数组
# 1. 创建数组a = []print(a)print(type(a))# 2. 添加元素# 0(1)和O(n)a.append(1)a.append(2)a.append(3)print(a)# 3. 插入元素# 0(n)a.insert(2, 99)print(a)# 4. 访问元素:用索引访问# 0(1)temp = a[2]print(temp)# 5. 更新元素# 先访问,在修改0(1)a[2] = 88print(a)# 6. 删除元素.原创 2020-12-02 20:42:45 · 258 阅读 · 0 评论 -
函数
1. 匿名函数1.1 简介1. 定义匿名函数是简单普通函数的简洁写法定义的函数没有名字,这样的函数叫做匿名函数2. 语法结构lambda [形参1], [形参2], ... : [单行表达式] 或 [函数调用]1.2 应用# 无参有返回值匿名函数# a) 匿名函数整体就是函数名字, 函数名字()就是函数调用ret = (lambda: 1 + 1)()print(ret)# b) 给匿名函数起一个函数名字,函数名字()就是调用函数func = lambda: 1 + 1原创 2020-11-27 21:52:16 · 101 阅读 · 1 评论 -
条件和循环语句
1. 条件语句1.1 简介如果某些条件满足,才能做某件事情;条件不满足时,则不能做,这就是所谓的选择判断不仅生活中有,在软件开发中"选择"功能也经常会用到1.2 应用场景火车站安检上网吧密码判断2. 关系和逻辑运算符2.1 关系运算符1. 简介2个数比较,满足结果为True, 不满足为Falseage = 15print(age >= 18) # 结果为False2. 应用num1 = 15num2 = 20# == 等于:表示左右两个操作数是否相原创 2020-11-25 20:16:38 · 397 阅读 · 0 评论 -
容器类型
4.容器公共语法4.1 Python内置函数Python 包含了以下内置函数:4.2 切片4.3 运算符注意in 在对 字典 操作时,判断的是 字典的键in 和 not in 被称为 成员运算符4.4 小结内置函数len(容器变量): 计算容器中元素个数切片字符串、列表、元组都支持切片类型运算符+:合并*:复制5. 文件6. 高级特性6.1 切片1. 简介切片 是slice的翻译,也可以理解为 一部分切片 使用 索引值 来限定范围原创 2020-11-25 21:43:49 · 917 阅读 · 0 评论 -
Python应用
面向对象版学生名片管理系# 增、删、改、查import osclass Student(object): """学生类:保存学生的基本信息""" def __init__(self, _name='mike', _age=18, _tel='110'): self.name = _name self.age = _age self.tel = _tel def __str__(self): """返回实例属性原创 2020-11-25 21:49:51 · 106 阅读 · 0 评论 -
Python高级特性
1. 列表生成式1.1 简介列表推导式:快速生成列表元素的表达形式,通过for添加列表元素的简洁写法推导式基本格式: [计算公式 for 循环 if 判断]特点:每循环一次,将计算公式的结果添加到列表中计算公式可以使用遍历出的数据for 遍历出的数据 必须满足 if 判断 才会使用计算公式生成元素 # 普通方法:遍历0~4范围的元素,这些元素添加到列表中 # 1. 空列表new_list = [] # 2. range(5)遍历取数for i in range(5):原创 2020-11-25 21:48:38 · 84 阅读 · 0 评论 -
bug和注释
1. bug1.1 简介所谓的bug,即为程序错误1.2 解决通过提示信息找出程序的错误1.3 分类1. 名字错误2. 语法错误2. 注释2.1 简介1. 定义注释:在程序代码中对程序代码进行解释说明的文字。注释不是程序代码,不能被执行2. 作用对程序代码进行解释说明增强程序的可读性3. 分类3.1 单行注释以 # 开头,# 右边的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用单行注释快捷键:Ctrl+/# 我是注释,可以在里写一些功原创 2020-11-25 18:08:18 · 321 阅读 · 1 评论 -
异常
1. 简介1. 定义程序在运行期间,当 Python 检测到一个错误时,解释器就无法继续执行(俗称:程序崩溃)了,反而出现了一些错误的提示,这就是所谓的"异常"注意: 异常不是语法错误,语法错误,是程序写错了,异常是指程序已经运行后的非语法错误异常示例代码:print('='*20)# 如果'xxx.txt'文件不存在,只读方法打开# 解释器检查到异常错误,默认动作程序终止运行(崩溃)open('xxx.txt', 'r')print('*'*20)运行结果:说明:只读原创 2020-11-24 11:04:04 · 150 阅读 · 0 评论 -
模块、包
1. 模块1.1 简介1. 定义模块是一个由Python代码组成的文件,就是一个以.py结尾的文件。2. 组成模块包含函数、类和变量,还可以包括可运行的代码。3. 作用提高了代码的可维护性一个模块编写完毕之后,其他模块直接调用,不用再从零开始写代码了,节约了工作时间避免名字冲突1.2 操作1. 导入1.1 import导入模块,把整个模块都加载进来语法格式:"""导入格式: import 模块名使用格式: 模块名.函数 模块名.类原创 2020-11-24 11:08:29 · 218 阅读 · 0 评论 -
PEP8代码规范
1. 简介PEP8 提供了 Python 代码的编写约定,本节知识点旨在提高代码的可读性,并使其在各种 Python 代码中编写风格保持一致。PEP8: Python代码风格指南缩进使用4个空格, 空格是首选的缩进方式. Python3 不允许混合使用制表符和空格来缩进.每一行最大长度限制在79个字符以内.顶层函数、类的定义, 前后使用两个空行隔开.import 导入导入建议在不同的行, 例如:import osimport sys# 不建议如下导包import os, sys#原创 2020-11-24 11:10:19 · 513 阅读 · 0 评论 -
闭包和装饰器
1. 闭包当返回的内部函数使用了外部函数的变量就形成了闭包闭包可以对外部函数的变量进行保存实现闭包的标准格式: # 外部函数 def test1(a): b = 10 # 内部函数 def test2(): # 内部函数使用了外部函数的变量或者参数 print(a, b) # 返回内部函数, 这里返回的内部函数就是闭包实例 return test21.1 简介需求:当函数调用完,函数内定义的变量都销原创 2020-11-23 20:30:06 · 201 阅读 · 0 评论 -
正则表达式
1. property属性定义property属性有两种方式:装饰器方式类属性方式装饰器方式:@property 修饰获取值的方法@方法名.setter 修饰设置值的方法类属性方式:类属性 = property(获取值方法, 设置值方法)1. 简介property属性就是负责把一个方法当做属性进行使用,这样做可以简化代码使用。定义property属性有两种方式装饰器方式类属性方式2. 装饰器方式class Person(object): de原创 2020-11-23 21:07:10 · 303 阅读 · 0 评论 -
Django
1. Django工程搭建1.1Web框架本质和意义2. 视图(views)3. 模型(models)3.1 简介1. 定义模型是Django程序处理数据库数据的模块Django的模型是定义在子应用的models.py中的3.2 读取外键能够定义模型类并迁移建表能够使用模型类实现MySQL数据库的增删改查以图书和英雄这两个模型类为例class BookInfo(models.Model): """图书信息模型类""" btitle = models.CharF原创 2020-11-17 13:32:07 · 498 阅读 · 0 评论