自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(281)
  • 收藏
  • 关注

原创 【数据分析】7 RFM&CLV&事件分析、用户旅途

是系统工程、风险管理及用户行为分析中用于追踪因果关系链的方法,核心目标是通过识别事件之间的依赖关系和时序性,解析复杂系统中多个事件如何逐步导致最终结果(如故障、转化或风险)。其核心思想是:用户的转化行为受多个触点影响,但越早的触点贡献随时间推移逐渐减小,反映了用户决策过程的时效性。用户在其与企业互动的整个生命周期内,预期贡献的总价值(包含潜在的未来价值),通常以货币形式衡量。用户在其与企业互动的整个生命周期内,为企业创造的总价值的总和,通常以货币形式衡量。它是用户运营、产品设计和商业决策的核心依据。

2025-03-14 16:26:40 679

原创 【数据分析】6 多维度业务指标体系搭建

一、搭建业务指标体系的目的明确核心目标确定北极星指标(North Star Metric),聚焦企业/业务为客户创造的核心价值,指导战略方向。北极星指标随业务阶段变化(如初期关注用户新增,中期关注交易额/复购率,后期关注收入与交叉营销)。快速定位问题通过指标下钻(Drill Down)和多维度切片(如区域、用户群体、业务单元),快速识别业务波动原因。依赖指标体系的完整性与关联性(如转化率与用户行为的联动分析)。指标下钻(Drill Down)

2025-03-06 10:20:47 1657

原创 【数据分析】5 设计不同业务分析框架

能够提供准确的效应估计和清晰的可视化结果,是政策分析、市场营销和产品发布等领域的重要工具。与传统的多个关键绩效指标(KPIs)不同,北极星指标强调聚焦于一个或少数几个最关键的因素,确保企业资源和努力都投入到真正影响业务发展的领域。通过科学的验证步骤,企业不仅能够提升产品的市场竞争力,还能增强品牌的核心价值,为长远发展奠定坚实基础。A/B测试是一种通过实验方法比较不同版本的着陆页面(A版和B版)的表现,以确定哪个版本能够更有效地引导用户完成目标动作(如注册、购买等)的优化手段。

2025-02-27 16:06:11 1194

原创 【数据分析】4 商业数据分析技能模型总结

BCG矩阵是分析企业产品组合或业务单元的重要工具。业务类型市场增长率市场份额特点策略现金牛业务低高现金流稳定,利润高收获(Harvest)明星业务高高潜力大,增长快投资(Invest)问题业务高低潜在风险高分析与评估(Analyze)瘦狗业务低低无潜力,资源消耗大清理与退出(Divest)通过这四个类型,企业可以更清晰地了解各业务的现状和潜力,并制定相应的管理策略!动态版本迭代产品线市场增速相对份额策略现金牛业务<5%>1.5x维持收割。

2025-02-23 15:14:01 1157

原创 【数据分析】3 数据分析成长之路

今天课程的核心内容围绕商业数据分析的职业发展路径以及数据流程的详细分解展开。课程结构回顾课程首先复习了上节课关于业务数据分析的三个阶段和六步过程,包括问题构建、分析问题及解决方案、结果传达与行动。然后引入了今天的主题——商业数据分析师的职业发展路径。职业发展路径分析商业数据分析师在职业发展中通常有两种方向:向上(技术深度)或向下(业务战略)。学生可以根据自身的兴趣和技术能力选择适合的发展道路。上向发展的机会包括成为高级分析师或行业专家,而下向发展则可能涉及战略分析和投资领域。企业数据流程分解。

2025-02-20 10:12:37 1103

原创 【数据分析】2.数据分析业务全流程

SCQ模型是一种用于。

2025-02-19 13:01:02 1561

原创 【数据分析】1 认识数据分析

总结来说,本课程旨在为商业数据分析领域的初学者提供全面的知识框架,帮助他们理解数据分析在商业中的应用,并通过后续模块进一步提升他们的专业能力和职业竞争力。

2025-02-18 22:42:38 1046

原创 【Webpack】样式处理 - 样式预处理

样式预处理是在开发中会使用一些样式预编译语言,如scss,less等,在项目打包过程中再将这些语言转换为css,借助这些语言强大和便捷的特性,可以降低项目的开发和维护成本。下面是目前最主流的两种预编译语言是如何配置的。

2024-05-27 21:47:38 601

原创 【Webpack】样式处理 - 分离样式文件

