用户行为分析项目MySQL+Tableau

news2024/11/14 13:44:05

文章目录

    • 1. 项目背景及目的
        • 1.1 项目背景
        • 1.2 项目目的
    • 2. 理解数据
    • 3. 数据预处理
        • 3.1 字段调整
        • 3.2 数据清洗
            • 3.2.1 空值
            • 3.2.2 重复值
            • 3.2.3 异常值
    • 4. 数据分析
        • 4.1 人
            • 4.1.1 获客情况(PV、UV、PV/UV)
            • 4.1.2 留存情况(留存率、跳失率)
            • 4.1.3 行为情况(时间序列、用户转化率、行为路径)
            • 4.1.4 用户定位( RFM模型)
        • 4.2 货
            • 4.2.1 商品热度分类(商品、品类、品类商品热度)
            • 4.2.2 商品转化率
    • 5. 数据可视化
    • 6. 结论与建议

1. 项目背景及目的

1.1 项目背景

  现有一组用户行为数据,希望通过对用户行为的分析,探究提高销量的措施。

1.2 项目目的

  1. 了解获客和留存情况;
  2. 分析用户行为路径,找到用户活跃的时间规律;
  3. 利用RFM模型对用户进行分类,针对不同的用户类型采用不同的维护方式;
  4. 分析热门浏览商品/品类和热门购买商品/品类之间的关系,找到合理的推送机制。

2. 理解数据

  userbehavior包含了2017年11月25日至2017年12月3日之间所有的用户行为数据,详细字段及期含义见下表:

列名称说明
user_id整数类型,用户ID
item_id整数类型,商品ID
category_id整数类型,商品类目ID
behavior_type行为类型,枚举类型,pv(浏览)、buy(购买)、cart(加购物车)、fav(收藏)
timestamps时间戳

3. 数据预处理

3.1 字段调整

--修改timestamp列为timestamps
alter table userbehavior change timestamp timestamps int;

--增加列datetimes
alter table userbehavior add datetimes datetime;
update userbehavior set datetimes=FROM_UNIXTIME(timestamps);
--增加列dates,times,hours
alter table userbehavior add dates date;
alter table userbehavior add times time;
alter table userbehavior add hours int;
update userbehavior set dates=date(datetimes);
update userbehavior set times=DATE_FORMAT(datetimes,'%H:%i:%s');
update userbehavior set hours=hour(datetimes);

3.2 数据清洗

3.2.1 空值
--检查空值
select * from userbehavior where user_id is null or user_id='' or user_id=' ';
select * from userbehavior where item_id is null or item_id='' or item_id=' ';
select * from userbehavior where category_id is null or category_id='' or category_id=' ';
select * from userbehavior where behavior_type is null or behavior_type='' or behavior_type=' ';
select * from userbehavior where timestamps is null or timestamps='' or timestamps=' ';

  无空值。

3.2.2 重复值

  用户、商品和时间 3个字段租合应该具有唯一性。

select user_id,item_id,timestamps from userbehavior group by user_id,item_id,timestamps having count(*)>1;

  无重复值。

3.2.3 异常值

  时间范围应在2017年11月25日至2017年12月3日之间;
  behavior_type 应该=pv/buy/cart/fav

--检查异常值 
--时间范围应在2017年11月25日至2017年12月3日之间
select min(datetimes),max(datetimes) from userbehavior;
--有44条超出时间范围的异常值
select count(*)'超出时间范围的记录数量' from userbehavior where datetimes<'2017-11-25' or datetimes>'2017-12-03 23:59:59';

-- 删除44条时间异常的数据
delete from userbehavior where datetimes<'2017-11-25' or datetimes>'2017-12-03 23:59:59';

-- behavior_type 应该在pv/buy/cart/fav中
select * from userbehavior where  behavior_type not in ('pv','buy','cart','fav');
--behavior_type无异常

在这里插入图片描述
在这里插入图片描述

4. 数据分析

  分析思路如下:
在这里插入图片描述

4.1 人

4.1.1 获客情况(PV、UV、PV/UV)

页面浏览量PV
独立访客数UV
浏览深度PV/UV

