自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

思过留痕

乘兴所至 心无旁及

  • 博客(289)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 ClickHouse函数整理(详细)

无标题.md 1、日期类函数  1.1 时间或日期截取函数(to)—— 返回非日期函数用途举例结果toYear()取日期或时间日期的年份toYear(toDateTime('2018-12-11 11:12:13'))             &nbsp

2018-12-25 16:24:29 111858 14

原创 ClickHouse常用函数统计

1、统计类函数1.1 分位数90%分位数:quantile(0.9)()在求(平均)响应时间时用到,quantile(0.9)(url_rt)1.2 中位数median()还未使用到,median(url_rt)1.3 相关系数计算x与y的相关系数,计算公式:∑(x−x‾)(y−y‾)∑(x−x‾)2∑(y−y‾)2\dfrac{\sum(x-\overline{x})(y-...

2018-10-16 11:10:51 54984 6

原创 ResNet

为什么引入残差网络?我们可能会想到网络越深拟合越好,然而并非如此,很深的网络很容易导致网络退化问题,增加shortcut mapping有利于梯度传播。加入直连部分,可以使得梯度从后向前传播,网络扩展到上千层。warm up用一个较大的模型训练时,采用较小的学习率(小于一般状况下10倍的学习率)预热模型一个epoch步,随后增大学习率。网络开始迅速降低分辨率四阶段残差结构池化 + RC输出...

2020-10-30 14:47:45 350 1

原创 M5 Forecasting - Accuracy:Memory Optimization

进入M5,首先要解决的就是内存问题。我在此过程中感受深刻,也学到了很多,下面说一下我的心路历程。我先列出来几个数字。整个过程(数据处理(不包括EDA)、特征构造、训练、预测)执行时间14hour+。设备30G内存,60G磁盘(保证缓存数据存储),8核CPU,系统CentOS Linux release 7.7.1908 (Core)。总结起来大概就是:(6列id + 1914天销量)*30490个商品,其他的价格和节假日不考虑。我做了什么?最开始我对内存消耗没有概念,觉得我的设备不错,不会存着

2020-08-30 02:45:59 710 1

原创 M5 Forecasting - Accuracy:Multi-time series prediction with prophet

文章目录总览细节:数据说明1. 创建数据1.1 导入和重塑销售数据1.2 导入日历数据1.3 导入价格数据2. Building DataFrame3. 聚合LEVELSCOARSER4. Prophet聚合数据预测关于Prophet预测的数据形式和参数含义4.1 预测模型定义4.2 预测一部分按照ID聚合之后的时间序列看看情况4.3 所有聚合时间序列预测5. 重新规划要预测的最细粒度的时间序列数6. 小部分序列细粒度扩展计算结果6.1 结果计算函数6.2 预测一部分时间序列看看结果说明预测的思路6.3 可

2020-08-25 01:36:24 8717 1

原创 M-Competition历史你值得一读

Makridakis竞赛(又称M竞赛或M-Competitions)是由预测研究员Spyros Makridakis领导的团队组织的一系列公开竞赛,旨在评估和比较不同预测方法的准确性。更多请点击Makridakis Competitions1. 它的存在有点感动第一届M始于1982,比赛至今已有5届了,时间久远令感神圣,持续研究与发现的精神令人敬畏,可以算是神圣的M。由于M的存在,开创了很多新的算法,像M3的Theta method ,再如M4的Slawek Smyl’s Hybrid Expone

2020-08-06 11:22:18 1420

原创 时间序列预测中特征构建

传统统计学习方法: naive approach, moving average, Holt linear, exponential smoothing, ARIMA, and Prophet现代机器学习方法: 树模型等深度学习方法: LSTM、Seq2seq、Transform-XL等树模型需要人为构建特征,同时预测值不可超越区间内取值的上限。深度学习网络,可以发现输入数据之间的交互关系,同时可以发现趋势。根据数据可以尝试不同的方法,选择较优的方法。下面是树模型的构造特征的方法。1. 时间戳特

2020-07-30 21:35:49 5819 4

原创 KDD Cup 2020 - Debiasing:user-item feature

Written by wanping7from datetime import datetime# data processimport numpy as np, pandas as pdfrom datetime import datetime, timedelta# visualizeimport seaborn as snsimport matplotlib.pyplot as plt%matplotlib inline%config ZMQInteractiveShell.a

2020-07-14 12:38:22 434

原创 KDD Cup 2020 - Debiasing:user feature

Written by wanping7from datetime import datetime# data processimport numpy as np, pandas as pdfrom datetime import datetime, timedelta# visualizeimport seaborn as snsimport matplotlib.pyplot as plt%matplotlib inlineimport plotly.express as pxi

2020-07-14 12:24:20 366

原创 KDD Cup 2020 - Debiasing:item feature

Written by wanping7from datetime import datetime# data processimport numpy as np, pandas as pdfrom datetime import datetime, timedelta# visualizeimport seaborn as snsimport matplotlib.pyplot as pltget_ipython().run_line_magic('matplotlib', 'inli

2020-07-14 12:12:15 485

原创 M5 Forecasting - Accuracy:TimeSeries_Seq2seq

来源https://github.com/JEddy92/TimeSeries_Seq2Seq/blob/master/notebooks/TS_Seq2Seq_Conv_Full_Exog.ipynb假设145063个样本,时间序列2015-2016一共550天。Page2015-07-012015-07-022015-07-032015-07-042015-07-052015-07-062015-07-072015-07-082015-07-09…2016

2020-06-29 15:24:50 856

原创 M5 Forecasting - Accuracy:EDA

sales_train_validation.csv参考:Python版本EDA+传统时间序列方法:https://www.kaggle.com/tarunpaparaju/m5-competition-eda-modelsmodel:naive approach, moving average, Holt linear, exponential smoothing, ARIMA, and ProphetR版本EDA:https://www.kaggle.com/headsortails/b

2020-06-29 15:17:34 983 1

原创 M5 Forecasting - Accuracy:Description

IntroductionWelcome to an extensive Exploratory Data Analysis for the 5th Makridakis forecasting competitions (M5)! This notebook will grow over the coming days and weeks into a deep dive of all the relevant aspects of this challenge. Here’s all you need

2020-06-29 15:17:05 866

原创 permutation importance

哪些特征对预测的影响最大? 这或许是对一个模型提出的最基本问题之一。这个概念就是所谓得到特征重要性。有多种方法来衡量特征重要性。这篇文章Machine Learning Explainability Home Page采用了permutation importance(在此简称PI)方法。PI思路常规思路,我们或许很容易想到,在训练模型的时候很容易得到特征得到重要性,比如树模型直接可以输出特征重要性,但是这个特征对整体的预测效果有多大影响啊?我们可以这样做,首先让全部特征参与训练然后预测得出scor

2020-06-17 17:31:57 5425

原创 python modin加速

modin参考BASE = '../data/output/grid_part_1.pkl'# Read data with Pandasimport pandas as pdstart_time = time.time()df = pd.read_pickle(BASE)print("Pandas Loading Time = {}".format(time.time() - start_time))# Read data with Modinimport modin.panda

2020-06-15 12:41:12 565

原创 lightgbm GPU编译以及安装超详细讲解

1. lightgbm GPU编译点击链接 找到Build GPU Version或者直接看如下内容。下面说的内容用到相关测软件确保没问题,1.检查是否安装,2.检查安装版本是否满要求!!!LinuxOn Linux GPU version of LightGBM can be built using OpenCL, Boost, CMake and gcc or Clang.The following dependencies should be installed before compil

2020-06-13 20:51:30 3461 1

原创 Centos7安装Anaconda3配置jupyter notebook问题攻略

wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.shbash Anaconda3-2020.02-Linux-x86_64.sh这里有一些细节,我安装的最新版anaconda,1)提示路径的时候我是自己指定安装路径2)提示Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no],我选择的no,我自己去添.