那么可以使用专门的插件extract-text-webpack-plugin、mini-cssextract-plugin,来解决这些问题,它们就是专门用来提取样式到CSS文件的。假设我们有 foo.js和bar.js,并且它们分别引用了 foo-style.css和bar-style.css,现在我们要通过配置使它们输出各自的 CSS文件。mini-css-extract-plugin 可以理解成extract-text-webpack-plugin 的升级版,它的特性是支持按需加载CSS。

2024-01-24 15:54:30 1324

原创 【Webpack】预处理器 - 常用loader介绍

有时会遇到现有 loader 无法很好满足需求的情况,这时就需要我们对其进行修改或者编写新的 loader。如前面代码所演示的一样,loader 本身其实非常简单,下面就从头实现一个loader在开发一个loader时,我们可以借助 npm/yarn 的软链能进行本地调试(当然之后可以考发布到 npm等)。下面让我们初始化这个loader并配置到工程中。创建一个 force-strict-loader 目录,然后在该目录下执行 npm初始化命令接着创建 index.js,也就是 loader 的主体。

2024-01-19 10:42:21 1103

原创 【Webpack】预处理器 - loader配置介绍

每个loader本质上都是一个函数。在 Webpack 4之前,函数的输人和输出都必须为字符串;在Webpack 4之后,loader也同时支持抽象语法树 (AST)的传递,通过这种方法来减少重复的代码解析。loader 可以是链式的。我们可以对一种资源设置多个loader,第一个loader 的输入是文件源码,之后所有 loader 的输入都为上一个loader 的输出。

2024-01-12 14:41:46 1273

原创 【python爬虫】设计自己的爬虫 4. 封装模拟浏览器 PyppeteerSimulate

Pyppeteer的背后实际上有一个类似于Chrome的浏览器–Chromium。Pyppeteer是Puppeteer的Python版实现。

2024-01-06 14:33:41 710

原创 【python爬虫】设计自己的爬虫 4. 封装模拟浏览器 PlaywrightSimulate

【代码】【python爬虫】设计自己的爬虫 4. 封装模拟浏览器 PlaywrightSimulate。

2024-01-05 10:20:28 505

原创 【Webpack】资源输入输出 - 配置资源出口

在资源输出时,上面配置的filename中的[name]会被换为chunk name,因此最后项目中实际生成的资源是vendor.js与app.js。filename可以不仅仅是bundle的名字,还可以是一个相对路径,即便路径中的目录不存在也没关系,Webpack 会在输出资源时创建该目录。在多入口的场景中,我们需要为对应产生的每个bundle指定不同的名字,Webpack支持使用一种类似模板语言的形式动态地生成文件名。更新缓存一般只用在生产环境的配置下,在开发环境中可以不必配置[chunkhash].

2024-01-04 08:32:27 636

原创 【Webpack】资源输入输出 - 配置资源入口

资源处理流程Webpack 中的资源处理流程在一切流程的最开始,首先需要指定一个或多个人口(entry),也就是告诉Webpack具体从源码目录下的哪个文件开始打包。如果把工程中各个模块的依赖关系当作一棵树,那么入口就是这棵依赖树的根这些存在依赖关系的模块会在打包时被封装为一个 chunk。chunk字面的意思是代码块,在 Webpack 中可以理解成被抽象和包装过后的一些模块。根据具体配置不同,一个工程打包时可能会产生一个或多个chunk。从上面的步骤可以看到,Webpack 会从人口文件开始检索,并

2024-01-03 14:57:55 1083

原创 【Webpack】加载其他型模块

AMD是英文Asynchronous Module Definition (异步模块定义)的缩写,从名字就可以看到和CommonJS和ES6 Module最大的区别在于它加模块的方式是异步的。通过AMD这种形式定义模块的好处在于其模块加载是非阻塞性的,当执行到require 函数时并不会停下来去执行被加载的模块,而是继续执行require后面的代码这使得模块加载操作并不会阻塞浏览器。,也就是全局下是define函数,而通过AMD定义的模块是无法使用CommonJS 或ES6 Module的形式确引人的。

2024-01-02 09:25:52 911

原创 【Webpack】模块打包 CommonJS和ES6 Module的区别

由上面的例子可以看出,ES6 Module的特性使其可以更好地支持循环依赖,只是需要由开发者来保证当导人的值被使用时已经设置好正确的导出值。,它不支持导人的路径是一个表达式并且导人、导出语句必须位于模块的顶层作用域,因此我们说,ES 6Module是一种静态的模块结构,一般来说工程中应该尽量避免循环依赖的产生,因为从软件设计的角度来说,单向的依赖关系更加清晰,而循环依赖则会带来一定的复杂度。CommonJS与ES6 Module最本质的区别在于前者对模块依赖的解决是“动态的”而后者是“静态的”。