-- 人 获客情况
-- PV、UV
select dates
,count(*) PV
,count(distinct user_id) UV
,round(count(*)/count(distinct user_id),2) 'PV/UV'
from userbehavior where behavior_type='pv' group by dates;

在这里插入图片描述
  可视化如下:
在这里插入图片描述
  11月25日-30日PV和UV一直比较稳定,从12月开始由显著的增长,为探究期增长原因可以提出以下假设:

  1. 周末或节假日十流量增加;
  2. 有活动吸引了新老用户。

  查看日历,12月1日并非周末或节假日,排除假设1。12月有双12活动开始,吸引了新老用户,假设2成立。
  平均每个用户可以带来13个页面浏览量,浏览深度相对稳定。

4.1.2 留存情况(留存率、跳失率)

留存率
跳失率

--人 留存情况
--留存率
create table retention_rate as 
select a.dates
,round(count(distinct case when datediff(b.dates,a.dates)=1 then a.user_id end)/count(distinct a.user_id),2) 次日留存率
,round(count(distinct case when datediff(b.dates,a.dates)=2 then a.user_id end)/count(distinct a.user_id),2)2日留存率
,round(count(distinct case when datediff(b.dates,a.dates)=3 then a.user_id end)/count(distinct a.user_id),2)3日留存率
,round(count(distinct case when datediff(b.dates,a.dates)=4 then a.user_id end)/count(distinct a.user_id),2)4日留存率
,round(count(distinct case when datediff(b.dates,a.dates)=5 then a.user_id end)/count(distinct a.user_id),2)5日留存率
,round(count(distinct case when datediff(b.dates,a.dates)=6 then a.user_id end)/count(distinct a.user_id),2)6日留存率
,round(count(distinct case when datediff(b.dates,a.dates)=7 then a.user_id end)/count(distinct a.user_id),2)7日留存率
,round(count(distinct case when datediff(b.dates,a.dates)=8 then a.user_id end)/count(distinct a.user_id),2)8日留存率
from userbehavior a left join userbehavior b on a.user_id=b.user_id
group by a.dates;

-- 跳失率
-- 跳失用户
select user_id
from userbehavior
group by user_id
having count(*)=1;
-- 没有跳失用户。

  可视化如下:
在这里插入图片描述
  多日留存率数据太少,重点看下次日留存率,总体留存率均较高,且没有跳失用户,说明平台粘性很优秀。12月开始留存率有显著增长,原因同样为双12活动。

4.1.3 行为情况(时间序列、用户转化率、行为路径)

时间序列分析

-- 时间序列
create table date_hour_behavior as 
select dates,hours
,count(if(behavior_type='pv',behavior_type,null)) pv_count
,count(if(behavior_type='buy',behavior_type,null)) buy_count
,count(if(behavior_type='cart',behavior_type,null)) cart_count
,count(if(behavior_type='fav',behavior_type,null)) fav_count
from userbehavior
group by dates,hours
order by dates,hours;

可视化图下:
在这里插入图片描述

  1. 统计周期内11月25日-12月3日(周六-周日)用户行为:从12月开始浏览量PV、加购CART和收藏FAV均有明显上升;
  2. 用户日内行为:晚间2-4点操作最少,22点左右各类行为达到当天峰值。

用户转化率分析
  用户的行为路径如下:
在这里插入图片描述

-- 各行为的用户数量
select behavior_type,count(distinct user_id) user_count
from 
(select user_id,
case when behavior_type='fav' or behavior_type='cart' then 'fav_cart' else behavior_type end behavior_type
from userbehavior)t
where user_id in (select distinct user_id from userbehavior where behavior_type='pv')
group by behavior_type; 
-- buy	669
-- fav_cart	838
-- pv	980

-- 总购买率
create table user_buy_rate as 
select count(distinct if(behavior_type='buy',user_id,null))/count(distinct if(behavior_type='pv',user_id,null)) user_buy_rate -- 购买率0.6827
from userbehavior
where user_id in (select distinct user_id from userbehavior where behavior_type='pv');

