【编程学习】数据分析岗常见SQL面试题
不点任何东西的顾客 Customers 表: 12345678+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || name | varchar |+-------------+---------+在 SQL 中,id 是该表的主键。该表的每一行都表示客户的 ID 和名称。 Orders 表: 123456789+-------------+------+| Column Name | Type |+-------------+------+| id | int || customerId | int |+-------------+------+在 SQL 中,id 是该表的主键。customerId 是 Customers 表中 ID 的外键( Pandas 中的连接键)。该表的每一行都表示订单的 ID 和订购该订单的客户的 ID。 找出所有从不点任何东西的顾客。 以 任意顺序 返回结果表。 12 ...
【编程学习】大数据平台基础课程要点总结——R语言实现多线程
在此附上老师教学课件地址: 引用站外地址 Big Data Essentials Yanfei Kang. Ph.D. 由于学的时候用的英文,懒得翻译,就直接英文输出了~~~ Let’s check how many cores can you use by R language? 123library(parallel)nCores <- detectCores()nCores PARALLELIZE USING parallel multicore, snow, foreach The parallel package was introduced in 2011 to unify two popular parallisation packages: snow and multicore. The multicore package was designed to parallelise using the fork ...
【编程学习】大数据平台基础课程要点总结——爬虫
在此附上老师教学课件地址: 引用站外地址 Big Data Essentials Yanfei Kang. Ph.D. 爬虫 html解析 正则表达式 12345678import re# 示例HTMLhtml = "<p>这是一个示例 <a href='https://example.com'>链接</a></p>"# 使用正则表达式提取链接links = re.findall(r'href=['"]?([^'" >]+)', html)print(links) # 输出: ['https://example.com'] Beautiful Soup 1234567891011from bs4 import BeautifulSoup# 示例HT ...
【编程学习】大数据平台基础课程要点总结——Linux基础操作
在此附上老师教学课件地址: 引用站外地址 Big Data Essentials Yanfei Kang. Ph.D. Linux简单操作 basic 12345678910111213141516171819202122232425262728ssh username@ip # 登录Linux服务器whoami # 当前登陆用户名pwd # 当前工作目录ls # 当前目录下文件ls /home # /home目录下文件ls -lstah # 当前目录下文件详细信息~ # 当前用户根目录,等价于/home/username. # 当前目录.. # 上一目录cd /home # 更换目录到/homemkdir a # 创建文件夹armdir a # 删除文件夹atouch a.txt # 创建文件a.txtcp a.txt b.txt # 复制文件a.txt为b.txtmv a.txt /a/a.txt # 把a.txt移动到a目 ...
【数理知识】显著性水平与两类错误
假设检验 给出零假设和备择假设: 零假设和备择假设是参数空间的真子集,且不能相交。 常把没有把握不能轻易肯定的命题作为备择假设H1H_1H1,而把没有充分理由不能轻易否定的命题作为零假设H0H_0H0。或者说我们将希望通过实验结果推翻的假设记为零假设H0H_0H0。 根据备择假设确定检验方向: 备择假设含≠则为双尾;含<或>则为单尾,含<为左尾,含>为右尾。 判断抽样分布类型: 主要判断抽样分布是否近似正态分布 确定检验类型及检验统计量:在判断用什么检验的时候,首要考虑的条件是样本量,其次是总体服从的分布。 样本容量大时(统计学上一般认为n≥30),总体的均值和标准差未知,不要求总体近似服从正态分布。根据中心极限定理,样本容量大,则样本均值的抽样分布服从正态分布,总体标准差可以用样本标准差来估计,可用Z检验; 当样本容量小于30,且满足总体近似服从正态分布时,如果总体标准差已知,可用Z检验; 当样本容量小于30,且满足总体近似服从正态分布时,如果总体标准差未知,可以用样本标准差去估计总体标准差,由此可用T检验;(z=t=Xˉ−μ ...
【知识分享】学习了解AB-test分析框架
AB测试(也称为随机对照实验)是一种广泛用于评估两个或多个处理方法之间差异的实验设计。在AB测试中,参与者被随机分配到不同的处理组(如A组和B组),每个处理组接受不同的处理方法(例如不同的网页设计、广告策略或产品功能)。通过比较处理组之间的差异,可以评估特定处理方法对于目标指标的影响,如用户转化率、点击率、销售额等。 AB测试通常包括以下步骤: 确定目标指标(KPI):明确需要评估的主要指标,例如用户行为、收入等。 制定假设:提出预期处理方法对目标指标的影响假设。 随机分配:将参与者随机分配到不同的处理组,以消除潜在的偏差。 实施处理方法:对每个处理组应用相应的处理方法。 数据收集:记录参与者的反馈和行为数据。 分析结果:使用统计方法比较不同处理组之间的差异,确定处理方法对目标指标的影响。 做出决策:根据分析结果决定是否采用新的处理方法。 这么说来A/B test很简单,但是在实施过程中有很多要点需要注意: 测试时长:在进行AB测试的时候,时长不宜过短,否则参与试验的用户几乎都是产品的高频用户,无法获得最有效的数据。 注意新鲜劲数据陷阱:用户对于产品中的新功能往往会产生好奇,而这 ...
【编程学习】用numpy求解线性回归并使用numba加速
在平时使用python进行线性回归时,我们通常使用的都是sklearn库或statsmodel库,这固然是被各路大神优化过无数次的代码了。但是如果在计算线性回归的过程中嵌套很多其他的步骤,可能就会较为耗时,这两个库的优化效果是没有办法提升其他部分的效率的。而numba库可以有效地提高numpy库中的大部分函数与绝大部分的python原生函数,而且使用方法简单,只需要添加一行代码,是极佳的提升效率的方案,使用numba就可以实现对多次线性回归的高效计算了。那就让我们依次进行吧~ 使用numpy线性回归 对于多元线性回归模型: y=β0+x1∗β1+x2∗β2+...+xn∗βny = \beta_0 + x_1*\beta_1 + x_2*\beta_2 + ... + x_n*\beta_n y=β0+x1∗β1+x2∗β2+...+xn∗βn 我们有m个样本用以计算回归模型,并由此构建出m个方程: {y1=β0+x11∗β1+x12∗β2+...+x1n∗βn+αy2=β0+x21∗β1+x22∗β2+...+x2n∗βn+α...ym=β0+xm1∗β1+xm2∗β2 ...
【知识分享】互联网企业用以评价的几个指标
今天就聊聊互联网分析常用的数据指标,给大家详细讲解最常用的12个。所有有用户参加的活动,一定离不开下面三个步骤,也就是业务分析的三段论 用户数据:谁? 行为数据:干了什么? 业务数据:结果怎样? 而这12个指标,就是用来从不同角度度量这三个流程,并完成最终分析。 用户数据 DAU也就是日活跃用户量,是衡量在一天内使用特定产品或服务的活跃用户数量的指标。活跃用户是指在一天内至少进行了一次与该产品或服务相关的有效互动的用户。DAU通常被用来评估产品或服务的日常受欢迎程度和用户参与度。这个指标对于在线平台、社交媒体、游戏、应用程序等各种类型的数字产品都是非常重要的,因为它提供了关于用户行为和参与度的重要见解,可以用来指导产品改进、用户增长策略和商业决策。类似的还有WAU(周活跃用户量)、MAU(月活跃用户量),可以根据需要来使用。 新增用户量顾名思义,指的是每天、每周或每月新注册的用户数量。这个指标衡量了在特定时间段内,新用户加入一个平台、产品或服务的速度和规模。新增用户指标对于衡量用户增长、评估市场营销活动效果以及监测产品或服务的受欢迎程度都非常重要。通过监控新增用户指标,企业 ...
【数理统计】从头开始时间序列-Day1
为了应对即将到来的求职季,也为了巩固一波基础知识,我打算从头学习一下时间序列分析的基础知识。事实上我也没有真正系统地学习过,都是有基础的了解,然后随时使用,随时查找资料。这样的程度可是没有办法应付面试官的,静下心来开始吧!!! 首先,我们要了解时间序列分析过程中的一些基本用语,时间序列(XtX_tXt)就是按时间顺序排列的随机变量序列。时间序列的观测样本(xtx_txt)就是对时间序列各随机变量的观测样本,一定是有限多个。时间序列的一次实现/一条轨道(X(t)X(t)X(t))是时间序列的一组实际观测。时间序列分析的任务(x(t)x(t)x(t))是对时间序列数据的建模,解释、控制或预报。 以上是对时间序列的基本了解,其他的专业术语我们随时遇到随时解释。 时间序列分解 时间序列分解是指将序列中的各个数据根据不同来源拆分成不同的数。通常我们会将一个序列分解为趋势项,季节项,随机项,有时还会有随机周期项 对于时间序列的固定的周期季节项S(T)S(T)S(T),以及周期长度sss我们进行如下假设: ∀t,S(t+s)=S(t))∑j=1sSj=0\forall t, S(t+s) = ...
【编程学习】基本排序算法的python实现
冒泡排序(Bubble Sort) 冒泡排序是一种简单的比较排序算法,它重复地遍历要排序的列表,一次比较两个相邻的元素,并将它们按照顺序交换位置,直到整个列表按照所需顺序排序完成。在每一次遍历过程中,较大的元素会像气泡一样逐渐上浮到列表的顶端,故得名“冒泡排序”。 冒泡排序的时间复杂度为O(n2)O(n^2)O(n2),其中n是要排序的元素个数。这是因为在最坏情况下,需要进行n(n−1)2\frac{n(n-1)}{2}2n(n−1)次比较和交换操作,以确保列表完全有序。在最好情况下,如果列表已经是有序的,只需要进行一次遍历。 冒泡排序的空间复杂度为O(1)O(1)O(1),即不需要额外的存储空间,排序过程中只需要常量级别的额外空间用于临时变量的存储。 1234567def bubble_sort(x): end_p = len(x) while end_p > 1: for i in range(1, end_p): if x[i-1] > x[i]: x[i], x[i-1] = x[i-1 ...
【商业分析】波士顿矩阵分析模型
波士顿矩阵(BCG Matrix) 波士顿矩阵(BCG Matrix)又称市场增长率-相对市场份额矩阵、波士顿咨询集团法、四象限分析法等。是根据业务的销售增长率与相对市场占有率的高低,对业务进行分类管理与处置的分析方法。按照波士顿矩阵的原理,产品市场占有率越高,创造利润的能力越大;另一方面,销售增长率越高,为了维持其增长及扩大市场占有率所需的资金亦越多。这样可以使企业的产品结构实现产品互相支持,资金良性循环的局面。按照产品在象限内的位置及移动趋势的划分,形成了波士顿咨询集团法的基本应用法则,也就是将业务分为四种类型: Stars-明星型业务(高增长、高份额) 该类型业务中涉及的产品正处于蓬勃发展的市场中,并且已经占据了主导地位的市场份额。然而,这些产品或者业务不一定会产生正现金流,这取决于公司对新工厂、设备和产品开发所需投资的程度。明星型业务通常是由问题型业务不断投资和发展而来,它们在高速增长的市场中扮演着领导者的角色,并有望成为公司未来的现金牛业务。但是这并不意味着明星业务就能稳定提供现金流,因为市场仍在高速增长,公司必须持续投资以与市场同步增长,并击败竞争对手。因此,将明星型业务 ...
【商业分析】SCP分析模型
SCP模型 SCP模型是贝恩(Bain)、谢勒(Scherer)等人于20世纪30年代提出的。通过SCP模型可以分析企业在受到外部冲击时,可能出现的战略调整与行为变化,并从S、C、P这三个角度进行分析。 其中S是Structure的首字母,主要是指外部各种环境的变化对企业所在行业可能造成的包括行业竞争情况、产品需求、细分市场、营销模型等方面的变化。 C是Conduct的首字母,主要是指企业针对外部的冲击和行业结构的变化,有可能采取的应对措施,包括企业方面对相关业务单元的整合、业务的扩张与收缩、营运方式的转变、管理的变革等一系列变动。 P是Performance首字母,主要是指在外部环境方面发生变化的情况下,企业在经营利润、产品成本、市场份额等方面的变化趋势,也就是企业的成果与绩效。 此外,我们说到的可能出现的外部冲击(Shock)包括主要是指在外部环境方面发生变化的情况下,企业在经营利润、产品成本、市场份额等方面的变化趋势。 SCP模型在行业分析上主要有以下三种优势: SCP模型要求一个更加严格的战略分析过程,而不仅是定性的和描述性的分析; SCP模型着重把企业行为作为取得业绩的关键 ...
【编程学习】使用Python将SVG图片转变为PNG
前言 可缩放矢量图形(Scalable Vector Graphics,SVG),就是我们常使用的svg格式图片,他是基于XML标记语言,描述一个二维图像的矢量图形。作为一种以文本为基础的开放网络标准,SVG 具备了渲染各种大小图形的优雅简洁能力,并且能够与 CSS、DOM、JavaScript 和 SMIL 等其他网络标准完美交互。可以说,SVG 在图形表达方面扮演的角色,犹如 HTML 在文本呈现中的地位。 但是有些时候,我们不想使用svg格式,png或者jpg更符合我们的需求,这时候就需要想办法把图片格式转换一下。当然我们可以使用各种各样的在线工具,但是在遇到大批量转化的时候这个方法就显得捉襟见肘了。 自己写一段可以转化二者的代码无疑是一个最佳的方案,下面我就是用Python来实现这个目标。 Pyvips实现 这里主要用到的是pyvips库,最简单的,我们直接读取一个svg文件,然后输出到png文件中: 12345import pyvipsimage = pyvips.Image.new_from_file("a_svg_picture.svg", dpi=3 ...