2020-06-08 12:11:18 1512 1

原创 大数据集Hierarchical Indexing优化方案

1. 对比The bad way优化之前:30min跑不出来。prices = prices.set_index(["id", "date"])[["sell_price"]].unstack(level=-1).fillna(False)The Better Way: Pandas MultiIndex优化之后:MultiIndex方案两分钟不到。index = [list(prices.id), list(prices.date)]index = pd.MultiIndex.from_a

2020-05-12 08:38:19 411 3

原创 插排之希尔排序算法

步骤将数据分成d = n//2 组,每一趟希尔排序从元素d开始,采用直接插排。每个元素的比较和插入均在同一组内进行。更新d = d//2 。直到d=0时停止,当d=1时,相当于对近乎有序的结果进行一次完整的直接插排。​图解图片来源复杂度时间复杂度:最好的情况,时间复杂度O(n)O(n)O(n)。最差的情况,时间复杂度(n2)(n^2)(n2)。平均的...

2020-03-25 12:59:08 371

原创 交排之冒泡排序算法

步骤从最后一个元素开始,进行相邻两元素比较,若前后元素是逆序,则实施交换。第一遍下来,排在第一个元素是最小的元素,称为有序区(也是全局有序区),其余的是无序区。之后,按照第一步的方法继续在其余的无序区进行比较、交换。直到所有元素都划分到有序区(即无序区为空)。改进:若元素在一趟冒泡的过程中未发生交换,则说明数据已经全部有序,就无需继续冒泡下去,直接输出即可。图解图片来源...