-- 总收藏加购率0.8551
create table user_fav_cart_rate as 
select count(distinct if(behavior_type='fav' or behavior_type='cart',user_id,null))/count(distinct if(behavior_type='pv',user_id,null)) user_buy_rate 
from userbehavior
where user_id in (select distinct user_id from userbehavior where behavior_type='pv');

-- 周内用户转化率
create table dates_user_rate as 
select dates
,count(distinct if(behavior_type='pv',user_id,null)) pv_count
,count(distinct if(behavior_type='buy',user_id,null)) buy_count
,count(distinct if(behavior_type='cart',user_id,null)) cart_count
,count(distinct if(behavior_type='fav',user_id,null)) fav_count
,count(distinct if(behavior_type='buy',user_id,null))/count(distinct if(behavior_type='pv',user_id,null)) user_buy_rate
,count(distinct if(behavior_type='fav' or behavior_type='cart',user_id,null))/count(distinct if(behavior_type='pv',user_id,null)) user_fav_cart_rate
from userbehavior
where user_id in (select distinct user_id from userbehavior where behavior_type='pv')
group by dates
order by dates;

-- 日内用户转化率
create table hours_user_rate as 
select hours
,count(distinct if(behavior_type='pv',user_id,null)) pv_count
,count(distinct if(behavior_type='buy',user_id,null)) buy_count
,count(distinct if(behavior_type='cart',user_id,null)) cart_count
,count(distinct if(behavior_type='fav',user_id,null)) fav_count
,count(distinct if(behavior_type='buy',user_id,null))/count(distinct if(behavior_type='pv',user_id,null)) user_buy_rate
,count(distinct if(behavior_type='fav' or behavior_type='cart',user_id,null))/count(distinct if(behavior_type='pv',user_id,null)) user_fav_cart_rate
from userbehavior
where user_id in (select distinct user_id from userbehavior where behavior_type='pv')
group by hours
order by hours;

  可视化如下:
在这里插入图片描述

  1. 用户并没有在浏览后退出,购买率68.27%,收藏加购率85.51%;
  2. 购买率基本符合用户行为的一般趋势,在22点左右达到峰值;收藏加购率在夜晚2点左右达到峰值;购买率和收藏加购率分别在11月30日、12月1日达到峰值,说明双12预售活动有显著成效。

行为路径分析
  针对已购买的用户进行行为路径分析,可以分为8类:直接购买、浏览后购买、加购后购买、浏览加购后购买、收藏后购买、浏览收藏后购买、收藏加购后购买、浏览收藏加购后购买。
  未经浏览过程的,是之前已经加购或收藏的用户。

-- 行为路径分析
create table behavior_path as 
select user_id,item_id,behavior_no
,(case when behavior_no=0001 then '直接购买了'
when behavior_no=1001 then '浏览后购买了'
when behavior_no=0011 then '加购后购买了'
when behavior_no=1011 then '浏览加购后购买了'
when behavior_no=0101 then '收藏后购买了'
when behavior_no=1101 then '浏览收藏后购买了'
when behavior_no=0111 then '收藏加购后购买了'
when behavior_no=1111  then '浏览收藏加购后购买了'
end )行为
from 
		-- 行为编码表
	(select user_id,item_id
	,concat(if(count(if(behavior_type='pv',1,null))>0,1,0)
	,if(count(if(behavior_type='cart',1,null))>0,1,0)
	,if(count(if(behavior_type='fav',1,null))>0,1,0)
	,if(count(if(behavior_type='buy',1,null))>0,1,0)) behavior_no
	from userbehavior
	group by user_id,item_id) t
where behavior_no like '%1' 

在这里插入图片描述
  大多数用户浏览后直接购买,占比51.27%,并未经过收藏或加购的过程;其次为之前已经加购或收藏的用户,直接进行购买,占比27.01%;还有部分用户经过浏览加购后进购物车进行结算,占比11.27%。

4.1.4 用户定位( RFM模型)

  RFM是按照R(时间间隔)、F(消费频次)、M(消费金额)3个维度,将用户分为重要价值、重要发展、重要保持、重要挽留、一般价值、一般发展、一般保持、一般挽留8类。

select user_id,count(*)
from userbehavior
where behavior_type='buy'
group by user_id
order by count(*) desc;
-- 消费频次范围 1-43

  由于数据有限,从R、F两个角度,按照下表规则,将用户进行划分

