自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小张快冲

一步一步向你靠近

  • 博客(63)
  • 收藏
  • 关注

原创 python之list.index()

交完毕设,我终于又回来了list.index()之前只知道可以使用这个函数找到python列表中第一个与目标元素同值的元素索引如a=[1,2,3,2]a.index(2) #1但想要找到第二个2的索引要怎么办呢?index函数其实还提供了在指定下标范围内查找的功能index()方法语法:list.index(x[, start[, end]])参数x-- 查找的对象。start-- 可选,查找的起始位置。end-- 可选,查找的结束位置。这里的start和end都是指索.

2021-11-02 10:44:54 5859

原创 hive sql计算分位数 出现重复数据的处理逻辑

哎呀妈呀,我说这数据奇奇怪怪,看了一上午终于明白了!我现在要计算百分位数的的真实数据是这样的:【1X277,3X43,5X10,9X41,15X10,25X6,27X3,45X1】AXB表示数列中A有B个然后我使用上一篇文章提到的PERCENTILE_APPROX函数计算0.8分位数thr,用thr作为阈值对数据分组,奇怪的是,小于等于thr的数竟然不到80%,按正常逻辑来想的话,应该大于80%才对,因为可能有多个值都等于thr,总之,至少不能少于80%。于是,开始探索。。我发现当计算分位数.

2021-08-17 14:02:15 1461

原创 hive sql计算分位数

在观察数据的大致分布时,分位数是个常用的统计值,下面介绍在hive sql中计算分位数的语法hive sql中计算分位数的函数:PERCENTILE_APPROX(适用于大数据量)使用格式:-- 以数组形式返回多个百分位近似计算结果。array<double> percentile_approx (double <colname>, array(<p1> [, <p2>...]) [, <B>])参数说明colname:必填.

2021-08-15 16:48:02 8705

原创 hive sql 统计每个pid上一次有交易的日期

情景:有交易的日期有记录,无交易的日期无记录思路:数据表先自连接,再按日期和交易金额筛选数据;新数据表借助窗口函数,对每个pid按照每天之前有交易的日期排序,取最近的一天set odps.sql.type.system.odps2=true;DROP TABLE IF EXISTS table1 ;CREATE TABLE table1 ASSELECT t1.partner_id ,t1.dt ,t1.trd_cnt ,t1.trd_amt

2021-08-09 20:06:42 588

原创 hive sql 统计最长连续交易天数