2023-12-29 08:30:24 1208

原创 【Webpack】模块打包 CommonJS和ES6 Module语法介绍

模块之于程序,就如同细胞之于生物体,是具有特定功能的组成单元。不同的模块负责不同的工作,它们以某种方式联系在一起,共同保证程序的正常运转。随着 JavaScript语言的发展,社区中产生了很多模块标准。在认识这些标准的同时,也要了解其背后的思想。例如,它为什么会有这个特性,或者为什么要这样去实现。这对我们自己编写模块也会有所帮助。

2023-12-28 16:00:55 1273

原创 【python爬虫】设计自己的爬虫 4. 封装模拟浏览器 Selenium

Selenium是一个自动化测试工具,利用它可以驱动浏览器完成特定操作,还可以获取浏览器当前呈现的页面的源代码,做到所见即所爬 对一些JavaScript动态渲染的页面来说,这种爬取方式非常有效使用Selenium驱动浏览器加载网页,可以直接拿到JavaScript渲染的结果。一般常用的的有Selenium, playwright, pyppeteer,考虑到他们的使用有许多相同之处,因此考虑把他们封装到一套api中。有些自动化工具可以获取浏览器当前呈现的页面的源代码,可以通过这种方式来进行爬取。

2023-12-27 11:06:43 1168

原创 【python爬虫】设计自己的爬虫 3. 文件数据保存封装

要注意的是初始化的时候要读取文件和写入文件的模式,如果模式不匹配会读取或写入的时候会报错。

2023-12-07 15:28:27 940

原创 【python爬虫】设计自己的爬虫 2. 数据保存封装 mongodb,mysql和elasticsearch

mongodb, mysql和elasticsearch 功能较相似,所以打算用一套接口将它们封装起来。

2023-12-04 09:42:30 644

原创 【Docker】本地项目打包并发布到线上

如果 requirements.txt 文件中包含类似 @ file:///Users/ktietz/demo/mc3/conda-bld/wtforms_1629354749392/work 的地址,通常表示该依赖项是从本地文件系统安装的。这可能是因为在项目中使用了本地修改过的包,或者是在开发过程中使用了本地的包进行测试。这样的地址是 pip 安装时的一种来源格式,用于指定从本地文件系统或其他来源安装包。在正常的发布或分享代码时,你可能会希望移除这些本地文件系统的依赖项。

2023-12-01 13:56:21 1250

原创 【python爬虫】设计自己的爬虫 1. request封装

通过requests.session().request 封装request方法考虑到请求HTTP/2.0同时封装httpx 来处理HTTP/2.0的请求。

2023-10-30 15:08:15 427

原创 【vue组件】使用element-ui table 实现嵌套表格 点击展开时获取数据

然后,因为选中子table的单选框后,把展开的子table收齐再展开时,单选框的选中样式会丢失,这时我想的办法是根据之前选中的选项,调用toggleRowSelection这个方法,再把单选框选中。在上面代码中hasSelections 是判断是否有选中的选项,然后把展开子表格选中的id取出来,根据选中的id调用toggleRowSelection去点击。但这里会产生一个问题,用$set赋值后,页面会重新渲染,展开的table会收回去,我的想法是让展开的table保持展开的状态,

2023-09-14 15:38:04 5109 2

原创 【js】根据给定的数组和属性从源数组中获取数据

在上面的方法中,sourceArray是要取数据的数组,IndexArray是指定想要取出的数据 ,indexKey是IndexArray中的数据对应sourceArray的属性值,要从sourceArray 中取出id为physical-activity和taste的数据。想从一个数组中,根据该数组的某个属性值,例如id,取出相对应的数据,可以参考下面的方法。

2023-08-14 16:00:35 615

原创 【js】链接中有多余的&怎么取出参数值

在上面的代码中,首先使用decodeHtml函数对URL中的HTML实体进行解码,该函数创建一个临时的textarea元素,并使用其innerHTML属性对HTML实体进行解码。然后,我们创建一个URL对象,并使用URLSearchParams对象来解析查询字符串并获取fname参数的值。, 而如果使用下面的代码,因为在URL中,&符号是一个特殊字符,用于分隔不同的参数。请注意,此解决方案需要DOM环境,因此它可以在浏览器中工作,但在没有DOM实现的Node. js环境中则不行。