分值R (天)F (次数)
1>71
26-72-5
34-56-10
42-311-20
5<=1天>20

  以R、F求得平均值为标准,按照以下规则,将用户划分为4类

用户类型RF
价值用户>avg(R)>avg(F)
保持用户<avg (R)>avg(F)
发展用户>avg(R)<avg(F)
挽留用户<avg(R)<avg(F)
create view user_rf_score_view as 
select a.user_id,r_score,f_score
from 
-- 各用户的R分数
	(select user_id
	,(case when date_diff<=1 then 5
				when date_diff>=2 and date_diff<=3 then 4
				when date_diff>=4 and date_diff<=5 then 3
				when date_diff>=6 and date_diff<=7 then 2
				when date_diff>7 then 1 end) r_score
	from 
		(select user_id,datediff('2017-12-04',max(dates)) date_diff
		from userbehavior
		where behavior_type='buy'
		group by user_id) t1) a
left join
-- 各用户的f分数
	(select user_id
	,(case when f>20 then 5
				when f>=11 and f<=20 then 4
				when f>=6 and f<=10 then 3
				when f>=2 and f<=5 then 2
				when f=1 then 1 end) f_score
	from 
		(select user_id,count(*) f
		from userbehavior
		where behavior_type='buy'
		group by user_id) t2) b
on a.user_id=b.user_id

-- 创建变量,并用r和f的平均值赋值
set @avg_r=null;
set @avg_f=null;
select  @avg_r :=avg(r_score), @avg_f:=avg(f_score) 
from user_rf_score_view;

-- 同平均值比较,对用户进行分类
create table user_rf as
select user_id,r_score,f_score
,case when r_score>@avg_r and f_score>@avg_f then '价值用户'
			when r_score<@avg_r and f_score>@avg_f then '保持用户'
			when r_score>@avg_r and f_score<@avg_f then '发展用户'
			when r_score<@avg_r and f_score<@avg_f then '挽回用户'
			end 用户价值
from user_rf_score_view

  数据可视化如下:
在这里插入图片描述
  价值用户占比超过40%,另外挽回用户的占比已经超过发展用户,需要重点关注。

4.2 货

4.2.1 商品热度分类(商品、品类、品类商品热度)

  按照PV来进行热度排名。

-- 商品按热度分类 按照PV
-- 热门品类
create table category_count as
select a.category_id,category_pv_count,category_buy_count,rk_pv,rk_buy
from 
		(select category_id,count(*) category_pv_count,rank() over(order by count(*) desc) rk_pv
		from userbehavior
		where behavior_type='pv'
		group by category_id) a
left join 
		(select category_id,count(*) category_buy_count,rank() over(order by count(*) desc) rk_buy
		from userbehavior
		where behavior_type='buy'
		group by category_id) b
on a.category_id=b.category_id
order by 2 desc;

-- 热门商品
create table item_pv_count as 
select a.item_id,item_pv_count,item_buy_count,rk_pv,rk_buy
from 
		(select item_id,count(*) item_pv_count,rank() over(order by count(*) desc) rk_pv
		from userbehavior
		where behavior_type='pv'
		group by item_id) a
left join 
		(select item_id,count(*) item_buy_count,rank() over(order by count(*) desc) rk_buy
		from userbehavior
		where behavior_type='buy'
		group by item_id) b
on a.item_id=b.item_id
order by 2 desc;

-- 热门品类中的热门商品TOP3
create table category_item_pv_count as 
select  category_id,item_id,品类商品浏览量 
from 
	(select category_id,item_id,count(*) 品类商品浏览量
	,rank() over(partition by category_id order by count(*) desc) rk
	from userbehavior
	where behavior_type='pv'
	and category_id in (select category_id
											from (select category_id,count(*),rank() over(order by count(*) desc) rk
														from userbehavior
														where behavior_type='pv'
														group by category_id) t
											where rk<=3)
	group by category_id,item_id
	order by 1,3 desc) t
where rk<=3

在这里插入图片描述
在这里插入图片描述
  数据可视化如下:
