数据分析
Amanda_ABAP_Python
这个作者很懒,什么都没留下…
展开
-
np.random.normal()函数
这是的np是numpy包的缩写,np.random.normal()的意思是一个正态分布,normal这里是正态的意思。格式:numpy.random.normal(loc=0,scale/std=1e-2,size=shape)loc(float):正态分布的均值,对应着这个分布的中心。 loc=0说明这一个以Y轴为对称轴的正态分布参数scale(float):正态分布的标准差(std),对应分布的宽度, scale越大,曲线越矮胖,原创 2021-02-21 14:18:36 · 916 阅读 · 0 评论 -
异常数据检测(信用卡欺诈)逻辑回归实战案例
1. 读取数据import numpy as np # 矩阵计算import pandas as pd # 数据处理和数据分析import matplotlib.pyplot as plt # 数据可视化展示import warningswarnings.filterwarnings('ignore')%matplotlib inline # 画图可以镶嵌到当前页面,不指定画图要指定一些东西,比较麻烦Amount数据需要标准化的原因,因为Amount和v1-v28的数值差异太大#原创 2021-02-21 14:17:44 · 680 阅读 · 0 评论 -
torchvision.datasets.CIFAR10()和torch.utils.data.DataLoader详细介绍
import torchvision trainset = torchvision.datasets.CIFAR10(root = data_path, train = True, download = True, transform=transform)'''原创 2021-01-30 14:45:02 · 2791 阅读 · 0 评论 -
安装xgboost库
1.先选择对应的whl文件https://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboost其中cp对应的是python版本,我的电脑是64位的win10系统,python是3.7.6版本,所以我是选择:xgboost-1.3.1-cp37-cp37m-win_amd64.whl2.将下载的whl文件放到一个地方(放哪里随便你自己,但是安装的时候要加上路径),我是直接放到了F盘下,因为我需要加上F盘的路径F:pip install F:\xgboost-1.3.1原创 2021-01-19 20:57:49 · 976 阅读 · 1 评论 -
pytorch里面的nn库:torch.nn.modules、torch.nn.functional、torch.nn.parameter、torch.nn.Sequential
torch.nn是专门为神经网络设计的模块化接口torch.nn构建与autograd之上,可以用来定义和运行神经网络介绍一下四大库:torch.nn.modules、torch.nn.functional、torch.nn.parameter、torch.nn.Sequentialtorch.nn.modules************torch.nn.modules*************torch.nn.MSELosstorch.nn.CrossEntropyLoss torch.nn原创 2021-01-09 20:26:02 · 1257 阅读 · 0 评论 -
python中的max()与min()的用法介绍
A是一个 m 行 n 列的矩阵:A.min(0) : 返回A每一列最小值组成的一维数组;A.min(1):返回A每一行最小值组成的一维数组;A.max(0):返回A每一列最大值组成的一维数组;A.max(1):返回A每一行最大值组成的一维数组;这里的0表示行,1表示列我利用tensor写的张量,里面还可以显示每一行每一列输出的最大最小的索引A = torch.rand(3,4)print(A)print(A.min(0))print(A.min(1))print(A.max(0))p原创 2021-01-08 20:57:47 · 3259 阅读 · 0 评论 -
Pytorch 的 Tensor 常用函数与操作
Tensor的算术运算import torcha = torch.Tensor([1, 2])b = torch.Tensor([3, 4])### 加法运算c = a + bc = torch.add(a, b)c = a.add(b)print(a)c = a.add_(b) print(a)### 减法运算c = a - bc = torch.sub(a, b)c = a.sub(b)print(c)print(a)c = a.sub_(b) print(c)原创 2021-01-08 18:21:51 · 1414 阅读 · 0 评论 -
几种激活函数的详解及代码实现:sigmoid()、softmax()、tanh()、relu()、leaky_relu()
import numpy as npimport matplotlib.pyplot as plt%matplotlib inline1.sigmoid()函数# Sigmoid函数常被用作神经网络的激活函数,将变量映射到0,1之间# 除了输出层是一个二元分类问题外,基本不用Sigmoid函数def sigmoid(x): y = 1/(1+np.exp(-x)) return y曲线绘制:X = np.arange(-5, 5, 0.1)y = sigmoid(X)原创 2021-01-02 17:05:20 · 3925 阅读 · 0 评论 -
numpy.frombuffer()详细介绍
'''frombuffer将data以流的形式读入转化成ndarray对象numpy.frombuffer(buffer, dtype=float, count=-1, offset=0)buffer:缓冲区,它表示暴露缓冲区接口的对象。dtype:代表返回的数据类型数组的数据类型。默认值为0。count:代表返回的ndarray的长度。默认值为-1。offset:偏移量,代表读取的起始位置。默认值为0。'''#data是字符串的时候,Python3默认str是Unicode类型,所以原创 2021-01-02 15:13:39 · 30707 阅读 · 1 评论 -
XGBoost VS GBDT (二者的区别)
①XGBoost损失函数是误差部分是二阶泰勒展开,GBDT 是一阶泰勒展开。因此损失函数近似的更精准。②XGBoost目标函数中添加了正则项(L1、L2正则项),可以有效的防止过拟合③XGBoost可以自定义目标函数objective,因此更加灵活④XGBoost可以自定义评估指标eval_metric⑤XGBoost除了可以进行样本抽样,还实现了特征抽样四个随机抽样特征的参数中(subsample–控制生成每棵树的随机抽样样本比例、colsample_bytree–每次生成树时,随机抽样特征的比原创 2020-12-28 15:15:41 · 789 阅读 · 0 评论 -
time模块训练:打印出某网店每天累计的购物次数
首先先介绍一下字典遍历键值对:使用 dict.items()nums = {'2019-04-23': 41, '2019-05-02': 94, '2019-04-25': 80, '2019-05-04': 86, '2019-05-01': 90, '2019-05-03': 84, '2019-05-05': 10, '2019-04-28': 89, '2019-04-29': 79, '2019-04-26': 104, '2019-04-27': 93, '2019-04-30': 84,原创 2020-12-24 17:20:06 · 2920 阅读 · 1 评论 -
Random Forest 的随机性体现在哪些方面?
1.Random Forest 的随机性体现在哪些方面?相较于普通的决策树而言,从结点的特征集合中随机选取一个包含 k个属性的子集,再从这个子集中选择一个最优划分,不是遍历所有的特征。随机性体现在:在构建基学习器的过程中,随机选择样本、随机选择特征、从所有特征中随机选取选取一个包含 k个属性的子集。2.训练同样的数据集,Random Forest 为什么比 Bagging 的效率高?因为在划分节点时,随机森林只选取了部分特征进行划分,Bagging 是在所有的特征上进行遍历,因此效率会更高。原创 2020-12-23 20:26:41 · 1504 阅读 · 0 评论 -
Bagging 模型为什么要进行抽样?
1.Bagging 模型为什么要进行抽样?Bagging 模型是基于同样类型的基学习器进行集成学习,如果不进行抽样,那么所有的基学习器都学习了同样的数据,模型之间就没有不同,模型必须具有一定的差异性,才能更大程度提升整个模型的准确度,通过数据抽样的方式,让基学习器学习不同的数据,从而生成具有差异性的基学习器。2.有放回抽样和无放回抽样的区别是什么?有放回抽样:在一轮抽样期间,每次抽完一个数据,就立马将该数据放回。如果一轮要抽样n个数据,那么就会有n次数据的放回动作。无放回抽样:数据只有原创 2020-12-23 17:43:10 · 705 阅读 · 1 评论 -
集成学习与Voting模型(员工离职率预测)
提供四种预测模型的方案和评估结果:KNN、逻辑回归、决策树分类、voting模型# 1.导入数据,将特征和预测值进行分离,确定x,y值import numpy as np import pandas as pdworker = pd.read_csv('C:\\Users\\Liu\\Desktop\\data.csv')x = worker.drop(columns = ['Attrition'])y = worker['Attrition']# 2.数据分割from sklearn.m原创 2020-12-23 15:20:14 · 853 阅读 · 0 评论 -
使用网格搜索优化决策树回归模型(用优化的决策树回归模型预测波士顿房价)
import numpy as npfrom sklearn import datasetsboston = datasets.load_boston()x = boston.datay = boston.target# 2.数据分割from sklearn.model_selection import train_test_split x_train,x_test,y_train,y_test = train_test_split(x,y,random_state = 666)# 3原创 2020-12-23 15:10:30 · 1738 阅读 · 2 评论 -
sklearn中的datasets.make_moons函数
# make_moons是函数用来生成数据集from sklearn import datasetsx,y = datasets.make_moons(n_samples=800,noise=0.3,shuffle=True,random_state=42)x,y = datasets.make_moons(n_samples=800,noise=None,shuffle=False,random_state=None)n_numbers:生成样本数量shuffle:数据是否打乱noise原创 2020-12-23 11:04:55 · 4302 阅读 · 0 评论 -
线性回归模型(scikit-learn实现线性回归模型、梯度下降求解线性回归模型、评价指标、多项式回归模型与pipeline、交叉验证、模型正则化)
scikit-learn实现线性回归模型:对糖尿病人的病情状况建立线性回归模型# 1.导入数据import numpy as npimport pandas as pdfrom sklearn import datasetsdiabetes = datasets.load_diabetes()# diabetes.keys()x = diabetes.datay = diabetes.target 2.将数据分为训练集和测试集from sklearn.model_selection原创 2020-12-22 21:13:08 · 552 阅读 · 1 评论 -
DecisionTree决策树参数详解
1.max_depth:指定遍历搜索的最大深度。int or None, optional (default=None) 一般来说,数据少或者特征少的时候可以不管这个值。如果模型样本量多,特征也多的情况下,推荐限制这个最大深度,具体的取值取决于数据的分布。常用的可以取值10-100之间。常用来解决过拟合2.min_sample_leaf:叶子节点最少样本数。这个值限制叶子节点最少的样本数,若叶子节点数小于样本数,则会和兄弟节点一起被剪枝,样本量不大时,可不管这个值3.max_leaf_nodes原创 2020-12-22 20:57:45 · 4371 阅读 · 1 评论 -
KNN算法----分类模型
KNN 算法的原理及实现—手动写法import numpy as np import matplotlib.pyplot as pltfrom math import sqrtfrom collections import Counterx = [ [2.40,2.0], [4.1,2.8], [1.2,1.4], [0.6,3.7], [1.3,2.5], [6.4,4.2], [1.7,4.5], [8.2,3.5]]y=原创 2020-12-20 17:09:08 · 391 阅读 · 0 评论 -
jupyter notebook怎么写入、读取excel,csv文件
# pandas 写入Exceldf = pd.DataFrame({'id':[1,2,3],'name':['xyz','as','we']})df = df.set_index('id')# 指定index,去除生成的indexdf.to_excel('./output.xlsx')# 我直接写入到当前文件夹print('ok')# pandas 读取Excelpepole = pd.read_excel('C:\\Users\\Liu\\Desktop\\People.xlsx')原创 2020-12-11 21:22:46 · 51786 阅读 · 1 评论 -
爬虫--3.4 实战案例:爬取京东商城指定商品图片信息,并存储在当期目录下(完整代码)
#图片信息爬取实战#任务:爬取京东指定商品图片信息,并存储在当期目录下。#url地址:https://list.jd.com/list.html?cat=9987,653,655#导入库import requestsimport refrom pyquery import PyQuery as pqfrom urllib.request import urlretrieveimport ssl#若报错:unable to get local issuer certificate(无法获原创 2020-12-11 20:41:25 · 674 阅读 · 0 评论 -
处理数组中的nan,用这一列的平均值去替换
在jupyter 里面写的# 练习!!!!-------处理数组中的nant = np.arange(24).reshape(4,6).astype('float')print(t)# 将数组中的一部分替换成nant[1,3:]=np.nanprint(t)# 遍历每一列,然后判断每一列是否有nanfor i in range(t.shape[1]): col = t[:,i] # 获取当前列数据 # 判断当前列的数据中是否含有nan ##############原创 2020-12-08 21:43:41 · 1317 阅读 · 0 评论 -
安装scrapy失败,报错 error: Microsoft Visual C++ 14.0 is required.
安装scrapy失败,报错 error: Microsoft Visual C++ 14.0 is required.解决办法是先下载Twisted,选择对应的版本,cp38表示的是python的版本,表示python3.8,amd则表示系统位数,例如amd64为64位。下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/下载成功之后,记住下载的地址,在cmd中输入 pip install Twisted的路径,我的路径在E盘,我的输入如下:下载成功原创 2020-12-01 15:25:02 · 120 阅读 · 0 评论 -
Ajax-->信息爬取指定(小米商品)的详情信息
#爬取指定小米商品的详情信息import re,jsonimport requests# 从Network-->XHR里面去找下面这些属性product_id='12609' #商品id编号#请求url地址url = 'https://api2.order.mi.com/product/view?product_id=%s&version=2&t=1606381640'%(product_id)# header头信息headers = { 'a原创 2020-11-26 18:01:09 · 273 阅读 · 0 评论 -
爬虫--3.2 实战案例:猫眼电影---使用requests爬虫库爬取猫眼电影中榜单栏⽬中TOP100榜的所有电影信息,并将信息 写⼊⽂件
先爬取第一页的榜单电影import requestsimport time,json,reurl = "https://maoyan.com/board/4"headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'}res = requests.get(url,heade原创 2020-11-26 15:12:48 · 832 阅读 · 0 评论 -
爬虫--3.1实战案例:爬取有道词典,完整版代码,解决url中_o问题(防反爬)
// An highlighted blockvar foo = 'bar';// An highlighted blockvar foo = 'bar';// An highlighted blockvar foo = 'bar';// An highlighted blockvar foo = 'bar';// An highlighted blockvar foo = 'bar';// An highlighted blockvar foo = 'bar';// A原创 2020-11-26 13:59:58 · 542 阅读 · 2 评论 -
启动数据库MySQL
1.可以在cmd 敲 mysql -u root -p 如果报错说连接不上,我们手动先启动数据库之后再去cmd内操作:在Windows服务管理器启动,在开始菜单搜索services.msc点击右键启动即可:启动成功:原创 2020-11-17 10:14:01 · 1317 阅读 · 0 评论 -
python操作pymysql
**python操作mysql的基本步骤:**1. 链接mysql数据库2. 创建游标对象3. 准备sql4. 用游标对象执行sql5. 用游标对象提取结果6. 关闭数据库连接连接mysql数据库时的 cursorclass=pymysql.cursors.DictCursor 可以把结果转为 字典类型,默认为元组import pymysql# 1. 链接mysql数据库 用户名、密码、选择的库、字符集、 cursorclass: 。DictCursor:以字典的形式返回操.原创 2020-11-15 20:30:36 · 125 阅读 · 0 评论 -
安装pip install pymysql所出现的一堆问题(‘pip‘ 不是内部或外部命令)(File “<stdin>“, line 1 pip install pymysql)
直接输入pip install pymysql时候出现下面的问题:‘pip’ 不是内部或外部命令,也不是可运行的程序或批处理文件。然后进入python环境中去输入还是报错:File “”, line 1pip install pymysql^SyntaxError: invalid syntax这个是不需要进入python环境中去下载的,所以要用exit()退出python环境,然后去将pip路径加到环境变量里面去,pip 的路径就是 C:\Python38\Scripts原创 2020-11-15 19:59:20 · 2922 阅读 · 0 评论 -
MySQL安装详细步骤 / 图形化管理工具Navicat12
==Windows安装MySQL5.7.17 ==在MySQL官网 http://dev.mysql.com/downloads/mysql/ 上面下载ZIP安装包(第二个:Windows (x86, 64- bit), ZIP Archive)。下载后(暂时存放),将mysql-5.7.28-winx64解压至当前文件夹,我将这个解压后的文件夹放至E盘,因为我习惯将软件都放置在此盘,并在次文件夹里创建一个my.ini文件(先创建一个文本文档重命名为my.ini)和一个data文件夹(以后我们所创建的原创 2020-11-14 16:59:51 · 609 阅读 · 0 评论 -
面向对象--装饰器(定义、应用场景、语法:装饰器的嵌套、装饰带有参数(多参数)的函数、类装饰器装饰函数等)
一、装饰器定义装饰器 decorator**在不改变原有函数代码,且保持原函数调用方法不变的情况下,给原函数增加新的功能(或者给类增加属性和方法)****核心思想**:用一个函数(或者类)去装饰一个旧函数(或者类),造出一个新函数(或者新类)**应用场景**:引入日志,函数执行时间的统计,执行函数前的准备工作,执行函数后的处理工作,权限校验,缓存等**语法规则**:在原有的函数上加上 @符,装饰器会把下面的函数当作参数传递到装饰器中,@符又被成为 语法糖# 1。 装饰器的原型### 利用原创 2020-11-14 13:55:46 · 295 阅读 · 0 评论 -
文件的操作(写入、读取、关闭)
# Python中的File(文件)操作> 针对磁盘中的文件的读写。文件I/O I 输入(input) O输出(Output)>> 文件操作步骤:1.打开文件 2.读写文件 3.关闭文件#### 写入文件的操作:(把大象装进冰箱)1. 打开文件 open() ==> 打开冰箱2. 写入内容 write() ==> 把大象装进冰箱3. 关闭文件 close() ==> 关闭冰箱门#### 读取文件的操作:(把大象从冰箱中取出)原创 2020-11-12 19:23:10 · 1156 阅读 · 0 评论 -
面向对象描述符(__get__,__set__,__delete__)及其定义方式和应用案例\单例(单态)设计\Mixin 混合设计\抽象类
'''__get__(self, instance, owner) 触发机制:在访问对象成员属性时自动触发(当该成员已经交给描述符管理时) 作用:设置当前属性获取的值 参数:1. self 描述符对象 2.被管理成员的类的对象。3.被管理成员的类 返回值:返回值作为成员属性获取的值 注意事项:无__set__(self, instance, value) 触发机制:在设置对象成员属性时自动触发(当该成员已经交给描述符管理时) 作用:对成员的赋值进行管理 参数:1. self 描述符对象原创 2020-11-12 19:21:22 · 295 阅读 · 0 评论 -
str、repr 和对应魔术方法的区别
认识 str 和 repr 的区别num = 521r1 = str(num)r2 = repr(num)# str和repr函数都可以把其它类型的值转为字符串# print(r1,type(r1)) # 输出: 521 <class 'str'># print(r2,type(r2)) # 输出:521 <class 'str'>s = '521'r1 = str(s)r2 = repr(s)print(r1,type(r1)) # 输出结果: 521原创 2020-11-11 16:56:39 · 134 阅读 · 1 评论 -
面向对象高阶成员、方法的分类、常用函数
面向对象高阶成员# 获取类/对象的所属成员 类/对象.__dict__res = Demo.__dict__ # 获取当前类的所属成员res = obj.__dict__ # 获取当前对象的所属成员# 获取类的文档信息 类/对象.__doc__res = Demo.__doc__res = obj.__doc__# 获取类名称组成的字符串res = Demo.__name__# 获取类所在的文件名称,如果是当前文件,显示为__main__res = Demo.__module原创 2020-11-11 16:48:45 · 113 阅读 · 0 评论 -
面向对象三大特性之一--多态
# 多态 普通版本# 对于同一个方法,由于调用的对象不同(或者传入的对象不同),最终实现了不同的结果# 定义电脑类class Computer(): # 在电脑类中定义一个 sub 的规范的接口 方法 def usb(self,obj): obj.start()# 定义鼠标类class Mouse(): def start(self): print('鼠标启动成功。')# 定义键盘类class KeyBord(): def原创 2020-11-10 17:24:09 · 114 阅读 · 0 评论 -
面向对象的三大特性之一--继承(单、多继承,菱形继承、类关系检测 issubclass())
''当子类继承父类后,就可以去使用父类中的成员属性和方法 (除了私有成员)子类可以有自己独立的成员,也可以没有子类继承父类后,重新定义了父类中的方法,这种情况称为对父类方法的重写在子类中可以去直接调用父类中定义的方法 super().父类方法名()子类继承父类后,定义类父类中没有的方法,这种情况称为 对父类的 扩展一个父类可以被多个子类继承子类调用父类的方法时,如果该方法有参数要求,也需要传递参数'''# 猫科动物class maoke(): # 属性 maose =原创 2020-11-10 14:50:18 · 493 阅读 · 1 评论 -
面向对象的三大特性之一--封装
封装就是使用特殊的语法,对成员属性和成员方法进行包装,达到保护和隐藏的目的但是一定注意,不能把成员全部封装死,就失去意义了被封装的成员主要是供类的内部使用被特殊语法封装的成员,会有不同的访问的权限封装的级别 成员 ==> 公有的 _成员 ==> 受保护的 (约定俗成,而python没有具体实现) __成员 ==> 私有的 公有的 public 受保护的 protected 私有的 private在类的内部原创 2020-11-10 13:52:34 · 126 阅读 · 0 评论 -
魔术方法(初始化方法、析构方法、__call__、__ bool__、__ repr__、__ str__、__ len__、日志封装)
> 魔术方法也和普通方法一样都是类中定义的成员方法> 魔术方法不需要去手动调用的,魔术方法会在某种情况下,自动触发(自动执行)> 魔术方法还有一个比较特殊的地方:就是多数的魔术方法 前后都有两个连续的下划线> 魔术方法不是我们自己定义的,而是系统定义好的,我们来使用__init__初始化方法__init__ 初始化方法 触发机制:在通过类实例化对象后,自动触发的一个方法 作用: 可以在对象实例化后完成对象的初始化(属性的赋值,方法的调用。。)原创 2020-11-10 09:30:29 · 180 阅读 · 0 评论 -
成员方法中的self
+ self在方法中只是一个形参,并不是关键字+ self 单词本身的意思 自己+ self 在类的方法中 代表 当前这个对象+ self 代表调用这个方法的对象,谁调用了这个方法,self就代表谁+ self 就可以在类的内部代替对象进行各种操作+ 含有self或者可以接受对象作为参数的方法: 非绑定类方法+ 不含self或者不能接受对象作为参数的方法:绑定类方法非绑定类方法,可以使用对象去访问绑定类方法,只能通过类去访问'''self 单词本身的意思 自己self 在类的方原创 2020-11-09 20:04:04 · 266 阅读 · 0 评论