admin管理员组文章数量:1541710
机器学习已不再局限于理论探讨,而是广泛渗透到我们生活的方方面面,成为解决复杂问题、优化决策过程的强有力工具。从智能推荐系统个性化推送你可能喜爱的电影和商品,到金融风控领域精准识别欺诈交易;每一个应用场景都是机器学习技术多维度、深层次实战的精彩演绎,我们通过一些小案例对业务进行了解~
什么是数据指标💥
- 数据指标概念:可将某个事件量化,且可形成数字,来衡量目标。
- 数据指标的作用:当我们确定下来一套指标,就可以用指标来衡量业务,判断业务好坏
常用的业务指标💥
活跃用户指标💥
一个产品是否成功,如果只看一个指标,那么这个指标一定是活跃用户数
- 日活(DAU):一天内日均活跃设备数
- 月活(MAU):一个月内的活跃设备数
- 周活跃数(WAU):一周内活跃设备数
- 活跃度(DAU/MAU):体现用户的总体粘度,衡量期间内每日活跃用户的交叉重合情况
新增用户指标💥
主要是衡量营销推广渠道效果的最基础指标
- 日新增注册用户量:统计一天内,即指安装应用后,注册APP的用户数。
- 周新增注册用户量:统计一周内,即指安装应用后,注册APP的用户数。
- 月新增注册用户量:统计一月内,即指安装应用后,注册APP的用户数。
- 注册转化率:从点击广告/下载应用到注册用户的转化。
- DNU占比:新增用户占活跃用户的比例,可以用来衡量产品健康度
- 新用户占比活跃用户过高,那说明该APP的活跃是靠推广得来
留存指标💥
是验证APP对用户吸引力的重要指标。通常可以利用用户留存率与竞品进行对比,衡量APP对用户的吸引力
- 次日留存率:某一统计时段新增用户在第二天再次启动应用的比例
- 7日留存率:某一统计时段新增用户数在第7天再次启动该应用的比例,14日和30日留存率以此类推
行为指标💥
- PV(访问次数,Page View):一定时间内某个页面的浏览次数,用户每打开一个网页可以看作一个PV。
- UV(访问人数,Unique Visitor):一定时间内访问某个页面的人数。
- 转化率:计算方法与具体业务场景有关
- 淘宝店铺,转化率=购买产品的人数/所有到达店铺的人数
- 在广告业务中,广告转化率=点击广告进入推广网站的人数/看到广告的人数。
- 转发率:转发率=转发某功能的用户数/看到该功能的用户数
产品数据指标💥
- GMV (Gross Merchandise Volume):指成交总额,也就是零售业说的“流水”
- 人均付费=总收入/总用户数
- 人均付费在游戏行业叫ARPU(Average Revenue Per User)
- 电商行业叫客单价
- 付费用户人均付费(ARPPU,Average Revenue Per Paying User)=总收入/付费人数,这个指标用于统计付费用户的平均收入
- 付费率=付费人数/总用户数。付费率能反映产品的变现能力和用户质量
- 复购率是指重复购买频率,用于反映用户的付费频率。
推广付费指标💥
- CPM(Cost Per Mille) :展现成本,或者叫千人展现成本
- CPC(Cost Per Click) 点击成本,即每产生一次点击所花费的成本
- 按投放的实际效果付费(CPA,Cost Per Action)包括:
- CPD(Cost Per Download):按App的下载数付费;
- CPI(Cost Per Install):按安装App的数量付费,也就是下载后有多少人安装了App;
- CPS(Cost Per Sales):按完成购买的用户数或者销售额来付费。
💫根据目前的业务重点,找到北极星指标,在实际业务中,北极星指标一旦确定,可以像天空中的北极星一样,指引着全公司向着同一个方向努力。
Python指标计算案例
数据中包含了某电商网站从2009年12月到2011年12月两年间的销售流水, 每条记录代表了一条交易记录, 包含如下字段
Invoice
: 发票号码
StockCode
: 商品编码
Description
: 商品简介
InvoiceDate
: 发票日期
Price
: 商品单价
Customer ID
: 用户ID
Country
: 用户所在国家
计算的指标
- 月销售金额(月GMV)
- 月销售额环比
- 月销量
- 新用户占比: 新老用户
- 激活率
- 月留存率
代码语言:javascript
复制
from datetime import datetime, timedelta
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
data_1 = pd.read_excel('online_retail_II.xlsx',sheet_name='Year 2009-2010')
data_2 = pd.read_excel('online_retail_II.xlsx',sheet_name='Year 2010-2011')
数据清洗
代码语言:javascript
复制
retail_data['购买时间'].describe()
retail_data_clean = retail_data[(retail_data['商品单价']>0) & (retail_data['购买数量']>0)
计算月销量指标
商品编号
相当于 SKU,SKU=Stock Keeping Unit(库存量单位)
代码语言:javascript
复制
retail_data_clean = retail_data_clean.query("(商品编号!='B') and (商品编号!='TEST001') and (商品编号!='TEST002') ")
retail_data_clean['购买年月'] = pd.to_datetime(retail_data_clean['购买时间']).dt.to_period('M')
retail_data_clean['金额'] = retail_data_clean['商品单价'] * retail_data_clean['购买数量']
gmv_m = retail_data_clean.groupby(['购买年月'])['金额'].sum().reset_index()
gmv_m.columns = ['购买年月', '月GMV']
计算月销售额环比
代码语言:javascript
复制
gmv_m['金额'].pct_change()
- 该函数计算当前单元格和上一个单元格差异的百分比
月均活跃用户分析
我们用数据中的购买记录来定义活跃
代码语言:javascript
复制
mau = retail_data_clean.groupby('购买年月')['用户ID'].nunique().reset_index()
月客单价(活跃用户平均消费金额)
客单价 = 月GMV/月活跃用户数
代码语言:javascript
复制
final['客单价'] = final['金额']/final['用户数']
新用户占比
根据用户最近一次购买和第一次购买时间的差异,如果相同,则认为是新用户,否则老用户
代码语言:javascript
复制
retail_data_clean.groupby(['购买年月','用户类型'])['金额'].sum().reset_index()
分组统计后得到新老用户购买金额
激活率计算
- 用户激活的概念:用户激活不等同于用户注册了账号/登录了APP,不同类型产品的用户激活定义各有差别
- 总体来说,用户激活是指用户一定时间内在产品中完成一定次数的关键行为
代码语言:javascript
复制
# 统计每月激活用户数量
activation_count = retail[retail['首次购买年月'] == retail['注册年月']].groupby('注册年月')['用户ID'].count()
# 统计每月注册的用户数
regist_count = retail.groupby('注册年月')['用户ID'].count()
#按渠道统计每月不同渠道的激活用户数
activation_count = retail[retail['首次购买年月'] == retail['注册年月']].groupby(['注册年月','渠道'])['用户ID'].count()
#按渠道统计每月注册用户数
regist_count = retail.groupby(['注册年月','渠道'])['用户ID'].count()
#计算不同渠道激活率
月留存率 = 当月与上月都有购买的用户数/上月购买的用户数
应用Pandas合并数据集
代码语言:javascript
复制
- 组合数据的一种方法是使用“连接”(concatenation)
- 连接是指把某行或某列追加到数据中
- 数据被分成了多份可以使用连接把数据拼接起来
- 把计算的结果追加到现有数据集,可以使用连接
import pandas as pd
df1 = pd.read_csv('concat1.csv')
df2 = pd.read_csv('concat2.csv')
# 可以使用concat函数将上面3个DataFrame连接起来,需将3个DataFrame放到同一个列表中
pd.concat([df1,df2])
A B C D
0 a0 b0 c0 d0
1 a1 b1 c1 d1
2 a2 b2 c2 d2
3 a3 b3 c3 d3
0 a4 b4 c4 d4
1 a5 b5 c5 d5
2 a6 b6 c6 d6
3 a7 b7 c7 d7
pd.concat([df1,df2],axis=1)
A B C D A B C D
0 a0 b0 c0 d0 a4 b4 c4 d4
1 a1 b1 c1 d1 a5 b5 c5 d5
2 a2 b2 c2 d2 a6 b6 c6 d6
3 a3 b3 c3 d3 a7 b7 c7 d7
df1.append(df2)
A B C D
0 a0 b0 c0 d0
1 a1 b1 c1 d1
2 a2 b2 c2 d2
3 a3 b3 c3 d3
0 a4 b4 c4 d4
1 a5 b5 c5 d5
2 a6 b6 c6 d6
3 a7 b7 c7 d7
genres.merge(tracks_subset, on='Id', how='left')
how参数指定连接方式
- how = ’left‘ 对应SQL中的 **left outer** 保留左侧表中的所有key
- how = ’right‘ 对应SQL中的 **right outer** 保留右侧表中的所有key
- how = 'outer' 对应SQL中的 **full outer** 保留左右两侧侧表中的所有key
- how = 'inner' 对应SQL中的 **inner** 只保留左右两侧都有的key
stocks_2016.join(stocks_2017, lsuffix='_2016', rsuffix='_2017', how='outer')
- 关于axis:↓这个方向就是0维度,→这个方向就是1维度 !
业务背景:缺失关键指标
疫情期间,一家印度外卖餐厅想通过数据分析,数据挖掘提升销量,但是在历史数据中缺少了很重要的一个维度,用餐人数
订单表 菜单表
根据历史订单数据,推断出每个订单的用餐人数
订单表:
Order_Number
订单编号Order_Date
订单日期Item_Name
商品名称Quantity
商品数量Product_Price
商品价格Total_products
订单商品数量restaurant_no
连锁店编号
菜单表:
- 商品名称
- 商品价格
基本思路🔘
- 1份主食对应1人 (1:1)
- 1份主菜对应1人 (1:1)
- 1份饮料对应1人(1:1)
- 2份小食对应1人 (2:1)
- 酱料,佐料不做计算(n:0)
代码语言:javascript
复制
drop table if exists food_type;
create table food_type as
SELECT
item_name,
price,
restaurant_id,
food_category,
CASE
WHEN food_category IN ( '鸡肉类', '羊肉类', '虾类', '咖喱菜', '鱼肉类', '主菜', '芝士菜' ) THEN
'主菜'
WHEN food_category IN ( '饼', '米饭' ) THEN
'主食'
WHEN food_category IN ( '饮料', '酒', '酸奶' ) THEN
'饮料'
WHEN food_category IN ( '酱', '腌菜' ) THEN
'佐料' ELSE '小食'
END AS food_type
FROM
food_category_table;
目前一行记录是一笔订单的一种产品的售卖情况,如果一笔订单有若干样产品会分成若干行,我们希望把一笔订单的详情,从多行统一到一行中,同时用我们事先定义的系数计算。
代码语言:javascript
复制
select a.`Order_Number`,a.`Order_Date`,a.restaurant_id,round(sum(a.Quantity*b.price),2) as total_amount, # 计算订单总金额
sum(case when food_type='主食' then a.Quantity*1 else 0 end) as staple_food_count, # 聚合操作,分别统计出每个菜名类别对应的人数
sum(case when food_type='主菜' then a.Quantity*1 else 0 end) as main_course_count,
sum(case when food_type='饮料' then a.Quantity*1 else 0 end) as drink_count,
sum(case when food_type='小食' then a.Quantity*0.5 else 0 end) as snack_count
from restaurant_orders a join food_type b
on a.`Item_Name`=b.item_name and a.Restaurant_Id=b.restaurant_id # 把a表和b表合并
group by a.`Order_Number`,a.`Order_Date`,a.Restaurant_Id; # 合并后分组
比较主食,主菜,饮料,小食中的最大者:
代码语言:javascript
复制
select c.*,GREATEST(c.staple_food_count,c.main_course_count,c.drink_count,c.snack_count) as max_count from
(select a.`Order_Number`,a.`Order_Date`,a.restaurant_id,round(sum(a.Quantity*b.price),2) as total_amount,
sum(case when food_type='主食' then a.Quantity*1 else 0 end) as staple_food_count,
sum(case when food_type='主菜' then a.Quantity*1 else 0 end) as main_course_count,
sum(case when food_type='饮料' then a.Quantity*1 else 0 end) as drink_count,
sum(case when food_type='小食' then a.Quantity*0.5 else 0 end) as snack_count
from restaurant_orders a join food_type b
on a.`Item_Name`=b.item_name and a.Restaurant_Id=b.restaurant_id
group by a.`Order_Number`,a.`Order_Date`,a.Restaurant_Id) c;
增加向下取整的逻辑,并且确保最小就餐人数为1
代码语言:javascript
复制
floor 向下取整
select c.*,
GREATEST(floor(GREATEST(c.staple_food_count,c.main_course_count,c.drink_count,c.snack_count)),1) as customer_count from
(select a.`Order_Number`,a.`Order_Date`,a.restaurant_id,round(sum(a.Quantity*b.price),2) as total_amount,
sum(case when food_type='主食' then a.Quantity*1 else 0 end) as staple_food_count,
sum(case when food_type='主菜' then a.Quantity*1 else 0 end) as main_course_count,
sum(case when food_type='饮料' then a.Quantity*1 else 0 end) as drink_count,
sum(case when food_type='小食' then a.Quantity*0.5 else 0 end) as snack_count
from restaurant_orders a join food_type b
on a.`Item_Name`=b.item_name and a.Restaurant_Id=b.restaurant_id
group by a.`Order_Number`,a.`Order_Date`,a.Restaurant_Id) c;
结果解读🐣
精细化运营:和精细化运营相对的是粗放式运营,也就是在流量红利还在的时候,采用固定几种运营方式,大家看到的东西都是一样的,根据大众最终的实验效果去反馈运营策略。
用户标签:每一个用户与企业的商业目的相关较强的特质提取出来,就是用户标签,也叫用户画像
每一个用户与企业的商业目的相关较强的特质提取出来,就是用户标签,也叫用户画像, 用户标签是精细化运营的抓手,发现兴趣,投其所好。
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
😝有需要的小伙伴,可以VX扫描下方二维码免费领取🆓
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)
👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)
👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓
版权声明:本文标题:AI大模型-机器学习多场景实战 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727068617a1095924.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论