在这里插入图片描述

  商品或品类浏览量排名靠前的,购买量排名并没有靠前,浏览量和购买量不成正比,平台推荐的产品用户的浏览量是有的,但是并没有成功转化购买,说明推荐商品不是用户最感兴趣的品,或非必需品。

4.2.2 商品转化率
-- 商品转化率分析
-- 商品转化率
create table item_conversion_rate as
select item_id
,count(if(behavior_type='pv',behavior_type,null)) pv
,count(if(behavior_type='fav',behavior_type,null)) fav
,count(if(behavior_type='cart',behavior_type,null)) cart
,count(if(behavior_type='buy',behavior_type,null)) buy
,round(count(distinct if(behavior_type='buy',user_id,null))/count(distinct user_id),2) 商品转化率
from userbehavior
group by item_id
order by 商品转化率 desc;

select 商品转化率,count(商品转化率) as co
from
(SELECT item_id
,(case when 商品转化率<=0.1 then '0-10%'
when 商品转化率>0.1 and 商品转化率<=0.3 then '10%-30%'
when 商品转化率>0.3 and 商品转化率<=0.6 then '30%-60%'
when 商品转化率>0.6 and 商品转化率<=1 then '60%-100%' end)商品转化率
from item_conversion_rate
) a
group by 商品转化率

-- 品类转化率
create table category_conversion_rate as
select category_id
,count(if(behavior_type='pv',behavior_type,null)) pv
,count(if(behavior_type='fav',behavior_type,null)) fav
,count(if(behavior_type='cart',behavior_type,null)) cart
,count(if(behavior_type='buy',behavior_type,null)) buy
,round(count(distinct if(behavior_type='buy',user_id,null))/count(distinct user_id),2) 品类转化率
from userbehavior
group by category_id
order by 品类转化率 desc;

select 品类转化率,count(品类转化率) as co
from
(SELECT category_id
,(case when 品类转化率<=0.1 then '0-10%'
when 品类转化率>0.1 and 品类转化率<=0.3 then '10%-30%'
when 品类转化率>0.3 and 品类转化率<=0.6 then '30%-60%'
when 品类转化率>0.6 and 品类转化率<=1 then '60%-100%' end)品类转化率
from category_conversion_rate
) a
group by 品类转化率

  数据可视化如下:
在这里插入图片描述
  虽然用户的转化率很高,但是品类和商品的转化率不高。转化率低于10%的品类和商品占比分别高达78.52%和96.93%。进一步说明,推荐给用户的品类或商品与用户的需求不符。

5. 数据可视化

  完整的数据可视化仪表板如下:
在这里插入图片描述

6. 结论与建议

  • 获客方面:浏览深度在统计周期内相对稳定,保持在12-14之间。
  • 留存率方面:从次日留存率看,均达到77%以上,12月之后由于双12活动预热,留存率有明显增长,统计周期内不存在跳失用户,说明平台粘性较高。

建议: 可以通过策划活动进行获客和提高留存,但要注意一定的周期性。

  • 用户行为方面:

    1. 用户在日内20:00-23:00活跃性高一点,基本在21:00左右达到峰值;在统计周期内,双12活动带来比较明显的各类行为增长;
    2. 用户购买率在22:00达到峰值,收藏加购率在2:00达到峰值;
    3. 在购买的用户中,行为路径排在前3的为浏览后购买的用户51.27%、直接购买的用户27.01%、浏览加购后购买的用户11.71%。

建议: 优惠券、促销或商品推荐等活动建议在20:00-22:00之间进行,此时用户活跃度最高。

  • 用户定位方面:价值用户占比最多,超过40%,但挽回用户同样需要关注,占比将近20%。

建议: 针对不同的用户采用不同的维护策略。针对价值用户重点服务,维持和留存为主;
针对保持用户要防止其流失,通过APP、短信等进行提醒,必要时主动联系,并有针对性推荐产品;
针对发展用户引导加入会员充值,提高消费频次,增加用户粘性,使其成为价值用户;
针对挽回用户要重点召回,挖掘其需求,可以发放优惠券或推荐新品引导回购。

  • 热门品类/商品方面:商品/品类浏览量和购买量的排名相差很大;商品/品类的转化率低于10%高达96.93%和78.52%。说明用户浏览的商品/品类和所需商品/品类,有较大差异。