2023-08-14 15:34:47 480

原创 【深度学习】7-0 自制框架实现DeZero - 自动微分

介绍下处理深度学习的框架DeZero,通过这个框架来了解自动微分是如何实现的指的是自动求出导数的做法(技术)。“自动求出导数”是指(而非人)求出导数。具体来说,它是指在对某个计算(函数)编码后计算机会自动求出该计算的导数的系统。自动微分。这是一种采用链式法则求导的方法。我们对某个函数编码后,可以通过自动微分高效地求出高精度的导数。反向传播也是自动微分的一种。反向传播相当于反向模式的自动微分。自动微分是用计算机求导的一种方法。深度学习框架中实的是反向模式的自动微分。

2023-06-28 09:42:22 1099

原创 【深度学习】6-4 卷积神经网络 - CNN的实现

训练数据的识别率为 99.82%,测试数据的识别率为 98.96%,测试数据的识别率大约为 99%,就小型网络来说,这是一个非常高的识别率。在求损失函数的loss方法中,除了使用predict方法进行的forward处理之外,conv_param——卷积层的超参数(字典)。这里,卷积层的超参数通过名为 conv_param的字典传入。input_dim——输入数据的维度:(通道,高,长)hidden_size——隐藏层(全连接)的神经元数量。output_size——输出层(全连接)的神经元数量。

2023-06-22 21:53:03 1624

原创 【深度学习】6-3 卷积神经网络 - 卷积层和池化层的实现

比如,(10, 3, 5, 5) 形状的数组的元素个数共有 750 个,指定 reshape(10,-1)后,就会转换成 (10, 75) 形状的数组。卷积运算的滤波器处理的细节:将滤波器纵向展开为 1 列,并计算和 im2col 展开的数据的矩阵乘积,最后转换(reshape)为输出数据的大小。像这样,CNN 中处理的是 4 维数据,因此卷积运算的实现看上去会很复杂,但是通过使用下面要介绍的 im2col这个技巧,问题就会变得很简单。在上图中,为了便于观察,将步幅设置得很大,以使滤波器的应用区域不重叠。

2023-06-22 21:50:36 1272

原创 【深度学习】6-2 卷积神经网络 - 池化层

此外,这个例子中将步幅设为了2,所以2x2的窗口的移动间隔为2个元素。另外,一般来说,池化的窗口大小会和步幅设定成相同的值。比如,3x3的窗口的步幅会设为3,4x4的窗口的步幅会设为4等。相对于Max池化是从目标区域中取出最大值,Average池化则是计算目标区域的平均值。比如,3 × 3 的池化的情况下,如上图所示,池化会吸收输入数据的偏差(根据数据的不同,结果有可能不一致)。上面的例子是按步幅2进行2x2的Max池化时的处理顺序。比如下图,将2 x 2的区域集约成1个元素的处理,缩小空间大小。

2023-06-22 21:43:36 528

原创 【深度学习】6-1 卷积神经网络 - 卷积层

在上图的批处理版的数据流中,在各个数据的开头添加了批用的维度。之前的全连接神经网络的实现也对应了批处理,通过批处理,能够实现处理的高效化和学习时对 mini-batch 的对应。CNN 中,滤波器的参数就对应之前的权重。这里,假设输人大小为(H,W),滤波器大小为(FH,FW),输出大小(OH,OW),填充为P,步幅为S。当输入数据是图像时,卷积层会以3维数据的形式接收输入数据,并同样以3维数据的形式输出至下一层。在进行卷积层的处理之前,有时要向输人数据的周围填入固定的数据(比如0等),这称为。

2023-06-22 09:25:04 3193

原创 【深度学习】5-5 与学习相关的技巧 - 超参数的验证

然后,多重复该操作,观察识别精度的结果,根据这个结果缩小超参数的“好值”的范围通过重复这一操作,就可以逐渐确定超参数的合适范围。于是,在超参数的最优化中,减少学习的epoch,缩短一次评估所需的时间是一个不错的办法。在该实验中,权值衰减系数的初始范围为10的负8次方到10的负4次方学习率的初始范围为10的负6次方到10的负2次方。反复进行上述操作,不断缩小超参数的范围,在缩小到一定程度时,从施围中选出一个超参数的值。有报告叫显示,在进行神经网络的超参数的最优化时,与网格搜索等有规律的搜索相比,

2023-06-21 13:25:29 355

原创 【深度学习】5-4 与学习相关的技巧 - 正则化解决过拟合(权值衰减,Dropout)