2020-03-25 12:56:49 316

原创 交排之快速排序算法

步骤选取基准:从数据中选择一个数作为基准值(pivot),一般选择最左边。分区操作:将数据中小于基准的全部放在pivot的左边位置,其余放在右边位置。该(分区)操作完成之后,原来的基准会在数据的中间某一位置。递归下去,得到有序结果。图解图片来源详情List = [5, 1, 3, 2, 4],s = 0, t = 4基准值tmp = 5,i=s,j=tj从右向左移动,...

2020-03-25 12:53:21 414

原创 tf.data.Dataset.repeat、batch和shuffle

文章目录结论1. 导入2. 读取数据3. 计数器4. 实验4.1 Shuffle——》Repeat——》Batch4.2 Shuffle——》Batch——》Repeat4.3 Batch——》Repeat——》Shuffle4.4 Repeat——》Batch——》Shuffle结论操作结果先Shuffle每个Repeat的顺序都不一样后Shuffle所有的Re...

2020-03-23 22:48:14 1906

原创 Spark读写parquet

spark的parquet介绍列式存储布局可加速查询,只检查需要的列并对执行计算,也就是只读取一个数据文件或表的小部分数据。Parquet 支持灵活的压缩选项,可以显著减少磁盘上的存储。转换需要时间,时间长了一些。查询性能的提升在某些情况下可能达到 30 倍或更高,存储的节省可高达 75%。如果在 HDFS 上拥有基于文本的数据文件或表,而且正在使用 Spark SQL 对它们执行查...

2020-03-23 22:20:56 4695

原创 关于最大熵原理的理解

李航老师《统计学习方法》一书描述:最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。以上描述,读完一遍蒙圈,即使读了100遍可能还存在疑问。熵越小不是越确定嘛,咋就整成熵越大越好?为啥选择熵越大的模型?...

2020-03-23 22:01:40 1591

原创 Leetcode 994. 腐烂的橘子