建议: 优化平台的推荐机制。增加热销产品的推送。根据用户历史购买、加购或收藏的商品进行分析,针对不同的用户推荐不同的商品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/358682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据在内存中的存储【上篇】

文章目录⚙️1.数据类型的详细介绍&#x1f529;1.1.类型的基本归类⚙️2.整型在内存中的存储&#x1f529;2.1.原码、反码、补码&#x1f529;2.2.大小端的介绍⚙️1.数据类型的详细介绍 &#x1f973;基本的内置类型 &#xff1a; &#x1f4a1;char ---------- 字符数据类型…

kubeadmin安装k8s集群

目录 一 、环境部署 1、服务器规划 2、环境准备 二、所有节点安装docker 1、配置yum源&#xff0c;安装docker 2、配置daemon.json文件 三、所有节点安装kubeadm、kubelet 和kubectl 四、部署k8s集群 1、查看初始化需要的镜像 2、导入镜像 3、初始化kubeadm 3.1 方…

【gt+】RS485详解

这里写目录标题RS232与RS485TTL和RS485电平转换平衡传输收发控制主机轮询手动带隔离的RS485电路自动切换电路RS485收发器发送器接收器网络安装电阻匹配接地问题网络失效保护RS232与RS485 RS232接口标准出现较早。 接口的电平值较高&#xff0c;易损坏接口电路的芯片&#xff…

Hive3 安装方式详解,datagrid自定义驱动连接hive

