![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python学习笔记
Weidong He.
我很懒,还没有简介!
展开
-
Python将汉字转换成编码%E5%8A%A9%E5%86%9C
在进行爬虫时,有时候网址参数是汉字的,需要先转换编码才能进行爬取from urllib.parse import quotekeyword = '助农'keywords = quote(keyword)print(keywords)# %E5%8A%A9%E5%86%9Cimport urlliburllib.parse.unquote('%E5%8A%A9%E5%86%9C')...原创 2021-06-21 15:50:15 · 9035 阅读 · 0 评论 -
CDA营销项目
《产品营销模型之建置及预测》赛题说明最终成绩:0.8225背景:A公司有一款在线服务的P产品,公司的营销通路是100%的网络媒介。A公司希望提供30天免费的P产品后,期望顾客能正式签约购买P产品之服务。但A公司发现‚每隔1~2天便对数以万计的顾客发送电子营销文宣,不但购买率低下,甚至造成诸多客诉。同时,客户之预期获利是以人工经验评估之,没有量化或模型工具之协助,不晓得到底应该使用广告全投放还是机器学习模型来做投放?目标:A公司希望发掘用户购买产品的行为习惯,建立产品精准营销模型,对有意向的客户进行原创 2021-04-22 16:32:41 · 189 阅读 · 0 评论 -
python指针问题汇总
https://blog.csdn.net/weixin_48753895/article/details/106956935转载 2021-04-04 21:44:06 · 154 阅读 · 0 评论 -
链表
单向链表class Node: def __init__(self, elem): '''节点''' #存放数据元素 self.elem = elem #下一个节点的标识,一开始不知道下一个节点是谁,指定为空 self.next = None class SingleLinkList: '''单链表''' def __init__(self原创 2021-04-03 23:47:54 · 59 阅读 · 0 评论 -
特征工程用到的一些算法和方法总结
KNN算法(K近邻算法)from sklearn.neighbors import KNeighborsClassifierknn = KNeighborsClassifier()knn.fit(x_train,y_train)print(knn.score(x_test,y_test)) #准确率支持向量算法from sklearn.svm import SVC无监督分箱from sklearn.preprocessing import KBinsDiscretizerkbd原创 2021-04-02 21:04:21 · 663 阅读 · 1 评论 -
队列及队列内置模块
队列队列(Queue) 是一个数据集合,仅允许在列表的一段进行插入,另一端进行删除进行插入的一端称为队尾(rear),插入动作称为进队或入队进行删除的一端称为队头(front),删除动作称为出队队列的性质: 先进先出#队首指针先不动,有数据加入时队尾指针变大,当有数据出队时,队首指针向着队尾的指针追赶,#所以两指针都是向着变大在变化,当达到100时,也就是尾部,变为0,也就是初始的地方class Queue: def __init__(self,size=100):原创 2021-03-31 21:52:44 · 116 阅读 · 0 评论 -
栈 及 括号匹配问题
栈:括号匹配问题栈(Stack)是一个数据集合,额可以理解为只能在一端进行插入或删除操作的列表栈的特点: 后进先出栈的概念: 栈顶,栈底栈的基本操作: 进栈(压栈):push ; 出栈 : pop ; 取栈顶 : gettopclass Demo: def __init__(self): self.stack = [] #增 def push(self,element): self.stack.append(element) #原创 2021-03-31 21:47:51 · 89 阅读 · 0 评论 -
冒泡,选择,插入,快速排序
冒泡排序第一步,确定躺数第二部,每次减去已经排好的部分第三步,开始排序,满足条件,交换位置第四步,加入开关,如果本次排序后的结果和上一次相同,则证明已经排好,可以停止def buttle_sort(li): for i in range(len(li)-1): exc = False for k in range(len(li)-1-i): if li[k] > li[k+1]: li[k],原创 2021-03-30 20:20:14 · 812 阅读 · 0 评论 -
数据分析:数据处理流程(待补充)
待补充总结的一些数据处理的流程和方法数据清洗 :从数据库或爬虫等地方拿到数据,处理不同的格式数据探索性数据分析(EDA): 找到数据的问题所在①.查看缺失值:缺失值多或少有不同的处理方式 data.info()②.查看唯一值: 非重复值有多少,查看每一个值的数量,判断数据连续或离散类型,也可以用来做特征筛选,值得类型单一对于数据没有价值,由此可以引出用方差进行特征筛选,方差越小,特征可用性的可能性越小。 data.column.nunique() 或 np.unique(data.c原创 2021-03-29 16:38:23 · 606 阅读 · 0 评论 -
顺序(线性)查找和二分查找
二分查找必须为有序列表,事件复杂度为 O(logn) :log以2为底def binary_search(li, val): left = 0 right = len(li) - 1 while left <= right: mid = (left + right) // 2 if li[mid] == val: return mid elif li[mid] > val:原创 2021-03-28 16:23:01 · 80 阅读 · 0 评论 -
汉诺塔(hanoi)递归实验
汉诺塔(hanoi)递归实验函数的含义,有n个盘子,从a 经过b 移动到c中间的步骤如下图,第一步直接调用自身做递归,第二步只有一部所以直接打印出来,第三步直接调用自身做递归def hanoi(n, a, b ,c): if n > 0: hanoi(n-1,a, c, b) print('moving from %s to %s'%(a,c)) hanoi(n-1,b, a, c)hanoi(3,'A', 'B', 'C')原创 2021-03-28 15:32:30 · 416 阅读 · 0 评论 -
三维散点图和求幂运算
绘制三维散点图from mpl_toolkits.mplot3d import Axes3Dfig = plt.figure(figsize=(10,8)) -建画布ax = fig.add_subplot(111, projection='3d') -三维画布某一特征利用布尔索引进行分组,分为三组iris_all_class0 = iris_all[iris_all['target']==0].values iris_all_class1 = iris_all[iris_all['ta原创 2021-03-28 13:50:11 · 107 阅读 · 0 评论 -
机器学习特征工程和网格搜索
特征工程可用的一些方法数据之间存在共线性,指数据之间的相关系数过高,会使模型失真。在建立模型时要尽量避免共线性利用相关系数(共线性)可以将部分影响模型准确性的特征剔除,相关系数越大,共线性越强。同样利用方差也可以筛选出影响模型准确性的特征,方差越小,说明特征中的数据的差别越小,不利于分类,故应将方差小的数据剔除。但要根据实际的情况,比如说一个特征中只有两类数值0和1,方差很小,但是特征是天气是否下雨,是一种很明显的分类,这种情况就不能直接删除了。对于连续型数据,可以查看它的分布,我们更希望数据能够原创 2021-03-26 20:02:30 · 160 阅读 · 0 评论 -
数据预处理:样本分类不平衡的解决方法
何为样本分布不均:样本分布不均衡就是指样本差异非常大,例如共1000条数据样本的数据集中,其中占有10条样本分类,其特征无论如何你和也无法实现完整特征值的覆盖,此时属于严重的样本分布不均衡。为何要解决样本分布不均:样本分部不均衡的数据集也是很常见的:比如恶意刷单、黄牛订单、信用卡欺诈、电力窃电、设备故障、大企业客户流失等。样本不均衡将导致样本量少的分类所包含的特征过少,很难从中提取规律,即使得到分类模型,也容易产生过度依赖于有限的数量样本而导致过拟合问题,当模型应用到新的数据上时,模型的准确性和健壮转载 2021-03-26 10:57:52 · 919 阅读 · 0 评论 -
决策树(CART)
ID3、C4.5算法都是基于信息论的熵模型,CART分类树算法使用基尼系数来替代信息增益比,基尼系数代表了模型的不纯度,基尼系数越小,则不纯度越低,体征越好。这和信息增益是相反的。在分类问题中,假设又K个类别,第K个类别的概率为P,则基尼系数的表达式为: 对于二分问题来说对于样本D,如果根据特征A的某个值a,把D分成D1和D2两部分吧,则在特征A的条件下,D的基尼系数表达式为:决策树的损失函数节点经验熵原式第一项CART树的剪枝(正则化)α为正则化参数,这和.原创 2021-03-25 18:59:34 · 274 阅读 · 0 评论 -
Python学习笔记25(类与对象,单例)
类的功能封装继承多态封装使用关键字 class 定义 Python 类,关键字后面紧跟类的名称、分号和类的实现,可以将多种方法放在一个类里,方便使用class Turtle: # Python中的类名约定以大写字母开头 # 方法 def climb(self): print('我正在很努力的向前爬...') def run(self): print('我正在飞快的向前跑...') def bite(self):原创 2021-03-24 16:16:05 · 165 阅读 · 1 评论 -
交叉熵、相对熵、决策树(ID3,C4.5)
1.交叉熵是用来衡量在给定的真实分布下,使用非真实分布指定的策略消除系统的不确定性所需要付出努力的大小假定W的概率分布是正确的分类结果(把二分类扩展到多分类,那么这个结果就是第三类),其他结果是各种模型预测出来的结果。已知每一种情况的信息熵天气【阴、晴、雨、雪】信息熵P=[1/4,1/4,1/4,1/4]H(P)=2Q=[1/4,1/8,1/2,1/8]H(Q)=1.75Z=[1/8,1/16,3/4,1/16]H(Z)=1.29W=[0,0,1,0原创 2021-03-24 15:38:00 · 840 阅读 · 0 评论 -
ROC曲线
图中红线为ROC曲线,线上每个点对应一个阈值。横轴FPR越大,预测坏类中实际好类越多。纵轴TPR越大,预测好类中实际好类越多。理想目标:TPR=1,FPR=0,即图中的(0,1)点,故ROC曲线越靠拢(0,1)点,越偏离45度对角线越好,TPR越大越好。Python模块: from sklearn.metrics import roc_curveTPR= TP / TP+FN : 灵敏度(真阳率,召回率) 识别的正例占所有实际比例的比例FPR= FP / FP+TN : 特异度(假阳率)识别.原创 2021-03-23 23:02:19 · 222 阅读 · 0 评论 -
Python学习笔记24(函数和匿名函数)
什么是函数函数以def关键词开头,后接函数名和圆括号()。函数执行的代码以冒号起始,并且缩进。return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。函数结构def functionname (parameters): 执行的命令! return [expression] 示例:def printme(str): #此处的 str 为形参 print(str) printme原创 2021-03-23 21:40:49 · 202 阅读 · 0 评论 -
准确率、精确率、召回率、F1值
1.TP、TN、FP、FN先粘一个官方形式的。用新冠来举例理解。下方正方形为样本,其中圆的部分认定为检测后是阳性的,其余部分为检测为阴性的(但是现在的情况是检测并不完全准确,有可能检测时阴性,但实际上已经有新冠,只是无症状)现在只看园内,园的左半绿色部分意思是:实际上这个人是新冠患者;右办粉色部分则为实际并不是新冠患者;那么圆内绿色部分则为 ‘真阳’对应‘正类检索为正类’TP,粉色部分为‘假阳’对应‘正类检索为负类’FN。这样我们就确定了圆内两个部分的实际情况,以已确定的情况为标准看圆外,原创 2021-03-23 19:51:43 · 2042 阅读 · 1 评论 -
Python学习笔记23(字典)
字典 是无序的 键:值(key:value)对集合,在同一个字典之内,键必须是互不相同的创建空字典 dic = { } 或 dic = dict()字典中添加新内容:传入一个新的key值,并直接给其赋值,如key已经存在,则对应value会被修改,所以可以通过这种方式做数据修改dic[key] = valuedict.keys() 返回所有的key值dict.values() 返回所有的value值dict.items() 同时返回所有的key和value值dict.get(key)原创 2021-03-22 18:17:22 · 76 阅读 · 0 评论 -
Python学习笔记22(字符串)
和元组一样具有不可修改直接修改其中元素的特性常用方法切片取数据,与列表一样s = 'Python'print(s) # Pythonprint(s[2:4]) # thprint(s[-5:-2]) # ythprint(s[2]) # tprint(s[-1]) #拼接,用 ’ + ’但对于他原本的内容并没有做修改str1 = 'I Love LsgoGroup'# I Love 插入的字符串 LsgoGrouplower() 转换字符串中所有大写字符为.原创 2021-03-22 18:01:49 · 68 阅读 · 1 评论 -
Python学习笔记21(列表)
21.列表创建列表#range()方法或用列表推导式x = list(range(10))print(x, type(x))# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <class 'list'>x = list(range(1, 11, 2))print(x, type(x))# [1, 3, 5, 7, 9] <class 'list'>x = list(range(10, 1, -2))print(x, type(x))# [原创 2021-03-22 17:01:16 · 153 阅读 · 1 评论 -
Python学习笔记11-20(结尾含python各类异常和警告总结)
11.while循环满足条件就停止循环while 条件: 运行代码案例:当循环结束,才会打印 ’’’ 游戏结束,不玩儿啦!’’'count = 0while count < 3: temp = input("猜一猜小姐姐想的是哪个数字?") guess = int(temp) if guess > 8: print("大了,大了") else: if guess == 8: print原创 2021-03-21 21:25:33 · 219 阅读 · 3 评论 -
Python学习笔记1-10
1.注释单行注释: 以#开头多行注释: 用 ‘’’ ‘’’ 或 “”" “”",三引号将要注释内容包括2.算数运算符两个数值类型数据进行运算,结果数据类型为int3.比较运算符两个数值类型数据进行运算,结果数据类型为布尔类型,False或True4.逻辑运算符返回结果为布尔类型,False或者True5.位运算符bin(数值):转化为二进制6.其他运算符用于判断例子1:letters = ['A', 'B', 'C']if 'A' in letters: pr原创 2021-03-21 20:18:28 · 326 阅读 · 0 评论