过拟合指的是只能拟合训练数据,但不能很好地拟合不包含在训练数据中的其他数据的状态。像这样,通过使Dropout,即便是表现力强的网络,也可以抑制过拟合。虽然训练数据的识别精度和测试数据的识别精度之间有差距,但是与没有使用权值衰减的结果相比,差距变小了。训练时,每传递一次数据,就会随机选择要删除的神经元然后,测试时,虽然会传递所有的神经元信号,但是。因此,在求权重梯度的计算中,要为之前的误差反向传播法的结果加上正则化项的导数。并且,推理时,通过对神经元的输出乘以删除比例(比如,0.5等),可以取得。

2023-06-21 13:22:17 1310

原创 【深度学习】5-3 与学习相关的技巧 - Batch Normalization

顾名思义,以进行学习时的mini-batch为单位,按mini-batch进行正规化。首先,使用MNIST数据集,观察使用Batch Norm层和不使用Batch Norm层时学习的过程会如何变化,这个式子所做的是将mini-batch的输人数据变换为均值为0,方差为1的数据。Batch Norm的思路是调整各层的激活值分布使其拥有适当的广度。接着,Batch Norm层会对正规化后的数据进行缩放和平移的变换用数学式可以如下表示。综上,通过使用Batch Norm,可以推动学习的进行。

2023-06-21 13:09:33 1515

原创 【深度学习】5-2 与学习相关的技巧 - 权重的初始值

这样一来,正向传播时,因为输人层的权重为0,所以第2层的神经元全部被传递相同的值。Xavier的论文中,为了使各层的激活值呈现出具有相同广度的分布,推导了合适的权重尺度。,神经网络可以进行高效的学习。相反,当权重初始值为Xavier初始值和He初始值时,学习进行得很顺利并且,我们发现He初始值时的学习进度更快一些。现在,在一般的深度学习框架中,Xavier初始值已被作为标准使用,比如,Cafe框架中,通过在。使用Xavier初始值后,前一层的节点数越多,要设定为目标节点的初始值的权重尺度就越小。

2023-06-21 10:38:35 1304

原创 【深度学习】5-1 与学习相关的技巧 - 参数的更新(Momentum,AdaGrad, Adam )

神经网络的学习的目的是找到使损失函数的值尽可能小的参数。这是寻找最优参数的问题,解决这个问题的过程称为。但是神经网络的最优化问题非常难。这是因为参数空间非常复杂,无法轻易找到最优解。而且,在深度神经网络中,参数的数量非常庞大,导致最优化问题更加复杂。

2023-06-20 14:54:20 2128 2

原创 【深度学习】4-4 误差反向传播法 - 算法的具体实现

因此,神经网络的正向传播只需按照添加元素的顺序调用各层的forward()方法就可以完成处理,而反向传播只需要按相反的顺序调用各层即可。受到数值精度的限制,刚才的误差一般不会为0,但是如果实现正确的话,可以期待这个误差是一个接近0的很小的值。数值微分的计算很耗费时间,而且如果有误差反向传播法的话,就没有必要使用数值微分的实现了。之后,通过各个层内部实现的正向传播和反向传播,就可以正确计算进行识别处理或学习所需的梯度。现在来进行神经网络的实现。下面来看一下使用了误差反向传播法的神经网络的学习的实现。

2023-06-20 13:34:46 1261

原创 【深度学习】4-3 误差反向传播法 - Affine/Softmax层的实现

如图所示,Softmax 层将输入 正规化,Cross Entropy Error 层接收 Softmax 的输出 和教师标签 ( t。这里要特别注意矩阵的形状,因为矩阵的乘积运算要求对应维度的元素数保持一致,通过确认一致性。)正是 Softmax层的输与监督标签的差,直截了当地表示了当前神经网络的输出与监督标签的。神经网络的反向传播会把这个差分表示的误差传递给前面的层,这是神经网络学习中的重要性质。因此,必须将神经网络的输出与监督标签的误差高效地传递给前面的层。注意的是反向传播的结果。

2023-06-20 13:15:08 1136

原创 【深度学习】4-2 误差反向传播法 - 简单层的实现(层的介绍)

下面把构建神经网络的“层”实现为一个类。这里所说的“层”是神经网络中功能的单位。下面先从一些简单的层开始介绍。

2023-06-20 13:00:26 763

原创 【深度学习】4-1 误差反向传播法 - 计算图&链式法则&反向传播

介绍链式法则时,要先从。

2023-06-20 09:35:02 1919

空空如也

空空如也

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

TA关注的人

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