1 Hive的安装方式 hive的安装一共有三种方式:内嵌模式、本地模式、远程模式。 元数据服务(metastore&#xff09;作用是&#xff1a;客户端连接metastore服务&#xff0c;metastore再去连接MySQL数据库来存取元数据。有了metastore服务&#xff0c;就可以有多个客户端同时连接…

【部署】项目正式服部署更新

chihiro-notes 千寻简笔记 v0.1 内测版 &#x1f4d4; 笔记介绍 大家好&#xff0c;千寻简笔记是一套全部开源的企业开发问题记录&#xff0c;毫无保留给个人及企业免费使用&#xff0c;我是作者星辰&#xff0c;笔记内容整理并发布&#xff0c;内容有误请指出&#xff0c;笔…

SCRM的全面了解

一、什么是SCRM SCRM&#xff08;Social CRM&#xff0c;社会化客户关系管理&#xff09;&#xff0c;是以用户为中心&#xff0c;通过社交平台与用户建立联系&#xff0c;以内容、活动、客服、商城等服务吸引用户注意力&#xff0c;并不断与用户产生互动&#xff0c;实现用户…

离散数学笔记_第一章:逻辑和证明(1)

1.1命题逻辑1.1.1 命题 1.1.2 逻辑运算符 定义1&#xff1a; 否定联结词定义2&#xff1a; 合取联结词定义3&#xff1a; 析取联结词定义4&#xff1a; 异或联结词1.1.3 条件语句 定义5&#xff1a; 条件语句定义6&#xff1a; 双条件语句1.1.1 命题 1.命题&#xff1a;是…

(十六)、创建uni-admin后台管理项目【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

1&#xff0c;打开hbuildx软件&#xff0c;新建项目 两步创建admin后台管理项目 一定要选择uni-admin模板&#xff01; 关联服务空间&#xff1a; 用超级管理员账号登录后台管理系统后&#xff0c;如发现没有系统管理菜单&#xff1b;请检查数据库表opendb-admin-menus中…

【期末指北】嵌入式系统——选择题(feat. ChatGPT)

作者&#xff5c;Rickyの水果摊 时间&#xff5c;2023年2月20日 基本信息 ☘️ 本博客摘录了一些 嵌入式系统 的 常见选择题&#xff0c;供有需求的同学们学习使用。 部分答案解析由 ChatGPT 生成&#xff0c;博主进行审核。 使用教材信息&#xff1a;《嵌入式系统设计与应…

电子技术——反馈系统概述

电子技术——反馈系统概述 许多物理系统都会形成反馈系统。但是有趣的是&#xff0c;负反馈系统理论却是由电子工程师所完善的。自从1928年第一个负反馈放大器诞生开始&#xff0c;负反馈系统从此登上历史的舞台&#xff0c;现在负反馈系统不光只用在电子工程上&#xff0c;而且…

算法18:LeetCode_链表相关算法题

链表无小事&#xff0c;只要是涉及到链表的算法题&#xff0c;边界值的设定尤为重要&#xff0c;而且及其容易出错误。这就要求我们平时多加练习。但是&#xff0c;我们在面试和笔试的过程中往往会碰到链表相关的题目&#xff0c;所以我们在笔试的时候一般都会借助系统提供的工…

比特数据结构与算法(第三章_上)栈的概念和实现(力扣:20. 有效的括号)

一、栈&#xff08;stack&#xff09;栈的概念&#xff1a;① 栈是一种特殊的线性表&#xff0c;它只允许在固定的一端进行插入和删除元素的操作。② 进行数据插入的删除和操作的一端&#xff0c;称为栈顶 。另一端则称为 栈底 。③ 栈中的元素遵守后进先出的原则&#xff0c;即…

推荐系统[三]:粗排算法常用模型汇总(集合选择和精准预估),技术发展历史(向量內积,WideDeep等模型)以及前沿技术

1.前言:召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回、粗排、精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板;粗排是初筛,一般不会上复杂模型;精排是整个推荐环节的重中之重,在特征和模型上都会做的比较复杂;重排,一般是做打散或满足…

Android OTA 相关工具(一) 虚拟 A/B 之 snapshotctl

Android 虚拟 A/B 分区推出快三年了&#xff0c;不论是 google 还是百度结果&#xff0c;除了源代码之外&#xff0c;竟然没有人提到这个 Android Virtual A/B 的调试工具 &#xff0c;着实让人感觉意外。 所以我相信还有不少人不知道 Android OTA 到底都有哪些调试工具&#…

【React】react-router 路由详解

&#x1f6a9;&#x1f6a9;&#x1f6a9; &#x1f48e;个人主页: 阿选不出来 &#x1f4a8;&#x1f4a8;&#x1f4a8; &#x1f48e;个人简介: 一名大二在校生,学习方向前端,不定时更新自己学习道路上的一些笔记. &#x1f4a8;&#x1f4a8;&#x1f4a8; &#x1f48e;目…

力扣-查找重复的电子邮箱

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;182. 查找重复的电子邮箱二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果总结…

物联网对供应链管理的影响

物联网对于许多行业来说都是一项革命性技术&#xff0c;其应用领域涉及零售、交通、金融、医疗保健和能源等行业。物联网在供应链等流程中已经展示了其深度的潜力。管理、预测和监督应用程序有助于车队运输经理提高配送的运营效率&#xff0c;并增加决策的准确性。如今&#xf…

网络服务与应用

14.1网络服务与应用概述 14.2实验一&#xff1a;FTP 1、实验环境&#xff1a;如图&#xff0c;AR1作为FTP sever、AR2作为FTP client &#xff0c;实现AR1与AR2之间的文件传输。 2、实验拓扑&#xff1a; 3、实验步骤&#xff1a; 步骤1&#xff1a;配置设备ip地址 AR1: …

固定值电阻的检测方法总结

🏡《总目录》 目录 1,概述2,测量方法3,检测方法3.1,读值3.2,测量3.3,排故4,总结1,概述 本文简单总结固定值电阻的测量与检查方法要点和注意事项。 2,测量方法 对于固定值电阻的测量来讲,直接将万用表红黑表笔分别插入到如下图所示的红色和黑色接线端。然后将万用表…

【MySQL】MySQL表的增删改查(进阶)

✨个人主页&#xff1a;bit me&#x1f447; ✨当前专栏&#xff1a;MySQL数据库&#x1f447; ✨算法专栏&#xff1a;算法基础&#x1f447; ✨每日一语&#xff1a;悟已往之不谏&#xff0c;知来者之可追。实迷途其未远&#xff0c;觉今是而昨非。 目 录&#x1f384;一. 数…