Python函数式编程系列012:惰性列表之生成器与迭代器

2021-10-25
阅读 3 分钟
1.8k
因为本系列还是基于一些已经对Python有一定熟悉度的读者,所以我们在此不做非常多的赘述来介绍基本知识了。而是回我们之前的主题,我们要用迭代器和生成器实现之前的指数函数。

Python函数式编程系列011:类与类型

2021-10-19
阅读 3 分钟
1.4k
我在前面水管模型的叙述中,一直将函数式的假想敌人想象成「过程式」编程。这里当然我们就不免地对编程语言做一些简单的分类。许多人认为函数式编程相反的概念是面向对象编程,但其实这里存在了非常多的误解。我在前面的文章里,一直强调如果要使用一个新的概念,就必须至少在那篇文章里做说明。一路走来,函数式的基本...

Python函数式编程系列010:惰性列表之动手实现List

2021-10-18
阅读 3 分钟
2k
这篇文章,我们要动手实现一个List,不过和一般的文章不同,我们这里不用类来实现,而是用基本的数据结构,二元元组(a, b)和空元组()来实现。这两个都可以通过lambda直接定义出来,具体方法可以参考上一篇的内容。

Python函数式编程系列009:惰性列表之常规列表

2021-10-15
阅读 3 分钟
1.9k
我们在惰性求值中,我们介绍了「惰性列表」的概念,这个概念,其实在Python种也有部分原生支持。这就是很受新手困扰的生成器和迭代器了。但之前,我们首先要回顾一下关于列表的功能。

Python函数式编程系列008:可测

2021-10-13
阅读 2 分钟
1.3k
我们在之前的文章之中,已经反复地强调了很多函数式编程的优点,例如表达能力,延迟计算的好处之类的。但其实一个更大的有点其实是可测性。本篇文章也是传达整个系列要表达的核心,我们不是要完全排除过程式、副作用等概念,而是有限的使用,并且能在现有代码的基础上做改良。

Python函数式编程系列005:离题之定义自然数

2021-10-12
阅读 3 分钟
1.2k
在我们已经掌握了那么多建管子的方法之后,我们开始离题,看看我们能用最少的概念做哪些自举产生的事。在这一章中我们讲仅使用字符串"e",函数,if-else分支,=="e"运算,这四个概念来实现一个自然数的概念(实际中还用到了bool值,不过bool本身也可以用"e"和f("e")表示)。

Python函数式编程系列006:Y组合子与递归

2021-10-12
阅读 3 分钟
2.5k
在上一篇「离题」的文章中,我们介绍了如何单纯通过几个简单概念实现一个自然数的概念。这也告诉我们,其实函数式编程一个最核心的内容就是用最少的概念派生性地产生更多的概念来实现功能。这个不像Java之类的对象式语言需要的原生概念非常多,然后又需要更多的派生概念解决问题。

Python函数式编程系列004:递归

2021-10-12
阅读 3 分钟
1.5k
说到代码复用,最低层次的代码复用就是基于for/while等的递推(iteration)思路了,它们的策略在代码行的重复,我们可以看一下下面求幂的例子(这个例子将在之后会以各种面目出现):

Python函数式编程系列007:惰性求值

2021-10-12
阅读 5 分钟
2.9k
本系列文章一些重要的函数、方法、类我都实现的一遍,你可以在github(点击此处)中找到代码和测试例子(如果网速过慢我也放了一份在gitee(点击此处)上,但请勿在gitee上提issue或者留言),欢迎star/fork。

Python函数式编程系列003:一等公民

2021-09-24
阅读 3 分钟
1.5k
这篇文章里,我们将讨论一个函数式编程的重要概念,「函数是一等公民」,顺便引出科里化、Partial Applied Function、多元函数的概念。

Python函数式编程系列002:水管模型和compose

