ABC 分类法
概述模型概念ABC 分类法(Activity Based Classification),全称为 ABC 分类库存控制法。又称帕累托分析法或巴雷托分析法、柏拉图分析、主次因分析法 、ABC 分析法、分类管理法、物资重点管理法、ABC 管理法、巴雷特分析法,平常我们也称之为“二八定律”,在任何一组东西中,最重要的只占其中一小部分,其余尽管是多数,却是次要的。 ABC 分类法是项目管理中常用的一种方法,它是根据事物在技术或经济方面的主要特征,进行分类排队,分清重点和一般,从而有区别地确定管理方式的一种分析方法。由于它把被分析的对象分成 A、B、C 三类,所以又称为 ABC 分析法。 在 ABC 分类法的分析图中,有两个纵坐标,一个横坐标,几个长方形,一条曲线,左边纵坐标表示频数,右边纵坐标表示频率,以百分数表示。横坐标表示影响质量的各项因素,按影响大小从左向右排列,曲线表示各种影响因素大小的累计百分数。一般地,是将曲线的累计频率分为三级,与之相对应的因素分为三类: A 类因素:发生累计频率为 0~80,是主要影响因素。 B 类因素:发生累计频率为 80~90,是次要影响因素。 C 类因素 ...
RFM 客户分析模型
概述模型概念RFM 模型是衡量客户价值和客户创造利益能力的重要工具和手段。根据美国数据库营销研究所 Arthur Hughes 的研究,客户数据库中有 3 个神奇的要素: 最近一次消费时间(Recency):客户距离最近的一次消费时间的间隔。 最近一段时间内消费频次(Frequency):指客户在限定的期间内所消费购买的次数。 最近一段时间内消费金额(Monetary):客户的消费能力,通常以客户单次的平均消费金额作为衡量指标。 这 3 个要素构成了数据分析最好的指标。 得到客户的特征向量值后,在 R、F、M 任意一项中的价值可被分为高(1)、低(0)两类,综合 R、F、M 三项的表现,用户可被划分为 8 种类型,详细类型及分类规则如下表所示: 客户类型 客户价值 分类说明 重要价值客户 (1 1 1) 最近消费时间近、消费频次和消费金额都很高(VIP) 重要发展客户 (1 0 1) 最近消费时间较近、消费金额高,但频次不高,忠诚度不高,很有潜力的用户,必须重点发展。 重要保持客户 (0 1 1) 最近消费时间较远,消费金额和频次都很高。 重要挽留客户 ...
JavaScript 实用技巧
字符串生成随机 ID12Math.random().toString(36).substr(2);// => "l10buc9ga8" 字符串翻转12'hello world'.split('').reverse().join('');// => 'dlrow olleh' 从 HTML 中获取内容12345function getTextInHTML (html) { return new DOMParser().parseFromString(html, 'text/html').body.textContent || '';}getTextInHTML('<h2>Hello World</h2>');// => 'Hello World' 数字转数1234567// 仅对 null、''、false、数字字符串有效 ...
ECharts 地图上显示折线图
#container { height: 500px; padding: 10px; background: white; border-radius: 12px; } var geoCoordMap = { '河北': [114.4995, 38.1006],//河北 石家庄 '山西': [112.3352, 37.9413],// 山西 太原 '内蒙古': [111.4124, 40.4901],// 内蒙古 呼和浩特 '辽宁': [123.1238, 42.1216],// 辽宁 沈阳 '吉林': [125.8154, 44.2584],// 吉林 长春 '黑龙江': [127.9688, 45.368],// 黑龙江 哈尔滨 '江苏': [118.8062, 31.9208],//江苏 南京 '浙江': [119.5313, 29.8773],// 浙江 杭州 '安徽': [117.29, 32.0581],// 安徽 合肥 '福建': [119.4543, 25.9222],// ...
ECharts 地图上显示柱状图
#container { height: 500px; padding: 10px; background: white; border-radius: 12px; } var geoCoordMap = { '河北': [114.4995, 38.1006],//河北 石家庄 '山西': [112.3352, 37.9413],// 山西 太原 '内蒙古': [111.4124, 40.4901],// 内蒙古 呼和浩特 '辽宁': [123.1238, 42.1216],// 辽宁 沈阳 '吉林': [125.8154, 44.2584],// 吉林 长春 '黑龙江': [127.9688, 45.368],// 黑龙江 哈尔滨 '江苏': [118.8062, 31.9208],//江苏 南京 '浙江': [119.5313, 29.8773],// 浙江 杭州 '安徽': [117.29, 32.0581],// 安徽 合肥 '福建': [119.4543, 25.9222],// ...
ECharts 地图上显示饼图
#container { height: 500px; padding: 10px; background: white; border-radius: 12px; } var geoCoordMap = { '河北': [114.4995, 38.1006],//河北 石家庄 '山西': [112.3352, 37.9413],// 山西 太原 '内蒙古': [111.4124, 40.4901],// 内蒙古 呼和浩特 '辽宁': [123.1238, 42.1216],// 辽宁 沈阳 '吉林': [125.8154, 44.2584],// 吉林 长春 '黑龙江': [127.9688, 45.368],// 黑龙江 哈尔滨 '江苏': [118.8062, 31.9208],//江苏 南京 '浙江': [119.5313, 29.8773],// 浙江 杭州 '安徽': [117.29, 32.0581],// 安徽 合肥 '福建': [119.4543, 25.9222],// ...
ECharts 迁徙地图
#container { height: 500px; padding: 10px; background: white; border-radius: 12px; } var geoCoordMap = { '河北': [114.4995, 38.1006],//河北 石家庄 '山西': [112.3352, 37.9413],// 山西 太原 '内蒙古': [111.4124, 40.4901],// 内蒙古 呼和浩特 '辽宁': [123.1238, 42.1216],// 辽宁 沈阳 '吉林': [125.8154, 44.2584],// 吉林 长春 '黑龙江': [127.9688, 45.368],// 黑龙江 哈尔滨 '江苏': [118.8062, 31.9208],//江苏 南京 '浙江': [119.5313, 29.8773],// 浙江 杭州 '安徽': [117.29, 32.0581],// 安徽 合肥 '福建': [119.4543, 25.9222],// ...
ECharts 标签地图
#container { height: 500px; padding: 10px; background: white; border-radius: 12px; } var geoCoordMap = { '河北': [114.4995, 38.1006],//河北 石家庄 '山西': [112.3352, 37.9413],// 山西 太原 '内蒙古': [111.4124, 40.4901],// 内蒙古 呼和浩特 '辽宁': [123.1238, 42.1216],// 辽宁 沈阳 '吉林': [125.8154, 44.2584],// 吉林 长春 '黑龙江': [127.9688, 45.368],// 黑龙江 哈尔滨 '江苏': [118.8062, 31.9208],//江苏 南京 '浙江': [119.5313, 29.8773],// 浙江 杭州 '安徽': [117.29, 32.0581],// 安徽 合肥 '福建': [119.4543, 25.9222],// ...
ECharts 热力地图
#container { height: 500px; padding: 10px; background: white; border-radius: 12px; } var geoCoordMap = { '河北': [114.4995, 38.1006],//河北 石家庄 '山西': [112.3352, 37.9413],// 山西 太原 '内蒙古': [111.4124, 40.4901],// 内蒙古 呼和浩特 '辽宁': [123.1238, 42.1216],// 辽宁 沈阳 '吉林': [125.8154, 44.2584],// 吉林 长春 '黑龙江': [127.9688, 45.368],// 黑龙江 哈尔滨 '江苏': [118.8062, 31.9208],//江苏 南京 '浙江': [119.5313, 29.8773],// 浙江 杭州 '安徽': [117.29, 32.0581],// 安徽 合肥 '福建': [119.4543, 25.9222],/ ...
ECharts 散点地图
#container { height: 500px; padding: 10px; background: white; border-radius: 12px; } var geoCoordMap = { '河北': [114.4995, 38.1006],//河北 石家庄 '山西': [112.3352, 37.9413],// 山西 太原 '内蒙古': [111.4124, 40.4901],// 内蒙古 呼和浩特 '辽宁': [123.1238, 42.1216],// 辽宁 沈阳 '吉林': [125.8154, 44.2584],// 吉林 长春 '黑龙江': [127.9688, 45.368],// 黑龙江 哈尔滨 '江苏': [118.8062, 31.9208],//江苏 南京 '浙江': [119.5313, 29.8773],// 浙江 杭州 '安徽': [117.29, 32.0581],// 安徽 合肥 '福建': [119.4543, 25.9222],// ...
ECharts 同X轴多Y轴图表
#container { height: 500px; padding: 10px; background: white; border-radius: 12px; } var data = [ { 'name': '日期', 'data': [ '2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05', '2021-01-06', '2021-01-07', '2021-01-08', '2021-01-09', '2021-01-10', '2021-01-11', '2021-01-12', '2021-01-13', '2021-01-14', '2021-02-01', '2021-02-02', '2021-02-03 ...
ECharts 弹窗悬浮图表
#container { height: 500px; padding: 10px; background: white; border-radius: 12px; } var data = [ { 'name': '日期 (月)', 'data': [ '2020-01', '2020-02', '2020-03', '2020-04', '2020-05', '2020-06' ] }, { 'name': '采购数量', 'data': [ 279818, 279426, 279034, 278642, 278250, 255716 ] }, { 'name': '入库数量', 'data': [ 246930, 242620, 238700, 234 ...
ECharts 时序图
#container { height: 300px; padding: 10px; background: white; border-radius: 12px; } var data = [ { 'name': '时间', 'data': [ '2021-01', '2021-03', '2021-05', '2021-07', '2021-09', '2021-11', '2022-01' ] }, { 'name': '地点', 'data': [ '地点1', '地点2', '地点3', '地点4', '地点5', '地点6', '地点7' ] }, { 'name': '标题', 'data': [ '标题1标题1标题1', '标题2标题2标题2 ...
Butterfly 标签云增加文章数上下标
前言本文教程主要针对 Hexo Butterfly 主题博客,在 Butterfly 主题中,文章标签页和标签侧边栏都有文章标签的词云图,但仅仅用字体大小表示某个标签下的文章数量是不明显的,可以在这个基础上加上表示某个标签下文章数的上下标,其中 <sup> 表示上标,<sub> 表示下标。 修改 page.js 打开 \themes\butterfly\layout\includes\page\tags.pug 文件和 \themes\butterfly\layout\includes\widget\card_tags.pug 文件,发现绘制彩色标签云都是使用了 cloudTags 函数。 另外一个绘制标签云的 tagcloud 函数是 hexo 自带的,有兴趣的可以到 \node_modules\hexo\lib\plugins\helper\tagcloud.js 研究,这里不多介绍。 搜索 cloudTags 函数,可以在 \themes\butterfly\scripts\helpers\page.js 找到绘制标签云的代码,增加 <sup&g ...
Elasticsearch 面试题解析
什么是 Elasticsearch?Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎。 查询:Elasticsearch 允许执行和合并多种类型(结构化、非结构化、地理位置、度量指标)的搜索,搜索方式随心而变。 分析:找到与查询最匹配的十个文档是一回事。但是如果面对的是十亿行日志,又该如何解读呢?Elasticsearch 聚合让您能够从大处着眼,探索数据的趋势和模式。 速度:Elasticsearch 很快。真的,真的很快。 可扩展性:可以在笔记本电脑上运行。也可以在承载了 PB 级数据的成百上千台服务器上运行。 弹性:Elasticsearch 运行在一个分布式的环境中,从设计之初就考虑到了这一点。 灵活性:具备多个案例场景。数字、文本、地理位置、结构化、非结构化。所有的数据类型都欢迎。 在 ElasticSearch 中,集群(Cluster),节点(Node),分片(Shard),Indices(索引),replicas(备份)之间是什么关系? Cluster:集群,一个 ES 集群由一个或多个节点(Node)组成,每个集群都有一个 cl ...
Emoji 表情大全
表情与情感 表情 名称 表情 名称 表情 名称 😀 嘿嘿 😃 哈哈 😄 大笑 😁 嘻嘻 😆 斜眼笑 😅 苦笑 🤣 笑得满地打滚 😂 笑哭了 🙂 呵呵 🙃 倒脸 😉 眨眼 😊 羞涩微笑 😇 微笑天使 🥰 喜笑颜开 😍 花痴 🤩 好崇拜哦 😘 飞吻 😗 亲亲 ☺️ 微笑 😚 羞涩亲亲 😙 微笑亲亲 😋 好吃 😛 吐舌 😜 单眼吐舌 🤪 滑稽 😝 眯眼吐舌 🤑 发财 🤗 抱抱 🤭 不说 🤫 安静的脸 🤔 想一想 🤐 闭嘴 🤨 挑眉 😐 冷漠 😑 无语 😶 沉默 😏 得意 😒 不高兴 🙄 翻白眼 😬 龇牙咧嘴 🤥 说谎 😌 松了口气 😔 沉思 😪 困 🤤 流口水 😴 睡着了 😷 感冒 🤒 发烧 🤕 受伤 🤢 恶心 🤮 呕吐 🤧 打喷嚏 🥵 脸发烧 🥶 冷脸 🥴 头昏眼花 😵 晕头转向 🤯 爆炸头 🤠 牛仔帽脸 🥳 聚会笑脸 😎 墨镜笑脸 🤓 书呆子脸 🧐 带单片眼镜的脸 😕 困扰 ...
Python 自建 API 合集
前言本文收集了常用的 API 接口以及自己部署于 Vercel 的 Python API 合集。 自建 API百度百度统计接口地址: /baidu/tongji 描述: 重定向请求百度统计,解决跨域问题 请求方式: GET 请求参数说明: 百度统计用户手册 请求示例: 无 百度翻译接口地址: /baidu/translate 描述: 百度翻译 请求方式: GET 请求参数说明: 字段名 字段说明 字段类型 默认值 是否必填 fr 源语言 string 英语 否 to 翻译语言 string 中文 否 content 源语言 string Hello World 否 请求示例: https://api.eurkon.com/baidu/translate?fr=英语&to=中文&content=helloworld 谷歌谷歌翻译接口地址: /google/translate 描述: 谷歌翻译 请求方式: GET 请求参数说明: 字段名 字段说明 字段类型 默认值 是否必填 fr 源语言 string 英语 否 to ...
Butterfly 微博热搜侧边栏
前言本文教程主要针对 Hexo Butterfly 主题博客,使用 Vercel API 爬取微博热搜,具体效果可以查看本站侧边栏微博热搜板块。 2021-09-07 新浪微博热搜增加“音”、“影”、“剧”、“综”等标签,教程同步增加相应的 css 样式。 2021-09-28 由于微博热搜改为了异步加载,旧的爬取方法暂时不能用了,可以去 GitHub 更新代码,也可以参考 Python 代码,可以使用其他方法(可能会出现跨域)请求 微博热搜数据。 card_weibo.js可以使用博主的 card_weibo.js 地址,或者自己创建 card_weibo.js 文件,具体代码如下: 123456789101112131415161718192021222324fetch('https://weibo-top-api.vercel.app/api').then(data => data.json()).then(data => { let html = '<style>.weibo-new{back ...
Spark 面试题解析
Spark 内核Spark 的有几种部署模式,每种模式特点? 本地模式:Spark 不一定非要跑在 Hadoop 集群,可以在本地,起多个线程的方式来指定。将 Spark 应用以多线程的方式直接运行在本地,一般都是为了方便调试,本地模式分三类: local:只启动一个 Executor local[k]:启动 k 个 Executor local[*]:启动跟 CPU 数目相同的 Executor standalone 模式:分布式部署集群,自带完整的服务,资源管理和任务监控是 Spark 自己监控,这个模式也是其他模式的基础。 Spark on Yarn 模式:分布式部署集群,资源和任务监控交给 YARN 管理,但是目前仅支持粗粒度资源分配方式,包含 cluster 和 client 运行模式,cluster 适合生产,Driver 运行在集群子节点,具有容错功能,client 适合调试,Driver 运行在客户端。 Spark On Mesos 模式:官方推荐这种模式(当然,原因之一是血缘关系)。正是由于 Spark 开发之初就考虑到支持 Mesos,因此,目前而言,Spark ...
Hexo 博客访问日历图
前言本文教程主要针对 Hexo 博客,参考冰老师的 hexo-githubcalendar 插件,对博客站点的每日的访问进行统计,绘制出类似与 GitHub 贡献日历的博客访问日历。 本文数据来源均为百度统计,请确保博客站点已加入百度统计,以 butterfly 主题为例,可参照 Butterfly 安装文档(四) 主题配置-2 的分析统计段落实现。 本地主机访问(localhost)也会记录到百度统计,推荐在 【百度统计】--【管理】--【统计规则设置】--【过滤规则设置】--【受访域名统计规则】--【勾选排除 localhost(本地主机)】 排除本地主机访问(貌似在勾选后生效,但是以前的访问记录仍会统计)。 本教程将会泄漏属于百度统计的站点 ID 和百度统计 AccessToken,请先前往 百度统计用户手册 了解,介意者请谨慎部署。 2022-03-29 使用 LeanCloud 存储百度统计的 AccessToken 和 RefreshToken,并使用 Github Action 实现每周更新。 博客访问统计获取网站统计数据 已经添加百度统计分析的小伙伴可以登录百 ...