情景:有交易的日期有记录,无交易的日期无记录思路:先借助窗口函数生成一列连续递增的数字;将日期与数字列相减,如果日期是连续的,那差值就是一样的;统计差值列相同取值的最大个数就是最长连续交易天数-- 统计pid最长连续交易天数SELECT partner_id ,MAX(count_val) AS max_countFROM ( SELECT partner_id ,symbol_date

2021-08-01 18:41:28 1451

原创 hive sql生成连续日期

hive sql生成连续日期欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮

2021-07-25 22:53:56 2607 2

原创 hive SQL

IF( expr1 , expr2 , expr3 )expr1 的值为 TRUE,则返回值为 expr2expr1 的值为FALSE,则返回值为 expr3NVL( string1, replace_with )string1The string to test for a null value.replace_withThe value returned if string1 is null.groupinggrouping接受一个列名作为参数,如果结果对应行使用了参数列做.

2021-07-17 13:00:09 266 1

转载 RFM模型

最近要做关于商户价值评估的内容,想要参考用于评估客户价值的RFM模型,先来补一补基础知识。RFM模型:R (Recency):最近一次消费的时间间隔用户上次消费距离现在多久F (Frequency):消费频率用户在一段时间内的消费次数,“一段时间”根据使用场景来定义M (Monetary):消费金额用户在一段时间内的消费金额,“一段时间”根据使用场景来定义依据这三个指标对客户细分,一般采用二分法,将每个指标按平均值划分,这样用户可以划分为8个群体。用户分类RFM客户.

2021-07-11 14:51:12 564

原创 常用分类评估指标(二分类&多分类)

一直想写篇度量指标的文章,梳理一下这块的知识点,可能想了太多次,总以为自己已经写过了,今天看文章列表,竟然没有相关的内容,刚好最近在做多分类模型,借此机会整理一下。混淆矩阵(confusion matrix)在介绍各种指标前,先介绍混淆矩阵,基本所有的评价指标都是基于混淆矩阵计算得来的。混淆矩阵每一行代表数据的真实类别,每一列代表预测类别。以下是一个三分类问题的混淆矩阵:二分类和多分类都有混淆矩阵,为了后面介绍指标时参数含义容易理解,我们以二分类的混淆矩阵为例。TP:True Posi.

2021-07-03 18:37:32 13962 1

原创 T-LSTM模型

T-LSTM(Time-Aware LSTM)模型考虑了时间序列之间的时间间隔,他的主要思想是将记忆状态分为短期记忆和长期记忆,根据输入之间的时间间隔调整短期记忆的影响,时间间隔越长,短期记忆的影响越小,接着将调整后的短期记忆与长期记忆重组为新的记忆状态。参考论文:《Patient Subtyping via Time-Aware LSTM Networks》介绍了T-LSTM模型以及其在分析医疗记录中的应用。以下是基于论文对模型的理解:标准LSTM网络的局限不能处理不规则的时间间隔标.

2021-06-26 13:42:40 3978 8

原创 分享一个好用的镜像

姐妹们,下载python包用镜像啊,快的不止一点点!ihttp://pypi.douban.com/simple --trusted-host pypi.douban.com使用示例:python -m pip install tensorflow==2.0.0 -ihttp://pypi.douban.com/simple --trusted-host pypi.douban.compython -m pip install keras==2.3.1 -ihttp://pypi.douban.c

2021-06-23 21:35:23 96

转载 常用sql语句整理

本科学过sql,但也忘得差不多了。。。做个搬运工,顺便整理和复习一下基础语句sql对大小写不敏感,select和SELECT是一样的建议关键字都大写,自己定义的表名属性名等小写,一目了然创建数据库CREATE DATABASE dbname;创建数据库中的表表由行和列组成,每个表都必须有个表名。CREATE TABLE table_name(column_name1 data_type(size),column_name2 data_type(size),column_n.

2021-06-15 16:53:05 236

原创 python命名规范

一直以来写代码命名时都比较随心所欲,还是规范起来的好,梳理一下常用到的命名规则,让代码更好看些~一般规范:可以包含数字,字母,下划线(不能以数字开头)系统关键字不可以作为变量名两种命名法:大驼峰:每一个单词的首字母都大写小驼峰:第一单词的首字母小写,其他都大写1、项目名大驼峰 ProjectName2、包名/模块名简短的小写字母,可以有下划线 package_name、mymodule一个py文件就是一个模块,一个包里面包含多个模块包的存在主要是为了避免同名模块之间的.

2021-06-13 22:09:59 792

原创 卡尔曼滤波初识

最近偶然接触到了卡尔曼滤波这个概念,先来简单地学习它的基本理念吧~卡尔曼滤波用于预测,既能包含数据的时序信息,也可以结合当前时刻的观测信息。卡尔曼递推算法根据前一个时刻状态的估计值和当前时刻的观测数据,递推估计当前时刻的状态值。卡尔曼滤波是采用递推的算法实现的,其基本思想是先不考虑过程噪声ωk和观测噪声vk的影响,得到状态变量和输出信号(观测数据)的估计值,再用输出信号的估计误差加权后校正状态变量的估计值,使状态变量估计误差的均方值最小。因此,卡尔曼滤波的关键是计算出加权矩阵的最佳值。主要涉及两个.

2021-06-03 13:27:52 327 1

原创 module “pandas.tseries“ has no attribute “index“; module “pandas.core“ has no attribute “index“

我是天才!想实现一个ARIMAX的模型还真难。。。网上参考资料少之又少,就连运行官网提供的代码也会出错,心力交瘁/(ㄒ……ㄒ)/~~好在折腾半天,终于有解,忍不住夸自己一句“小张真棒!”标题中的报错都出现在我运行官网代码的过程中。官网文档:PyFlux:ARIMAX models跟着我复现一下官网代码吧。import numpy as npimport pandas as pdimport pyflux as pffrom datetime import datetimeimport.

2021-05-25 11:56:30 1520 2

原创 ARIMA基础知识及使用流程

ARIMA(p,d,q)模型全称为差分自回归移动平均模型 (Autoregressive Integrated Moving Average Model,简记ARIMA)。自回归模型(AR)—> p: 趋势自回归阶数差分(I) —> d:趋势差分阶数移动平均模型(MA)—> q:趋势移动平均阶数一、根据ACF/PACF选定模型以及模型参数首先明确两个概念:截尾(cut off)、拖尾(tail off)截尾:样本自相关/偏自相关系数在最初的d阶明显大于2倍标准差,而后几.

2021-05-24 14:49:03 13563

原创 创建DataFrame 为变量赋单个值后仍然为空

DataFrame的赋值是个常用操作,然而今天却犯了糊涂在给DataFrame赋值时,不管是一个数据还是多个数据都必须为list类型。 当传递多个数时,自然就是list类型,今天传单个值时,没意识到这点,就发生了大疑惑事件。举个例子来看:import pandas as pd test = pd.DataFrame()test['a'] = 1test['b'] = 2print(test)输出结果却为:Empty DataFrameColumns: [a, b]Index: [.

2021-05-18 11:30:21 791 2

原创 tableau画时序图

tableau画图时直接拖拽时间到列,度量到行,度量总是变成按时间粒度的“总和”,”平均“这种形式,但我只想要把其中的每个数据点按时间顺序画出,不要做统计。只要把时间的粒度改成”精确日期“就OK。...

2021-05-13 16:30:10 581

原创 keras中Conv1D和TimeDistributed参数理解

为了将卷积神经网络和长短时记忆网络结合起来实现异常检测,我用到了keras中的Conv1D和TimeDistributed层,记录一下对涉及的参数的理解。好像有种更简单的写法,直接用Conv1D和LSTM就好了,不用借助TimeDistributed层,那种写法后续有机会再研究吧,不过使用TimeDistributed层也是有他的好处的,模型的映射更为自由(结合CNN时,一般体现在时间步的映射),能够实现一对多、多对一、多对多的映射。Conv1D卷积层中一些常见参数就不介绍了,重点介绍结合Time.

2021-05-13 15:58:57 6691 6

原创 python 画雷达图设置背景颜色

python画图简直逼死(学艺不精的)强迫症啊,我这一下午被搞疯了…应该是matplotlib版本的原因吧,我的雷达图画出来总是灰底的,不好看啊,想要白底的雷达图 。代码:def radarplot(name,tag,values, feature): # 设置每个数据点的显示位置,在雷达图上用角度表示 angles=np.linspace(0, 2*np.pi,len(values), endpoint=False) # 拼接数据首尾,使图形中线条封闭 value.

2021-05-10 17:40:05 3807 2

原创 python matplotlib画图、画子图时基础参数设置

可视化是我们在进行数据分析时常用操作之一,在使用python实现可视化时,matplotlib、Seaborn等是常用的工具,除此之外,还有很多其他(我没用过的)绘图工具,如Bokeh 、ggplot等,有兴趣的可以去学习一下。本文分两节,第一节介绍画单个图时的基础操作,第二节介绍画包含多个子图的图片时的操作。以下均为常用的超基础操作,后续有用到其他功能再进行补充。最好的使用说明:Matplotlib: Python plotting — Matplotlib 3.4.1 document为了保证绘.

2021-05-09 19:51:16 2157 4

原创 jupyter长代码换行

jupyter中如果没设置自动换行,一行代码可以写的超级长,但是过长的代码就无法在页面全部显示,需要左右拖动下方的滑块才能看,很不方便。很多人也吐槽自动换行无法对齐等问题(逼死强迫症),因此记录一下jupyter如何自行换行。以下是我最近使用jupyter进行代码换行时的操作,总结不够严谨,欢迎补充指正。jupyter中换行有三种操作1. 直接回车换行适用于赋值等基本操作时的环境。比如给变量赋值时,变量值过长(变量类型为字符串或者其他变量类型均可)。2. "\"换行适用于数学计算,函数调用.

2021-05-09 16:19:56 18247

原创 KDEUnivariate.fit 参数详解

上一篇文章介绍了KDE的原理以及参数寻优,这篇介绍在python中使用statsmodels.nonparametric.kde.KDEUnivariate.fit函数拟合数据时涉及的参数的含义。在官方文档的介绍中,大部分参数的含义已经清晰明了,但是对于我来说,"cut"参数,以及"bw"参数中的一些内容,初看还是有些迷糊的,特在梳理后,于此记录。先指路官方文档:statsmodels.nonparametric.kde.KDEUnivariate.fitKDEUnivariate.fit(kern.

2021-04-29 19:15:03 887 2

原创 核密度估计KDE原理及在python中的使用

给定一个数据样本集,若想得到总体的概率分布,通常有两类方法:参数估计和非参数估计。参数估计需要先假定这个数据样本服从某种分布,再使用数据去拟合分布中的参数,含有较大的主观成分。而非参数估计,即核密度估计(Kernel Density Estimation,KDE),不需要预先假设,从数据本身出发,来估计未知的密度函数。一、估计过程1、以每个点的数据+带宽(邻域)作为参数,用核函数估计样本中每个数据点及其附近的概率密度函数核函数作用:对每个数据点得到光滑的、积分为1的概率密度估计。核函数种.

2021-04-24 23:03:48 13057 1

原创 tableau新新手指南(基础功能介绍)

最近在实习,被赶鸭子上架地用tableau这个软件给做了几个展示页面,发现其在数据可视化方面的功能还比较强大。通过将几个类型的表进行联接,实现了按主键或非主键属性进行查询及可视化的功能,在此记录一下如何操作,让新新手在使用时有所参考(理解或者操作有误的地方欢迎指正~)最好消化的可能是博客,但最好用、最全面的还是官方文档,指路官方教程:Tableau Desktop 入门指南(打开软件里的“帮助”就可以跳转到使用指南页面,是英文版的,更全面一些,我上面给的链接是中文版的,更易读,根据需要自行选择)强调:.

2021-04-13 19:24:14 2803

原创 许愿

我要讲废话了,大家都去牛客网许愿我就不去挤了,在大牛聚集的CSDN许愿应该也灵验叭,许愿***,成功的话我就做一名勤奋的现在菜但努力变强的周更小博主!努力努力!

2021-04-10 20:43:51 104

原创 python for循环在每次循环时都会更新条件中的相关变量值

我去,困扰我小半个上午的问题终于悟到了。。。得到两个很简单但平时不怎么注意到的结论:for循环在每次循环时都会更新判断条件中的变量值,相当于每次判断的时候都会以变量最新值来判断是否满足循环条件,而不是一直保持初次进行判断时候的值。如for col in cols:如果循环体中改变了cols,那么下次循环时cols就按最新的来。for col in cols:看着像是以cols中的元素值进行判断,其实使用的是索引,每次循环其实改变的是索引i, col是以索引取出的值cols[i]。结合上一条容易发.

2021-04-06 14:04:04 4349

原创 雷达图 The number of FixedLocator locations (13), usually from a call to set_ticks, does not match the

The number of FixedLocator locations (13), usually from a call to set_ticks, does not match the number of ticklabels (12).最近在使用matplotlib绘制雷达图时,出现了如上所述问题。我建立时序预测模型对风机的各项参数做了预测,最后想可视化这些参数各自的预测误差。解决方案:保证绘图时feature和values数量一致:函数内代码第三行后加上feature=np.con

2021-04-06 09:50:56 21134 5

原创 使用excel绘制统计分布表(T分布表)

最近写项目书需要用到T分布表、卡方分布表,但是网上搜到的图片清晰度都不够高,放在项目书里不好看,而且想要的参数也不一定在表中,还是用excel自己来计算比较方便,记录一下用excel计算分位值的过程~(以T分布表为例,其他类似)计算T分布表将要计算的参数输入第一行和第一列第一行为分位点,第一列为置信度选择“插入函数”,并插入要计算的分布,我选择的是计算“T分布的左尾区间点”选择输入参数,点击确定,B2位置就计算出来自由度为1的左尾T分布0.75分位点把函数应用到剩.

2021-03-14 20:57:20 10674

原创 matlab根据纬度计算当地重力加速度

重力加速度计算公式:g=9.7803(1+0.0053024sin²ψ-0.000005sin²2ψ)ψ为物体所在处的地理纬度本以为将上述公式转换为matlab程序语言即可,但是转换完算了几个值发现都不太对,问了同学才知道,matlab里面三角函数公式用的弧度! 直接代入纬度值是不对的,要先转换为弧度才可。修改后代码如下:% 当地重力加速度latitude = latitude/180*pi;g=9.7803*(1+0.0053024*((sin(latitude))^(2))-0.0000

2020-11-04 10:03:48 4192

原创 小波系数的维度

计算小波方差时,涉及小波系数的概念,而我对这方面实在小白,很多基础东西都还不理解。特来整理并记录一下下。首先,看一下小波方差的概念。1.2.我的理解就是,小波方差就是每一尺度小波系数的平方和。当你用【19043X1】维的数据进行小波分析,分解层数设置为32,得到的小波系数的维度就是【32X19043】小波系数是没有量纲的,相当于用不同的尺子(尺度)测量得到的数字,需要经过重构这些系数得到实际有量纲的信号。(测量过程可看作小波变换)在matlab中,求小波方差的语句为a = sum(ab.

2020-09-14 13:53:59 1391

原创 小波分解的尺度和层数

在理解小波系数的维度的时候,被小波分解的尺度和层数搞迷糊了,看了几个博客和文档,整理了自己的理解。先看小波分解过程以及频率的划分尺度和分解层数不是一个概念,但是有如下的关系:尺度与分解频率成反比分解层数是对频率范围进行一定的划分因此,分解层数和尺度是一一对应的,有几个分解层数就有几个尺度。尺度就像是把尺子,每个分解层都是在用不同的尺子对原始信号进行度量。所以,有几个分解层数就有几把尺子。而分析频率决定了分解层数,即需要用到多精细的尺子来对信号进行度量。参考链接:小波变化与小波降噪小波.

2020-09-14 12:58:53 15685

原创 写论文要注意的地方

记录从第一次写并反复修改论文的过程中学习到的东西,下次写论文的时候多注意英文论文,同一个表述尽量前后一致,不能一会用wind turbine health status prediction,一会用 the prediction of wind turbine health status一些有固定缩写的名词在第一次出现的时候要写全称,后面再用缩写。比如 long short-term memory(LSTM)图表都要自己重新画,保证清晰度(图片尽量用矢量图,也可以导出PDF再截图插入)

2020-09-12 21:50:50 143

原创 MATLAB R2019a绘制时序数据小波方差图[新手向/保姆级]

本来是想画时间序列数据的小波方差图,看看数据的周期特征,结果实验效果差到怀疑人生哈哈哈哈哈,并没有达到我一开始的目的。不过还是学会了怎么用MATLAB来算,也算是有一丢丢收获吧~打开MATLAB,点击‘导入数据’找到自己Excel文件所在位置,选中,点击“打开”打开后界面如下,注意输出类型处选择列向量(默认是“表”),不然会出现“file matlab.mat doesn't contain one dimensional signal”的报错点击右上对勾图标,将文件转换为MATLAB读.

2020-07-26 21:17:54 6455 17

原创 python数组取2的倍数列,3的倍数列

小张太太太快乐了哈哈哈哈哈哈,感觉发现宝藏,本来只是会取数组的奇偶列,今天需要用到3的倍数列,除3余1列,除3余2列,就想着用取奇偶列的方法试一试,结果发现真的可以!开心!那推而广之,可以取任意数的倍数列,以及倍数有余列了。2倍数import numpy as nptest = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])#奇数列test1 = test[:,::2]#偶数列test2 = test[:,1::2]print("test1:.

2020-07-16 10:44:13 3784

原创 产生连续数字列表

日常编程中,常需要产生一些连续数字的列表,但是一个一个写入数字又很麻烦,可以用如下语句解决。x = list(range(1,12))#输出为 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

2020-07-12 10:40:46 1415

转载 pycharm在全局搜索某个变量

吃了写代码不规范的亏。。。明明记得之前写过某个功能,但是因为文件命名太随意,“123”,“111”,“a”,“test”等不知所谓的名称都被我用上了,以至于找代码时候焦头烂额,以后一定要养成规范命名的好习惯。不过如果已经这样写了,需要找某个函数时,可以用全局搜索的方式,通过找关键字,定位函数,定位文件。具体操作参看:pycharm如何全局进行查找一个关键词...

2020-07-10 11:07:03 2985

原创 python对dataframe时序数据按时间顺序读取

数据#使用pd读取数据data = pd.read_csv('E:\\2019data\\diff_turbine\\2019WT04990.csv', encoding='utf-8')print(data.head())data = data.sort_values(by = 'TO_CHAR')print(data.head())输出参考链接:pandas dataframe按日期排序

2020-07-09 20:54:46 5579 2

原创 风力发电机 有功功率 无功功率 理论有功功率

我做的风机数据处理方面的研究。今天看数据的时候,有些属性着实让我懵了好久。现在记录一下变量含义,以免之后再犯迷糊。有功功率发电机产生的能实际做工的那部分功率(相当于产生了实际功效的那部分功率)。比如 使灯泡亮起来的功率无功功率用来建立磁场的那部分功率(不产生实际功效)。比如 灯泡亮起来之前建立的那部分磁场理论有功功率理论上要产生的有功功率,但因为实际情况中各因素的影响,实际有功功率会有所偏差。比如 因为电网中用户数量增多,并联数量变多,导致实际产生的有功功率与理论有功功率存在偏差。..

2020-07-09 11:32:11 4031 1

原创 构造自己的数据集并用dataloader加载

在进行神经网络训练时,常会将数据分成batch进行训练,为了方便数据的加载和输入,常需要继承dataset类来重新组织自己的数据,并使用dataloader加载继承dataset ,定义dataloader#继承 Dataset类 ,将自己的数据构造成dataloader可以处理处理的形式class DealDataset(Dataset): def __init__(self): self.x_data = train_X self.y_data =.

2020-07-08 18:56:17 3826

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除