2021-09-24
阅读 2 分钟
2k
过程式思维里,每一个可变变量、函数/过程指称的符号,类似告诉你一个屋子的名字。对一个静态语言来说,我们可能还需要屋子里只能放什么东西。然后,我们每一次调用一次函数/过程,就是将对对应屋子里的函数取出来,以及其他屋子里的物件取出来,按照函数的方式重新整理,把结果放到原先的屋子或者新的屋子里。(注意这...

Python函数式编程系列001:无副作用

2021-09-23
阅读 3 分钟
2.6k
这个博客的目的本来是讨论数据(用\(\tau\)表示)和函数式编程/计算机科学(用\(\lambda\)表示)的两类主题的。但事实上,本博客还没写过任何关于函数式编程的内容,显得有些「名不副实」。而近几年在一些项目上和自己理论学习中的实践,对于函数式编程有了一些不大不小的洞识。希望能借由这个系列来给大家传递一些函数式...

比例类数据的差异性检验与AB测试的终止点

2021-01-05
阅读 4 分钟
5.7k
在实际业务中,我们经常会遇到频率类事件的假设检验,这类数据包括:留存率、点击率、转化率。我们甚至可以把大多数AB测试类的场景都理解为「频率的假设检验」。本文试图创建一个一般性的频率假设检验工具的EXCEL实现,并介绍其工作原理。文件参考这里(https://github.com/threecifanggen/data-science-tools/blob/maste...

Awesome Data Science in Python | 一文整理Python常用数据科学第三方模块

2019-06-16
阅读 1 分钟
3.6k
1. 机器学习 EDA lantern 特征工程 yellowbrick Featuretools 模型解释 SHAP Lime 通用 Scikit-learn 自动化机器学习 mljar-supervised 2. 统计方法 通用 StatsModels:通用概率派 Scipy:含常见分布、统计量计算 pyro:基于pyTorch的通用统计模型库 Edward:基于tensorflow的通用统计模型库 贝叶斯 PyStan:贝叶斯模型(...

如何优化基于Jupyter的分析/挖掘测试项目

2018-11-04
阅读 5 分钟
3.5k
对于一个有软件工程项目基础的程序员而言,我们这群来源「可疑」的Data Scientist最被人诟病的就是期代码质量堪忧到让人崩溃的程度。本篇文章将介绍自己在以python/Jupyter Notebook为基础的分析/挖掘项目时是如何优化代码使其具有更大的可读性(执行效率不是本文的主要目的)。

用进度条助您特征工程一臂之力

2018-08-18
阅读 3 分钟
9.6k
在具体的分析或者特征工程之中,经常会遇到处理时间很久的问题,当然必要的优化是必须的。但是显然,数据量上升,计算量过大后,处理时间是必须的此。时,如果有个可以帮助您查看任务进度的进度条,必定可以提高你抓住处理时间去做(磨)别(洋)事(工)。当然逐行打印是不错的选择,但在Jupyter notebook/JupyterLab中...

用户行为与生存分析

2018-08-06
阅读 7 分钟
8.1k
生存分析(Survival Analysis)来源于基础医学领域,最早用来研究各种治疗方案对病人寿命的影响。而寿命则用一个end event(死亡)的方式衡量。基本定义如下:

Jupyter 常见可视化框架选择

2017-11-02
阅读 9 分钟
11.3k
对于以Python作为技术栈的数据科学工作者,Jupyter是不得不提的数据报告工具。可能对于R社区而言,鼎鼎大名的ggplot2是常见的可视化框架,而大家对于Python,以及Jupyter为核心的交互式报告的可个视化方案就并没有那么熟悉。本文试图比较几个常用的解决方案,方便大家选择。

装扮你的Jupyter

2017-05-05
阅读 5 分钟
14k
又到摆脱重复工作,换个心情,然而并没有软用的时间了。这次,教大家如何搭建一个好看的jupyter环境。 安装Jupyter 先来展示一下我的环境 python: 3.5.* macos: 10.12.4 安装Jupyter的过程只需安装Anaconda即可。 测试一下初始设置: {代码...} 配置ipython 首先,如果每次你打开一个nb(notebook)时,如果都需要载入一...

数据指标/表现度量系统(Performance Measurement System)综述

2017-02-14
阅读 4 分钟
9.3k
传统的定量管理学中,一直是采用单个混合指标或者财务指标(financial index,大多数称为财务度量,financial measurement)做决策,但主要的缺点就是滞后性以及无法管理细节被人诟病1。

从原理推导逻辑斯蒂回归——Logit变换和潜在因子误差

2017-01-08
阅读 3 分钟
8.6k
逻辑斯蒂回归(Logistic Regression,以下简称LR)的应用还有工程学的思路一般介绍地都很清楚,大多数方法都从Sigmoid函数开始。本博文试图通过其他视角来重新理解LR是如何推导的。

与相关系数相关的二三事

2016-12-24
阅读 4 分钟
12.1k
Let me think... 我们什么时候学过相关系数(Correlation)一个词语。对了,就是验证模型好坏的R方里面的R。在R语言里调用也很简单:

完整数据团队Tips(关于BI系统、数据仓库、数据挖掘和数据实验的27条建议)

2016-12-22
阅读 2 分钟
4k
有没有明确的用户行为定义,还是说只有PV? 查看PV是了解用户在做什么的最快方法,但是还有其他更重要的事。如果以后考虑到要升级网站或者APP,那么最好的方法是将PV转化成定义好的并且清晰的事件,例如注册、购买等等。

Python来做假设检验

2016-11-28
阅读 2 分钟
21.1k
对于任何一个频率派的数据科学家而言,日常做数据分析难免还是会用到一些假设检验方法做一个数据探索和相关性、差异性分析,并且这也是做后续统计模型(机器学习类预测模型可以略过)预测的第一步。

梯度下降法变种的汇总

2016-09-24
阅读 3 分钟
9.5k
在各类优化方法中,梯度下降法(Gradient Descent)是最为常见的策略。这里将对一些常见的梯度下降法的变种做一个梳理。方便大家更好地理解梯度下降法的应用域。

双坐标轴?绝对的反人类设计(可视化误区系列之一)

2016-05-29
阅读 5 分钟
9.6k
It's not possible in ggplot2 because I believe plots with separate y scales (not y-scales that are transformations of each other) are fundamentally flawed. Some problems: The are not invertible: given a point on the plot space, you can not uniquely map it back to a point in the data space. They a...

Python 和 R 数据分析/挖掘工具互查

2016-05-01
阅读 5 分钟
14.8k
在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种。当然,这篇博客还会随时更新(不会另起一篇,为了方便大家索引),请大家如果有需要收藏到书签中。

Making Your Python Codes More Functional

2016-03-14
阅读 3 分钟
3.9k
本篇文章是基于Joel Grus: Learning Data Science Using Functional Python视频的笔记。 常用的函数 currying 在Python中实现科里化的最佳方案是functools.partial。例如以下例子: {代码...} reduce、map、filter 这几个是常见的FP中处理列表的函数,在此不做介绍。 注意:Python这得reduce在functools包中。 iterators...

一起来复习Data Science:那些让人抓狂的回归分析

2016-02-15
阅读 3 分钟
9.2k
回归分析(regression analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。在此,我讲会从机器学习和统计学两个方面分别描述回归在两个领域中的区别。

一起来复习Data Science:统计学中那些让人容易遗忘的知识点

2016-02-03
阅读 3 分钟
7.8k
1 描述性统计和预测性统计 描述性统计(Descriptive Statistics) 描述性统计是用来描述数据现状的统计量,描述性统计包括以下值: 均值(Mean) 中值(Median) 范围(range,包括最大值和最小值) 方差(SD) 标准差(Var) 预测性统计(Predictive Statistics) 预测性统计是使用历史数据加上数据挖掘、机器学习等方法...