Leetcode 994. 腐烂的橘子难度:简单用法:BFS在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。示例 1:输入:[[2,1,1],[1,1,0...

2020-03-22 19:24:37 348

原创 Leetcode 199. 二叉树的右视图

Leetcode 199. 二叉树的右视图难度:中等用法:BFS给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ ...

2020-03-22 19:20:21 315

原创 Leetcode 200. 岛屿数量

Leetcode 200. 岛屿数量难度:中等给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3...

2020-03-21 11:21:48 284

原创 Leetcode 3. 无重复字符的最长子串

Leetcode 3. 无重复字符的最长子串难度:中等给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。普通:思路:维护一个列表tmp,遍历s判断当前i是否在tmp中,若在,则找到i在tmp对应的index,并删除index以及之前的tmp取值。...

2020-03-18 18:58:58 159

原创 Leetcode 20. 有效的括号

Leetcode 20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 3:输入: “(]”输出: false思路:栈解法很简答,就不做图解了。cl...

2020-03-18 18:56:48 207

原创 Leetcode 111. 二叉树的最小深度

Leetcode 111. 二叉树的最小深度难度:简单用法:DFS给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.题目的重点在于...

2020-03-18 18:52:50 244

原创 Leetcode 19. 删除链表的倒数第N个节点

Leetcode 19. 删除链表的倒数第N个节点难度:中等给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?方法题解以及图...

2020-03-17 19:18:39 256

原创 互联网用户发起一次请求经历了哪些过程?

李智慧老师说得非常棒,下面引自李智慧老师的《大型网站技术架构:核心原理与案例分析》一书以及《从0开始学大数据》:首先,一个请求从Web或者移动App上发起,请求的URL是用域名标识的,比如taobao.com这 样,而HTTP网络通信需要得到IP地址才能建立连接,所以先要进行域名解析,访问域名解析服 务器DNS,得到域名的IP地址。得到的这个IP地址其实也不是淘宝的服务器的IP地址,而是CDN...

2020-03-01 21:28:43 919

原创 Python求列表的最大连续区间

题目:连续区间为公差为1的等差数列。输入:[1, 2, 99, 3, 4, 5, 6, 5, 4, 4, 2, 6, 3, 1, 8, 5, 3, 6, 1, 2, 3, 2, 3, 4, 5, 6]输出:[2, 3, 4, 5, 6]def get_continue_seq(str_list): ls = eval(str_list) len_ls = len...

2020-02-19 21:00:26 1734

原创 序列插入删除元素collections.deque

小云正在参与开发一个即时聊天工具,他负责其中的会话列表部分。会话列表为显示为一个从上到下的多行控件,其中每一行表示一个会话,每一个会话都可以以一个唯一正整数id表示。当用户在一个会话中发送或接收信息时,如果该会话已经在会话列表中,则会从原来的位置移到列表的最上方;如果没有在会话列表中,则在会话列表最上方插入该会话。小云在现在要做的工作是测试,他会先把会话列表清空等待接收信息。当接收完大量来自...

2020-02-17 11:48:09 351

原创 Python自定义句子反转函数

上一篇介绍字符串反转:字符串’hello’变成’olleh’,也就是反转字符串,尽量不用Python的函数,尽量节省时间与空间。这次句子反转,是在字符串反转的基础上的再次反转。要求:将句子’hello liming’变成’liming hello’(句子反转),尽量不用Python的函数,尽量节省时间与空间。sete = 'hello liming'# 单词反转def reverse_...

2020-02-01 11:51:56 1023

原创 Python自定义字符串反转函数

字符串’hello’变成’olleh’,也就是反转字符串,尽量不用Python的函数,尽量节省时间与空间。s = 'hello'def reverse_string(s): s = list(s) len_s = len(s) for i in range(len_s//2): temp0 = s[i] temp1 = s[len_s-...

2020-02-01 11:48:30 1061

原创 Python列表中含有相同字母的字符串做list嵌套归类输出

输入:[‘eat’,‘ate’,‘tea’,‘like’,‘kile’,‘liek’,‘ielk’]输出:[[‘eat’,‘ate’,‘tea’],[‘like’,‘kile’,‘liek’,‘ielk’]]a_list = ['eat','ate','tea','like','kile','liek','ielk']def list_group(a_list): len_list...

2020-02-01 11:47:03 3387

原创 Python高阶函数map、reduce、filter应用

定义map映射函数 map()通过接收一个函数F和一个可迭代序列,作用是F依次作用序列的每个元素,并返回一个新的list。reduce递归映射函数 reduce()把一个函数作用在一个序列上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做函数运算。filter过滤函数 filter()与map()类似,接收一个函数F和一个可迭代序列,只不过这里的函数F是条件判断函数。...

2020-02-01 11:31:11 248 2

原创 删除相邻的重复数据

def remove_same(ll): ll_len = len(ll) del_index = [] for i in range(ll_len): if i > 0: if ll[i] == ll[i-1]: del_index.append(i) import numpy as n...

2020-02-01 11:25:02 708

原创 判断字符串是否为Python标识符

import keyword,stringdef Identifier(s): #内置关键字 kw = keyword.kwlist # Bifs bifs = dir(__builtins__) s_list = list(s) # 关键字判断 if (s in kw) | (s in bifs): return '...

2020-02-01 11:21:12 954

Python编程:从入门到实践

Python编程路上一本不错的入门书籍

2017-06-08

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

TA关注的人

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